From abff3de1e5a3a7a560e475e319d7f50b4302ed73 Mon Sep 17 00:00:00 2001 From: Github Actions Bot Date: Tue, 16 Jan 2024 11:08:31 +0000 Subject: [PATCH] Update auto generated go snappi --- gosnappi/common.go | 21 + gosnappi/gosnappi.go | 39553 ++++++++++++++++++++----------- gosnappi/otg/otg.pb.go | 46926 +++++++++++++++++++++---------------- gosnappi/otg/otg.proto | 853 +- requirements.txt | 8 +- snappi/__init__.py | 30 + snappi/docs/openapi.yaml | 1114 +- snappi/otg_pb2.py | 4442 ++-- snappi/snappi.py | 4353 +++- 9 files changed, 61035 insertions(+), 36265 deletions(-) diff --git a/gosnappi/common.go b/gosnappi/common.go index c3bb3100..df25a433 100644 --- a/gosnappi/common.go +++ b/gosnappi/common.go @@ -331,6 +331,21 @@ func (obj *validation) validateHex(hex string) error { return nil } +func (obj *validation) validateOid(oid string) error { + segments := strings.Split(oid, ".") + if len(segments) < 2 { + return fmt.Errorf(fmt.Sprintf("Invalid oid value %s", oid)) + } + + for _, segment := range segments { + number, err := strconv.Atoi(segment) + if err != nil || 0 > number || number > 4294967295 { + return fmt.Errorf(fmt.Sprintf("Invalid oid value %s", oid)) + } + } + return nil +} + func (obj *validation) validateSlice(valSlice []string, sliceType string) error { indices := []string{} var err error @@ -344,6 +359,8 @@ func (obj *validation) validateSlice(valSlice []string, sliceType string) error err = obj.validateIpv6(val) } else if sliceType == "hex" { err = obj.validateHex(val) + } else if sliceType == "oid" { + err = obj.validateOid(val) } else { return fmt.Errorf(fmt.Sprintf("Invalid slice type received <%s>", sliceType)) } @@ -376,6 +393,10 @@ func (obj *validation) validateHexSlice(hex []string) error { return obj.validateSlice(hex, "hex") } +func (obj *validation) validateOidSlice(oid []string) error { + return obj.validateSlice(oid, "oid") +} + // TODO: restore behavior // func (obj *validation) createMap(objName string) { // if obj.constraints == nil { diff --git a/gosnappi/gosnappi.go b/gosnappi/gosnappi.go index f354b9ff..4624f5d7 100644 --- a/gosnappi/gosnappi.go +++ b/gosnappi/gosnappi.go @@ -1,4 +1,4 @@ -/* Open Traffic Generator API 0.13.5 +/* Open Traffic Generator API 0.13.6 * Open Traffic Generator API defines a model-driven, vendor-neutral and standard * interface for emulating layer 2-7 network devices and generating test traffic. * @@ -250,7 +250,7 @@ type Api interface { func (api *gosnappiApi) GetLocalVersion() Version { if api.versionMeta.localVersion == nil { - api.versionMeta.localVersion = NewVersion().SetApiSpecVersion("0.13.5").SetSdkVersion("0.13.5") + api.versionMeta.localVersion = NewVersion().SetApiSpecVersion("0.13.6").SetSdkVersion("0.13.6") } return api.versionMeta.localVersion @@ -30556,6 +30556,7 @@ type flowHeader struct { pppHolder FlowPpp igmpv1Holder FlowIgmpv1 mplsHolder FlowMpls + snmpv2CHolder FlowSnmpv2C } func NewFlowHeader() FlowHeader { @@ -30802,6 +30803,7 @@ func (obj *flowHeader) setNil() { obj.pppHolder = nil obj.igmpv1Holder = nil obj.mplsHolder = nil + obj.snmpv2CHolder = nil obj.validationErrors = nil obj.warnings = nil obj.constraints = make(map[string]map[string]Constraints) @@ -30987,6 +30989,12 @@ type FlowHeader interface { SetMpls(value FlowMpls) FlowHeader // HasMpls checks if Mpls has been set in FlowHeader HasMpls() bool + // Snmpv2C returns FlowSnmpv2C, set in FlowHeader. + Snmpv2C() FlowSnmpv2C + // SetSnmpv2C assigns FlowSnmpv2C provided by user to FlowHeader. + SetSnmpv2C(value FlowSnmpv2C) FlowHeader + // HasSnmpv2C checks if Snmpv2C has been set in FlowHeader + HasSnmpv2C() bool setNil() } @@ -31013,6 +31021,7 @@ var FlowHeaderChoice = struct { PPP FlowHeaderChoiceEnum IGMPV1 FlowHeaderChoiceEnum MPLS FlowHeaderChoiceEnum + SNMPV2C FlowHeaderChoiceEnum }{ CUSTOM: FlowHeaderChoiceEnum("custom"), ETHERNET: FlowHeaderChoiceEnum("ethernet"), @@ -31033,6 +31042,7 @@ var FlowHeaderChoice = struct { PPP: FlowHeaderChoiceEnum("ppp"), IGMPV1: FlowHeaderChoiceEnum("igmpv1"), MPLS: FlowHeaderChoiceEnum("mpls"), + SNMPV2C: FlowHeaderChoiceEnum("snmpv2c"), } func (obj *flowHeader) Choice() FlowHeaderChoiceEnum { @@ -31055,6 +31065,8 @@ func (obj *flowHeader) setChoice(value FlowHeaderChoiceEnum) FlowHeader { } enumValue := otg.FlowHeader_Choice_Enum(intValue) obj.obj.Choice = &enumValue + obj.obj.Snmpv2C = nil + obj.snmpv2CHolder = nil obj.obj.Mpls = nil obj.mplsHolder = nil obj.obj.Igmpv1 = nil @@ -31170,6 +31182,10 @@ func (obj *flowHeader) setChoice(value FlowHeaderChoiceEnum) FlowHeader { obj.obj.Mpls = NewFlowMpls().msg() } + if value == FlowHeaderChoice.SNMPV2C { + obj.obj.Snmpv2C = NewFlowSnmpv2C().msg() + } + return obj } @@ -31705,6 +31721,34 @@ func (obj *flowHeader) SetMpls(value FlowMpls) FlowHeader { return obj } +// description is TBD +// Snmpv2C returns a FlowSnmpv2C +func (obj *flowHeader) Snmpv2C() FlowSnmpv2C { + if obj.obj.Snmpv2C == nil { + obj.setChoice(FlowHeaderChoice.SNMPV2C) + } + if obj.snmpv2CHolder == nil { + obj.snmpv2CHolder = &flowSnmpv2C{obj: obj.obj.Snmpv2C} + } + return obj.snmpv2CHolder +} + +// description is TBD +// Snmpv2C returns a FlowSnmpv2C +func (obj *flowHeader) HasSnmpv2C() bool { + return obj.obj.Snmpv2C != nil +} + +// description is TBD +// SetSnmpv2C sets the FlowSnmpv2C value in the FlowHeader object +func (obj *flowHeader) SetSnmpv2C(value FlowSnmpv2C) FlowHeader { + obj.setChoice(FlowHeaderChoice.SNMPV2C) + obj.snmpv2CHolder = nil + obj.obj.Snmpv2C = value.msg() + + return obj +} + func (obj *flowHeader) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() @@ -31805,6 +31849,11 @@ func (obj *flowHeader) validateObj(vObj *validation, set_default bool) { obj.Mpls().validateObj(vObj, set_default) } + if obj.obj.Snmpv2C != nil { + + obj.Snmpv2C().validateObj(vObj, set_default) + } + } func (obj *flowHeader) setDefault() { @@ -78607,75 +78656,77 @@ func (obj *flowMpls) setDefault() { } -// ***** FlowSizeIncrement ***** -type flowSizeIncrement struct { +// ***** FlowSnmpv2C ***** +type flowSnmpv2C struct { validation - obj *otg.FlowSizeIncrement - marshaller marshalFlowSizeIncrement - unMarshaller unMarshalFlowSizeIncrement + obj *otg.FlowSnmpv2C + marshaller marshalFlowSnmpv2C + unMarshaller unMarshalFlowSnmpv2C + versionHolder PatternFlowSnmpv2CVersion + dataHolder FlowSnmpv2CData } -func NewFlowSizeIncrement() FlowSizeIncrement { - obj := flowSizeIncrement{obj: &otg.FlowSizeIncrement{}} +func NewFlowSnmpv2C() FlowSnmpv2C { + obj := flowSnmpv2C{obj: &otg.FlowSnmpv2C{}} obj.setDefault() return &obj } -func (obj *flowSizeIncrement) msg() *otg.FlowSizeIncrement { +func (obj *flowSnmpv2C) msg() *otg.FlowSnmpv2C { return obj.obj } -func (obj *flowSizeIncrement) setMsg(msg *otg.FlowSizeIncrement) FlowSizeIncrement { - +func (obj *flowSnmpv2C) setMsg(msg *otg.FlowSnmpv2C) FlowSnmpv2C { + obj.setNil() proto.Merge(obj.obj, msg) return obj } -type marshalflowSizeIncrement struct { - obj *flowSizeIncrement +type marshalflowSnmpv2C struct { + obj *flowSnmpv2C } -type marshalFlowSizeIncrement interface { - // ToProto marshals FlowSizeIncrement to protobuf object *otg.FlowSizeIncrement - ToProto() (*otg.FlowSizeIncrement, error) - // ToPbText marshals FlowSizeIncrement to protobuf text +type marshalFlowSnmpv2C interface { + // ToProto marshals FlowSnmpv2C to protobuf object *otg.FlowSnmpv2C + ToProto() (*otg.FlowSnmpv2C, error) + // ToPbText marshals FlowSnmpv2C to protobuf text ToPbText() (string, error) - // ToYaml marshals FlowSizeIncrement to YAML text + // ToYaml marshals FlowSnmpv2C to YAML text ToYaml() (string, error) - // ToJson marshals FlowSizeIncrement to JSON text + // ToJson marshals FlowSnmpv2C to JSON text ToJson() (string, error) } -type unMarshalflowSizeIncrement struct { - obj *flowSizeIncrement +type unMarshalflowSnmpv2C struct { + obj *flowSnmpv2C } -type unMarshalFlowSizeIncrement interface { - // FromProto unmarshals FlowSizeIncrement from protobuf object *otg.FlowSizeIncrement - FromProto(msg *otg.FlowSizeIncrement) (FlowSizeIncrement, error) - // FromPbText unmarshals FlowSizeIncrement from protobuf text +type unMarshalFlowSnmpv2C interface { + // FromProto unmarshals FlowSnmpv2C from protobuf object *otg.FlowSnmpv2C + FromProto(msg *otg.FlowSnmpv2C) (FlowSnmpv2C, error) + // FromPbText unmarshals FlowSnmpv2C from protobuf text FromPbText(value string) error - // FromYaml unmarshals FlowSizeIncrement from YAML text + // FromYaml unmarshals FlowSnmpv2C from YAML text FromYaml(value string) error - // FromJson unmarshals FlowSizeIncrement from JSON text + // FromJson unmarshals FlowSnmpv2C from JSON text FromJson(value string) error } -func (obj *flowSizeIncrement) Marshal() marshalFlowSizeIncrement { +func (obj *flowSnmpv2C) Marshal() marshalFlowSnmpv2C { if obj.marshaller == nil { - obj.marshaller = &marshalflowSizeIncrement{obj: obj} + obj.marshaller = &marshalflowSnmpv2C{obj: obj} } return obj.marshaller } -func (obj *flowSizeIncrement) Unmarshal() unMarshalFlowSizeIncrement { +func (obj *flowSnmpv2C) Unmarshal() unMarshalFlowSnmpv2C { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalflowSizeIncrement{obj: obj} + obj.unMarshaller = &unMarshalflowSnmpv2C{obj: obj} } return obj.unMarshaller } -func (m *marshalflowSizeIncrement) ToProto() (*otg.FlowSizeIncrement, error) { +func (m *marshalflowSnmpv2C) ToProto() (*otg.FlowSnmpv2C, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -78683,7 +78734,7 @@ func (m *marshalflowSizeIncrement) ToProto() (*otg.FlowSizeIncrement, error) { return m.obj.msg(), nil } -func (m *unMarshalflowSizeIncrement) FromProto(msg *otg.FlowSizeIncrement) (FlowSizeIncrement, error) { +func (m *unMarshalflowSnmpv2C) FromProto(msg *otg.FlowSnmpv2C) (FlowSnmpv2C, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -78692,7 +78743,7 @@ func (m *unMarshalflowSizeIncrement) FromProto(msg *otg.FlowSizeIncrement) (Flow return newObj, nil } -func (m *marshalflowSizeIncrement) ToPbText() (string, error) { +func (m *marshalflowSnmpv2C) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -78704,12 +78755,12 @@ func (m *marshalflowSizeIncrement) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalflowSizeIncrement) FromPbText(value string) error { +func (m *unMarshalflowSnmpv2C) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -78717,7 +78768,7 @@ func (m *unMarshalflowSizeIncrement) FromPbText(value string) error { return retObj } -func (m *marshalflowSizeIncrement) ToYaml() (string, error) { +func (m *marshalflowSnmpv2C) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -78738,7 +78789,7 @@ func (m *marshalflowSizeIncrement) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalflowSizeIncrement) FromYaml(value string) error { +func (m *unMarshalflowSnmpv2C) FromYaml(value string) error { if value == "" { value = "{}" } @@ -78755,7 +78806,7 @@ func (m *unMarshalflowSizeIncrement) FromYaml(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -78763,7 +78814,7 @@ func (m *unMarshalflowSizeIncrement) FromYaml(value string) error { return nil } -func (m *marshalflowSizeIncrement) ToJson() (string, error) { +func (m *marshalflowSnmpv2C) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -78781,7 +78832,7 @@ func (m *marshalflowSizeIncrement) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalflowSizeIncrement) FromJson(value string) error { +func (m *unMarshalflowSnmpv2C) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -78794,7 +78845,7 @@ func (m *unMarshalflowSizeIncrement) FromJson(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() err := m.obj.validateToAndFrom() if err != nil { return err @@ -78802,19 +78853,19 @@ func (m *unMarshalflowSizeIncrement) FromJson(value string) error { return nil } -func (obj *flowSizeIncrement) validateToAndFrom() error { +func (obj *flowSnmpv2C) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *flowSizeIncrement) validate() error { +func (obj *flowSnmpv2C) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *flowSizeIncrement) String() string { +func (obj *flowSnmpv2C) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -78822,12 +78873,12 @@ func (obj *flowSizeIncrement) String() string { return str } -func (obj *flowSizeIncrement) Clone() (FlowSizeIncrement, error) { +func (obj *flowSnmpv2C) Clone() (FlowSnmpv2C, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewFlowSizeIncrement() + newObj := NewFlowSnmpv2C() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -78839,224 +78890,237 @@ func (obj *flowSizeIncrement) Clone() (FlowSizeIncrement, error) { return newObj, nil } -// FlowSizeIncrement is frame size that increments from a starting size to -// an ending size incrementing by a step size. -type FlowSizeIncrement interface { +func (obj *flowSnmpv2C) setNil() { + obj.versionHolder = nil + obj.dataHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// FlowSnmpv2C is sNMPv2C packet header as defined in RFC1901 and RFC3416. +type FlowSnmpv2C interface { Validation - // msg marshals FlowSizeIncrement to protobuf object *otg.FlowSizeIncrement + // msg marshals FlowSnmpv2C to protobuf object *otg.FlowSnmpv2C // and doesn't set defaults - msg() *otg.FlowSizeIncrement - // setMsg unmarshals FlowSizeIncrement from protobuf object *otg.FlowSizeIncrement + msg() *otg.FlowSnmpv2C + // setMsg unmarshals FlowSnmpv2C from protobuf object *otg.FlowSnmpv2C // and doesn't set defaults - setMsg(*otg.FlowSizeIncrement) FlowSizeIncrement + setMsg(*otg.FlowSnmpv2C) FlowSnmpv2C // provides marshal interface - Marshal() marshalFlowSizeIncrement + Marshal() marshalFlowSnmpv2C // provides unmarshal interface - Unmarshal() unMarshalFlowSizeIncrement - // validate validates FlowSizeIncrement + Unmarshal() unMarshalFlowSnmpv2C + // validate validates FlowSnmpv2C validate() error // A stringer function String() string // Clones the object - Clone() (FlowSizeIncrement, error) + Clone() (FlowSnmpv2C, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Start returns uint32, set in FlowSizeIncrement. - Start() uint32 - // SetStart assigns uint32 provided by user to FlowSizeIncrement - SetStart(value uint32) FlowSizeIncrement - // HasStart checks if Start has been set in FlowSizeIncrement - HasStart() bool - // End returns uint32, set in FlowSizeIncrement. - End() uint32 - // SetEnd assigns uint32 provided by user to FlowSizeIncrement - SetEnd(value uint32) FlowSizeIncrement - // HasEnd checks if End has been set in FlowSizeIncrement - HasEnd() bool - // Step returns uint32, set in FlowSizeIncrement. - Step() uint32 - // SetStep assigns uint32 provided by user to FlowSizeIncrement - SetStep(value uint32) FlowSizeIncrement - // HasStep checks if Step has been set in FlowSizeIncrement - HasStep() bool + // Version returns PatternFlowSnmpv2CVersion, set in FlowSnmpv2C. + Version() PatternFlowSnmpv2CVersion + // SetVersion assigns PatternFlowSnmpv2CVersion provided by user to FlowSnmpv2C. + SetVersion(value PatternFlowSnmpv2CVersion) FlowSnmpv2C + // HasVersion checks if Version has been set in FlowSnmpv2C + HasVersion() bool + // Community returns string, set in FlowSnmpv2C. + Community() string + // SetCommunity assigns string provided by user to FlowSnmpv2C + SetCommunity(value string) FlowSnmpv2C + // HasCommunity checks if Community has been set in FlowSnmpv2C + HasCommunity() bool + // Data returns FlowSnmpv2CData, set in FlowSnmpv2C. + Data() FlowSnmpv2CData + // SetData assigns FlowSnmpv2CData provided by user to FlowSnmpv2C. + SetData(value FlowSnmpv2CData) FlowSnmpv2C + setNil() } -// Starting frame size in bytes -// Start returns a uint32 -func (obj *flowSizeIncrement) Start() uint32 { - - return *obj.obj.Start - +// description is TBD +// Version returns a PatternFlowSnmpv2CVersion +func (obj *flowSnmpv2C) Version() PatternFlowSnmpv2CVersion { + if obj.obj.Version == nil { + obj.obj.Version = NewPatternFlowSnmpv2CVersion().msg() + } + if obj.versionHolder == nil { + obj.versionHolder = &patternFlowSnmpv2CVersion{obj: obj.obj.Version} + } + return obj.versionHolder } -// Starting frame size in bytes -// Start returns a uint32 -func (obj *flowSizeIncrement) HasStart() bool { - return obj.obj.Start != nil +// description is TBD +// Version returns a PatternFlowSnmpv2CVersion +func (obj *flowSnmpv2C) HasVersion() bool { + return obj.obj.Version != nil } -// Starting frame size in bytes -// SetStart sets the uint32 value in the FlowSizeIncrement object -func (obj *flowSizeIncrement) SetStart(value uint32) FlowSizeIncrement { +// description is TBD +// SetVersion sets the PatternFlowSnmpv2CVersion value in the FlowSnmpv2C object +func (obj *flowSnmpv2C) SetVersion(value PatternFlowSnmpv2CVersion) FlowSnmpv2C { + + obj.versionHolder = nil + obj.obj.Version = value.msg() - obj.obj.Start = &value return obj } -// Ending frame size in bytes -// End returns a uint32 -func (obj *flowSizeIncrement) End() uint32 { +// It is an ASCII based octet string which identifies the SNMP community in which the sender and recipient of this message are located. It should match the read-only or read-write community string configured on the recipient for the PDU to be accepted. +// Community returns a string +func (obj *flowSnmpv2C) Community() string { - return *obj.obj.End + return *obj.obj.Community } -// Ending frame size in bytes -// End returns a uint32 -func (obj *flowSizeIncrement) HasEnd() bool { - return obj.obj.End != nil +// It is an ASCII based octet string which identifies the SNMP community in which the sender and recipient of this message are located. It should match the read-only or read-write community string configured on the recipient for the PDU to be accepted. +// Community returns a string +func (obj *flowSnmpv2C) HasCommunity() bool { + return obj.obj.Community != nil } -// Ending frame size in bytes -// SetEnd sets the uint32 value in the FlowSizeIncrement object -func (obj *flowSizeIncrement) SetEnd(value uint32) FlowSizeIncrement { +// It is an ASCII based octet string which identifies the SNMP community in which the sender and recipient of this message are located. It should match the read-only or read-write community string configured on the recipient for the PDU to be accepted. +// SetCommunity sets the string value in the FlowSnmpv2C object +func (obj *flowSnmpv2C) SetCommunity(value string) FlowSnmpv2C { - obj.obj.End = &value + obj.obj.Community = &value return obj } -// Step frame size in bytes -// Step returns a uint32 -func (obj *flowSizeIncrement) Step() uint32 { - - return *obj.obj.Step - +// description is TBD +// Data returns a FlowSnmpv2CData +func (obj *flowSnmpv2C) Data() FlowSnmpv2CData { + if obj.obj.Data == nil { + obj.obj.Data = NewFlowSnmpv2CData().msg() + } + if obj.dataHolder == nil { + obj.dataHolder = &flowSnmpv2CData{obj: obj.obj.Data} + } + return obj.dataHolder } -// Step frame size in bytes -// Step returns a uint32 -func (obj *flowSizeIncrement) HasStep() bool { - return obj.obj.Step != nil -} +// description is TBD +// SetData sets the FlowSnmpv2CData value in the FlowSnmpv2C object +func (obj *flowSnmpv2C) SetData(value FlowSnmpv2CData) FlowSnmpv2C { -// Step frame size in bytes -// SetStep sets the uint32 value in the FlowSizeIncrement object -func (obj *flowSizeIncrement) SetStep(value uint32) FlowSizeIncrement { + obj.dataHolder = nil + obj.obj.Data = value.msg() - obj.obj.Step = &value return obj } -func (obj *flowSizeIncrement) validateObj(vObj *validation, set_default bool) { +func (obj *flowSnmpv2C) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Start != nil { + if obj.obj.Version != nil { - if *obj.obj.Start < 1 || *obj.obj.Start > 4294967295 { + obj.Version().validateObj(vObj, set_default) + } + + if obj.obj.Community != nil { + + if len(*obj.obj.Community) > 10000 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("1 <= FlowSizeIncrement.Start <= 4294967295 but Got %d", *obj.obj.Start)) + fmt.Sprintf( + "None <= length of FlowSnmpv2C.Community <= 10000 but Got %d", + len(*obj.obj.Community))) } } - if obj.obj.End != nil { + // Data is required + if obj.obj.Data == nil { + vObj.validationErrors = append(vObj.validationErrors, "Data is required field on interface FlowSnmpv2C") + } - if *obj.obj.End < 64 || *obj.obj.End > 4294967295 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("64 <= FlowSizeIncrement.End <= 4294967295 but Got %d", *obj.obj.End)) - } + if obj.obj.Data != nil { + obj.Data().validateObj(vObj, set_default) } } -func (obj *flowSizeIncrement) setDefault() { - if obj.obj.Start == nil { - obj.SetStart(64) - } - if obj.obj.End == nil { - obj.SetEnd(1518) - } - if obj.obj.Step == nil { - obj.SetStep(1) +func (obj *flowSnmpv2C) setDefault() { + if obj.obj.Community == nil { + obj.SetCommunity("community") } } -// ***** FlowSizeRandom ***** -type flowSizeRandom struct { +// ***** FlowSizeIncrement ***** +type flowSizeIncrement struct { validation - obj *otg.FlowSizeRandom - marshaller marshalFlowSizeRandom - unMarshaller unMarshalFlowSizeRandom + obj *otg.FlowSizeIncrement + marshaller marshalFlowSizeIncrement + unMarshaller unMarshalFlowSizeIncrement } -func NewFlowSizeRandom() FlowSizeRandom { - obj := flowSizeRandom{obj: &otg.FlowSizeRandom{}} +func NewFlowSizeIncrement() FlowSizeIncrement { + obj := flowSizeIncrement{obj: &otg.FlowSizeIncrement{}} obj.setDefault() return &obj } -func (obj *flowSizeRandom) msg() *otg.FlowSizeRandom { +func (obj *flowSizeIncrement) msg() *otg.FlowSizeIncrement { return obj.obj } -func (obj *flowSizeRandom) setMsg(msg *otg.FlowSizeRandom) FlowSizeRandom { +func (obj *flowSizeIncrement) setMsg(msg *otg.FlowSizeIncrement) FlowSizeIncrement { proto.Merge(obj.obj, msg) return obj } -type marshalflowSizeRandom struct { - obj *flowSizeRandom +type marshalflowSizeIncrement struct { + obj *flowSizeIncrement } -type marshalFlowSizeRandom interface { - // ToProto marshals FlowSizeRandom to protobuf object *otg.FlowSizeRandom - ToProto() (*otg.FlowSizeRandom, error) - // ToPbText marshals FlowSizeRandom to protobuf text +type marshalFlowSizeIncrement interface { + // ToProto marshals FlowSizeIncrement to protobuf object *otg.FlowSizeIncrement + ToProto() (*otg.FlowSizeIncrement, error) + // ToPbText marshals FlowSizeIncrement to protobuf text ToPbText() (string, error) - // ToYaml marshals FlowSizeRandom to YAML text + // ToYaml marshals FlowSizeIncrement to YAML text ToYaml() (string, error) - // ToJson marshals FlowSizeRandom to JSON text + // ToJson marshals FlowSizeIncrement to JSON text ToJson() (string, error) } -type unMarshalflowSizeRandom struct { - obj *flowSizeRandom +type unMarshalflowSizeIncrement struct { + obj *flowSizeIncrement } -type unMarshalFlowSizeRandom interface { - // FromProto unmarshals FlowSizeRandom from protobuf object *otg.FlowSizeRandom - FromProto(msg *otg.FlowSizeRandom) (FlowSizeRandom, error) - // FromPbText unmarshals FlowSizeRandom from protobuf text +type unMarshalFlowSizeIncrement interface { + // FromProto unmarshals FlowSizeIncrement from protobuf object *otg.FlowSizeIncrement + FromProto(msg *otg.FlowSizeIncrement) (FlowSizeIncrement, error) + // FromPbText unmarshals FlowSizeIncrement from protobuf text FromPbText(value string) error - // FromYaml unmarshals FlowSizeRandom from YAML text + // FromYaml unmarshals FlowSizeIncrement from YAML text FromYaml(value string) error - // FromJson unmarshals FlowSizeRandom from JSON text + // FromJson unmarshals FlowSizeIncrement from JSON text FromJson(value string) error } -func (obj *flowSizeRandom) Marshal() marshalFlowSizeRandom { +func (obj *flowSizeIncrement) Marshal() marshalFlowSizeIncrement { if obj.marshaller == nil { - obj.marshaller = &marshalflowSizeRandom{obj: obj} + obj.marshaller = &marshalflowSizeIncrement{obj: obj} } return obj.marshaller } -func (obj *flowSizeRandom) Unmarshal() unMarshalFlowSizeRandom { +func (obj *flowSizeIncrement) Unmarshal() unMarshalFlowSizeIncrement { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalflowSizeRandom{obj: obj} + obj.unMarshaller = &unMarshalflowSizeIncrement{obj: obj} } return obj.unMarshaller } -func (m *marshalflowSizeRandom) ToProto() (*otg.FlowSizeRandom, error) { +func (m *marshalflowSizeIncrement) ToProto() (*otg.FlowSizeIncrement, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -79064,7 +79128,7 @@ func (m *marshalflowSizeRandom) ToProto() (*otg.FlowSizeRandom, error) { return m.obj.msg(), nil } -func (m *unMarshalflowSizeRandom) FromProto(msg *otg.FlowSizeRandom) (FlowSizeRandom, error) { +func (m *unMarshalflowSizeIncrement) FromProto(msg *otg.FlowSizeIncrement) (FlowSizeIncrement, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -79073,7 +79137,7 @@ func (m *unMarshalflowSizeRandom) FromProto(msg *otg.FlowSizeRandom) (FlowSizeRa return newObj, nil } -func (m *marshalflowSizeRandom) ToPbText() (string, error) { +func (m *marshalflowSizeIncrement) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -79085,7 +79149,7 @@ func (m *marshalflowSizeRandom) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalflowSizeRandom) FromPbText(value string) error { +func (m *unMarshalflowSizeIncrement) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj @@ -79098,7 +79162,7 @@ func (m *unMarshalflowSizeRandom) FromPbText(value string) error { return retObj } -func (m *marshalflowSizeRandom) ToYaml() (string, error) { +func (m *marshalflowSizeIncrement) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -79119,7 +79183,388 @@ func (m *marshalflowSizeRandom) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalflowSizeRandom) FromYaml(value string) error { +func (m *unMarshalflowSizeIncrement) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (m *marshalflowSizeIncrement) ToJson() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalflowSizeIncrement) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := m.obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *flowSizeIncrement) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *flowSizeIncrement) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *flowSizeIncrement) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *flowSizeIncrement) Clone() (FlowSizeIncrement, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewFlowSizeIncrement() + data, err := proto.Marshal(obj.msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// FlowSizeIncrement is frame size that increments from a starting size to +// an ending size incrementing by a step size. +type FlowSizeIncrement interface { + Validation + // msg marshals FlowSizeIncrement to protobuf object *otg.FlowSizeIncrement + // and doesn't set defaults + msg() *otg.FlowSizeIncrement + // setMsg unmarshals FlowSizeIncrement from protobuf object *otg.FlowSizeIncrement + // and doesn't set defaults + setMsg(*otg.FlowSizeIncrement) FlowSizeIncrement + // provides marshal interface + Marshal() marshalFlowSizeIncrement + // provides unmarshal interface + Unmarshal() unMarshalFlowSizeIncrement + // validate validates FlowSizeIncrement + validate() error + // A stringer function + String() string + // Clones the object + Clone() (FlowSizeIncrement, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Start returns uint32, set in FlowSizeIncrement. + Start() uint32 + // SetStart assigns uint32 provided by user to FlowSizeIncrement + SetStart(value uint32) FlowSizeIncrement + // HasStart checks if Start has been set in FlowSizeIncrement + HasStart() bool + // End returns uint32, set in FlowSizeIncrement. + End() uint32 + // SetEnd assigns uint32 provided by user to FlowSizeIncrement + SetEnd(value uint32) FlowSizeIncrement + // HasEnd checks if End has been set in FlowSizeIncrement + HasEnd() bool + // Step returns uint32, set in FlowSizeIncrement. + Step() uint32 + // SetStep assigns uint32 provided by user to FlowSizeIncrement + SetStep(value uint32) FlowSizeIncrement + // HasStep checks if Step has been set in FlowSizeIncrement + HasStep() bool +} + +// Starting frame size in bytes +// Start returns a uint32 +func (obj *flowSizeIncrement) Start() uint32 { + + return *obj.obj.Start + +} + +// Starting frame size in bytes +// Start returns a uint32 +func (obj *flowSizeIncrement) HasStart() bool { + return obj.obj.Start != nil +} + +// Starting frame size in bytes +// SetStart sets the uint32 value in the FlowSizeIncrement object +func (obj *flowSizeIncrement) SetStart(value uint32) FlowSizeIncrement { + + obj.obj.Start = &value + return obj +} + +// Ending frame size in bytes +// End returns a uint32 +func (obj *flowSizeIncrement) End() uint32 { + + return *obj.obj.End + +} + +// Ending frame size in bytes +// End returns a uint32 +func (obj *flowSizeIncrement) HasEnd() bool { + return obj.obj.End != nil +} + +// Ending frame size in bytes +// SetEnd sets the uint32 value in the FlowSizeIncrement object +func (obj *flowSizeIncrement) SetEnd(value uint32) FlowSizeIncrement { + + obj.obj.End = &value + return obj +} + +// Step frame size in bytes +// Step returns a uint32 +func (obj *flowSizeIncrement) Step() uint32 { + + return *obj.obj.Step + +} + +// Step frame size in bytes +// Step returns a uint32 +func (obj *flowSizeIncrement) HasStep() bool { + return obj.obj.Step != nil +} + +// Step frame size in bytes +// SetStep sets the uint32 value in the FlowSizeIncrement object +func (obj *flowSizeIncrement) SetStep(value uint32) FlowSizeIncrement { + + obj.obj.Step = &value + return obj +} + +func (obj *flowSizeIncrement) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.Start != nil { + + if *obj.obj.Start < 1 || *obj.obj.Start > 4294967295 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("1 <= FlowSizeIncrement.Start <= 4294967295 but Got %d", *obj.obj.Start)) + } + + } + + if obj.obj.End != nil { + + if *obj.obj.End < 64 || *obj.obj.End > 4294967295 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("64 <= FlowSizeIncrement.End <= 4294967295 but Got %d", *obj.obj.End)) + } + + } + +} + +func (obj *flowSizeIncrement) setDefault() { + if obj.obj.Start == nil { + obj.SetStart(64) + } + if obj.obj.End == nil { + obj.SetEnd(1518) + } + if obj.obj.Step == nil { + obj.SetStep(1) + } + +} + +// ***** FlowSizeRandom ***** +type flowSizeRandom struct { + validation + obj *otg.FlowSizeRandom + marshaller marshalFlowSizeRandom + unMarshaller unMarshalFlowSizeRandom +} + +func NewFlowSizeRandom() FlowSizeRandom { + obj := flowSizeRandom{obj: &otg.FlowSizeRandom{}} + obj.setDefault() + return &obj +} + +func (obj *flowSizeRandom) msg() *otg.FlowSizeRandom { + return obj.obj +} + +func (obj *flowSizeRandom) setMsg(msg *otg.FlowSizeRandom) FlowSizeRandom { + + proto.Merge(obj.obj, msg) + return obj +} + +type marshalflowSizeRandom struct { + obj *flowSizeRandom +} + +type marshalFlowSizeRandom interface { + // ToProto marshals FlowSizeRandom to protobuf object *otg.FlowSizeRandom + ToProto() (*otg.FlowSizeRandom, error) + // ToPbText marshals FlowSizeRandom to protobuf text + ToPbText() (string, error) + // ToYaml marshals FlowSizeRandom to YAML text + ToYaml() (string, error) + // ToJson marshals FlowSizeRandom to JSON text + ToJson() (string, error) +} + +type unMarshalflowSizeRandom struct { + obj *flowSizeRandom +} + +type unMarshalFlowSizeRandom interface { + // FromProto unmarshals FlowSizeRandom from protobuf object *otg.FlowSizeRandom + FromProto(msg *otg.FlowSizeRandom) (FlowSizeRandom, error) + // FromPbText unmarshals FlowSizeRandom from protobuf text + FromPbText(value string) error + // FromYaml unmarshals FlowSizeRandom from YAML text + FromYaml(value string) error + // FromJson unmarshals FlowSizeRandom from JSON text + FromJson(value string) error +} + +func (obj *flowSizeRandom) Marshal() marshalFlowSizeRandom { + if obj.marshaller == nil { + obj.marshaller = &marshalflowSizeRandom{obj: obj} + } + return obj.marshaller +} + +func (obj *flowSizeRandom) Unmarshal() unMarshalFlowSizeRandom { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshalflowSizeRandom{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshalflowSizeRandom) ToProto() (*otg.FlowSizeRandom, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshalflowSizeRandom) FromProto(msg *otg.FlowSizeRandom) (FlowSizeRandom, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshalflowSizeRandom) ToPbText() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (m *unMarshalflowSizeRandom) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), m.obj.msg()) + if retObj != nil { + return retObj + } + + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (m *marshalflowSizeRandom) ToYaml() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalflowSizeRandom) FromYaml(value string) error { if value == "" { value = "{}" } @@ -175947,6 +176392,1216 @@ func (obj *patternFlowMplsTimeToLive) setDefault() { } +// ***** PatternFlowSnmpv2CVersion ***** +type patternFlowSnmpv2CVersion struct { + validation + obj *otg.PatternFlowSnmpv2CVersion + marshaller marshalPatternFlowSnmpv2CVersion + unMarshaller unMarshalPatternFlowSnmpv2CVersion + incrementHolder PatternFlowSnmpv2CVersionCounter + decrementHolder PatternFlowSnmpv2CVersionCounter +} + +func NewPatternFlowSnmpv2CVersion() PatternFlowSnmpv2CVersion { + obj := patternFlowSnmpv2CVersion{obj: &otg.PatternFlowSnmpv2CVersion{}} + obj.setDefault() + return &obj +} + +func (obj *patternFlowSnmpv2CVersion) msg() *otg.PatternFlowSnmpv2CVersion { + return obj.obj +} + +func (obj *patternFlowSnmpv2CVersion) setMsg(msg *otg.PatternFlowSnmpv2CVersion) PatternFlowSnmpv2CVersion { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +type marshalpatternFlowSnmpv2CVersion struct { + obj *patternFlowSnmpv2CVersion +} + +type marshalPatternFlowSnmpv2CVersion interface { + // ToProto marshals PatternFlowSnmpv2CVersion to protobuf object *otg.PatternFlowSnmpv2CVersion + ToProto() (*otg.PatternFlowSnmpv2CVersion, error) + // ToPbText marshals PatternFlowSnmpv2CVersion to protobuf text + ToPbText() (string, error) + // ToYaml marshals PatternFlowSnmpv2CVersion to YAML text + ToYaml() (string, error) + // ToJson marshals PatternFlowSnmpv2CVersion to JSON text + ToJson() (string, error) +} + +type unMarshalpatternFlowSnmpv2CVersion struct { + obj *patternFlowSnmpv2CVersion +} + +type unMarshalPatternFlowSnmpv2CVersion interface { + // FromProto unmarshals PatternFlowSnmpv2CVersion from protobuf object *otg.PatternFlowSnmpv2CVersion + FromProto(msg *otg.PatternFlowSnmpv2CVersion) (PatternFlowSnmpv2CVersion, error) + // FromPbText unmarshals PatternFlowSnmpv2CVersion from protobuf text + FromPbText(value string) error + // FromYaml unmarshals PatternFlowSnmpv2CVersion from YAML text + FromYaml(value string) error + // FromJson unmarshals PatternFlowSnmpv2CVersion from JSON text + FromJson(value string) error +} + +func (obj *patternFlowSnmpv2CVersion) Marshal() marshalPatternFlowSnmpv2CVersion { + if obj.marshaller == nil { + obj.marshaller = &marshalpatternFlowSnmpv2CVersion{obj: obj} + } + return obj.marshaller +} + +func (obj *patternFlowSnmpv2CVersion) Unmarshal() unMarshalPatternFlowSnmpv2CVersion { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshalpatternFlowSnmpv2CVersion{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshalpatternFlowSnmpv2CVersion) ToProto() (*otg.PatternFlowSnmpv2CVersion, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshalpatternFlowSnmpv2CVersion) FromProto(msg *otg.PatternFlowSnmpv2CVersion) (PatternFlowSnmpv2CVersion, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshalpatternFlowSnmpv2CVersion) ToPbText() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (m *unMarshalpatternFlowSnmpv2CVersion) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), m.obj.msg()) + if retObj != nil { + return retObj + } + m.obj.setNil() + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (m *marshalpatternFlowSnmpv2CVersion) ToYaml() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalpatternFlowSnmpv2CVersion) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + m.obj.setNil() + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (m *marshalpatternFlowSnmpv2CVersion) ToJson() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalpatternFlowSnmpv2CVersion) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + m.obj.setNil() + err := m.obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *patternFlowSnmpv2CVersion) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *patternFlowSnmpv2CVersion) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *patternFlowSnmpv2CVersion) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *patternFlowSnmpv2CVersion) Clone() (PatternFlowSnmpv2CVersion, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewPatternFlowSnmpv2CVersion() + data, err := proto.Marshal(obj.msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +func (obj *patternFlowSnmpv2CVersion) setNil() { + obj.incrementHolder = nil + obj.decrementHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// PatternFlowSnmpv2CVersion is version +type PatternFlowSnmpv2CVersion interface { + Validation + // msg marshals PatternFlowSnmpv2CVersion to protobuf object *otg.PatternFlowSnmpv2CVersion + // and doesn't set defaults + msg() *otg.PatternFlowSnmpv2CVersion + // setMsg unmarshals PatternFlowSnmpv2CVersion from protobuf object *otg.PatternFlowSnmpv2CVersion + // and doesn't set defaults + setMsg(*otg.PatternFlowSnmpv2CVersion) PatternFlowSnmpv2CVersion + // provides marshal interface + Marshal() marshalPatternFlowSnmpv2CVersion + // provides unmarshal interface + Unmarshal() unMarshalPatternFlowSnmpv2CVersion + // validate validates PatternFlowSnmpv2CVersion + validate() error + // A stringer function + String() string + // Clones the object + Clone() (PatternFlowSnmpv2CVersion, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Choice returns PatternFlowSnmpv2CVersionChoiceEnum, set in PatternFlowSnmpv2CVersion + Choice() PatternFlowSnmpv2CVersionChoiceEnum + // setChoice assigns PatternFlowSnmpv2CVersionChoiceEnum provided by user to PatternFlowSnmpv2CVersion + setChoice(value PatternFlowSnmpv2CVersionChoiceEnum) PatternFlowSnmpv2CVersion + // HasChoice checks if Choice has been set in PatternFlowSnmpv2CVersion + HasChoice() bool + // Value returns uint32, set in PatternFlowSnmpv2CVersion. + Value() uint32 + // SetValue assigns uint32 provided by user to PatternFlowSnmpv2CVersion + SetValue(value uint32) PatternFlowSnmpv2CVersion + // HasValue checks if Value has been set in PatternFlowSnmpv2CVersion + HasValue() bool + // Values returns []uint32, set in PatternFlowSnmpv2CVersion. + Values() []uint32 + // SetValues assigns []uint32 provided by user to PatternFlowSnmpv2CVersion + SetValues(value []uint32) PatternFlowSnmpv2CVersion + // Increment returns PatternFlowSnmpv2CVersionCounter, set in PatternFlowSnmpv2CVersion. + Increment() PatternFlowSnmpv2CVersionCounter + // SetIncrement assigns PatternFlowSnmpv2CVersionCounter provided by user to PatternFlowSnmpv2CVersion. + SetIncrement(value PatternFlowSnmpv2CVersionCounter) PatternFlowSnmpv2CVersion + // HasIncrement checks if Increment has been set in PatternFlowSnmpv2CVersion + HasIncrement() bool + // Decrement returns PatternFlowSnmpv2CVersionCounter, set in PatternFlowSnmpv2CVersion. + Decrement() PatternFlowSnmpv2CVersionCounter + // SetDecrement assigns PatternFlowSnmpv2CVersionCounter provided by user to PatternFlowSnmpv2CVersion. + SetDecrement(value PatternFlowSnmpv2CVersionCounter) PatternFlowSnmpv2CVersion + // HasDecrement checks if Decrement has been set in PatternFlowSnmpv2CVersion + HasDecrement() bool + setNil() +} + +type PatternFlowSnmpv2CVersionChoiceEnum string + +// Enum of Choice on PatternFlowSnmpv2CVersion +var PatternFlowSnmpv2CVersionChoice = struct { + VALUE PatternFlowSnmpv2CVersionChoiceEnum + VALUES PatternFlowSnmpv2CVersionChoiceEnum + INCREMENT PatternFlowSnmpv2CVersionChoiceEnum + DECREMENT PatternFlowSnmpv2CVersionChoiceEnum +}{ + VALUE: PatternFlowSnmpv2CVersionChoiceEnum("value"), + VALUES: PatternFlowSnmpv2CVersionChoiceEnum("values"), + INCREMENT: PatternFlowSnmpv2CVersionChoiceEnum("increment"), + DECREMENT: PatternFlowSnmpv2CVersionChoiceEnum("decrement"), +} + +func (obj *patternFlowSnmpv2CVersion) Choice() PatternFlowSnmpv2CVersionChoiceEnum { + return PatternFlowSnmpv2CVersionChoiceEnum(obj.obj.Choice.Enum().String()) +} + +// description is TBD +// Choice returns a string +func (obj *patternFlowSnmpv2CVersion) HasChoice() bool { + return obj.obj.Choice != nil +} + +func (obj *patternFlowSnmpv2CVersion) setChoice(value PatternFlowSnmpv2CVersionChoiceEnum) PatternFlowSnmpv2CVersion { + intValue, ok := otg.PatternFlowSnmpv2CVersion_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on PatternFlowSnmpv2CVersionChoiceEnum", string(value))) + return obj + } + enumValue := otg.PatternFlowSnmpv2CVersion_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.Decrement = nil + obj.decrementHolder = nil + obj.obj.Increment = nil + obj.incrementHolder = nil + obj.obj.Values = nil + obj.obj.Value = nil + + if value == PatternFlowSnmpv2CVersionChoice.VALUE { + defaultValue := uint32(1) + obj.obj.Value = &defaultValue + } + + if value == PatternFlowSnmpv2CVersionChoice.VALUES { + defaultValue := []uint32{1} + obj.obj.Values = defaultValue + } + + if value == PatternFlowSnmpv2CVersionChoice.INCREMENT { + obj.obj.Increment = NewPatternFlowSnmpv2CVersionCounter().msg() + } + + if value == PatternFlowSnmpv2CVersionChoice.DECREMENT { + obj.obj.Decrement = NewPatternFlowSnmpv2CVersionCounter().msg() + } + + return obj +} + +// description is TBD +// Value returns a uint32 +func (obj *patternFlowSnmpv2CVersion) Value() uint32 { + + if obj.obj.Value == nil { + obj.setChoice(PatternFlowSnmpv2CVersionChoice.VALUE) + } + + return *obj.obj.Value + +} + +// description is TBD +// Value returns a uint32 +func (obj *patternFlowSnmpv2CVersion) HasValue() bool { + return obj.obj.Value != nil +} + +// description is TBD +// SetValue sets the uint32 value in the PatternFlowSnmpv2CVersion object +func (obj *patternFlowSnmpv2CVersion) SetValue(value uint32) PatternFlowSnmpv2CVersion { + obj.setChoice(PatternFlowSnmpv2CVersionChoice.VALUE) + obj.obj.Value = &value + return obj +} + +// description is TBD +// Values returns a []uint32 +func (obj *patternFlowSnmpv2CVersion) Values() []uint32 { + if obj.obj.Values == nil { + obj.SetValues([]uint32{1}) + } + return obj.obj.Values +} + +// description is TBD +// SetValues sets the []uint32 value in the PatternFlowSnmpv2CVersion object +func (obj *patternFlowSnmpv2CVersion) SetValues(value []uint32) PatternFlowSnmpv2CVersion { + obj.setChoice(PatternFlowSnmpv2CVersionChoice.VALUES) + if obj.obj.Values == nil { + obj.obj.Values = make([]uint32, 0) + } + obj.obj.Values = value + + return obj +} + +// description is TBD +// Increment returns a PatternFlowSnmpv2CVersionCounter +func (obj *patternFlowSnmpv2CVersion) Increment() PatternFlowSnmpv2CVersionCounter { + if obj.obj.Increment == nil { + obj.setChoice(PatternFlowSnmpv2CVersionChoice.INCREMENT) + } + if obj.incrementHolder == nil { + obj.incrementHolder = &patternFlowSnmpv2CVersionCounter{obj: obj.obj.Increment} + } + return obj.incrementHolder +} + +// description is TBD +// Increment returns a PatternFlowSnmpv2CVersionCounter +func (obj *patternFlowSnmpv2CVersion) HasIncrement() bool { + return obj.obj.Increment != nil +} + +// description is TBD +// SetIncrement sets the PatternFlowSnmpv2CVersionCounter value in the PatternFlowSnmpv2CVersion object +func (obj *patternFlowSnmpv2CVersion) SetIncrement(value PatternFlowSnmpv2CVersionCounter) PatternFlowSnmpv2CVersion { + obj.setChoice(PatternFlowSnmpv2CVersionChoice.INCREMENT) + obj.incrementHolder = nil + obj.obj.Increment = value.msg() + + return obj +} + +// description is TBD +// Decrement returns a PatternFlowSnmpv2CVersionCounter +func (obj *patternFlowSnmpv2CVersion) Decrement() PatternFlowSnmpv2CVersionCounter { + if obj.obj.Decrement == nil { + obj.setChoice(PatternFlowSnmpv2CVersionChoice.DECREMENT) + } + if obj.decrementHolder == nil { + obj.decrementHolder = &patternFlowSnmpv2CVersionCounter{obj: obj.obj.Decrement} + } + return obj.decrementHolder +} + +// description is TBD +// Decrement returns a PatternFlowSnmpv2CVersionCounter +func (obj *patternFlowSnmpv2CVersion) HasDecrement() bool { + return obj.obj.Decrement != nil +} + +// description is TBD +// SetDecrement sets the PatternFlowSnmpv2CVersionCounter value in the PatternFlowSnmpv2CVersion object +func (obj *patternFlowSnmpv2CVersion) SetDecrement(value PatternFlowSnmpv2CVersionCounter) PatternFlowSnmpv2CVersion { + obj.setChoice(PatternFlowSnmpv2CVersionChoice.DECREMENT) + obj.decrementHolder = nil + obj.obj.Decrement = value.msg() + + return obj +} + +func (obj *patternFlowSnmpv2CVersion) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.Value != nil { + + if *obj.obj.Value > 255 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowSnmpv2CVersion.Value <= 255 but Got %d", *obj.obj.Value)) + } + + } + + if obj.obj.Values != nil { + + for _, item := range obj.obj.Values { + if item > 255 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("min(uint32) <= PatternFlowSnmpv2CVersion.Values <= 255 but Got %d", item)) + } + + } + + } + + if obj.obj.Increment != nil { + + obj.Increment().validateObj(vObj, set_default) + } + + if obj.obj.Decrement != nil { + + obj.Decrement().validateObj(vObj, set_default) + } + +} + +func (obj *patternFlowSnmpv2CVersion) setDefault() { + if obj.obj.Choice == nil { + obj.setChoice(PatternFlowSnmpv2CVersionChoice.VALUE) + + } + +} + +// ***** FlowSnmpv2CData ***** +type flowSnmpv2CData struct { + validation + obj *otg.FlowSnmpv2CData + marshaller marshalFlowSnmpv2CData + unMarshaller unMarshalFlowSnmpv2CData + getRequestHolder FlowSnmpv2CPDU + getNextRequestHolder FlowSnmpv2CPDU + responseHolder FlowSnmpv2CPDU + setRequestHolder FlowSnmpv2CPDU + getBulkRequestHolder FlowSnmpv2CBulkPDU + informRequestHolder FlowSnmpv2CPDU + snmpv2TrapHolder FlowSnmpv2CPDU + reportHolder FlowSnmpv2CPDU +} + +func NewFlowSnmpv2CData() FlowSnmpv2CData { + obj := flowSnmpv2CData{obj: &otg.FlowSnmpv2CData{}} + obj.setDefault() + return &obj +} + +func (obj *flowSnmpv2CData) msg() *otg.FlowSnmpv2CData { + return obj.obj +} + +func (obj *flowSnmpv2CData) setMsg(msg *otg.FlowSnmpv2CData) FlowSnmpv2CData { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +type marshalflowSnmpv2CData struct { + obj *flowSnmpv2CData +} + +type marshalFlowSnmpv2CData interface { + // ToProto marshals FlowSnmpv2CData to protobuf object *otg.FlowSnmpv2CData + ToProto() (*otg.FlowSnmpv2CData, error) + // ToPbText marshals FlowSnmpv2CData to protobuf text + ToPbText() (string, error) + // ToYaml marshals FlowSnmpv2CData to YAML text + ToYaml() (string, error) + // ToJson marshals FlowSnmpv2CData to JSON text + ToJson() (string, error) +} + +type unMarshalflowSnmpv2CData struct { + obj *flowSnmpv2CData +} + +type unMarshalFlowSnmpv2CData interface { + // FromProto unmarshals FlowSnmpv2CData from protobuf object *otg.FlowSnmpv2CData + FromProto(msg *otg.FlowSnmpv2CData) (FlowSnmpv2CData, error) + // FromPbText unmarshals FlowSnmpv2CData from protobuf text + FromPbText(value string) error + // FromYaml unmarshals FlowSnmpv2CData from YAML text + FromYaml(value string) error + // FromJson unmarshals FlowSnmpv2CData from JSON text + FromJson(value string) error +} + +func (obj *flowSnmpv2CData) Marshal() marshalFlowSnmpv2CData { + if obj.marshaller == nil { + obj.marshaller = &marshalflowSnmpv2CData{obj: obj} + } + return obj.marshaller +} + +func (obj *flowSnmpv2CData) Unmarshal() unMarshalFlowSnmpv2CData { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshalflowSnmpv2CData{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshalflowSnmpv2CData) ToProto() (*otg.FlowSnmpv2CData, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshalflowSnmpv2CData) FromProto(msg *otg.FlowSnmpv2CData) (FlowSnmpv2CData, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshalflowSnmpv2CData) ToPbText() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (m *unMarshalflowSnmpv2CData) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), m.obj.msg()) + if retObj != nil { + return retObj + } + m.obj.setNil() + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (m *marshalflowSnmpv2CData) ToYaml() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalflowSnmpv2CData) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + m.obj.setNil() + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (m *marshalflowSnmpv2CData) ToJson() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalflowSnmpv2CData) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + m.obj.setNil() + err := m.obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *flowSnmpv2CData) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *flowSnmpv2CData) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *flowSnmpv2CData) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *flowSnmpv2CData) Clone() (FlowSnmpv2CData, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewFlowSnmpv2CData() + data, err := proto.Marshal(obj.msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +func (obj *flowSnmpv2CData) setNil() { + obj.getRequestHolder = nil + obj.getNextRequestHolder = nil + obj.responseHolder = nil + obj.setRequestHolder = nil + obj.getBulkRequestHolder = nil + obj.informRequestHolder = nil + obj.snmpv2TrapHolder = nil + obj.reportHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// FlowSnmpv2CData is this contains the body of the SNMPv2C message. +// +// - Encoding of subsequent fields follow ASN.1 specification. +// Refer: http://www.itu.int/ITU-T/asn1 +type FlowSnmpv2CData interface { + Validation + // msg marshals FlowSnmpv2CData to protobuf object *otg.FlowSnmpv2CData + // and doesn't set defaults + msg() *otg.FlowSnmpv2CData + // setMsg unmarshals FlowSnmpv2CData from protobuf object *otg.FlowSnmpv2CData + // and doesn't set defaults + setMsg(*otg.FlowSnmpv2CData) FlowSnmpv2CData + // provides marshal interface + Marshal() marshalFlowSnmpv2CData + // provides unmarshal interface + Unmarshal() unMarshalFlowSnmpv2CData + // validate validates FlowSnmpv2CData + validate() error + // A stringer function + String() string + // Clones the object + Clone() (FlowSnmpv2CData, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Choice returns FlowSnmpv2CDataChoiceEnum, set in FlowSnmpv2CData + Choice() FlowSnmpv2CDataChoiceEnum + // setChoice assigns FlowSnmpv2CDataChoiceEnum provided by user to FlowSnmpv2CData + setChoice(value FlowSnmpv2CDataChoiceEnum) FlowSnmpv2CData + // GetRequest returns FlowSnmpv2CPDU, set in FlowSnmpv2CData. + GetRequest() FlowSnmpv2CPDU + // SetGetRequest assigns FlowSnmpv2CPDU provided by user to FlowSnmpv2CData. + SetGetRequest(value FlowSnmpv2CPDU) FlowSnmpv2CData + // HasGetRequest checks if GetRequest has been set in FlowSnmpv2CData + HasGetRequest() bool + // GetNextRequest returns FlowSnmpv2CPDU, set in FlowSnmpv2CData. + GetNextRequest() FlowSnmpv2CPDU + // SetGetNextRequest assigns FlowSnmpv2CPDU provided by user to FlowSnmpv2CData. + SetGetNextRequest(value FlowSnmpv2CPDU) FlowSnmpv2CData + // HasGetNextRequest checks if GetNextRequest has been set in FlowSnmpv2CData + HasGetNextRequest() bool + // Response returns FlowSnmpv2CPDU, set in FlowSnmpv2CData. + Response() FlowSnmpv2CPDU + // SetResponse assigns FlowSnmpv2CPDU provided by user to FlowSnmpv2CData. + SetResponse(value FlowSnmpv2CPDU) FlowSnmpv2CData + // HasResponse checks if Response has been set in FlowSnmpv2CData + HasResponse() bool + // SetRequest returns FlowSnmpv2CPDU, set in FlowSnmpv2CData. + SetRequest() FlowSnmpv2CPDU + // SetSetRequest assigns FlowSnmpv2CPDU provided by user to FlowSnmpv2CData. + SetSetRequest(value FlowSnmpv2CPDU) FlowSnmpv2CData + // HasSetRequest checks if SetRequest has been set in FlowSnmpv2CData + HasSetRequest() bool + // GetBulkRequest returns FlowSnmpv2CBulkPDU, set in FlowSnmpv2CData. + GetBulkRequest() FlowSnmpv2CBulkPDU + // SetGetBulkRequest assigns FlowSnmpv2CBulkPDU provided by user to FlowSnmpv2CData. + SetGetBulkRequest(value FlowSnmpv2CBulkPDU) FlowSnmpv2CData + // HasGetBulkRequest checks if GetBulkRequest has been set in FlowSnmpv2CData + HasGetBulkRequest() bool + // InformRequest returns FlowSnmpv2CPDU, set in FlowSnmpv2CData. + InformRequest() FlowSnmpv2CPDU + // SetInformRequest assigns FlowSnmpv2CPDU provided by user to FlowSnmpv2CData. + SetInformRequest(value FlowSnmpv2CPDU) FlowSnmpv2CData + // HasInformRequest checks if InformRequest has been set in FlowSnmpv2CData + HasInformRequest() bool + // Snmpv2Trap returns FlowSnmpv2CPDU, set in FlowSnmpv2CData. + Snmpv2Trap() FlowSnmpv2CPDU + // SetSnmpv2Trap assigns FlowSnmpv2CPDU provided by user to FlowSnmpv2CData. + SetSnmpv2Trap(value FlowSnmpv2CPDU) FlowSnmpv2CData + // HasSnmpv2Trap checks if Snmpv2Trap has been set in FlowSnmpv2CData + HasSnmpv2Trap() bool + // Report returns FlowSnmpv2CPDU, set in FlowSnmpv2CData. + Report() FlowSnmpv2CPDU + // SetReport assigns FlowSnmpv2CPDU provided by user to FlowSnmpv2CData. + SetReport(value FlowSnmpv2CPDU) FlowSnmpv2CData + // HasReport checks if Report has been set in FlowSnmpv2CData + HasReport() bool + setNil() +} + +type FlowSnmpv2CDataChoiceEnum string + +// Enum of Choice on FlowSnmpv2CData +var FlowSnmpv2CDataChoice = struct { + GET_REQUEST FlowSnmpv2CDataChoiceEnum + GET_NEXT_REQUEST FlowSnmpv2CDataChoiceEnum + RESPONSE FlowSnmpv2CDataChoiceEnum + SET_REQUEST FlowSnmpv2CDataChoiceEnum + GET_BULK_REQUEST FlowSnmpv2CDataChoiceEnum + INFORM_REQUEST FlowSnmpv2CDataChoiceEnum + SNMPV2_TRAP FlowSnmpv2CDataChoiceEnum + REPORT FlowSnmpv2CDataChoiceEnum +}{ + GET_REQUEST: FlowSnmpv2CDataChoiceEnum("get_request"), + GET_NEXT_REQUEST: FlowSnmpv2CDataChoiceEnum("get_next_request"), + RESPONSE: FlowSnmpv2CDataChoiceEnum("response"), + SET_REQUEST: FlowSnmpv2CDataChoiceEnum("set_request"), + GET_BULK_REQUEST: FlowSnmpv2CDataChoiceEnum("get_bulk_request"), + INFORM_REQUEST: FlowSnmpv2CDataChoiceEnum("inform_request"), + SNMPV2_TRAP: FlowSnmpv2CDataChoiceEnum("snmpv2_trap"), + REPORT: FlowSnmpv2CDataChoiceEnum("report"), +} + +func (obj *flowSnmpv2CData) Choice() FlowSnmpv2CDataChoiceEnum { + return FlowSnmpv2CDataChoiceEnum(obj.obj.Choice.Enum().String()) +} + +func (obj *flowSnmpv2CData) setChoice(value FlowSnmpv2CDataChoiceEnum) FlowSnmpv2CData { + intValue, ok := otg.FlowSnmpv2CData_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on FlowSnmpv2CDataChoiceEnum", string(value))) + return obj + } + enumValue := otg.FlowSnmpv2CData_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.Report = nil + obj.reportHolder = nil + obj.obj.Snmpv2Trap = nil + obj.snmpv2TrapHolder = nil + obj.obj.InformRequest = nil + obj.informRequestHolder = nil + obj.obj.GetBulkRequest = nil + obj.getBulkRequestHolder = nil + obj.obj.SetRequest = nil + obj.setRequestHolder = nil + obj.obj.Response = nil + obj.responseHolder = nil + obj.obj.GetNextRequest = nil + obj.getNextRequestHolder = nil + obj.obj.GetRequest = nil + obj.getRequestHolder = nil + + if value == FlowSnmpv2CDataChoice.GET_REQUEST { + obj.obj.GetRequest = NewFlowSnmpv2CPDU().msg() + } + + if value == FlowSnmpv2CDataChoice.GET_NEXT_REQUEST { + obj.obj.GetNextRequest = NewFlowSnmpv2CPDU().msg() + } + + if value == FlowSnmpv2CDataChoice.RESPONSE { + obj.obj.Response = NewFlowSnmpv2CPDU().msg() + } + + if value == FlowSnmpv2CDataChoice.SET_REQUEST { + obj.obj.SetRequest = NewFlowSnmpv2CPDU().msg() + } + + if value == FlowSnmpv2CDataChoice.GET_BULK_REQUEST { + obj.obj.GetBulkRequest = NewFlowSnmpv2CBulkPDU().msg() + } + + if value == FlowSnmpv2CDataChoice.INFORM_REQUEST { + obj.obj.InformRequest = NewFlowSnmpv2CPDU().msg() + } + + if value == FlowSnmpv2CDataChoice.SNMPV2_TRAP { + obj.obj.Snmpv2Trap = NewFlowSnmpv2CPDU().msg() + } + + if value == FlowSnmpv2CDataChoice.REPORT { + obj.obj.Report = NewFlowSnmpv2CPDU().msg() + } + + return obj +} + +// description is TBD +// GetRequest returns a FlowSnmpv2CPDU +func (obj *flowSnmpv2CData) GetRequest() FlowSnmpv2CPDU { + if obj.obj.GetRequest == nil { + obj.setChoice(FlowSnmpv2CDataChoice.GET_REQUEST) + } + if obj.getRequestHolder == nil { + obj.getRequestHolder = &flowSnmpv2CPDU{obj: obj.obj.GetRequest} + } + return obj.getRequestHolder +} + +// description is TBD +// GetRequest returns a FlowSnmpv2CPDU +func (obj *flowSnmpv2CData) HasGetRequest() bool { + return obj.obj.GetRequest != nil +} + +// description is TBD +// SetGetRequest sets the FlowSnmpv2CPDU value in the FlowSnmpv2CData object +func (obj *flowSnmpv2CData) SetGetRequest(value FlowSnmpv2CPDU) FlowSnmpv2CData { + obj.setChoice(FlowSnmpv2CDataChoice.GET_REQUEST) + obj.getRequestHolder = nil + obj.obj.GetRequest = value.msg() + + return obj +} + +// description is TBD +// GetNextRequest returns a FlowSnmpv2CPDU +func (obj *flowSnmpv2CData) GetNextRequest() FlowSnmpv2CPDU { + if obj.obj.GetNextRequest == nil { + obj.setChoice(FlowSnmpv2CDataChoice.GET_NEXT_REQUEST) + } + if obj.getNextRequestHolder == nil { + obj.getNextRequestHolder = &flowSnmpv2CPDU{obj: obj.obj.GetNextRequest} + } + return obj.getNextRequestHolder +} + +// description is TBD +// GetNextRequest returns a FlowSnmpv2CPDU +func (obj *flowSnmpv2CData) HasGetNextRequest() bool { + return obj.obj.GetNextRequest != nil +} + +// description is TBD +// SetGetNextRequest sets the FlowSnmpv2CPDU value in the FlowSnmpv2CData object +func (obj *flowSnmpv2CData) SetGetNextRequest(value FlowSnmpv2CPDU) FlowSnmpv2CData { + obj.setChoice(FlowSnmpv2CDataChoice.GET_NEXT_REQUEST) + obj.getNextRequestHolder = nil + obj.obj.GetNextRequest = value.msg() + + return obj +} + +// description is TBD +// Response returns a FlowSnmpv2CPDU +func (obj *flowSnmpv2CData) Response() FlowSnmpv2CPDU { + if obj.obj.Response == nil { + obj.setChoice(FlowSnmpv2CDataChoice.RESPONSE) + } + if obj.responseHolder == nil { + obj.responseHolder = &flowSnmpv2CPDU{obj: obj.obj.Response} + } + return obj.responseHolder +} + +// description is TBD +// Response returns a FlowSnmpv2CPDU +func (obj *flowSnmpv2CData) HasResponse() bool { + return obj.obj.Response != nil +} + +// description is TBD +// SetResponse sets the FlowSnmpv2CPDU value in the FlowSnmpv2CData object +func (obj *flowSnmpv2CData) SetResponse(value FlowSnmpv2CPDU) FlowSnmpv2CData { + obj.setChoice(FlowSnmpv2CDataChoice.RESPONSE) + obj.responseHolder = nil + obj.obj.Response = value.msg() + + return obj +} + +// description is TBD +// SetRequest returns a FlowSnmpv2CPDU +func (obj *flowSnmpv2CData) SetRequest() FlowSnmpv2CPDU { + if obj.obj.SetRequest == nil { + obj.setChoice(FlowSnmpv2CDataChoice.SET_REQUEST) + } + if obj.setRequestHolder == nil { + obj.setRequestHolder = &flowSnmpv2CPDU{obj: obj.obj.SetRequest} + } + return obj.setRequestHolder +} + +// description is TBD +// SetRequest returns a FlowSnmpv2CPDU +func (obj *flowSnmpv2CData) HasSetRequest() bool { + return obj.obj.SetRequest != nil +} + +// description is TBD +// SetSetRequest sets the FlowSnmpv2CPDU value in the FlowSnmpv2CData object +func (obj *flowSnmpv2CData) SetSetRequest(value FlowSnmpv2CPDU) FlowSnmpv2CData { + obj.setChoice(FlowSnmpv2CDataChoice.SET_REQUEST) + obj.setRequestHolder = nil + obj.obj.SetRequest = value.msg() + + return obj +} + +// description is TBD +// GetBulkRequest returns a FlowSnmpv2CBulkPDU +func (obj *flowSnmpv2CData) GetBulkRequest() FlowSnmpv2CBulkPDU { + if obj.obj.GetBulkRequest == nil { + obj.setChoice(FlowSnmpv2CDataChoice.GET_BULK_REQUEST) + } + if obj.getBulkRequestHolder == nil { + obj.getBulkRequestHolder = &flowSnmpv2CBulkPDU{obj: obj.obj.GetBulkRequest} + } + return obj.getBulkRequestHolder +} + +// description is TBD +// GetBulkRequest returns a FlowSnmpv2CBulkPDU +func (obj *flowSnmpv2CData) HasGetBulkRequest() bool { + return obj.obj.GetBulkRequest != nil +} + +// description is TBD +// SetGetBulkRequest sets the FlowSnmpv2CBulkPDU value in the FlowSnmpv2CData object +func (obj *flowSnmpv2CData) SetGetBulkRequest(value FlowSnmpv2CBulkPDU) FlowSnmpv2CData { + obj.setChoice(FlowSnmpv2CDataChoice.GET_BULK_REQUEST) + obj.getBulkRequestHolder = nil + obj.obj.GetBulkRequest = value.msg() + + return obj +} + +// description is TBD +// InformRequest returns a FlowSnmpv2CPDU +func (obj *flowSnmpv2CData) InformRequest() FlowSnmpv2CPDU { + if obj.obj.InformRequest == nil { + obj.setChoice(FlowSnmpv2CDataChoice.INFORM_REQUEST) + } + if obj.informRequestHolder == nil { + obj.informRequestHolder = &flowSnmpv2CPDU{obj: obj.obj.InformRequest} + } + return obj.informRequestHolder +} + +// description is TBD +// InformRequest returns a FlowSnmpv2CPDU +func (obj *flowSnmpv2CData) HasInformRequest() bool { + return obj.obj.InformRequest != nil +} + +// description is TBD +// SetInformRequest sets the FlowSnmpv2CPDU value in the FlowSnmpv2CData object +func (obj *flowSnmpv2CData) SetInformRequest(value FlowSnmpv2CPDU) FlowSnmpv2CData { + obj.setChoice(FlowSnmpv2CDataChoice.INFORM_REQUEST) + obj.informRequestHolder = nil + obj.obj.InformRequest = value.msg() + + return obj +} + +// description is TBD +// Snmpv2Trap returns a FlowSnmpv2CPDU +func (obj *flowSnmpv2CData) Snmpv2Trap() FlowSnmpv2CPDU { + if obj.obj.Snmpv2Trap == nil { + obj.setChoice(FlowSnmpv2CDataChoice.SNMPV2_TRAP) + } + if obj.snmpv2TrapHolder == nil { + obj.snmpv2TrapHolder = &flowSnmpv2CPDU{obj: obj.obj.Snmpv2Trap} + } + return obj.snmpv2TrapHolder +} + +// description is TBD +// Snmpv2Trap returns a FlowSnmpv2CPDU +func (obj *flowSnmpv2CData) HasSnmpv2Trap() bool { + return obj.obj.Snmpv2Trap != nil +} + +// description is TBD +// SetSnmpv2Trap sets the FlowSnmpv2CPDU value in the FlowSnmpv2CData object +func (obj *flowSnmpv2CData) SetSnmpv2Trap(value FlowSnmpv2CPDU) FlowSnmpv2CData { + obj.setChoice(FlowSnmpv2CDataChoice.SNMPV2_TRAP) + obj.snmpv2TrapHolder = nil + obj.obj.Snmpv2Trap = value.msg() + + return obj +} + +// description is TBD +// Report returns a FlowSnmpv2CPDU +func (obj *flowSnmpv2CData) Report() FlowSnmpv2CPDU { + if obj.obj.Report == nil { + obj.setChoice(FlowSnmpv2CDataChoice.REPORT) + } + if obj.reportHolder == nil { + obj.reportHolder = &flowSnmpv2CPDU{obj: obj.obj.Report} + } + return obj.reportHolder +} + +// description is TBD +// Report returns a FlowSnmpv2CPDU +func (obj *flowSnmpv2CData) HasReport() bool { + return obj.obj.Report != nil +} + +// description is TBD +// SetReport sets the FlowSnmpv2CPDU value in the FlowSnmpv2CData object +func (obj *flowSnmpv2CData) SetReport(value FlowSnmpv2CPDU) FlowSnmpv2CData { + obj.setChoice(FlowSnmpv2CDataChoice.REPORT) + obj.reportHolder = nil + obj.obj.Report = value.msg() + + return obj +} + +func (obj *flowSnmpv2CData) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + // Choice is required + if obj.obj.Choice == nil { + vObj.validationErrors = append(vObj.validationErrors, "Choice is required field on interface FlowSnmpv2CData") + } + + if obj.obj.GetRequest != nil { + + obj.GetRequest().validateObj(vObj, set_default) + } + + if obj.obj.GetNextRequest != nil { + + obj.GetNextRequest().validateObj(vObj, set_default) + } + + if obj.obj.Response != nil { + + obj.Response().validateObj(vObj, set_default) + } + + if obj.obj.SetRequest != nil { + + obj.SetRequest().validateObj(vObj, set_default) + } + + if obj.obj.GetBulkRequest != nil { + + obj.GetBulkRequest().validateObj(vObj, set_default) + } + + if obj.obj.InformRequest != nil { + + obj.InformRequest().validateObj(vObj, set_default) + } + + if obj.obj.Snmpv2Trap != nil { + + obj.Snmpv2Trap().validateObj(vObj, set_default) + } + + if obj.obj.Report != nil { + + obj.Report().validateObj(vObj, set_default) + } + +} + +func (obj *flowSnmpv2CData) setDefault() { + +} + // ***** FlowSizeWeightPairsCustom ***** type flowSizeWeightPairsCustom struct { validation @@ -293891,6 +295546,1437 @@ func (obj *patternFlowMplsTimeToLiveMetricTag) setDefault() { } +// ***** PatternFlowSnmpv2CVersionCounter ***** +type patternFlowSnmpv2CVersionCounter struct { + validation + obj *otg.PatternFlowSnmpv2CVersionCounter + marshaller marshalPatternFlowSnmpv2CVersionCounter + unMarshaller unMarshalPatternFlowSnmpv2CVersionCounter +} + +func NewPatternFlowSnmpv2CVersionCounter() PatternFlowSnmpv2CVersionCounter { + obj := patternFlowSnmpv2CVersionCounter{obj: &otg.PatternFlowSnmpv2CVersionCounter{}} + obj.setDefault() + return &obj +} + +func (obj *patternFlowSnmpv2CVersionCounter) msg() *otg.PatternFlowSnmpv2CVersionCounter { + return obj.obj +} + +func (obj *patternFlowSnmpv2CVersionCounter) setMsg(msg *otg.PatternFlowSnmpv2CVersionCounter) PatternFlowSnmpv2CVersionCounter { + + proto.Merge(obj.obj, msg) + return obj +} + +type marshalpatternFlowSnmpv2CVersionCounter struct { + obj *patternFlowSnmpv2CVersionCounter +} + +type marshalPatternFlowSnmpv2CVersionCounter interface { + // ToProto marshals PatternFlowSnmpv2CVersionCounter to protobuf object *otg.PatternFlowSnmpv2CVersionCounter + ToProto() (*otg.PatternFlowSnmpv2CVersionCounter, error) + // ToPbText marshals PatternFlowSnmpv2CVersionCounter to protobuf text + ToPbText() (string, error) + // ToYaml marshals PatternFlowSnmpv2CVersionCounter to YAML text + ToYaml() (string, error) + // ToJson marshals PatternFlowSnmpv2CVersionCounter to JSON text + ToJson() (string, error) +} + +type unMarshalpatternFlowSnmpv2CVersionCounter struct { + obj *patternFlowSnmpv2CVersionCounter +} + +type unMarshalPatternFlowSnmpv2CVersionCounter interface { + // FromProto unmarshals PatternFlowSnmpv2CVersionCounter from protobuf object *otg.PatternFlowSnmpv2CVersionCounter + FromProto(msg *otg.PatternFlowSnmpv2CVersionCounter) (PatternFlowSnmpv2CVersionCounter, error) + // FromPbText unmarshals PatternFlowSnmpv2CVersionCounter from protobuf text + FromPbText(value string) error + // FromYaml unmarshals PatternFlowSnmpv2CVersionCounter from YAML text + FromYaml(value string) error + // FromJson unmarshals PatternFlowSnmpv2CVersionCounter from JSON text + FromJson(value string) error +} + +func (obj *patternFlowSnmpv2CVersionCounter) Marshal() marshalPatternFlowSnmpv2CVersionCounter { + if obj.marshaller == nil { + obj.marshaller = &marshalpatternFlowSnmpv2CVersionCounter{obj: obj} + } + return obj.marshaller +} + +func (obj *patternFlowSnmpv2CVersionCounter) Unmarshal() unMarshalPatternFlowSnmpv2CVersionCounter { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshalpatternFlowSnmpv2CVersionCounter{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshalpatternFlowSnmpv2CVersionCounter) ToProto() (*otg.PatternFlowSnmpv2CVersionCounter, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshalpatternFlowSnmpv2CVersionCounter) FromProto(msg *otg.PatternFlowSnmpv2CVersionCounter) (PatternFlowSnmpv2CVersionCounter, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshalpatternFlowSnmpv2CVersionCounter) ToPbText() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (m *unMarshalpatternFlowSnmpv2CVersionCounter) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), m.obj.msg()) + if retObj != nil { + return retObj + } + + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (m *marshalpatternFlowSnmpv2CVersionCounter) ToYaml() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalpatternFlowSnmpv2CVersionCounter) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (m *marshalpatternFlowSnmpv2CVersionCounter) ToJson() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalpatternFlowSnmpv2CVersionCounter) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := m.obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *patternFlowSnmpv2CVersionCounter) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *patternFlowSnmpv2CVersionCounter) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *patternFlowSnmpv2CVersionCounter) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *patternFlowSnmpv2CVersionCounter) Clone() (PatternFlowSnmpv2CVersionCounter, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewPatternFlowSnmpv2CVersionCounter() + data, err := proto.Marshal(obj.msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// PatternFlowSnmpv2CVersionCounter is integer counter pattern +type PatternFlowSnmpv2CVersionCounter interface { + Validation + // msg marshals PatternFlowSnmpv2CVersionCounter to protobuf object *otg.PatternFlowSnmpv2CVersionCounter + // and doesn't set defaults + msg() *otg.PatternFlowSnmpv2CVersionCounter + // setMsg unmarshals PatternFlowSnmpv2CVersionCounter from protobuf object *otg.PatternFlowSnmpv2CVersionCounter + // and doesn't set defaults + setMsg(*otg.PatternFlowSnmpv2CVersionCounter) PatternFlowSnmpv2CVersionCounter + // provides marshal interface + Marshal() marshalPatternFlowSnmpv2CVersionCounter + // provides unmarshal interface + Unmarshal() unMarshalPatternFlowSnmpv2CVersionCounter + // validate validates PatternFlowSnmpv2CVersionCounter + validate() error + // A stringer function + String() string + // Clones the object + Clone() (PatternFlowSnmpv2CVersionCounter, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Start returns uint32, set in PatternFlowSnmpv2CVersionCounter. + Start() uint32 + // SetStart assigns uint32 provided by user to PatternFlowSnmpv2CVersionCounter + SetStart(value uint32) PatternFlowSnmpv2CVersionCounter + // HasStart checks if Start has been set in PatternFlowSnmpv2CVersionCounter + HasStart() bool + // Step returns uint32, set in PatternFlowSnmpv2CVersionCounter. + Step() uint32 + // SetStep assigns uint32 provided by user to PatternFlowSnmpv2CVersionCounter + SetStep(value uint32) PatternFlowSnmpv2CVersionCounter + // HasStep checks if Step has been set in PatternFlowSnmpv2CVersionCounter + HasStep() bool + // Count returns uint32, set in PatternFlowSnmpv2CVersionCounter. + Count() uint32 + // SetCount assigns uint32 provided by user to PatternFlowSnmpv2CVersionCounter + SetCount(value uint32) PatternFlowSnmpv2CVersionCounter + // HasCount checks if Count has been set in PatternFlowSnmpv2CVersionCounter + HasCount() bool +} + +// description is TBD +// Start returns a uint32 +func (obj *patternFlowSnmpv2CVersionCounter) Start() uint32 { + + return *obj.obj.Start + +} + +// description is TBD +// Start returns a uint32 +func (obj *patternFlowSnmpv2CVersionCounter) HasStart() bool { + return obj.obj.Start != nil +} + +// description is TBD +// SetStart sets the uint32 value in the PatternFlowSnmpv2CVersionCounter object +func (obj *patternFlowSnmpv2CVersionCounter) SetStart(value uint32) PatternFlowSnmpv2CVersionCounter { + + obj.obj.Start = &value + return obj +} + +// description is TBD +// Step returns a uint32 +func (obj *patternFlowSnmpv2CVersionCounter) Step() uint32 { + + return *obj.obj.Step + +} + +// description is TBD +// Step returns a uint32 +func (obj *patternFlowSnmpv2CVersionCounter) HasStep() bool { + return obj.obj.Step != nil +} + +// description is TBD +// SetStep sets the uint32 value in the PatternFlowSnmpv2CVersionCounter object +func (obj *patternFlowSnmpv2CVersionCounter) SetStep(value uint32) PatternFlowSnmpv2CVersionCounter { + + obj.obj.Step = &value + return obj +} + +// description is TBD +// Count returns a uint32 +func (obj *patternFlowSnmpv2CVersionCounter) Count() uint32 { + + return *obj.obj.Count + +} + +// description is TBD +// Count returns a uint32 +func (obj *patternFlowSnmpv2CVersionCounter) HasCount() bool { + return obj.obj.Count != nil +} + +// description is TBD +// SetCount sets the uint32 value in the PatternFlowSnmpv2CVersionCounter object +func (obj *patternFlowSnmpv2CVersionCounter) SetCount(value uint32) PatternFlowSnmpv2CVersionCounter { + + obj.obj.Count = &value + return obj +} + +func (obj *patternFlowSnmpv2CVersionCounter) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.Start != nil { + + if *obj.obj.Start > 255 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowSnmpv2CVersionCounter.Start <= 255 but Got %d", *obj.obj.Start)) + } + + } + + if obj.obj.Step != nil { + + if *obj.obj.Step > 255 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowSnmpv2CVersionCounter.Step <= 255 but Got %d", *obj.obj.Step)) + } + + } + + if obj.obj.Count != nil { + + if *obj.obj.Count > 255 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowSnmpv2CVersionCounter.Count <= 255 but Got %d", *obj.obj.Count)) + } + + } + +} + +func (obj *patternFlowSnmpv2CVersionCounter) setDefault() { + if obj.obj.Start == nil { + obj.SetStart(1) + } + if obj.obj.Step == nil { + obj.SetStep(1) + } + if obj.obj.Count == nil { + obj.SetCount(1) + } + +} + +// ***** FlowSnmpv2CPDU ***** +type flowSnmpv2CPDU struct { + validation + obj *otg.FlowSnmpv2CPDU + marshaller marshalFlowSnmpv2CPDU + unMarshaller unMarshalFlowSnmpv2CPDU + requestIdHolder PatternFlowSnmpv2CPDURequestId + errorIndexHolder PatternFlowSnmpv2CPDUErrorIndex + variableBindingsHolder FlowSnmpv2CPDUFlowSnmpv2CVariableBindingIter +} + +func NewFlowSnmpv2CPDU() FlowSnmpv2CPDU { + obj := flowSnmpv2CPDU{obj: &otg.FlowSnmpv2CPDU{}} + obj.setDefault() + return &obj +} + +func (obj *flowSnmpv2CPDU) msg() *otg.FlowSnmpv2CPDU { + return obj.obj +} + +func (obj *flowSnmpv2CPDU) setMsg(msg *otg.FlowSnmpv2CPDU) FlowSnmpv2CPDU { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +type marshalflowSnmpv2CPDU struct { + obj *flowSnmpv2CPDU +} + +type marshalFlowSnmpv2CPDU interface { + // ToProto marshals FlowSnmpv2CPDU to protobuf object *otg.FlowSnmpv2CPDU + ToProto() (*otg.FlowSnmpv2CPDU, error) + // ToPbText marshals FlowSnmpv2CPDU to protobuf text + ToPbText() (string, error) + // ToYaml marshals FlowSnmpv2CPDU to YAML text + ToYaml() (string, error) + // ToJson marshals FlowSnmpv2CPDU to JSON text + ToJson() (string, error) +} + +type unMarshalflowSnmpv2CPDU struct { + obj *flowSnmpv2CPDU +} + +type unMarshalFlowSnmpv2CPDU interface { + // FromProto unmarshals FlowSnmpv2CPDU from protobuf object *otg.FlowSnmpv2CPDU + FromProto(msg *otg.FlowSnmpv2CPDU) (FlowSnmpv2CPDU, error) + // FromPbText unmarshals FlowSnmpv2CPDU from protobuf text + FromPbText(value string) error + // FromYaml unmarshals FlowSnmpv2CPDU from YAML text + FromYaml(value string) error + // FromJson unmarshals FlowSnmpv2CPDU from JSON text + FromJson(value string) error +} + +func (obj *flowSnmpv2CPDU) Marshal() marshalFlowSnmpv2CPDU { + if obj.marshaller == nil { + obj.marshaller = &marshalflowSnmpv2CPDU{obj: obj} + } + return obj.marshaller +} + +func (obj *flowSnmpv2CPDU) Unmarshal() unMarshalFlowSnmpv2CPDU { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshalflowSnmpv2CPDU{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshalflowSnmpv2CPDU) ToProto() (*otg.FlowSnmpv2CPDU, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshalflowSnmpv2CPDU) FromProto(msg *otg.FlowSnmpv2CPDU) (FlowSnmpv2CPDU, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshalflowSnmpv2CPDU) ToPbText() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (m *unMarshalflowSnmpv2CPDU) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), m.obj.msg()) + if retObj != nil { + return retObj + } + m.obj.setNil() + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (m *marshalflowSnmpv2CPDU) ToYaml() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalflowSnmpv2CPDU) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + m.obj.setNil() + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (m *marshalflowSnmpv2CPDU) ToJson() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalflowSnmpv2CPDU) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + m.obj.setNil() + err := m.obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *flowSnmpv2CPDU) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *flowSnmpv2CPDU) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *flowSnmpv2CPDU) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *flowSnmpv2CPDU) Clone() (FlowSnmpv2CPDU, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewFlowSnmpv2CPDU() + data, err := proto.Marshal(obj.msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +func (obj *flowSnmpv2CPDU) setNil() { + obj.requestIdHolder = nil + obj.errorIndexHolder = nil + obj.variableBindingsHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// FlowSnmpv2CPDU is this contains the body of the SNMPv2C PDU. +type FlowSnmpv2CPDU interface { + Validation + // msg marshals FlowSnmpv2CPDU to protobuf object *otg.FlowSnmpv2CPDU + // and doesn't set defaults + msg() *otg.FlowSnmpv2CPDU + // setMsg unmarshals FlowSnmpv2CPDU from protobuf object *otg.FlowSnmpv2CPDU + // and doesn't set defaults + setMsg(*otg.FlowSnmpv2CPDU) FlowSnmpv2CPDU + // provides marshal interface + Marshal() marshalFlowSnmpv2CPDU + // provides unmarshal interface + Unmarshal() unMarshalFlowSnmpv2CPDU + // validate validates FlowSnmpv2CPDU + validate() error + // A stringer function + String() string + // Clones the object + Clone() (FlowSnmpv2CPDU, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // RequestId returns PatternFlowSnmpv2CPDURequestId, set in FlowSnmpv2CPDU. + RequestId() PatternFlowSnmpv2CPDURequestId + // SetRequestId assigns PatternFlowSnmpv2CPDURequestId provided by user to FlowSnmpv2CPDU. + SetRequestId(value PatternFlowSnmpv2CPDURequestId) FlowSnmpv2CPDU + // HasRequestId checks if RequestId has been set in FlowSnmpv2CPDU + HasRequestId() bool + // ErrorStatus returns FlowSnmpv2CPDUErrorStatusEnum, set in FlowSnmpv2CPDU + ErrorStatus() FlowSnmpv2CPDUErrorStatusEnum + // SetErrorStatus assigns FlowSnmpv2CPDUErrorStatusEnum provided by user to FlowSnmpv2CPDU + SetErrorStatus(value FlowSnmpv2CPDUErrorStatusEnum) FlowSnmpv2CPDU + // HasErrorStatus checks if ErrorStatus has been set in FlowSnmpv2CPDU + HasErrorStatus() bool + // ErrorIndex returns PatternFlowSnmpv2CPDUErrorIndex, set in FlowSnmpv2CPDU. + ErrorIndex() PatternFlowSnmpv2CPDUErrorIndex + // SetErrorIndex assigns PatternFlowSnmpv2CPDUErrorIndex provided by user to FlowSnmpv2CPDU. + SetErrorIndex(value PatternFlowSnmpv2CPDUErrorIndex) FlowSnmpv2CPDU + // HasErrorIndex checks if ErrorIndex has been set in FlowSnmpv2CPDU + HasErrorIndex() bool + // VariableBindings returns FlowSnmpv2CPDUFlowSnmpv2CVariableBindingIterIter, set in FlowSnmpv2CPDU + VariableBindings() FlowSnmpv2CPDUFlowSnmpv2CVariableBindingIter + setNil() +} + +// description is TBD +// RequestId returns a PatternFlowSnmpv2CPDURequestId +func (obj *flowSnmpv2CPDU) RequestId() PatternFlowSnmpv2CPDURequestId { + if obj.obj.RequestId == nil { + obj.obj.RequestId = NewPatternFlowSnmpv2CPDURequestId().msg() + } + if obj.requestIdHolder == nil { + obj.requestIdHolder = &patternFlowSnmpv2CPDURequestId{obj: obj.obj.RequestId} + } + return obj.requestIdHolder +} + +// description is TBD +// RequestId returns a PatternFlowSnmpv2CPDURequestId +func (obj *flowSnmpv2CPDU) HasRequestId() bool { + return obj.obj.RequestId != nil +} + +// description is TBD +// SetRequestId sets the PatternFlowSnmpv2CPDURequestId value in the FlowSnmpv2CPDU object +func (obj *flowSnmpv2CPDU) SetRequestId(value PatternFlowSnmpv2CPDURequestId) FlowSnmpv2CPDU { + + obj.requestIdHolder = nil + obj.obj.RequestId = value.msg() + + return obj +} + +type FlowSnmpv2CPDUErrorStatusEnum string + +// Enum of ErrorStatus on FlowSnmpv2CPDU +var FlowSnmpv2CPDUErrorStatus = struct { + NO_ERROR FlowSnmpv2CPDUErrorStatusEnum + TOO_BIG FlowSnmpv2CPDUErrorStatusEnum + NO_SUCH_NAME FlowSnmpv2CPDUErrorStatusEnum + BAD_VALUE FlowSnmpv2CPDUErrorStatusEnum + READ_ONLY FlowSnmpv2CPDUErrorStatusEnum + GEN_ERR FlowSnmpv2CPDUErrorStatusEnum + NO_ACCESS FlowSnmpv2CPDUErrorStatusEnum + WRONG_TYPE FlowSnmpv2CPDUErrorStatusEnum + WRONG_LENGTH FlowSnmpv2CPDUErrorStatusEnum + WRONG_ENCODING FlowSnmpv2CPDUErrorStatusEnum + WRONG_VALUE FlowSnmpv2CPDUErrorStatusEnum + NO_CREATION FlowSnmpv2CPDUErrorStatusEnum + INCONSISTENT_VALUE FlowSnmpv2CPDUErrorStatusEnum + RESOURCE_UNAVAILABLE FlowSnmpv2CPDUErrorStatusEnum + COMMIT_FAILED FlowSnmpv2CPDUErrorStatusEnum + UNDO_FAILED FlowSnmpv2CPDUErrorStatusEnum + AUTHORIZATION_ERROR FlowSnmpv2CPDUErrorStatusEnum + NOT_WRITABLE FlowSnmpv2CPDUErrorStatusEnum + INCONSISTENT_NAME FlowSnmpv2CPDUErrorStatusEnum +}{ + NO_ERROR: FlowSnmpv2CPDUErrorStatusEnum("no_error"), + TOO_BIG: FlowSnmpv2CPDUErrorStatusEnum("too_big"), + NO_SUCH_NAME: FlowSnmpv2CPDUErrorStatusEnum("no_such_name"), + BAD_VALUE: FlowSnmpv2CPDUErrorStatusEnum("bad_value"), + READ_ONLY: FlowSnmpv2CPDUErrorStatusEnum("read_only"), + GEN_ERR: FlowSnmpv2CPDUErrorStatusEnum("gen_err"), + NO_ACCESS: FlowSnmpv2CPDUErrorStatusEnum("no_access"), + WRONG_TYPE: FlowSnmpv2CPDUErrorStatusEnum("wrong_type"), + WRONG_LENGTH: FlowSnmpv2CPDUErrorStatusEnum("wrong_length"), + WRONG_ENCODING: FlowSnmpv2CPDUErrorStatusEnum("wrong_encoding"), + WRONG_VALUE: FlowSnmpv2CPDUErrorStatusEnum("wrong_value"), + NO_CREATION: FlowSnmpv2CPDUErrorStatusEnum("no_creation"), + INCONSISTENT_VALUE: FlowSnmpv2CPDUErrorStatusEnum("inconsistent_value"), + RESOURCE_UNAVAILABLE: FlowSnmpv2CPDUErrorStatusEnum("resource_unavailable"), + COMMIT_FAILED: FlowSnmpv2CPDUErrorStatusEnum("commit_failed"), + UNDO_FAILED: FlowSnmpv2CPDUErrorStatusEnum("undo_failed"), + AUTHORIZATION_ERROR: FlowSnmpv2CPDUErrorStatusEnum("authorization_error"), + NOT_WRITABLE: FlowSnmpv2CPDUErrorStatusEnum("not_writable"), + INCONSISTENT_NAME: FlowSnmpv2CPDUErrorStatusEnum("inconsistent_name"), +} + +func (obj *flowSnmpv2CPDU) ErrorStatus() FlowSnmpv2CPDUErrorStatusEnum { + return FlowSnmpv2CPDUErrorStatusEnum(obj.obj.ErrorStatus.Enum().String()) +} + +// The SNMP agent places an error code in this field in the response message if an error occurred processing the request. +// ErrorStatus returns a string +func (obj *flowSnmpv2CPDU) HasErrorStatus() bool { + return obj.obj.ErrorStatus != nil +} + +func (obj *flowSnmpv2CPDU) SetErrorStatus(value FlowSnmpv2CPDUErrorStatusEnum) FlowSnmpv2CPDU { + intValue, ok := otg.FlowSnmpv2CPDU_ErrorStatus_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on FlowSnmpv2CPDUErrorStatusEnum", string(value))) + return obj + } + enumValue := otg.FlowSnmpv2CPDU_ErrorStatus_Enum(intValue) + obj.obj.ErrorStatus = &enumValue + + return obj +} + +// description is TBD +// ErrorIndex returns a PatternFlowSnmpv2CPDUErrorIndex +func (obj *flowSnmpv2CPDU) ErrorIndex() PatternFlowSnmpv2CPDUErrorIndex { + if obj.obj.ErrorIndex == nil { + obj.obj.ErrorIndex = NewPatternFlowSnmpv2CPDUErrorIndex().msg() + } + if obj.errorIndexHolder == nil { + obj.errorIndexHolder = &patternFlowSnmpv2CPDUErrorIndex{obj: obj.obj.ErrorIndex} + } + return obj.errorIndexHolder +} + +// description is TBD +// ErrorIndex returns a PatternFlowSnmpv2CPDUErrorIndex +func (obj *flowSnmpv2CPDU) HasErrorIndex() bool { + return obj.obj.ErrorIndex != nil +} + +// description is TBD +// SetErrorIndex sets the PatternFlowSnmpv2CPDUErrorIndex value in the FlowSnmpv2CPDU object +func (obj *flowSnmpv2CPDU) SetErrorIndex(value PatternFlowSnmpv2CPDUErrorIndex) FlowSnmpv2CPDU { + + obj.errorIndexHolder = nil + obj.obj.ErrorIndex = value.msg() + + return obj +} + +// A Sequence of variable_bindings. +// VariableBindings returns a []FlowSnmpv2CVariableBinding +func (obj *flowSnmpv2CPDU) VariableBindings() FlowSnmpv2CPDUFlowSnmpv2CVariableBindingIter { + if len(obj.obj.VariableBindings) == 0 { + obj.obj.VariableBindings = []*otg.FlowSnmpv2CVariableBinding{} + } + if obj.variableBindingsHolder == nil { + obj.variableBindingsHolder = newFlowSnmpv2CPDUFlowSnmpv2CVariableBindingIter(&obj.obj.VariableBindings).setMsg(obj) + } + return obj.variableBindingsHolder +} + +type flowSnmpv2CPDUFlowSnmpv2CVariableBindingIter struct { + obj *flowSnmpv2CPDU + flowSnmpv2CVariableBindingSlice []FlowSnmpv2CVariableBinding + fieldPtr *[]*otg.FlowSnmpv2CVariableBinding +} + +func newFlowSnmpv2CPDUFlowSnmpv2CVariableBindingIter(ptr *[]*otg.FlowSnmpv2CVariableBinding) FlowSnmpv2CPDUFlowSnmpv2CVariableBindingIter { + return &flowSnmpv2CPDUFlowSnmpv2CVariableBindingIter{fieldPtr: ptr} +} + +type FlowSnmpv2CPDUFlowSnmpv2CVariableBindingIter interface { + setMsg(*flowSnmpv2CPDU) FlowSnmpv2CPDUFlowSnmpv2CVariableBindingIter + Items() []FlowSnmpv2CVariableBinding + Add() FlowSnmpv2CVariableBinding + Append(items ...FlowSnmpv2CVariableBinding) FlowSnmpv2CPDUFlowSnmpv2CVariableBindingIter + Set(index int, newObj FlowSnmpv2CVariableBinding) FlowSnmpv2CPDUFlowSnmpv2CVariableBindingIter + Clear() FlowSnmpv2CPDUFlowSnmpv2CVariableBindingIter + clearHolderSlice() FlowSnmpv2CPDUFlowSnmpv2CVariableBindingIter + appendHolderSlice(item FlowSnmpv2CVariableBinding) FlowSnmpv2CPDUFlowSnmpv2CVariableBindingIter +} + +func (obj *flowSnmpv2CPDUFlowSnmpv2CVariableBindingIter) setMsg(msg *flowSnmpv2CPDU) FlowSnmpv2CPDUFlowSnmpv2CVariableBindingIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&flowSnmpv2CVariableBinding{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *flowSnmpv2CPDUFlowSnmpv2CVariableBindingIter) Items() []FlowSnmpv2CVariableBinding { + return obj.flowSnmpv2CVariableBindingSlice +} + +func (obj *flowSnmpv2CPDUFlowSnmpv2CVariableBindingIter) Add() FlowSnmpv2CVariableBinding { + newObj := &otg.FlowSnmpv2CVariableBinding{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &flowSnmpv2CVariableBinding{obj: newObj} + newLibObj.setDefault() + obj.flowSnmpv2CVariableBindingSlice = append(obj.flowSnmpv2CVariableBindingSlice, newLibObj) + return newLibObj +} + +func (obj *flowSnmpv2CPDUFlowSnmpv2CVariableBindingIter) Append(items ...FlowSnmpv2CVariableBinding) FlowSnmpv2CPDUFlowSnmpv2CVariableBindingIter { + for _, item := range items { + newObj := item.msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.flowSnmpv2CVariableBindingSlice = append(obj.flowSnmpv2CVariableBindingSlice, item) + } + return obj +} + +func (obj *flowSnmpv2CPDUFlowSnmpv2CVariableBindingIter) Set(index int, newObj FlowSnmpv2CVariableBinding) FlowSnmpv2CPDUFlowSnmpv2CVariableBindingIter { + (*obj.fieldPtr)[index] = newObj.msg() + obj.flowSnmpv2CVariableBindingSlice[index] = newObj + return obj +} +func (obj *flowSnmpv2CPDUFlowSnmpv2CVariableBindingIter) Clear() FlowSnmpv2CPDUFlowSnmpv2CVariableBindingIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.FlowSnmpv2CVariableBinding{} + obj.flowSnmpv2CVariableBindingSlice = []FlowSnmpv2CVariableBinding{} + } + return obj +} +func (obj *flowSnmpv2CPDUFlowSnmpv2CVariableBindingIter) clearHolderSlice() FlowSnmpv2CPDUFlowSnmpv2CVariableBindingIter { + if len(obj.flowSnmpv2CVariableBindingSlice) > 0 { + obj.flowSnmpv2CVariableBindingSlice = []FlowSnmpv2CVariableBinding{} + } + return obj +} +func (obj *flowSnmpv2CPDUFlowSnmpv2CVariableBindingIter) appendHolderSlice(item FlowSnmpv2CVariableBinding) FlowSnmpv2CPDUFlowSnmpv2CVariableBindingIter { + obj.flowSnmpv2CVariableBindingSlice = append(obj.flowSnmpv2CVariableBindingSlice, item) + return obj +} + +func (obj *flowSnmpv2CPDU) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.RequestId != nil { + + obj.RequestId().validateObj(vObj, set_default) + } + + if obj.obj.ErrorIndex != nil { + + obj.ErrorIndex().validateObj(vObj, set_default) + } + + if len(obj.obj.VariableBindings) != 0 { + + if set_default { + obj.VariableBindings().clearHolderSlice() + for _, item := range obj.obj.VariableBindings { + obj.VariableBindings().appendHolderSlice(&flowSnmpv2CVariableBinding{obj: item}) + } + } + for _, item := range obj.VariableBindings().Items() { + item.validateObj(vObj, set_default) + } + + } + +} + +func (obj *flowSnmpv2CPDU) setDefault() { + if obj.obj.ErrorStatus == nil { + obj.SetErrorStatus(FlowSnmpv2CPDUErrorStatus.NO_ERROR) + + } + +} + +// ***** FlowSnmpv2CBulkPDU ***** +type flowSnmpv2CBulkPDU struct { + validation + obj *otg.FlowSnmpv2CBulkPDU + marshaller marshalFlowSnmpv2CBulkPDU + unMarshaller unMarshalFlowSnmpv2CBulkPDU + requestIdHolder PatternFlowSnmpv2CBulkPDURequestId + nonRepeatersHolder PatternFlowSnmpv2CBulkPDUNonRepeaters + maxRepetitionsHolder PatternFlowSnmpv2CBulkPDUMaxRepetitions + variableBindingsHolder FlowSnmpv2CBulkPDUFlowSnmpv2CVariableBindingIter +} + +func NewFlowSnmpv2CBulkPDU() FlowSnmpv2CBulkPDU { + obj := flowSnmpv2CBulkPDU{obj: &otg.FlowSnmpv2CBulkPDU{}} + obj.setDefault() + return &obj +} + +func (obj *flowSnmpv2CBulkPDU) msg() *otg.FlowSnmpv2CBulkPDU { + return obj.obj +} + +func (obj *flowSnmpv2CBulkPDU) setMsg(msg *otg.FlowSnmpv2CBulkPDU) FlowSnmpv2CBulkPDU { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +type marshalflowSnmpv2CBulkPDU struct { + obj *flowSnmpv2CBulkPDU +} + +type marshalFlowSnmpv2CBulkPDU interface { + // ToProto marshals FlowSnmpv2CBulkPDU to protobuf object *otg.FlowSnmpv2CBulkPDU + ToProto() (*otg.FlowSnmpv2CBulkPDU, error) + // ToPbText marshals FlowSnmpv2CBulkPDU to protobuf text + ToPbText() (string, error) + // ToYaml marshals FlowSnmpv2CBulkPDU to YAML text + ToYaml() (string, error) + // ToJson marshals FlowSnmpv2CBulkPDU to JSON text + ToJson() (string, error) +} + +type unMarshalflowSnmpv2CBulkPDU struct { + obj *flowSnmpv2CBulkPDU +} + +type unMarshalFlowSnmpv2CBulkPDU interface { + // FromProto unmarshals FlowSnmpv2CBulkPDU from protobuf object *otg.FlowSnmpv2CBulkPDU + FromProto(msg *otg.FlowSnmpv2CBulkPDU) (FlowSnmpv2CBulkPDU, error) + // FromPbText unmarshals FlowSnmpv2CBulkPDU from protobuf text + FromPbText(value string) error + // FromYaml unmarshals FlowSnmpv2CBulkPDU from YAML text + FromYaml(value string) error + // FromJson unmarshals FlowSnmpv2CBulkPDU from JSON text + FromJson(value string) error +} + +func (obj *flowSnmpv2CBulkPDU) Marshal() marshalFlowSnmpv2CBulkPDU { + if obj.marshaller == nil { + obj.marshaller = &marshalflowSnmpv2CBulkPDU{obj: obj} + } + return obj.marshaller +} + +func (obj *flowSnmpv2CBulkPDU) Unmarshal() unMarshalFlowSnmpv2CBulkPDU { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshalflowSnmpv2CBulkPDU{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshalflowSnmpv2CBulkPDU) ToProto() (*otg.FlowSnmpv2CBulkPDU, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshalflowSnmpv2CBulkPDU) FromProto(msg *otg.FlowSnmpv2CBulkPDU) (FlowSnmpv2CBulkPDU, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshalflowSnmpv2CBulkPDU) ToPbText() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (m *unMarshalflowSnmpv2CBulkPDU) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), m.obj.msg()) + if retObj != nil { + return retObj + } + m.obj.setNil() + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (m *marshalflowSnmpv2CBulkPDU) ToYaml() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalflowSnmpv2CBulkPDU) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + m.obj.setNil() + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (m *marshalflowSnmpv2CBulkPDU) ToJson() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalflowSnmpv2CBulkPDU) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + m.obj.setNil() + err := m.obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *flowSnmpv2CBulkPDU) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *flowSnmpv2CBulkPDU) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *flowSnmpv2CBulkPDU) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *flowSnmpv2CBulkPDU) Clone() (FlowSnmpv2CBulkPDU, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewFlowSnmpv2CBulkPDU() + data, err := proto.Marshal(obj.msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +func (obj *flowSnmpv2CBulkPDU) setNil() { + obj.requestIdHolder = nil + obj.nonRepeatersHolder = nil + obj.maxRepetitionsHolder = nil + obj.variableBindingsHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// FlowSnmpv2CBulkPDU is the purpose of the GetBulkRequest-PDU is to request the transfer of a potentially large amount of data, including, but not limited to, the efficient and rapid retrieval of large tables. +type FlowSnmpv2CBulkPDU interface { + Validation + // msg marshals FlowSnmpv2CBulkPDU to protobuf object *otg.FlowSnmpv2CBulkPDU + // and doesn't set defaults + msg() *otg.FlowSnmpv2CBulkPDU + // setMsg unmarshals FlowSnmpv2CBulkPDU from protobuf object *otg.FlowSnmpv2CBulkPDU + // and doesn't set defaults + setMsg(*otg.FlowSnmpv2CBulkPDU) FlowSnmpv2CBulkPDU + // provides marshal interface + Marshal() marshalFlowSnmpv2CBulkPDU + // provides unmarshal interface + Unmarshal() unMarshalFlowSnmpv2CBulkPDU + // validate validates FlowSnmpv2CBulkPDU + validate() error + // A stringer function + String() string + // Clones the object + Clone() (FlowSnmpv2CBulkPDU, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // RequestId returns PatternFlowSnmpv2CBulkPDURequestId, set in FlowSnmpv2CBulkPDU. + RequestId() PatternFlowSnmpv2CBulkPDURequestId + // SetRequestId assigns PatternFlowSnmpv2CBulkPDURequestId provided by user to FlowSnmpv2CBulkPDU. + SetRequestId(value PatternFlowSnmpv2CBulkPDURequestId) FlowSnmpv2CBulkPDU + // HasRequestId checks if RequestId has been set in FlowSnmpv2CBulkPDU + HasRequestId() bool + // NonRepeaters returns PatternFlowSnmpv2CBulkPDUNonRepeaters, set in FlowSnmpv2CBulkPDU. + NonRepeaters() PatternFlowSnmpv2CBulkPDUNonRepeaters + // SetNonRepeaters assigns PatternFlowSnmpv2CBulkPDUNonRepeaters provided by user to FlowSnmpv2CBulkPDU. + SetNonRepeaters(value PatternFlowSnmpv2CBulkPDUNonRepeaters) FlowSnmpv2CBulkPDU + // HasNonRepeaters checks if NonRepeaters has been set in FlowSnmpv2CBulkPDU + HasNonRepeaters() bool + // MaxRepetitions returns PatternFlowSnmpv2CBulkPDUMaxRepetitions, set in FlowSnmpv2CBulkPDU. + MaxRepetitions() PatternFlowSnmpv2CBulkPDUMaxRepetitions + // SetMaxRepetitions assigns PatternFlowSnmpv2CBulkPDUMaxRepetitions provided by user to FlowSnmpv2CBulkPDU. + SetMaxRepetitions(value PatternFlowSnmpv2CBulkPDUMaxRepetitions) FlowSnmpv2CBulkPDU + // HasMaxRepetitions checks if MaxRepetitions has been set in FlowSnmpv2CBulkPDU + HasMaxRepetitions() bool + // VariableBindings returns FlowSnmpv2CBulkPDUFlowSnmpv2CVariableBindingIterIter, set in FlowSnmpv2CBulkPDU + VariableBindings() FlowSnmpv2CBulkPDUFlowSnmpv2CVariableBindingIter + setNil() +} + +// description is TBD +// RequestId returns a PatternFlowSnmpv2CBulkPDURequestId +func (obj *flowSnmpv2CBulkPDU) RequestId() PatternFlowSnmpv2CBulkPDURequestId { + if obj.obj.RequestId == nil { + obj.obj.RequestId = NewPatternFlowSnmpv2CBulkPDURequestId().msg() + } + if obj.requestIdHolder == nil { + obj.requestIdHolder = &patternFlowSnmpv2CBulkPDURequestId{obj: obj.obj.RequestId} + } + return obj.requestIdHolder +} + +// description is TBD +// RequestId returns a PatternFlowSnmpv2CBulkPDURequestId +func (obj *flowSnmpv2CBulkPDU) HasRequestId() bool { + return obj.obj.RequestId != nil +} + +// description is TBD +// SetRequestId sets the PatternFlowSnmpv2CBulkPDURequestId value in the FlowSnmpv2CBulkPDU object +func (obj *flowSnmpv2CBulkPDU) SetRequestId(value PatternFlowSnmpv2CBulkPDURequestId) FlowSnmpv2CBulkPDU { + + obj.requestIdHolder = nil + obj.obj.RequestId = value.msg() + + return obj +} + +// description is TBD +// NonRepeaters returns a PatternFlowSnmpv2CBulkPDUNonRepeaters +func (obj *flowSnmpv2CBulkPDU) NonRepeaters() PatternFlowSnmpv2CBulkPDUNonRepeaters { + if obj.obj.NonRepeaters == nil { + obj.obj.NonRepeaters = NewPatternFlowSnmpv2CBulkPDUNonRepeaters().msg() + } + if obj.nonRepeatersHolder == nil { + obj.nonRepeatersHolder = &patternFlowSnmpv2CBulkPDUNonRepeaters{obj: obj.obj.NonRepeaters} + } + return obj.nonRepeatersHolder +} + +// description is TBD +// NonRepeaters returns a PatternFlowSnmpv2CBulkPDUNonRepeaters +func (obj *flowSnmpv2CBulkPDU) HasNonRepeaters() bool { + return obj.obj.NonRepeaters != nil +} + +// description is TBD +// SetNonRepeaters sets the PatternFlowSnmpv2CBulkPDUNonRepeaters value in the FlowSnmpv2CBulkPDU object +func (obj *flowSnmpv2CBulkPDU) SetNonRepeaters(value PatternFlowSnmpv2CBulkPDUNonRepeaters) FlowSnmpv2CBulkPDU { + + obj.nonRepeatersHolder = nil + obj.obj.NonRepeaters = value.msg() + + return obj +} + +// description is TBD +// MaxRepetitions returns a PatternFlowSnmpv2CBulkPDUMaxRepetitions +func (obj *flowSnmpv2CBulkPDU) MaxRepetitions() PatternFlowSnmpv2CBulkPDUMaxRepetitions { + if obj.obj.MaxRepetitions == nil { + obj.obj.MaxRepetitions = NewPatternFlowSnmpv2CBulkPDUMaxRepetitions().msg() + } + if obj.maxRepetitionsHolder == nil { + obj.maxRepetitionsHolder = &patternFlowSnmpv2CBulkPDUMaxRepetitions{obj: obj.obj.MaxRepetitions} + } + return obj.maxRepetitionsHolder +} + +// description is TBD +// MaxRepetitions returns a PatternFlowSnmpv2CBulkPDUMaxRepetitions +func (obj *flowSnmpv2CBulkPDU) HasMaxRepetitions() bool { + return obj.obj.MaxRepetitions != nil +} + +// description is TBD +// SetMaxRepetitions sets the PatternFlowSnmpv2CBulkPDUMaxRepetitions value in the FlowSnmpv2CBulkPDU object +func (obj *flowSnmpv2CBulkPDU) SetMaxRepetitions(value PatternFlowSnmpv2CBulkPDUMaxRepetitions) FlowSnmpv2CBulkPDU { + + obj.maxRepetitionsHolder = nil + obj.obj.MaxRepetitions = value.msg() + + return obj +} + +// A Sequence of variable_bindings. +// VariableBindings returns a []FlowSnmpv2CVariableBinding +func (obj *flowSnmpv2CBulkPDU) VariableBindings() FlowSnmpv2CBulkPDUFlowSnmpv2CVariableBindingIter { + if len(obj.obj.VariableBindings) == 0 { + obj.obj.VariableBindings = []*otg.FlowSnmpv2CVariableBinding{} + } + if obj.variableBindingsHolder == nil { + obj.variableBindingsHolder = newFlowSnmpv2CBulkPDUFlowSnmpv2CVariableBindingIter(&obj.obj.VariableBindings).setMsg(obj) + } + return obj.variableBindingsHolder +} + +type flowSnmpv2CBulkPDUFlowSnmpv2CVariableBindingIter struct { + obj *flowSnmpv2CBulkPDU + flowSnmpv2CVariableBindingSlice []FlowSnmpv2CVariableBinding + fieldPtr *[]*otg.FlowSnmpv2CVariableBinding +} + +func newFlowSnmpv2CBulkPDUFlowSnmpv2CVariableBindingIter(ptr *[]*otg.FlowSnmpv2CVariableBinding) FlowSnmpv2CBulkPDUFlowSnmpv2CVariableBindingIter { + return &flowSnmpv2CBulkPDUFlowSnmpv2CVariableBindingIter{fieldPtr: ptr} +} + +type FlowSnmpv2CBulkPDUFlowSnmpv2CVariableBindingIter interface { + setMsg(*flowSnmpv2CBulkPDU) FlowSnmpv2CBulkPDUFlowSnmpv2CVariableBindingIter + Items() []FlowSnmpv2CVariableBinding + Add() FlowSnmpv2CVariableBinding + Append(items ...FlowSnmpv2CVariableBinding) FlowSnmpv2CBulkPDUFlowSnmpv2CVariableBindingIter + Set(index int, newObj FlowSnmpv2CVariableBinding) FlowSnmpv2CBulkPDUFlowSnmpv2CVariableBindingIter + Clear() FlowSnmpv2CBulkPDUFlowSnmpv2CVariableBindingIter + clearHolderSlice() FlowSnmpv2CBulkPDUFlowSnmpv2CVariableBindingIter + appendHolderSlice(item FlowSnmpv2CVariableBinding) FlowSnmpv2CBulkPDUFlowSnmpv2CVariableBindingIter +} + +func (obj *flowSnmpv2CBulkPDUFlowSnmpv2CVariableBindingIter) setMsg(msg *flowSnmpv2CBulkPDU) FlowSnmpv2CBulkPDUFlowSnmpv2CVariableBindingIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&flowSnmpv2CVariableBinding{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *flowSnmpv2CBulkPDUFlowSnmpv2CVariableBindingIter) Items() []FlowSnmpv2CVariableBinding { + return obj.flowSnmpv2CVariableBindingSlice +} + +func (obj *flowSnmpv2CBulkPDUFlowSnmpv2CVariableBindingIter) Add() FlowSnmpv2CVariableBinding { + newObj := &otg.FlowSnmpv2CVariableBinding{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &flowSnmpv2CVariableBinding{obj: newObj} + newLibObj.setDefault() + obj.flowSnmpv2CVariableBindingSlice = append(obj.flowSnmpv2CVariableBindingSlice, newLibObj) + return newLibObj +} + +func (obj *flowSnmpv2CBulkPDUFlowSnmpv2CVariableBindingIter) Append(items ...FlowSnmpv2CVariableBinding) FlowSnmpv2CBulkPDUFlowSnmpv2CVariableBindingIter { + for _, item := range items { + newObj := item.msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.flowSnmpv2CVariableBindingSlice = append(obj.flowSnmpv2CVariableBindingSlice, item) + } + return obj +} + +func (obj *flowSnmpv2CBulkPDUFlowSnmpv2CVariableBindingIter) Set(index int, newObj FlowSnmpv2CVariableBinding) FlowSnmpv2CBulkPDUFlowSnmpv2CVariableBindingIter { + (*obj.fieldPtr)[index] = newObj.msg() + obj.flowSnmpv2CVariableBindingSlice[index] = newObj + return obj +} +func (obj *flowSnmpv2CBulkPDUFlowSnmpv2CVariableBindingIter) Clear() FlowSnmpv2CBulkPDUFlowSnmpv2CVariableBindingIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.FlowSnmpv2CVariableBinding{} + obj.flowSnmpv2CVariableBindingSlice = []FlowSnmpv2CVariableBinding{} + } + return obj +} +func (obj *flowSnmpv2CBulkPDUFlowSnmpv2CVariableBindingIter) clearHolderSlice() FlowSnmpv2CBulkPDUFlowSnmpv2CVariableBindingIter { + if len(obj.flowSnmpv2CVariableBindingSlice) > 0 { + obj.flowSnmpv2CVariableBindingSlice = []FlowSnmpv2CVariableBinding{} + } + return obj +} +func (obj *flowSnmpv2CBulkPDUFlowSnmpv2CVariableBindingIter) appendHolderSlice(item FlowSnmpv2CVariableBinding) FlowSnmpv2CBulkPDUFlowSnmpv2CVariableBindingIter { + obj.flowSnmpv2CVariableBindingSlice = append(obj.flowSnmpv2CVariableBindingSlice, item) + return obj +} + +func (obj *flowSnmpv2CBulkPDU) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.RequestId != nil { + + obj.RequestId().validateObj(vObj, set_default) + } + + if obj.obj.NonRepeaters != nil { + + obj.NonRepeaters().validateObj(vObj, set_default) + } + + if obj.obj.MaxRepetitions != nil { + + obj.MaxRepetitions().validateObj(vObj, set_default) + } + + if len(obj.obj.VariableBindings) != 0 { + + if set_default { + obj.VariableBindings().clearHolderSlice() + for _, item := range obj.obj.VariableBindings { + obj.VariableBindings().appendHolderSlice(&flowSnmpv2CVariableBinding{obj: item}) + } + } + for _, item := range obj.VariableBindings().Items() { + item.validateObj(vObj, set_default) + } + + } + +} + +func (obj *flowSnmpv2CBulkPDU) setDefault() { + +} + // ***** ActionResponseProtocolIpv4Ping ***** type actionResponseProtocolIpv4Ping struct { validation @@ -319744,75 +322830,77 @@ func (obj *patternFlowIcmpv6EchoSequenceNumberMetricTag) setDefault() { } -// ***** ActionResponseProtocolIpv4PingResponse ***** -type actionResponseProtocolIpv4PingResponse struct { +// ***** PatternFlowSnmpv2CPDURequestId ***** +type patternFlowSnmpv2CPDURequestId struct { validation - obj *otg.ActionResponseProtocolIpv4PingResponse - marshaller marshalActionResponseProtocolIpv4PingResponse - unMarshaller unMarshalActionResponseProtocolIpv4PingResponse + obj *otg.PatternFlowSnmpv2CPDURequestId + marshaller marshalPatternFlowSnmpv2CPDURequestId + unMarshaller unMarshalPatternFlowSnmpv2CPDURequestId + incrementHolder PatternFlowSnmpv2CPDURequestIdCounter + decrementHolder PatternFlowSnmpv2CPDURequestIdCounter } -func NewActionResponseProtocolIpv4PingResponse() ActionResponseProtocolIpv4PingResponse { - obj := actionResponseProtocolIpv4PingResponse{obj: &otg.ActionResponseProtocolIpv4PingResponse{}} +func NewPatternFlowSnmpv2CPDURequestId() PatternFlowSnmpv2CPDURequestId { + obj := patternFlowSnmpv2CPDURequestId{obj: &otg.PatternFlowSnmpv2CPDURequestId{}} obj.setDefault() return &obj } -func (obj *actionResponseProtocolIpv4PingResponse) msg() *otg.ActionResponseProtocolIpv4PingResponse { +func (obj *patternFlowSnmpv2CPDURequestId) msg() *otg.PatternFlowSnmpv2CPDURequestId { return obj.obj } -func (obj *actionResponseProtocolIpv4PingResponse) setMsg(msg *otg.ActionResponseProtocolIpv4PingResponse) ActionResponseProtocolIpv4PingResponse { - +func (obj *patternFlowSnmpv2CPDURequestId) setMsg(msg *otg.PatternFlowSnmpv2CPDURequestId) PatternFlowSnmpv2CPDURequestId { + obj.setNil() proto.Merge(obj.obj, msg) return obj } -type marshalactionResponseProtocolIpv4PingResponse struct { - obj *actionResponseProtocolIpv4PingResponse +type marshalpatternFlowSnmpv2CPDURequestId struct { + obj *patternFlowSnmpv2CPDURequestId } -type marshalActionResponseProtocolIpv4PingResponse interface { - // ToProto marshals ActionResponseProtocolIpv4PingResponse to protobuf object *otg.ActionResponseProtocolIpv4PingResponse - ToProto() (*otg.ActionResponseProtocolIpv4PingResponse, error) - // ToPbText marshals ActionResponseProtocolIpv4PingResponse to protobuf text +type marshalPatternFlowSnmpv2CPDURequestId interface { + // ToProto marshals PatternFlowSnmpv2CPDURequestId to protobuf object *otg.PatternFlowSnmpv2CPDURequestId + ToProto() (*otg.PatternFlowSnmpv2CPDURequestId, error) + // ToPbText marshals PatternFlowSnmpv2CPDURequestId to protobuf text ToPbText() (string, error) - // ToYaml marshals ActionResponseProtocolIpv4PingResponse to YAML text + // ToYaml marshals PatternFlowSnmpv2CPDURequestId to YAML text ToYaml() (string, error) - // ToJson marshals ActionResponseProtocolIpv4PingResponse to JSON text + // ToJson marshals PatternFlowSnmpv2CPDURequestId to JSON text ToJson() (string, error) } -type unMarshalactionResponseProtocolIpv4PingResponse struct { - obj *actionResponseProtocolIpv4PingResponse +type unMarshalpatternFlowSnmpv2CPDURequestId struct { + obj *patternFlowSnmpv2CPDURequestId } -type unMarshalActionResponseProtocolIpv4PingResponse interface { - // FromProto unmarshals ActionResponseProtocolIpv4PingResponse from protobuf object *otg.ActionResponseProtocolIpv4PingResponse - FromProto(msg *otg.ActionResponseProtocolIpv4PingResponse) (ActionResponseProtocolIpv4PingResponse, error) - // FromPbText unmarshals ActionResponseProtocolIpv4PingResponse from protobuf text +type unMarshalPatternFlowSnmpv2CPDURequestId interface { + // FromProto unmarshals PatternFlowSnmpv2CPDURequestId from protobuf object *otg.PatternFlowSnmpv2CPDURequestId + FromProto(msg *otg.PatternFlowSnmpv2CPDURequestId) (PatternFlowSnmpv2CPDURequestId, error) + // FromPbText unmarshals PatternFlowSnmpv2CPDURequestId from protobuf text FromPbText(value string) error - // FromYaml unmarshals ActionResponseProtocolIpv4PingResponse from YAML text + // FromYaml unmarshals PatternFlowSnmpv2CPDURequestId from YAML text FromYaml(value string) error - // FromJson unmarshals ActionResponseProtocolIpv4PingResponse from JSON text + // FromJson unmarshals PatternFlowSnmpv2CPDURequestId from JSON text FromJson(value string) error } -func (obj *actionResponseProtocolIpv4PingResponse) Marshal() marshalActionResponseProtocolIpv4PingResponse { +func (obj *patternFlowSnmpv2CPDURequestId) Marshal() marshalPatternFlowSnmpv2CPDURequestId { if obj.marshaller == nil { - obj.marshaller = &marshalactionResponseProtocolIpv4PingResponse{obj: obj} + obj.marshaller = &marshalpatternFlowSnmpv2CPDURequestId{obj: obj} } return obj.marshaller } -func (obj *actionResponseProtocolIpv4PingResponse) Unmarshal() unMarshalActionResponseProtocolIpv4PingResponse { +func (obj *patternFlowSnmpv2CPDURequestId) Unmarshal() unMarshalPatternFlowSnmpv2CPDURequestId { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalactionResponseProtocolIpv4PingResponse{obj: obj} + obj.unMarshaller = &unMarshalpatternFlowSnmpv2CPDURequestId{obj: obj} } return obj.unMarshaller } -func (m *marshalactionResponseProtocolIpv4PingResponse) ToProto() (*otg.ActionResponseProtocolIpv4PingResponse, error) { +func (m *marshalpatternFlowSnmpv2CPDURequestId) ToProto() (*otg.PatternFlowSnmpv2CPDURequestId, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -319820,7 +322908,7 @@ func (m *marshalactionResponseProtocolIpv4PingResponse) ToProto() (*otg.ActionRe return m.obj.msg(), nil } -func (m *unMarshalactionResponseProtocolIpv4PingResponse) FromProto(msg *otg.ActionResponseProtocolIpv4PingResponse) (ActionResponseProtocolIpv4PingResponse, error) { +func (m *unMarshalpatternFlowSnmpv2CPDURequestId) FromProto(msg *otg.PatternFlowSnmpv2CPDURequestId) (PatternFlowSnmpv2CPDURequestId, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -319829,7 +322917,7 @@ func (m *unMarshalactionResponseProtocolIpv4PingResponse) FromProto(msg *otg.Act return newObj, nil } -func (m *marshalactionResponseProtocolIpv4PingResponse) ToPbText() (string, error) { +func (m *marshalpatternFlowSnmpv2CPDURequestId) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -319841,12 +322929,12 @@ func (m *marshalactionResponseProtocolIpv4PingResponse) ToPbText() (string, erro return string(protoMarshal), nil } -func (m *unMarshalactionResponseProtocolIpv4PingResponse) FromPbText(value string) error { +func (m *unMarshalpatternFlowSnmpv2CPDURequestId) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -319854,7 +322942,7 @@ func (m *unMarshalactionResponseProtocolIpv4PingResponse) FromPbText(value strin return retObj } -func (m *marshalactionResponseProtocolIpv4PingResponse) ToYaml() (string, error) { +func (m *marshalpatternFlowSnmpv2CPDURequestId) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -319875,7 +322963,7 @@ func (m *marshalactionResponseProtocolIpv4PingResponse) ToYaml() (string, error) return string(data), nil } -func (m *unMarshalactionResponseProtocolIpv4PingResponse) FromYaml(value string) error { +func (m *unMarshalpatternFlowSnmpv2CPDURequestId) FromYaml(value string) error { if value == "" { value = "{}" } @@ -319892,7 +322980,7 @@ func (m *unMarshalactionResponseProtocolIpv4PingResponse) FromYaml(value string) return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -319900,7 +322988,7 @@ func (m *unMarshalactionResponseProtocolIpv4PingResponse) FromYaml(value string) return nil } -func (m *marshalactionResponseProtocolIpv4PingResponse) ToJson() (string, error) { +func (m *marshalpatternFlowSnmpv2CPDURequestId) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -319918,7 +323006,7 @@ func (m *marshalactionResponseProtocolIpv4PingResponse) ToJson() (string, error) return string(data), nil } -func (m *unMarshalactionResponseProtocolIpv4PingResponse) FromJson(value string) error { +func (m *unMarshalpatternFlowSnmpv2CPDURequestId) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -319931,7 +323019,7 @@ func (m *unMarshalactionResponseProtocolIpv4PingResponse) FromJson(value string) return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() err := m.obj.validateToAndFrom() if err != nil { return err @@ -319939,19 +323027,19 @@ func (m *unMarshalactionResponseProtocolIpv4PingResponse) FromJson(value string) return nil } -func (obj *actionResponseProtocolIpv4PingResponse) validateToAndFrom() error { +func (obj *patternFlowSnmpv2CPDURequestId) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *actionResponseProtocolIpv4PingResponse) validate() error { +func (obj *patternFlowSnmpv2CPDURequestId) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *actionResponseProtocolIpv4PingResponse) String() string { +func (obj *patternFlowSnmpv2CPDURequestId) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -319959,12 +323047,12 @@ func (obj *actionResponseProtocolIpv4PingResponse) String() string { return str } -func (obj *actionResponseProtocolIpv4PingResponse) Clone() (ActionResponseProtocolIpv4PingResponse, error) { +func (obj *patternFlowSnmpv2CPDURequestId) Clone() (PatternFlowSnmpv2CPDURequestId, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewActionResponseProtocolIpv4PingResponse() + newObj := NewPatternFlowSnmpv2CPDURequestId() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -319976,218 +323064,333 @@ func (obj *actionResponseProtocolIpv4PingResponse) Clone() (ActionResponseProtoc return newObj, nil } -// ActionResponseProtocolIpv4PingResponse is response for ping initiated between a single source and destination pair. -type ActionResponseProtocolIpv4PingResponse interface { +func (obj *patternFlowSnmpv2CPDURequestId) setNil() { + obj.incrementHolder = nil + obj.decrementHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// PatternFlowSnmpv2CPDURequestId is identifies a particular SNMP request. +// This index is echoed back in the response from the SNMP agent, +// allowing the SNMP manager to match an incoming response to the appropriate request. +// +// - Encoding of this field follows ASN.1 X.690(section 8.3) specification. +// Refer: http://www.itu.int/ITU-T/asn1 +type PatternFlowSnmpv2CPDURequestId interface { Validation - // msg marshals ActionResponseProtocolIpv4PingResponse to protobuf object *otg.ActionResponseProtocolIpv4PingResponse + // msg marshals PatternFlowSnmpv2CPDURequestId to protobuf object *otg.PatternFlowSnmpv2CPDURequestId // and doesn't set defaults - msg() *otg.ActionResponseProtocolIpv4PingResponse - // setMsg unmarshals ActionResponseProtocolIpv4PingResponse from protobuf object *otg.ActionResponseProtocolIpv4PingResponse + msg() *otg.PatternFlowSnmpv2CPDURequestId + // setMsg unmarshals PatternFlowSnmpv2CPDURequestId from protobuf object *otg.PatternFlowSnmpv2CPDURequestId // and doesn't set defaults - setMsg(*otg.ActionResponseProtocolIpv4PingResponse) ActionResponseProtocolIpv4PingResponse + setMsg(*otg.PatternFlowSnmpv2CPDURequestId) PatternFlowSnmpv2CPDURequestId // provides marshal interface - Marshal() marshalActionResponseProtocolIpv4PingResponse + Marshal() marshalPatternFlowSnmpv2CPDURequestId // provides unmarshal interface - Unmarshal() unMarshalActionResponseProtocolIpv4PingResponse - // validate validates ActionResponseProtocolIpv4PingResponse + Unmarshal() unMarshalPatternFlowSnmpv2CPDURequestId + // validate validates PatternFlowSnmpv2CPDURequestId validate() error // A stringer function String() string // Clones the object - Clone() (ActionResponseProtocolIpv4PingResponse, error) + Clone() (PatternFlowSnmpv2CPDURequestId, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // SrcName returns string, set in ActionResponseProtocolIpv4PingResponse. - SrcName() string - // SetSrcName assigns string provided by user to ActionResponseProtocolIpv4PingResponse - SetSrcName(value string) ActionResponseProtocolIpv4PingResponse - // DstIp returns string, set in ActionResponseProtocolIpv4PingResponse. - DstIp() string - // SetDstIp assigns string provided by user to ActionResponseProtocolIpv4PingResponse - SetDstIp(value string) ActionResponseProtocolIpv4PingResponse - // Result returns ActionResponseProtocolIpv4PingResponseResultEnum, set in ActionResponseProtocolIpv4PingResponse - Result() ActionResponseProtocolIpv4PingResponseResultEnum - // SetResult assigns ActionResponseProtocolIpv4PingResponseResultEnum provided by user to ActionResponseProtocolIpv4PingResponse - SetResult(value ActionResponseProtocolIpv4PingResponseResultEnum) ActionResponseProtocolIpv4PingResponse + // Choice returns PatternFlowSnmpv2CPDURequestIdChoiceEnum, set in PatternFlowSnmpv2CPDURequestId + Choice() PatternFlowSnmpv2CPDURequestIdChoiceEnum + // setChoice assigns PatternFlowSnmpv2CPDURequestIdChoiceEnum provided by user to PatternFlowSnmpv2CPDURequestId + setChoice(value PatternFlowSnmpv2CPDURequestIdChoiceEnum) PatternFlowSnmpv2CPDURequestId + // HasChoice checks if Choice has been set in PatternFlowSnmpv2CPDURequestId + HasChoice() bool + // Value returns int32, set in PatternFlowSnmpv2CPDURequestId. + Value() int32 + // SetValue assigns int32 provided by user to PatternFlowSnmpv2CPDURequestId + SetValue(value int32) PatternFlowSnmpv2CPDURequestId + // HasValue checks if Value has been set in PatternFlowSnmpv2CPDURequestId + HasValue() bool + // Values returns []int32, set in PatternFlowSnmpv2CPDURequestId. + Values() []int32 + // SetValues assigns []int32 provided by user to PatternFlowSnmpv2CPDURequestId + SetValues(value []int32) PatternFlowSnmpv2CPDURequestId + // Increment returns PatternFlowSnmpv2CPDURequestIdCounter, set in PatternFlowSnmpv2CPDURequestId. + Increment() PatternFlowSnmpv2CPDURequestIdCounter + // SetIncrement assigns PatternFlowSnmpv2CPDURequestIdCounter provided by user to PatternFlowSnmpv2CPDURequestId. + SetIncrement(value PatternFlowSnmpv2CPDURequestIdCounter) PatternFlowSnmpv2CPDURequestId + // HasIncrement checks if Increment has been set in PatternFlowSnmpv2CPDURequestId + HasIncrement() bool + // Decrement returns PatternFlowSnmpv2CPDURequestIdCounter, set in PatternFlowSnmpv2CPDURequestId. + Decrement() PatternFlowSnmpv2CPDURequestIdCounter + // SetDecrement assigns PatternFlowSnmpv2CPDURequestIdCounter provided by user to PatternFlowSnmpv2CPDURequestId. + SetDecrement(value PatternFlowSnmpv2CPDURequestIdCounter) PatternFlowSnmpv2CPDURequestId + // HasDecrement checks if Decrement has been set in PatternFlowSnmpv2CPDURequestId + HasDecrement() bool + setNil() } -// Name of source IPv4 interface used for ping. -// -// x-constraint: -// - /components/schemas/Device.Ipv4/properties/name -// -// x-constraint: -// - /components/schemas/Device.Ipv4/properties/name -// -// SrcName returns a string -func (obj *actionResponseProtocolIpv4PingResponse) SrcName() string { +type PatternFlowSnmpv2CPDURequestIdChoiceEnum string - return *obj.obj.SrcName +// Enum of Choice on PatternFlowSnmpv2CPDURequestId +var PatternFlowSnmpv2CPDURequestIdChoice = struct { + VALUE PatternFlowSnmpv2CPDURequestIdChoiceEnum + VALUES PatternFlowSnmpv2CPDURequestIdChoiceEnum + INCREMENT PatternFlowSnmpv2CPDURequestIdChoiceEnum + DECREMENT PatternFlowSnmpv2CPDURequestIdChoiceEnum +}{ + VALUE: PatternFlowSnmpv2CPDURequestIdChoiceEnum("value"), + VALUES: PatternFlowSnmpv2CPDURequestIdChoiceEnum("values"), + INCREMENT: PatternFlowSnmpv2CPDURequestIdChoiceEnum("increment"), + DECREMENT: PatternFlowSnmpv2CPDURequestIdChoiceEnum("decrement"), +} +func (obj *patternFlowSnmpv2CPDURequestId) Choice() PatternFlowSnmpv2CPDURequestIdChoiceEnum { + return PatternFlowSnmpv2CPDURequestIdChoiceEnum(obj.obj.Choice.Enum().String()) } -// Name of source IPv4 interface used for ping. -// -// x-constraint: -// - /components/schemas/Device.Ipv4/properties/name -// -// x-constraint: -// - /components/schemas/Device.Ipv4/properties/name -// -// SetSrcName sets the string value in the ActionResponseProtocolIpv4PingResponse object -func (obj *actionResponseProtocolIpv4PingResponse) SetSrcName(value string) ActionResponseProtocolIpv4PingResponse { +// description is TBD +// Choice returns a string +func (obj *patternFlowSnmpv2CPDURequestId) HasChoice() bool { + return obj.obj.Choice != nil +} + +func (obj *patternFlowSnmpv2CPDURequestId) setChoice(value PatternFlowSnmpv2CPDURequestIdChoiceEnum) PatternFlowSnmpv2CPDURequestId { + intValue, ok := otg.PatternFlowSnmpv2CPDURequestId_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on PatternFlowSnmpv2CPDURequestIdChoiceEnum", string(value))) + return obj + } + enumValue := otg.PatternFlowSnmpv2CPDURequestId_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.Decrement = nil + obj.decrementHolder = nil + obj.obj.Increment = nil + obj.incrementHolder = nil + obj.obj.Values = nil + obj.obj.Value = nil + + if value == PatternFlowSnmpv2CPDURequestIdChoice.VALUE { + defaultValue := int32(0) + obj.obj.Value = &defaultValue + } + + if value == PatternFlowSnmpv2CPDURequestIdChoice.VALUES { + defaultValue := []int32{0} + obj.obj.Values = defaultValue + } + + if value == PatternFlowSnmpv2CPDURequestIdChoice.INCREMENT { + obj.obj.Increment = NewPatternFlowSnmpv2CPDURequestIdCounter().msg() + } + + if value == PatternFlowSnmpv2CPDURequestIdChoice.DECREMENT { + obj.obj.Decrement = NewPatternFlowSnmpv2CPDURequestIdCounter().msg() + } - obj.obj.SrcName = &value return obj } -// Destination IPv4 address used for ping. -// DstIp returns a string -func (obj *actionResponseProtocolIpv4PingResponse) DstIp() string { +// description is TBD +// Value returns a int32 +func (obj *patternFlowSnmpv2CPDURequestId) Value() int32 { - return *obj.obj.DstIp + if obj.obj.Value == nil { + obj.setChoice(PatternFlowSnmpv2CPDURequestIdChoice.VALUE) + } + + return *obj.obj.Value } -// Destination IPv4 address used for ping. -// SetDstIp sets the string value in the ActionResponseProtocolIpv4PingResponse object -func (obj *actionResponseProtocolIpv4PingResponse) SetDstIp(value string) ActionResponseProtocolIpv4PingResponse { +// description is TBD +// Value returns a int32 +func (obj *patternFlowSnmpv2CPDURequestId) HasValue() bool { + return obj.obj.Value != nil +} - obj.obj.DstIp = &value +// description is TBD +// SetValue sets the int32 value in the PatternFlowSnmpv2CPDURequestId object +func (obj *patternFlowSnmpv2CPDURequestId) SetValue(value int32) PatternFlowSnmpv2CPDURequestId { + obj.setChoice(PatternFlowSnmpv2CPDURequestIdChoice.VALUE) + obj.obj.Value = &value return obj } -type ActionResponseProtocolIpv4PingResponseResultEnum string +// description is TBD +// Values returns a []int32 +func (obj *patternFlowSnmpv2CPDURequestId) Values() []int32 { + if obj.obj.Values == nil { + obj.SetValues([]int32{0}) + } + return obj.obj.Values +} -// Enum of Result on ActionResponseProtocolIpv4PingResponse -var ActionResponseProtocolIpv4PingResponseResult = struct { - SUCCEEDED ActionResponseProtocolIpv4PingResponseResultEnum - FAILED ActionResponseProtocolIpv4PingResponseResultEnum -}{ - SUCCEEDED: ActionResponseProtocolIpv4PingResponseResultEnum("succeeded"), - FAILED: ActionResponseProtocolIpv4PingResponseResultEnum("failed"), +// description is TBD +// SetValues sets the []int32 value in the PatternFlowSnmpv2CPDURequestId object +func (obj *patternFlowSnmpv2CPDURequestId) SetValues(value []int32) PatternFlowSnmpv2CPDURequestId { + obj.setChoice(PatternFlowSnmpv2CPDURequestIdChoice.VALUES) + if obj.obj.Values == nil { + obj.obj.Values = make([]int32, 0) + } + obj.obj.Values = value + + return obj } -func (obj *actionResponseProtocolIpv4PingResponse) Result() ActionResponseProtocolIpv4PingResponseResultEnum { - return ActionResponseProtocolIpv4PingResponseResultEnum(obj.obj.Result.Enum().String()) +// description is TBD +// Increment returns a PatternFlowSnmpv2CPDURequestIdCounter +func (obj *patternFlowSnmpv2CPDURequestId) Increment() PatternFlowSnmpv2CPDURequestIdCounter { + if obj.obj.Increment == nil { + obj.setChoice(PatternFlowSnmpv2CPDURequestIdChoice.INCREMENT) + } + if obj.incrementHolder == nil { + obj.incrementHolder = &patternFlowSnmpv2CPDURequestIdCounter{obj: obj.obj.Increment} + } + return obj.incrementHolder } -func (obj *actionResponseProtocolIpv4PingResponse) SetResult(value ActionResponseProtocolIpv4PingResponseResultEnum) ActionResponseProtocolIpv4PingResponse { - intValue, ok := otg.ActionResponseProtocolIpv4PingResponse_Result_Enum_value[string(value)] - if !ok { - obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( - "%s is not a valid choice on ActionResponseProtocolIpv4PingResponseResultEnum", string(value))) - return obj +// description is TBD +// Increment returns a PatternFlowSnmpv2CPDURequestIdCounter +func (obj *patternFlowSnmpv2CPDURequestId) HasIncrement() bool { + return obj.obj.Increment != nil +} + +// description is TBD +// SetIncrement sets the PatternFlowSnmpv2CPDURequestIdCounter value in the PatternFlowSnmpv2CPDURequestId object +func (obj *patternFlowSnmpv2CPDURequestId) SetIncrement(value PatternFlowSnmpv2CPDURequestIdCounter) PatternFlowSnmpv2CPDURequestId { + obj.setChoice(PatternFlowSnmpv2CPDURequestIdChoice.INCREMENT) + obj.incrementHolder = nil + obj.obj.Increment = value.msg() + + return obj +} + +// description is TBD +// Decrement returns a PatternFlowSnmpv2CPDURequestIdCounter +func (obj *patternFlowSnmpv2CPDURequestId) Decrement() PatternFlowSnmpv2CPDURequestIdCounter { + if obj.obj.Decrement == nil { + obj.setChoice(PatternFlowSnmpv2CPDURequestIdChoice.DECREMENT) } - enumValue := otg.ActionResponseProtocolIpv4PingResponse_Result_Enum(intValue) - obj.obj.Result = &enumValue + if obj.decrementHolder == nil { + obj.decrementHolder = &patternFlowSnmpv2CPDURequestIdCounter{obj: obj.obj.Decrement} + } + return obj.decrementHolder +} + +// description is TBD +// Decrement returns a PatternFlowSnmpv2CPDURequestIdCounter +func (obj *patternFlowSnmpv2CPDURequestId) HasDecrement() bool { + return obj.obj.Decrement != nil +} + +// description is TBD +// SetDecrement sets the PatternFlowSnmpv2CPDURequestIdCounter value in the PatternFlowSnmpv2CPDURequestId object +func (obj *patternFlowSnmpv2CPDURequestId) SetDecrement(value PatternFlowSnmpv2CPDURequestIdCounter) PatternFlowSnmpv2CPDURequestId { + obj.setChoice(PatternFlowSnmpv2CPDURequestIdChoice.DECREMENT) + obj.decrementHolder = nil + obj.obj.Decrement = value.msg() return obj } -func (obj *actionResponseProtocolIpv4PingResponse) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowSnmpv2CPDURequestId) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - // SrcName is required - if obj.obj.SrcName == nil { - vObj.validationErrors = append(vObj.validationErrors, "SrcName is required field on interface ActionResponseProtocolIpv4PingResponse") - } + if obj.obj.Increment != nil { - // DstIp is required - if obj.obj.DstIp == nil { - vObj.validationErrors = append(vObj.validationErrors, "DstIp is required field on interface ActionResponseProtocolIpv4PingResponse") + obj.Increment().validateObj(vObj, set_default) } - if obj.obj.DstIp != nil { - err := obj.validateIpv4(obj.DstIp()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on ActionResponseProtocolIpv4PingResponse.DstIp")) - } + if obj.obj.Decrement != nil { + obj.Decrement().validateObj(vObj, set_default) } - // Result is required - if obj.obj.Result == nil { - vObj.validationErrors = append(vObj.validationErrors, "Result is required field on interface ActionResponseProtocolIpv4PingResponse") - } } -func (obj *actionResponseProtocolIpv4PingResponse) setDefault() { +func (obj *patternFlowSnmpv2CPDURequestId) setDefault() { + if obj.obj.Choice == nil { + obj.setChoice(PatternFlowSnmpv2CPDURequestIdChoice.VALUE) + + } } -// ***** ActionResponseProtocolIpv6PingResponse ***** -type actionResponseProtocolIpv6PingResponse struct { +// ***** PatternFlowSnmpv2CPDUErrorIndex ***** +type patternFlowSnmpv2CPDUErrorIndex struct { validation - obj *otg.ActionResponseProtocolIpv6PingResponse - marshaller marshalActionResponseProtocolIpv6PingResponse - unMarshaller unMarshalActionResponseProtocolIpv6PingResponse + obj *otg.PatternFlowSnmpv2CPDUErrorIndex + marshaller marshalPatternFlowSnmpv2CPDUErrorIndex + unMarshaller unMarshalPatternFlowSnmpv2CPDUErrorIndex + incrementHolder PatternFlowSnmpv2CPDUErrorIndexCounter + decrementHolder PatternFlowSnmpv2CPDUErrorIndexCounter } -func NewActionResponseProtocolIpv6PingResponse() ActionResponseProtocolIpv6PingResponse { - obj := actionResponseProtocolIpv6PingResponse{obj: &otg.ActionResponseProtocolIpv6PingResponse{}} +func NewPatternFlowSnmpv2CPDUErrorIndex() PatternFlowSnmpv2CPDUErrorIndex { + obj := patternFlowSnmpv2CPDUErrorIndex{obj: &otg.PatternFlowSnmpv2CPDUErrorIndex{}} obj.setDefault() return &obj } -func (obj *actionResponseProtocolIpv6PingResponse) msg() *otg.ActionResponseProtocolIpv6PingResponse { +func (obj *patternFlowSnmpv2CPDUErrorIndex) msg() *otg.PatternFlowSnmpv2CPDUErrorIndex { return obj.obj } -func (obj *actionResponseProtocolIpv6PingResponse) setMsg(msg *otg.ActionResponseProtocolIpv6PingResponse) ActionResponseProtocolIpv6PingResponse { - +func (obj *patternFlowSnmpv2CPDUErrorIndex) setMsg(msg *otg.PatternFlowSnmpv2CPDUErrorIndex) PatternFlowSnmpv2CPDUErrorIndex { + obj.setNil() proto.Merge(obj.obj, msg) return obj } -type marshalactionResponseProtocolIpv6PingResponse struct { - obj *actionResponseProtocolIpv6PingResponse +type marshalpatternFlowSnmpv2CPDUErrorIndex struct { + obj *patternFlowSnmpv2CPDUErrorIndex } -type marshalActionResponseProtocolIpv6PingResponse interface { - // ToProto marshals ActionResponseProtocolIpv6PingResponse to protobuf object *otg.ActionResponseProtocolIpv6PingResponse - ToProto() (*otg.ActionResponseProtocolIpv6PingResponse, error) - // ToPbText marshals ActionResponseProtocolIpv6PingResponse to protobuf text +type marshalPatternFlowSnmpv2CPDUErrorIndex interface { + // ToProto marshals PatternFlowSnmpv2CPDUErrorIndex to protobuf object *otg.PatternFlowSnmpv2CPDUErrorIndex + ToProto() (*otg.PatternFlowSnmpv2CPDUErrorIndex, error) + // ToPbText marshals PatternFlowSnmpv2CPDUErrorIndex to protobuf text ToPbText() (string, error) - // ToYaml marshals ActionResponseProtocolIpv6PingResponse to YAML text + // ToYaml marshals PatternFlowSnmpv2CPDUErrorIndex to YAML text ToYaml() (string, error) - // ToJson marshals ActionResponseProtocolIpv6PingResponse to JSON text + // ToJson marshals PatternFlowSnmpv2CPDUErrorIndex to JSON text ToJson() (string, error) } -type unMarshalactionResponseProtocolIpv6PingResponse struct { - obj *actionResponseProtocolIpv6PingResponse +type unMarshalpatternFlowSnmpv2CPDUErrorIndex struct { + obj *patternFlowSnmpv2CPDUErrorIndex } -type unMarshalActionResponseProtocolIpv6PingResponse interface { - // FromProto unmarshals ActionResponseProtocolIpv6PingResponse from protobuf object *otg.ActionResponseProtocolIpv6PingResponse - FromProto(msg *otg.ActionResponseProtocolIpv6PingResponse) (ActionResponseProtocolIpv6PingResponse, error) - // FromPbText unmarshals ActionResponseProtocolIpv6PingResponse from protobuf text +type unMarshalPatternFlowSnmpv2CPDUErrorIndex interface { + // FromProto unmarshals PatternFlowSnmpv2CPDUErrorIndex from protobuf object *otg.PatternFlowSnmpv2CPDUErrorIndex + FromProto(msg *otg.PatternFlowSnmpv2CPDUErrorIndex) (PatternFlowSnmpv2CPDUErrorIndex, error) + // FromPbText unmarshals PatternFlowSnmpv2CPDUErrorIndex from protobuf text FromPbText(value string) error - // FromYaml unmarshals ActionResponseProtocolIpv6PingResponse from YAML text + // FromYaml unmarshals PatternFlowSnmpv2CPDUErrorIndex from YAML text FromYaml(value string) error - // FromJson unmarshals ActionResponseProtocolIpv6PingResponse from JSON text + // FromJson unmarshals PatternFlowSnmpv2CPDUErrorIndex from JSON text FromJson(value string) error } -func (obj *actionResponseProtocolIpv6PingResponse) Marshal() marshalActionResponseProtocolIpv6PingResponse { +func (obj *patternFlowSnmpv2CPDUErrorIndex) Marshal() marshalPatternFlowSnmpv2CPDUErrorIndex { if obj.marshaller == nil { - obj.marshaller = &marshalactionResponseProtocolIpv6PingResponse{obj: obj} + obj.marshaller = &marshalpatternFlowSnmpv2CPDUErrorIndex{obj: obj} } return obj.marshaller } -func (obj *actionResponseProtocolIpv6PingResponse) Unmarshal() unMarshalActionResponseProtocolIpv6PingResponse { +func (obj *patternFlowSnmpv2CPDUErrorIndex) Unmarshal() unMarshalPatternFlowSnmpv2CPDUErrorIndex { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalactionResponseProtocolIpv6PingResponse{obj: obj} + obj.unMarshaller = &unMarshalpatternFlowSnmpv2CPDUErrorIndex{obj: obj} } return obj.unMarshaller } -func (m *marshalactionResponseProtocolIpv6PingResponse) ToProto() (*otg.ActionResponseProtocolIpv6PingResponse, error) { +func (m *marshalpatternFlowSnmpv2CPDUErrorIndex) ToProto() (*otg.PatternFlowSnmpv2CPDUErrorIndex, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -320195,7 +323398,7 @@ func (m *marshalactionResponseProtocolIpv6PingResponse) ToProto() (*otg.ActionRe return m.obj.msg(), nil } -func (m *unMarshalactionResponseProtocolIpv6PingResponse) FromProto(msg *otg.ActionResponseProtocolIpv6PingResponse) (ActionResponseProtocolIpv6PingResponse, error) { +func (m *unMarshalpatternFlowSnmpv2CPDUErrorIndex) FromProto(msg *otg.PatternFlowSnmpv2CPDUErrorIndex) (PatternFlowSnmpv2CPDUErrorIndex, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -320204,7 +323407,7 @@ func (m *unMarshalactionResponseProtocolIpv6PingResponse) FromProto(msg *otg.Act return newObj, nil } -func (m *marshalactionResponseProtocolIpv6PingResponse) ToPbText() (string, error) { +func (m *marshalpatternFlowSnmpv2CPDUErrorIndex) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -320216,12 +323419,12 @@ func (m *marshalactionResponseProtocolIpv6PingResponse) ToPbText() (string, erro return string(protoMarshal), nil } -func (m *unMarshalactionResponseProtocolIpv6PingResponse) FromPbText(value string) error { +func (m *unMarshalpatternFlowSnmpv2CPDUErrorIndex) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -320229,7 +323432,7 @@ func (m *unMarshalactionResponseProtocolIpv6PingResponse) FromPbText(value strin return retObj } -func (m *marshalactionResponseProtocolIpv6PingResponse) ToYaml() (string, error) { +func (m *marshalpatternFlowSnmpv2CPDUErrorIndex) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -320250,7 +323453,7 @@ func (m *marshalactionResponseProtocolIpv6PingResponse) ToYaml() (string, error) return string(data), nil } -func (m *unMarshalactionResponseProtocolIpv6PingResponse) FromYaml(value string) error { +func (m *unMarshalpatternFlowSnmpv2CPDUErrorIndex) FromYaml(value string) error { if value == "" { value = "{}" } @@ -320267,7 +323470,7 @@ func (m *unMarshalactionResponseProtocolIpv6PingResponse) FromYaml(value string) return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -320275,7 +323478,7 @@ func (m *unMarshalactionResponseProtocolIpv6PingResponse) FromYaml(value string) return nil } -func (m *marshalactionResponseProtocolIpv6PingResponse) ToJson() (string, error) { +func (m *marshalpatternFlowSnmpv2CPDUErrorIndex) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -320293,7 +323496,7 @@ func (m *marshalactionResponseProtocolIpv6PingResponse) ToJson() (string, error) return string(data), nil } -func (m *unMarshalactionResponseProtocolIpv6PingResponse) FromJson(value string) error { +func (m *unMarshalpatternFlowSnmpv2CPDUErrorIndex) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -320306,7 +323509,7 @@ func (m *unMarshalactionResponseProtocolIpv6PingResponse) FromJson(value string) return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() err := m.obj.validateToAndFrom() if err != nil { return err @@ -320314,19 +323517,19 @@ func (m *unMarshalactionResponseProtocolIpv6PingResponse) FromJson(value string) return nil } -func (obj *actionResponseProtocolIpv6PingResponse) validateToAndFrom() error { +func (obj *patternFlowSnmpv2CPDUErrorIndex) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *actionResponseProtocolIpv6PingResponse) validate() error { +func (obj *patternFlowSnmpv2CPDUErrorIndex) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *actionResponseProtocolIpv6PingResponse) String() string { +func (obj *patternFlowSnmpv2CPDUErrorIndex) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -320334,12 +323537,12 @@ func (obj *actionResponseProtocolIpv6PingResponse) String() string { return str } -func (obj *actionResponseProtocolIpv6PingResponse) Clone() (ActionResponseProtocolIpv6PingResponse, error) { +func (obj *patternFlowSnmpv2CPDUErrorIndex) Clone() (PatternFlowSnmpv2CPDUErrorIndex, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewActionResponseProtocolIpv6PingResponse() + newObj := NewPatternFlowSnmpv2CPDUErrorIndex() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -320351,218 +323554,327 @@ func (obj *actionResponseProtocolIpv6PingResponse) Clone() (ActionResponseProtoc return newObj, nil } -// ActionResponseProtocolIpv6PingResponse is response for ping initiated between a single source and destination pair. -type ActionResponseProtocolIpv6PingResponse interface { +func (obj *patternFlowSnmpv2CPDUErrorIndex) setNil() { + obj.incrementHolder = nil + obj.decrementHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// PatternFlowSnmpv2CPDUErrorIndex is when Error Status is non-zero, this field contains a pointer that specifies which object generated the error. Always zero in a request. +type PatternFlowSnmpv2CPDUErrorIndex interface { Validation - // msg marshals ActionResponseProtocolIpv6PingResponse to protobuf object *otg.ActionResponseProtocolIpv6PingResponse + // msg marshals PatternFlowSnmpv2CPDUErrorIndex to protobuf object *otg.PatternFlowSnmpv2CPDUErrorIndex // and doesn't set defaults - msg() *otg.ActionResponseProtocolIpv6PingResponse - // setMsg unmarshals ActionResponseProtocolIpv6PingResponse from protobuf object *otg.ActionResponseProtocolIpv6PingResponse + msg() *otg.PatternFlowSnmpv2CPDUErrorIndex + // setMsg unmarshals PatternFlowSnmpv2CPDUErrorIndex from protobuf object *otg.PatternFlowSnmpv2CPDUErrorIndex // and doesn't set defaults - setMsg(*otg.ActionResponseProtocolIpv6PingResponse) ActionResponseProtocolIpv6PingResponse + setMsg(*otg.PatternFlowSnmpv2CPDUErrorIndex) PatternFlowSnmpv2CPDUErrorIndex // provides marshal interface - Marshal() marshalActionResponseProtocolIpv6PingResponse + Marshal() marshalPatternFlowSnmpv2CPDUErrorIndex // provides unmarshal interface - Unmarshal() unMarshalActionResponseProtocolIpv6PingResponse - // validate validates ActionResponseProtocolIpv6PingResponse + Unmarshal() unMarshalPatternFlowSnmpv2CPDUErrorIndex + // validate validates PatternFlowSnmpv2CPDUErrorIndex validate() error // A stringer function String() string // Clones the object - Clone() (ActionResponseProtocolIpv6PingResponse, error) + Clone() (PatternFlowSnmpv2CPDUErrorIndex, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // SrcName returns string, set in ActionResponseProtocolIpv6PingResponse. - SrcName() string - // SetSrcName assigns string provided by user to ActionResponseProtocolIpv6PingResponse - SetSrcName(value string) ActionResponseProtocolIpv6PingResponse - // DstIp returns string, set in ActionResponseProtocolIpv6PingResponse. - DstIp() string - // SetDstIp assigns string provided by user to ActionResponseProtocolIpv6PingResponse - SetDstIp(value string) ActionResponseProtocolIpv6PingResponse - // Result returns ActionResponseProtocolIpv6PingResponseResultEnum, set in ActionResponseProtocolIpv6PingResponse - Result() ActionResponseProtocolIpv6PingResponseResultEnum - // SetResult assigns ActionResponseProtocolIpv6PingResponseResultEnum provided by user to ActionResponseProtocolIpv6PingResponse - SetResult(value ActionResponseProtocolIpv6PingResponseResultEnum) ActionResponseProtocolIpv6PingResponse + // Choice returns PatternFlowSnmpv2CPDUErrorIndexChoiceEnum, set in PatternFlowSnmpv2CPDUErrorIndex + Choice() PatternFlowSnmpv2CPDUErrorIndexChoiceEnum + // setChoice assigns PatternFlowSnmpv2CPDUErrorIndexChoiceEnum provided by user to PatternFlowSnmpv2CPDUErrorIndex + setChoice(value PatternFlowSnmpv2CPDUErrorIndexChoiceEnum) PatternFlowSnmpv2CPDUErrorIndex + // HasChoice checks if Choice has been set in PatternFlowSnmpv2CPDUErrorIndex + HasChoice() bool + // Value returns uint32, set in PatternFlowSnmpv2CPDUErrorIndex. + Value() uint32 + // SetValue assigns uint32 provided by user to PatternFlowSnmpv2CPDUErrorIndex + SetValue(value uint32) PatternFlowSnmpv2CPDUErrorIndex + // HasValue checks if Value has been set in PatternFlowSnmpv2CPDUErrorIndex + HasValue() bool + // Values returns []uint32, set in PatternFlowSnmpv2CPDUErrorIndex. + Values() []uint32 + // SetValues assigns []uint32 provided by user to PatternFlowSnmpv2CPDUErrorIndex + SetValues(value []uint32) PatternFlowSnmpv2CPDUErrorIndex + // Increment returns PatternFlowSnmpv2CPDUErrorIndexCounter, set in PatternFlowSnmpv2CPDUErrorIndex. + Increment() PatternFlowSnmpv2CPDUErrorIndexCounter + // SetIncrement assigns PatternFlowSnmpv2CPDUErrorIndexCounter provided by user to PatternFlowSnmpv2CPDUErrorIndex. + SetIncrement(value PatternFlowSnmpv2CPDUErrorIndexCounter) PatternFlowSnmpv2CPDUErrorIndex + // HasIncrement checks if Increment has been set in PatternFlowSnmpv2CPDUErrorIndex + HasIncrement() bool + // Decrement returns PatternFlowSnmpv2CPDUErrorIndexCounter, set in PatternFlowSnmpv2CPDUErrorIndex. + Decrement() PatternFlowSnmpv2CPDUErrorIndexCounter + // SetDecrement assigns PatternFlowSnmpv2CPDUErrorIndexCounter provided by user to PatternFlowSnmpv2CPDUErrorIndex. + SetDecrement(value PatternFlowSnmpv2CPDUErrorIndexCounter) PatternFlowSnmpv2CPDUErrorIndex + // HasDecrement checks if Decrement has been set in PatternFlowSnmpv2CPDUErrorIndex + HasDecrement() bool + setNil() } -// Name of source IPv6 interface used for ping. -// -// x-constraint: -// - /components/schemas/Device.Ipv6/properties/name -// -// x-constraint: -// - /components/schemas/Device.Ipv6/properties/name -// -// SrcName returns a string -func (obj *actionResponseProtocolIpv6PingResponse) SrcName() string { +type PatternFlowSnmpv2CPDUErrorIndexChoiceEnum string - return *obj.obj.SrcName +// Enum of Choice on PatternFlowSnmpv2CPDUErrorIndex +var PatternFlowSnmpv2CPDUErrorIndexChoice = struct { + VALUE PatternFlowSnmpv2CPDUErrorIndexChoiceEnum + VALUES PatternFlowSnmpv2CPDUErrorIndexChoiceEnum + INCREMENT PatternFlowSnmpv2CPDUErrorIndexChoiceEnum + DECREMENT PatternFlowSnmpv2CPDUErrorIndexChoiceEnum +}{ + VALUE: PatternFlowSnmpv2CPDUErrorIndexChoiceEnum("value"), + VALUES: PatternFlowSnmpv2CPDUErrorIndexChoiceEnum("values"), + INCREMENT: PatternFlowSnmpv2CPDUErrorIndexChoiceEnum("increment"), + DECREMENT: PatternFlowSnmpv2CPDUErrorIndexChoiceEnum("decrement"), +} +func (obj *patternFlowSnmpv2CPDUErrorIndex) Choice() PatternFlowSnmpv2CPDUErrorIndexChoiceEnum { + return PatternFlowSnmpv2CPDUErrorIndexChoiceEnum(obj.obj.Choice.Enum().String()) } -// Name of source IPv6 interface used for ping. -// -// x-constraint: -// - /components/schemas/Device.Ipv6/properties/name -// -// x-constraint: -// - /components/schemas/Device.Ipv6/properties/name -// -// SetSrcName sets the string value in the ActionResponseProtocolIpv6PingResponse object -func (obj *actionResponseProtocolIpv6PingResponse) SetSrcName(value string) ActionResponseProtocolIpv6PingResponse { +// description is TBD +// Choice returns a string +func (obj *patternFlowSnmpv2CPDUErrorIndex) HasChoice() bool { + return obj.obj.Choice != nil +} + +func (obj *patternFlowSnmpv2CPDUErrorIndex) setChoice(value PatternFlowSnmpv2CPDUErrorIndexChoiceEnum) PatternFlowSnmpv2CPDUErrorIndex { + intValue, ok := otg.PatternFlowSnmpv2CPDUErrorIndex_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on PatternFlowSnmpv2CPDUErrorIndexChoiceEnum", string(value))) + return obj + } + enumValue := otg.PatternFlowSnmpv2CPDUErrorIndex_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.Decrement = nil + obj.decrementHolder = nil + obj.obj.Increment = nil + obj.incrementHolder = nil + obj.obj.Values = nil + obj.obj.Value = nil + + if value == PatternFlowSnmpv2CPDUErrorIndexChoice.VALUE { + defaultValue := uint32(0) + obj.obj.Value = &defaultValue + } + + if value == PatternFlowSnmpv2CPDUErrorIndexChoice.VALUES { + defaultValue := []uint32{0} + obj.obj.Values = defaultValue + } + + if value == PatternFlowSnmpv2CPDUErrorIndexChoice.INCREMENT { + obj.obj.Increment = NewPatternFlowSnmpv2CPDUErrorIndexCounter().msg() + } + + if value == PatternFlowSnmpv2CPDUErrorIndexChoice.DECREMENT { + obj.obj.Decrement = NewPatternFlowSnmpv2CPDUErrorIndexCounter().msg() + } - obj.obj.SrcName = &value return obj } -// Destination IPv6 address used for ping. -// DstIp returns a string -func (obj *actionResponseProtocolIpv6PingResponse) DstIp() string { +// description is TBD +// Value returns a uint32 +func (obj *patternFlowSnmpv2CPDUErrorIndex) Value() uint32 { - return *obj.obj.DstIp + if obj.obj.Value == nil { + obj.setChoice(PatternFlowSnmpv2CPDUErrorIndexChoice.VALUE) + } + + return *obj.obj.Value } -// Destination IPv6 address used for ping. -// SetDstIp sets the string value in the ActionResponseProtocolIpv6PingResponse object -func (obj *actionResponseProtocolIpv6PingResponse) SetDstIp(value string) ActionResponseProtocolIpv6PingResponse { +// description is TBD +// Value returns a uint32 +func (obj *patternFlowSnmpv2CPDUErrorIndex) HasValue() bool { + return obj.obj.Value != nil +} - obj.obj.DstIp = &value +// description is TBD +// SetValue sets the uint32 value in the PatternFlowSnmpv2CPDUErrorIndex object +func (obj *patternFlowSnmpv2CPDUErrorIndex) SetValue(value uint32) PatternFlowSnmpv2CPDUErrorIndex { + obj.setChoice(PatternFlowSnmpv2CPDUErrorIndexChoice.VALUE) + obj.obj.Value = &value return obj } -type ActionResponseProtocolIpv6PingResponseResultEnum string +// description is TBD +// Values returns a []uint32 +func (obj *patternFlowSnmpv2CPDUErrorIndex) Values() []uint32 { + if obj.obj.Values == nil { + obj.SetValues([]uint32{0}) + } + return obj.obj.Values +} -// Enum of Result on ActionResponseProtocolIpv6PingResponse -var ActionResponseProtocolIpv6PingResponseResult = struct { - SUCCEEDED ActionResponseProtocolIpv6PingResponseResultEnum - FAILED ActionResponseProtocolIpv6PingResponseResultEnum -}{ - SUCCEEDED: ActionResponseProtocolIpv6PingResponseResultEnum("succeeded"), - FAILED: ActionResponseProtocolIpv6PingResponseResultEnum("failed"), +// description is TBD +// SetValues sets the []uint32 value in the PatternFlowSnmpv2CPDUErrorIndex object +func (obj *patternFlowSnmpv2CPDUErrorIndex) SetValues(value []uint32) PatternFlowSnmpv2CPDUErrorIndex { + obj.setChoice(PatternFlowSnmpv2CPDUErrorIndexChoice.VALUES) + if obj.obj.Values == nil { + obj.obj.Values = make([]uint32, 0) + } + obj.obj.Values = value + + return obj } -func (obj *actionResponseProtocolIpv6PingResponse) Result() ActionResponseProtocolIpv6PingResponseResultEnum { - return ActionResponseProtocolIpv6PingResponseResultEnum(obj.obj.Result.Enum().String()) +// description is TBD +// Increment returns a PatternFlowSnmpv2CPDUErrorIndexCounter +func (obj *patternFlowSnmpv2CPDUErrorIndex) Increment() PatternFlowSnmpv2CPDUErrorIndexCounter { + if obj.obj.Increment == nil { + obj.setChoice(PatternFlowSnmpv2CPDUErrorIndexChoice.INCREMENT) + } + if obj.incrementHolder == nil { + obj.incrementHolder = &patternFlowSnmpv2CPDUErrorIndexCounter{obj: obj.obj.Increment} + } + return obj.incrementHolder } -func (obj *actionResponseProtocolIpv6PingResponse) SetResult(value ActionResponseProtocolIpv6PingResponseResultEnum) ActionResponseProtocolIpv6PingResponse { - intValue, ok := otg.ActionResponseProtocolIpv6PingResponse_Result_Enum_value[string(value)] - if !ok { - obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( - "%s is not a valid choice on ActionResponseProtocolIpv6PingResponseResultEnum", string(value))) - return obj +// description is TBD +// Increment returns a PatternFlowSnmpv2CPDUErrorIndexCounter +func (obj *patternFlowSnmpv2CPDUErrorIndex) HasIncrement() bool { + return obj.obj.Increment != nil +} + +// description is TBD +// SetIncrement sets the PatternFlowSnmpv2CPDUErrorIndexCounter value in the PatternFlowSnmpv2CPDUErrorIndex object +func (obj *patternFlowSnmpv2CPDUErrorIndex) SetIncrement(value PatternFlowSnmpv2CPDUErrorIndexCounter) PatternFlowSnmpv2CPDUErrorIndex { + obj.setChoice(PatternFlowSnmpv2CPDUErrorIndexChoice.INCREMENT) + obj.incrementHolder = nil + obj.obj.Increment = value.msg() + + return obj +} + +// description is TBD +// Decrement returns a PatternFlowSnmpv2CPDUErrorIndexCounter +func (obj *patternFlowSnmpv2CPDUErrorIndex) Decrement() PatternFlowSnmpv2CPDUErrorIndexCounter { + if obj.obj.Decrement == nil { + obj.setChoice(PatternFlowSnmpv2CPDUErrorIndexChoice.DECREMENT) } - enumValue := otg.ActionResponseProtocolIpv6PingResponse_Result_Enum(intValue) - obj.obj.Result = &enumValue + if obj.decrementHolder == nil { + obj.decrementHolder = &patternFlowSnmpv2CPDUErrorIndexCounter{obj: obj.obj.Decrement} + } + return obj.decrementHolder +} + +// description is TBD +// Decrement returns a PatternFlowSnmpv2CPDUErrorIndexCounter +func (obj *patternFlowSnmpv2CPDUErrorIndex) HasDecrement() bool { + return obj.obj.Decrement != nil +} + +// description is TBD +// SetDecrement sets the PatternFlowSnmpv2CPDUErrorIndexCounter value in the PatternFlowSnmpv2CPDUErrorIndex object +func (obj *patternFlowSnmpv2CPDUErrorIndex) SetDecrement(value PatternFlowSnmpv2CPDUErrorIndexCounter) PatternFlowSnmpv2CPDUErrorIndex { + obj.setChoice(PatternFlowSnmpv2CPDUErrorIndexChoice.DECREMENT) + obj.decrementHolder = nil + obj.obj.Decrement = value.msg() return obj } -func (obj *actionResponseProtocolIpv6PingResponse) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowSnmpv2CPDUErrorIndex) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - // SrcName is required - if obj.obj.SrcName == nil { - vObj.validationErrors = append(vObj.validationErrors, "SrcName is required field on interface ActionResponseProtocolIpv6PingResponse") - } + if obj.obj.Increment != nil { - // DstIp is required - if obj.obj.DstIp == nil { - vObj.validationErrors = append(vObj.validationErrors, "DstIp is required field on interface ActionResponseProtocolIpv6PingResponse") + obj.Increment().validateObj(vObj, set_default) } - if obj.obj.DstIp != nil { - err := obj.validateIpv6(obj.DstIp()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on ActionResponseProtocolIpv6PingResponse.DstIp")) - } + if obj.obj.Decrement != nil { + obj.Decrement().validateObj(vObj, set_default) } - // Result is required - if obj.obj.Result == nil { - vObj.validationErrors = append(vObj.validationErrors, "Result is required field on interface ActionResponseProtocolIpv6PingResponse") - } } -func (obj *actionResponseProtocolIpv6PingResponse) setDefault() { +func (obj *patternFlowSnmpv2CPDUErrorIndex) setDefault() { + if obj.obj.Choice == nil { + obj.setChoice(PatternFlowSnmpv2CPDUErrorIndexChoice.VALUE) + + } } -// ***** IsisLspneighbor ***** -type isisLspneighbor struct { +// ***** FlowSnmpv2CVariableBinding ***** +type flowSnmpv2CVariableBinding struct { validation - obj *otg.IsisLspneighbor - marshaller marshalIsisLspneighbor - unMarshaller unMarshalIsisLspneighbor + obj *otg.FlowSnmpv2CVariableBinding + marshaller marshalFlowSnmpv2CVariableBinding + unMarshaller unMarshalFlowSnmpv2CVariableBinding + valueHolder FlowSnmpv2CVariableBindingValue } -func NewIsisLspneighbor() IsisLspneighbor { - obj := isisLspneighbor{obj: &otg.IsisLspneighbor{}} +func NewFlowSnmpv2CVariableBinding() FlowSnmpv2CVariableBinding { + obj := flowSnmpv2CVariableBinding{obj: &otg.FlowSnmpv2CVariableBinding{}} obj.setDefault() return &obj } -func (obj *isisLspneighbor) msg() *otg.IsisLspneighbor { +func (obj *flowSnmpv2CVariableBinding) msg() *otg.FlowSnmpv2CVariableBinding { return obj.obj } -func (obj *isisLspneighbor) setMsg(msg *otg.IsisLspneighbor) IsisLspneighbor { - +func (obj *flowSnmpv2CVariableBinding) setMsg(msg *otg.FlowSnmpv2CVariableBinding) FlowSnmpv2CVariableBinding { + obj.setNil() proto.Merge(obj.obj, msg) return obj } -type marshalisisLspneighbor struct { - obj *isisLspneighbor +type marshalflowSnmpv2CVariableBinding struct { + obj *flowSnmpv2CVariableBinding } -type marshalIsisLspneighbor interface { - // ToProto marshals IsisLspneighbor to protobuf object *otg.IsisLspneighbor - ToProto() (*otg.IsisLspneighbor, error) - // ToPbText marshals IsisLspneighbor to protobuf text +type marshalFlowSnmpv2CVariableBinding interface { + // ToProto marshals FlowSnmpv2CVariableBinding to protobuf object *otg.FlowSnmpv2CVariableBinding + ToProto() (*otg.FlowSnmpv2CVariableBinding, error) + // ToPbText marshals FlowSnmpv2CVariableBinding to protobuf text ToPbText() (string, error) - // ToYaml marshals IsisLspneighbor to YAML text + // ToYaml marshals FlowSnmpv2CVariableBinding to YAML text ToYaml() (string, error) - // ToJson marshals IsisLspneighbor to JSON text + // ToJson marshals FlowSnmpv2CVariableBinding to JSON text ToJson() (string, error) } -type unMarshalisisLspneighbor struct { - obj *isisLspneighbor +type unMarshalflowSnmpv2CVariableBinding struct { + obj *flowSnmpv2CVariableBinding } -type unMarshalIsisLspneighbor interface { - // FromProto unmarshals IsisLspneighbor from protobuf object *otg.IsisLspneighbor - FromProto(msg *otg.IsisLspneighbor) (IsisLspneighbor, error) - // FromPbText unmarshals IsisLspneighbor from protobuf text +type unMarshalFlowSnmpv2CVariableBinding interface { + // FromProto unmarshals FlowSnmpv2CVariableBinding from protobuf object *otg.FlowSnmpv2CVariableBinding + FromProto(msg *otg.FlowSnmpv2CVariableBinding) (FlowSnmpv2CVariableBinding, error) + // FromPbText unmarshals FlowSnmpv2CVariableBinding from protobuf text FromPbText(value string) error - // FromYaml unmarshals IsisLspneighbor from YAML text + // FromYaml unmarshals FlowSnmpv2CVariableBinding from YAML text FromYaml(value string) error - // FromJson unmarshals IsisLspneighbor from JSON text + // FromJson unmarshals FlowSnmpv2CVariableBinding from JSON text FromJson(value string) error } -func (obj *isisLspneighbor) Marshal() marshalIsisLspneighbor { +func (obj *flowSnmpv2CVariableBinding) Marshal() marshalFlowSnmpv2CVariableBinding { if obj.marshaller == nil { - obj.marshaller = &marshalisisLspneighbor{obj: obj} + obj.marshaller = &marshalflowSnmpv2CVariableBinding{obj: obj} } return obj.marshaller } -func (obj *isisLspneighbor) Unmarshal() unMarshalIsisLspneighbor { +func (obj *flowSnmpv2CVariableBinding) Unmarshal() unMarshalFlowSnmpv2CVariableBinding { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalisisLspneighbor{obj: obj} + obj.unMarshaller = &unMarshalflowSnmpv2CVariableBinding{obj: obj} } return obj.unMarshaller } -func (m *marshalisisLspneighbor) ToProto() (*otg.IsisLspneighbor, error) { +func (m *marshalflowSnmpv2CVariableBinding) ToProto() (*otg.FlowSnmpv2CVariableBinding, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -320570,7 +323882,7 @@ func (m *marshalisisLspneighbor) ToProto() (*otg.IsisLspneighbor, error) { return m.obj.msg(), nil } -func (m *unMarshalisisLspneighbor) FromProto(msg *otg.IsisLspneighbor) (IsisLspneighbor, error) { +func (m *unMarshalflowSnmpv2CVariableBinding) FromProto(msg *otg.FlowSnmpv2CVariableBinding) (FlowSnmpv2CVariableBinding, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -320579,7 +323891,7 @@ func (m *unMarshalisisLspneighbor) FromProto(msg *otg.IsisLspneighbor) (IsisLspn return newObj, nil } -func (m *marshalisisLspneighbor) ToPbText() (string, error) { +func (m *marshalflowSnmpv2CVariableBinding) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -320591,12 +323903,12 @@ func (m *marshalisisLspneighbor) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalisisLspneighbor) FromPbText(value string) error { +func (m *unMarshalflowSnmpv2CVariableBinding) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -320604,7 +323916,7 @@ func (m *unMarshalisisLspneighbor) FromPbText(value string) error { return retObj } -func (m *marshalisisLspneighbor) ToYaml() (string, error) { +func (m *marshalflowSnmpv2CVariableBinding) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -320625,7 +323937,7 @@ func (m *marshalisisLspneighbor) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalisisLspneighbor) FromYaml(value string) error { +func (m *unMarshalflowSnmpv2CVariableBinding) FromYaml(value string) error { if value == "" { value = "{}" } @@ -320642,7 +323954,7 @@ func (m *unMarshalisisLspneighbor) FromYaml(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -320650,7 +323962,7 @@ func (m *unMarshalisisLspneighbor) FromYaml(value string) error { return nil } -func (m *marshalisisLspneighbor) ToJson() (string, error) { +func (m *marshalflowSnmpv2CVariableBinding) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -320668,7 +323980,7 @@ func (m *marshalisisLspneighbor) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalisisLspneighbor) FromJson(value string) error { +func (m *unMarshalflowSnmpv2CVariableBinding) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -320681,7 +323993,7 @@ func (m *unMarshalisisLspneighbor) FromJson(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() err := m.obj.validateToAndFrom() if err != nil { return err @@ -320689,19 +324001,19 @@ func (m *unMarshalisisLspneighbor) FromJson(value string) error { return nil } -func (obj *isisLspneighbor) validateToAndFrom() error { +func (obj *flowSnmpv2CVariableBinding) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *isisLspneighbor) validate() error { +func (obj *flowSnmpv2CVariableBinding) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *isisLspneighbor) String() string { +func (obj *flowSnmpv2CVariableBinding) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -320709,12 +324021,12 @@ func (obj *isisLspneighbor) String() string { return str } -func (obj *isisLspneighbor) Clone() (IsisLspneighbor, error) { +func (obj *flowSnmpv2CVariableBinding) Clone() (FlowSnmpv2CVariableBinding, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewIsisLspneighbor() + newObj := NewFlowSnmpv2CVariableBinding() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -320726,147 +324038,238 @@ func (obj *isisLspneighbor) Clone() (IsisLspneighbor, error) { return newObj, nil } -// IsisLspneighbor is this contains IS neighbors. -type IsisLspneighbor interface { +func (obj *flowSnmpv2CVariableBinding) setNil() { + obj.valueHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// FlowSnmpv2CVariableBinding is a Sequence of two fields, an object_identifier and the value for/from that object_identifier. +type FlowSnmpv2CVariableBinding interface { Validation - // msg marshals IsisLspneighbor to protobuf object *otg.IsisLspneighbor + // msg marshals FlowSnmpv2CVariableBinding to protobuf object *otg.FlowSnmpv2CVariableBinding // and doesn't set defaults - msg() *otg.IsisLspneighbor - // setMsg unmarshals IsisLspneighbor from protobuf object *otg.IsisLspneighbor + msg() *otg.FlowSnmpv2CVariableBinding + // setMsg unmarshals FlowSnmpv2CVariableBinding from protobuf object *otg.FlowSnmpv2CVariableBinding // and doesn't set defaults - setMsg(*otg.IsisLspneighbor) IsisLspneighbor + setMsg(*otg.FlowSnmpv2CVariableBinding) FlowSnmpv2CVariableBinding // provides marshal interface - Marshal() marshalIsisLspneighbor + Marshal() marshalFlowSnmpv2CVariableBinding // provides unmarshal interface - Unmarshal() unMarshalIsisLspneighbor - // validate validates IsisLspneighbor + Unmarshal() unMarshalFlowSnmpv2CVariableBinding + // validate validates FlowSnmpv2CVariableBinding validate() error // A stringer function String() string // Clones the object - Clone() (IsisLspneighbor, error) + Clone() (FlowSnmpv2CVariableBinding, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // SystemId returns string, set in IsisLspneighbor. - SystemId() string - // SetSystemId assigns string provided by user to IsisLspneighbor - SetSystemId(value string) IsisLspneighbor - // HasSystemId checks if SystemId has been set in IsisLspneighbor - HasSystemId() bool + // ObjectIdentifier returns string, set in FlowSnmpv2CVariableBinding. + ObjectIdentifier() string + // SetObjectIdentifier assigns string provided by user to FlowSnmpv2CVariableBinding + SetObjectIdentifier(value string) FlowSnmpv2CVariableBinding + // HasObjectIdentifier checks if ObjectIdentifier has been set in FlowSnmpv2CVariableBinding + HasObjectIdentifier() bool + // Value returns FlowSnmpv2CVariableBindingValue, set in FlowSnmpv2CVariableBinding. + Value() FlowSnmpv2CVariableBindingValue + // SetValue assigns FlowSnmpv2CVariableBindingValue provided by user to FlowSnmpv2CVariableBinding. + SetValue(value FlowSnmpv2CVariableBindingValue) FlowSnmpv2CVariableBinding + // HasValue checks if Value has been set in FlowSnmpv2CVariableBinding + HasValue() bool + setNil() } -// The System ID for this emulated ISIS router, e.g. "640100010000". -// SystemId returns a string -func (obj *isisLspneighbor) SystemId() string { - - return *obj.obj.SystemId - +// The Object Identifier points to a particular parameter in the SNMP agent. +// - Encoding of this field follows RFC2578(section 3.5) and ASN.1 X.690(section 8.1.3.6) specification. +// Refer: http://www.itu.int/ITU-T/asn1/ +// - According to BER, the first two numbers of any OID (x.y) are encoded as one value using the formula (40*x)+y. +// Example, the first two numbers of an SNMP OID 1.3... are encoded as 43 or 0x2B, because (40*1)+3 = 43. +// - After the first two numbers are encoded, the subsequent numbers in the OID are each encoded as a byte. +// - However, a special rule is required for large numbers because one byte can only represent a number from 0-127. +// - The rule for large numbers states that only the lower 7 bits in the byte are used for holding the value (0-127). +// - The highest order bit(8th) is used as a flag to indicate that this number spans more than one byte. Therefore, any number over 127 must be encoded using more than one byte. +// - Example, the number 2680 in the OID '1.3.6.1.4.1.2680.1.2.7.3.2.0' cannot be encoded using a single byte. +// According to this rule, the number 2680 must be encoded as 0x94 0x78. +// Since the most significant bit is set in the first byte (0x94), it indicates that number spans to the next byte. +// Since the most significant bit is not set in the next byte (0x78), it indicates that the number ends at the second byte. +// The value is derived by appending 7 bits from each of the concatenated bytes i.e (0x14 *128^1) + (0x78 * 128^0) = 2680. +// ObjectIdentifier returns a string +func (obj *flowSnmpv2CVariableBinding) ObjectIdentifier() string { + + return *obj.obj.ObjectIdentifier + +} + +// The Object Identifier points to a particular parameter in the SNMP agent. +// - Encoding of this field follows RFC2578(section 3.5) and ASN.1 X.690(section 8.1.3.6) specification. +// Refer: http://www.itu.int/ITU-T/asn1/ +// - According to BER, the first two numbers of any OID (x.y) are encoded as one value using the formula (40*x)+y. +// Example, the first two numbers of an SNMP OID 1.3... are encoded as 43 or 0x2B, because (40*1)+3 = 43. +// - After the first two numbers are encoded, the subsequent numbers in the OID are each encoded as a byte. +// - However, a special rule is required for large numbers because one byte can only represent a number from 0-127. +// - The rule for large numbers states that only the lower 7 bits in the byte are used for holding the value (0-127). +// - The highest order bit(8th) is used as a flag to indicate that this number spans more than one byte. Therefore, any number over 127 must be encoded using more than one byte. +// - Example, the number 2680 in the OID '1.3.6.1.4.1.2680.1.2.7.3.2.0' cannot be encoded using a single byte. +// According to this rule, the number 2680 must be encoded as 0x94 0x78. +// Since the most significant bit is set in the first byte (0x94), it indicates that number spans to the next byte. +// Since the most significant bit is not set in the next byte (0x78), it indicates that the number ends at the second byte. +// The value is derived by appending 7 bits from each of the concatenated bytes i.e (0x14 *128^1) + (0x78 * 128^0) = 2680. +// ObjectIdentifier returns a string +func (obj *flowSnmpv2CVariableBinding) HasObjectIdentifier() bool { + return obj.obj.ObjectIdentifier != nil +} + +// The Object Identifier points to a particular parameter in the SNMP agent. +// - Encoding of this field follows RFC2578(section 3.5) and ASN.1 X.690(section 8.1.3.6) specification. +// Refer: http://www.itu.int/ITU-T/asn1/ +// - According to BER, the first two numbers of any OID (x.y) are encoded as one value using the formula (40*x)+y. +// Example, the first two numbers of an SNMP OID 1.3... are encoded as 43 or 0x2B, because (40*1)+3 = 43. +// - After the first two numbers are encoded, the subsequent numbers in the OID are each encoded as a byte. +// - However, a special rule is required for large numbers because one byte can only represent a number from 0-127. +// - The rule for large numbers states that only the lower 7 bits in the byte are used for holding the value (0-127). +// - The highest order bit(8th) is used as a flag to indicate that this number spans more than one byte. Therefore, any number over 127 must be encoded using more than one byte. +// - Example, the number 2680 in the OID '1.3.6.1.4.1.2680.1.2.7.3.2.0' cannot be encoded using a single byte. +// According to this rule, the number 2680 must be encoded as 0x94 0x78. +// Since the most significant bit is set in the first byte (0x94), it indicates that number spans to the next byte. +// Since the most significant bit is not set in the next byte (0x78), it indicates that the number ends at the second byte. +// The value is derived by appending 7 bits from each of the concatenated bytes i.e (0x14 *128^1) + (0x78 * 128^0) = 2680. +// SetObjectIdentifier sets the string value in the FlowSnmpv2CVariableBinding object +func (obj *flowSnmpv2CVariableBinding) SetObjectIdentifier(value string) FlowSnmpv2CVariableBinding { + + obj.obj.ObjectIdentifier = &value + return obj +} + +// description is TBD +// Value returns a FlowSnmpv2CVariableBindingValue +func (obj *flowSnmpv2CVariableBinding) Value() FlowSnmpv2CVariableBindingValue { + if obj.obj.Value == nil { + obj.obj.Value = NewFlowSnmpv2CVariableBindingValue().msg() + } + if obj.valueHolder == nil { + obj.valueHolder = &flowSnmpv2CVariableBindingValue{obj: obj.obj.Value} + } + return obj.valueHolder } -// The System ID for this emulated ISIS router, e.g. "640100010000". -// SystemId returns a string -func (obj *isisLspneighbor) HasSystemId() bool { - return obj.obj.SystemId != nil +// description is TBD +// Value returns a FlowSnmpv2CVariableBindingValue +func (obj *flowSnmpv2CVariableBinding) HasValue() bool { + return obj.obj.Value != nil } -// The System ID for this emulated ISIS router, e.g. "640100010000". -// SetSystemId sets the string value in the IsisLspneighbor object -func (obj *isisLspneighbor) SetSystemId(value string) IsisLspneighbor { +// description is TBD +// SetValue sets the FlowSnmpv2CVariableBindingValue value in the FlowSnmpv2CVariableBinding object +func (obj *flowSnmpv2CVariableBinding) SetValue(value FlowSnmpv2CVariableBindingValue) FlowSnmpv2CVariableBinding { + + obj.valueHolder = nil + obj.obj.Value = value.msg() - obj.obj.SystemId = &value return obj } -func (obj *isisLspneighbor) validateObj(vObj *validation, set_default bool) { +func (obj *flowSnmpv2CVariableBinding) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.SystemId != nil { + if obj.obj.ObjectIdentifier != nil { - err := obj.validateHex(obj.SystemId()) + err := obj.validateOid(obj.ObjectIdentifier()) if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on IsisLspneighbor.SystemId")) + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on FlowSnmpv2CVariableBinding.ObjectIdentifier")) } } + if obj.obj.Value != nil { + + obj.Value().validateObj(vObj, set_default) + } + } -func (obj *isisLspneighbor) setDefault() { +func (obj *flowSnmpv2CVariableBinding) setDefault() { + if obj.obj.ObjectIdentifier == nil { + obj.SetObjectIdentifier("0.1") + } } -// ***** IsisLspV4Prefix ***** -type isisLspV4Prefix struct { +// ***** PatternFlowSnmpv2CBulkPDURequestId ***** +type patternFlowSnmpv2CBulkPDURequestId struct { validation - obj *otg.IsisLspV4Prefix - marshaller marshalIsisLspV4Prefix - unMarshaller unMarshalIsisLspV4Prefix + obj *otg.PatternFlowSnmpv2CBulkPDURequestId + marshaller marshalPatternFlowSnmpv2CBulkPDURequestId + unMarshaller unMarshalPatternFlowSnmpv2CBulkPDURequestId + incrementHolder PatternFlowSnmpv2CBulkPDURequestIdCounter + decrementHolder PatternFlowSnmpv2CBulkPDURequestIdCounter } -func NewIsisLspV4Prefix() IsisLspV4Prefix { - obj := isisLspV4Prefix{obj: &otg.IsisLspV4Prefix{}} +func NewPatternFlowSnmpv2CBulkPDURequestId() PatternFlowSnmpv2CBulkPDURequestId { + obj := patternFlowSnmpv2CBulkPDURequestId{obj: &otg.PatternFlowSnmpv2CBulkPDURequestId{}} obj.setDefault() return &obj } -func (obj *isisLspV4Prefix) msg() *otg.IsisLspV4Prefix { +func (obj *patternFlowSnmpv2CBulkPDURequestId) msg() *otg.PatternFlowSnmpv2CBulkPDURequestId { return obj.obj } -func (obj *isisLspV4Prefix) setMsg(msg *otg.IsisLspV4Prefix) IsisLspV4Prefix { - +func (obj *patternFlowSnmpv2CBulkPDURequestId) setMsg(msg *otg.PatternFlowSnmpv2CBulkPDURequestId) PatternFlowSnmpv2CBulkPDURequestId { + obj.setNil() proto.Merge(obj.obj, msg) return obj } -type marshalisisLspV4Prefix struct { - obj *isisLspV4Prefix +type marshalpatternFlowSnmpv2CBulkPDURequestId struct { + obj *patternFlowSnmpv2CBulkPDURequestId } -type marshalIsisLspV4Prefix interface { - // ToProto marshals IsisLspV4Prefix to protobuf object *otg.IsisLspV4Prefix - ToProto() (*otg.IsisLspV4Prefix, error) - // ToPbText marshals IsisLspV4Prefix to protobuf text +type marshalPatternFlowSnmpv2CBulkPDURequestId interface { + // ToProto marshals PatternFlowSnmpv2CBulkPDURequestId to protobuf object *otg.PatternFlowSnmpv2CBulkPDURequestId + ToProto() (*otg.PatternFlowSnmpv2CBulkPDURequestId, error) + // ToPbText marshals PatternFlowSnmpv2CBulkPDURequestId to protobuf text ToPbText() (string, error) - // ToYaml marshals IsisLspV4Prefix to YAML text + // ToYaml marshals PatternFlowSnmpv2CBulkPDURequestId to YAML text ToYaml() (string, error) - // ToJson marshals IsisLspV4Prefix to JSON text + // ToJson marshals PatternFlowSnmpv2CBulkPDURequestId to JSON text ToJson() (string, error) } -type unMarshalisisLspV4Prefix struct { - obj *isisLspV4Prefix +type unMarshalpatternFlowSnmpv2CBulkPDURequestId struct { + obj *patternFlowSnmpv2CBulkPDURequestId } -type unMarshalIsisLspV4Prefix interface { - // FromProto unmarshals IsisLspV4Prefix from protobuf object *otg.IsisLspV4Prefix - FromProto(msg *otg.IsisLspV4Prefix) (IsisLspV4Prefix, error) - // FromPbText unmarshals IsisLspV4Prefix from protobuf text +type unMarshalPatternFlowSnmpv2CBulkPDURequestId interface { + // FromProto unmarshals PatternFlowSnmpv2CBulkPDURequestId from protobuf object *otg.PatternFlowSnmpv2CBulkPDURequestId + FromProto(msg *otg.PatternFlowSnmpv2CBulkPDURequestId) (PatternFlowSnmpv2CBulkPDURequestId, error) + // FromPbText unmarshals PatternFlowSnmpv2CBulkPDURequestId from protobuf text FromPbText(value string) error - // FromYaml unmarshals IsisLspV4Prefix from YAML text + // FromYaml unmarshals PatternFlowSnmpv2CBulkPDURequestId from YAML text FromYaml(value string) error - // FromJson unmarshals IsisLspV4Prefix from JSON text + // FromJson unmarshals PatternFlowSnmpv2CBulkPDURequestId from JSON text FromJson(value string) error } -func (obj *isisLspV4Prefix) Marshal() marshalIsisLspV4Prefix { +func (obj *patternFlowSnmpv2CBulkPDURequestId) Marshal() marshalPatternFlowSnmpv2CBulkPDURequestId { if obj.marshaller == nil { - obj.marshaller = &marshalisisLspV4Prefix{obj: obj} + obj.marshaller = &marshalpatternFlowSnmpv2CBulkPDURequestId{obj: obj} } return obj.marshaller } -func (obj *isisLspV4Prefix) Unmarshal() unMarshalIsisLspV4Prefix { +func (obj *patternFlowSnmpv2CBulkPDURequestId) Unmarshal() unMarshalPatternFlowSnmpv2CBulkPDURequestId { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalisisLspV4Prefix{obj: obj} + obj.unMarshaller = &unMarshalpatternFlowSnmpv2CBulkPDURequestId{obj: obj} } return obj.unMarshaller } -func (m *marshalisisLspV4Prefix) ToProto() (*otg.IsisLspV4Prefix, error) { +func (m *marshalpatternFlowSnmpv2CBulkPDURequestId) ToProto() (*otg.PatternFlowSnmpv2CBulkPDURequestId, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -320874,7 +324277,7 @@ func (m *marshalisisLspV4Prefix) ToProto() (*otg.IsisLspV4Prefix, error) { return m.obj.msg(), nil } -func (m *unMarshalisisLspV4Prefix) FromProto(msg *otg.IsisLspV4Prefix) (IsisLspV4Prefix, error) { +func (m *unMarshalpatternFlowSnmpv2CBulkPDURequestId) FromProto(msg *otg.PatternFlowSnmpv2CBulkPDURequestId) (PatternFlowSnmpv2CBulkPDURequestId, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -320883,7 +324286,7 @@ func (m *unMarshalisisLspV4Prefix) FromProto(msg *otg.IsisLspV4Prefix) (IsisLspV return newObj, nil } -func (m *marshalisisLspV4Prefix) ToPbText() (string, error) { +func (m *marshalpatternFlowSnmpv2CBulkPDURequestId) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -320895,12 +324298,12 @@ func (m *marshalisisLspV4Prefix) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalisisLspV4Prefix) FromPbText(value string) error { +func (m *unMarshalpatternFlowSnmpv2CBulkPDURequestId) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -320908,7 +324311,7 @@ func (m *unMarshalisisLspV4Prefix) FromPbText(value string) error { return retObj } -func (m *marshalisisLspV4Prefix) ToYaml() (string, error) { +func (m *marshalpatternFlowSnmpv2CBulkPDURequestId) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -320929,7 +324332,7 @@ func (m *marshalisisLspV4Prefix) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalisisLspV4Prefix) FromYaml(value string) error { +func (m *unMarshalpatternFlowSnmpv2CBulkPDURequestId) FromYaml(value string) error { if value == "" { value = "{}" } @@ -320946,7 +324349,7 @@ func (m *unMarshalisisLspV4Prefix) FromYaml(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -320954,7 +324357,7 @@ func (m *unMarshalisisLspV4Prefix) FromYaml(value string) error { return nil } -func (m *marshalisisLspV4Prefix) ToJson() (string, error) { +func (m *marshalpatternFlowSnmpv2CBulkPDURequestId) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -320972,7 +324375,7 @@ func (m *marshalisisLspV4Prefix) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalisisLspV4Prefix) FromJson(value string) error { +func (m *unMarshalpatternFlowSnmpv2CBulkPDURequestId) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -320985,7 +324388,7 @@ func (m *unMarshalisisLspV4Prefix) FromJson(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() err := m.obj.validateToAndFrom() if err != nil { return err @@ -320993,19 +324396,19 @@ func (m *unMarshalisisLspV4Prefix) FromJson(value string) error { return nil } -func (obj *isisLspV4Prefix) validateToAndFrom() error { +func (obj *patternFlowSnmpv2CBulkPDURequestId) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *isisLspV4Prefix) validate() error { +func (obj *patternFlowSnmpv2CBulkPDURequestId) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *isisLspV4Prefix) String() string { +func (obj *patternFlowSnmpv2CBulkPDURequestId) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -321013,12 +324416,12 @@ func (obj *isisLspV4Prefix) String() string { return str } -func (obj *isisLspV4Prefix) Clone() (IsisLspV4Prefix, error) { +func (obj *patternFlowSnmpv2CBulkPDURequestId) Clone() (PatternFlowSnmpv2CBulkPDURequestId, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewIsisLspV4Prefix() + newObj := NewPatternFlowSnmpv2CBulkPDURequestId() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -321030,291 +324433,331 @@ func (obj *isisLspV4Prefix) Clone() (IsisLspV4Prefix, error) { return newObj, nil } -// IsisLspV4Prefix is this group defines attributes of an IPv4 standard prefix. -type IsisLspV4Prefix interface { +func (obj *patternFlowSnmpv2CBulkPDURequestId) setNil() { + obj.incrementHolder = nil + obj.decrementHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// PatternFlowSnmpv2CBulkPDURequestId is identifies a particular SNMP request. +// This index is echoed back in the response from the SNMP agent, +// allowing the SNMP manager to match an incoming response to the appropriate request. +// +// - Encoding of this field follows ASN.1 X.690(section 8.3) specification. +// Refer: http://www.itu.int/ITU-T/asn1 +type PatternFlowSnmpv2CBulkPDURequestId interface { Validation - // msg marshals IsisLspV4Prefix to protobuf object *otg.IsisLspV4Prefix + // msg marshals PatternFlowSnmpv2CBulkPDURequestId to protobuf object *otg.PatternFlowSnmpv2CBulkPDURequestId // and doesn't set defaults - msg() *otg.IsisLspV4Prefix - // setMsg unmarshals IsisLspV4Prefix from protobuf object *otg.IsisLspV4Prefix + msg() *otg.PatternFlowSnmpv2CBulkPDURequestId + // setMsg unmarshals PatternFlowSnmpv2CBulkPDURequestId from protobuf object *otg.PatternFlowSnmpv2CBulkPDURequestId // and doesn't set defaults - setMsg(*otg.IsisLspV4Prefix) IsisLspV4Prefix + setMsg(*otg.PatternFlowSnmpv2CBulkPDURequestId) PatternFlowSnmpv2CBulkPDURequestId // provides marshal interface - Marshal() marshalIsisLspV4Prefix + Marshal() marshalPatternFlowSnmpv2CBulkPDURequestId // provides unmarshal interface - Unmarshal() unMarshalIsisLspV4Prefix - // validate validates IsisLspV4Prefix + Unmarshal() unMarshalPatternFlowSnmpv2CBulkPDURequestId + // validate validates PatternFlowSnmpv2CBulkPDURequestId validate() error // A stringer function String() string // Clones the object - Clone() (IsisLspV4Prefix, error) + Clone() (PatternFlowSnmpv2CBulkPDURequestId, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Ipv4Address returns string, set in IsisLspV4Prefix. - Ipv4Address() string - // SetIpv4Address assigns string provided by user to IsisLspV4Prefix - SetIpv4Address(value string) IsisLspV4Prefix - // HasIpv4Address checks if Ipv4Address has been set in IsisLspV4Prefix - HasIpv4Address() bool - // PrefixLength returns uint32, set in IsisLspV4Prefix. - PrefixLength() uint32 - // SetPrefixLength assigns uint32 provided by user to IsisLspV4Prefix - SetPrefixLength(value uint32) IsisLspV4Prefix - // HasPrefixLength checks if PrefixLength has been set in IsisLspV4Prefix - HasPrefixLength() bool - // RedistributionType returns IsisLspV4PrefixRedistributionTypeEnum, set in IsisLspV4Prefix - RedistributionType() IsisLspV4PrefixRedistributionTypeEnum - // SetRedistributionType assigns IsisLspV4PrefixRedistributionTypeEnum provided by user to IsisLspV4Prefix - SetRedistributionType(value IsisLspV4PrefixRedistributionTypeEnum) IsisLspV4Prefix - // HasRedistributionType checks if RedistributionType has been set in IsisLspV4Prefix - HasRedistributionType() bool - // DefaultMetric returns uint32, set in IsisLspV4Prefix. - DefaultMetric() uint32 - // SetDefaultMetric assigns uint32 provided by user to IsisLspV4Prefix - SetDefaultMetric(value uint32) IsisLspV4Prefix - // HasDefaultMetric checks if DefaultMetric has been set in IsisLspV4Prefix - HasDefaultMetric() bool - // OriginType returns IsisLspV4PrefixOriginTypeEnum, set in IsisLspV4Prefix - OriginType() IsisLspV4PrefixOriginTypeEnum - // SetOriginType assigns IsisLspV4PrefixOriginTypeEnum provided by user to IsisLspV4Prefix - SetOriginType(value IsisLspV4PrefixOriginTypeEnum) IsisLspV4Prefix - // HasOriginType checks if OriginType has been set in IsisLspV4Prefix - HasOriginType() bool + // Choice returns PatternFlowSnmpv2CBulkPDURequestIdChoiceEnum, set in PatternFlowSnmpv2CBulkPDURequestId + Choice() PatternFlowSnmpv2CBulkPDURequestIdChoiceEnum + // setChoice assigns PatternFlowSnmpv2CBulkPDURequestIdChoiceEnum provided by user to PatternFlowSnmpv2CBulkPDURequestId + setChoice(value PatternFlowSnmpv2CBulkPDURequestIdChoiceEnum) PatternFlowSnmpv2CBulkPDURequestId + // HasChoice checks if Choice has been set in PatternFlowSnmpv2CBulkPDURequestId + HasChoice() bool + // Value returns int32, set in PatternFlowSnmpv2CBulkPDURequestId. + Value() int32 + // SetValue assigns int32 provided by user to PatternFlowSnmpv2CBulkPDURequestId + SetValue(value int32) PatternFlowSnmpv2CBulkPDURequestId + // HasValue checks if Value has been set in PatternFlowSnmpv2CBulkPDURequestId + HasValue() bool + // Values returns []int32, set in PatternFlowSnmpv2CBulkPDURequestId. + Values() []int32 + // SetValues assigns []int32 provided by user to PatternFlowSnmpv2CBulkPDURequestId + SetValues(value []int32) PatternFlowSnmpv2CBulkPDURequestId + // Increment returns PatternFlowSnmpv2CBulkPDURequestIdCounter, set in PatternFlowSnmpv2CBulkPDURequestId. + Increment() PatternFlowSnmpv2CBulkPDURequestIdCounter + // SetIncrement assigns PatternFlowSnmpv2CBulkPDURequestIdCounter provided by user to PatternFlowSnmpv2CBulkPDURequestId. + SetIncrement(value PatternFlowSnmpv2CBulkPDURequestIdCounter) PatternFlowSnmpv2CBulkPDURequestId + // HasIncrement checks if Increment has been set in PatternFlowSnmpv2CBulkPDURequestId + HasIncrement() bool + // Decrement returns PatternFlowSnmpv2CBulkPDURequestIdCounter, set in PatternFlowSnmpv2CBulkPDURequestId. + Decrement() PatternFlowSnmpv2CBulkPDURequestIdCounter + // SetDecrement assigns PatternFlowSnmpv2CBulkPDURequestIdCounter provided by user to PatternFlowSnmpv2CBulkPDURequestId. + SetDecrement(value PatternFlowSnmpv2CBulkPDURequestIdCounter) PatternFlowSnmpv2CBulkPDURequestId + // HasDecrement checks if Decrement has been set in PatternFlowSnmpv2CBulkPDURequestId + HasDecrement() bool + setNil() } -// An IPv4 unicast prefix reachable via the originator of this LSP. -// Ipv4Address returns a string -func (obj *isisLspV4Prefix) Ipv4Address() string { - - return *obj.obj.Ipv4Address +type PatternFlowSnmpv2CBulkPDURequestIdChoiceEnum string +// Enum of Choice on PatternFlowSnmpv2CBulkPDURequestId +var PatternFlowSnmpv2CBulkPDURequestIdChoice = struct { + VALUE PatternFlowSnmpv2CBulkPDURequestIdChoiceEnum + VALUES PatternFlowSnmpv2CBulkPDURequestIdChoiceEnum + INCREMENT PatternFlowSnmpv2CBulkPDURequestIdChoiceEnum + DECREMENT PatternFlowSnmpv2CBulkPDURequestIdChoiceEnum +}{ + VALUE: PatternFlowSnmpv2CBulkPDURequestIdChoiceEnum("value"), + VALUES: PatternFlowSnmpv2CBulkPDURequestIdChoiceEnum("values"), + INCREMENT: PatternFlowSnmpv2CBulkPDURequestIdChoiceEnum("increment"), + DECREMENT: PatternFlowSnmpv2CBulkPDURequestIdChoiceEnum("decrement"), } -// An IPv4 unicast prefix reachable via the originator of this LSP. -// Ipv4Address returns a string -func (obj *isisLspV4Prefix) HasIpv4Address() bool { - return obj.obj.Ipv4Address != nil +func (obj *patternFlowSnmpv2CBulkPDURequestId) Choice() PatternFlowSnmpv2CBulkPDURequestIdChoiceEnum { + return PatternFlowSnmpv2CBulkPDURequestIdChoiceEnum(obj.obj.Choice.Enum().String()) } -// An IPv4 unicast prefix reachable via the originator of this LSP. -// SetIpv4Address sets the string value in the IsisLspV4Prefix object -func (obj *isisLspV4Prefix) SetIpv4Address(value string) IsisLspV4Prefix { - - obj.obj.Ipv4Address = &value - return obj +// description is TBD +// Choice returns a string +func (obj *patternFlowSnmpv2CBulkPDURequestId) HasChoice() bool { + return obj.obj.Choice != nil } -// The length of the IPv4 prefix. -// PrefixLength returns a uint32 -func (obj *isisLspV4Prefix) PrefixLength() uint32 { +func (obj *patternFlowSnmpv2CBulkPDURequestId) setChoice(value PatternFlowSnmpv2CBulkPDURequestIdChoiceEnum) PatternFlowSnmpv2CBulkPDURequestId { + intValue, ok := otg.PatternFlowSnmpv2CBulkPDURequestId_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on PatternFlowSnmpv2CBulkPDURequestIdChoiceEnum", string(value))) + return obj + } + enumValue := otg.PatternFlowSnmpv2CBulkPDURequestId_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.Decrement = nil + obj.decrementHolder = nil + obj.obj.Increment = nil + obj.incrementHolder = nil + obj.obj.Values = nil + obj.obj.Value = nil - return *obj.obj.PrefixLength + if value == PatternFlowSnmpv2CBulkPDURequestIdChoice.VALUE { + defaultValue := int32(0) + obj.obj.Value = &defaultValue + } -} + if value == PatternFlowSnmpv2CBulkPDURequestIdChoice.VALUES { + defaultValue := []int32{0} + obj.obj.Values = defaultValue + } -// The length of the IPv4 prefix. -// PrefixLength returns a uint32 -func (obj *isisLspV4Prefix) HasPrefixLength() bool { - return obj.obj.PrefixLength != nil -} + if value == PatternFlowSnmpv2CBulkPDURequestIdChoice.INCREMENT { + obj.obj.Increment = NewPatternFlowSnmpv2CBulkPDURequestIdCounter().msg() + } -// The length of the IPv4 prefix. -// SetPrefixLength sets the uint32 value in the IsisLspV4Prefix object -func (obj *isisLspV4Prefix) SetPrefixLength(value uint32) IsisLspV4Prefix { + if value == PatternFlowSnmpv2CBulkPDURequestIdChoice.DECREMENT { + obj.obj.Decrement = NewPatternFlowSnmpv2CBulkPDURequestIdCounter().msg() + } - obj.obj.PrefixLength = &value return obj } -type IsisLspV4PrefixRedistributionTypeEnum string +// description is TBD +// Value returns a int32 +func (obj *patternFlowSnmpv2CBulkPDURequestId) Value() int32 { -// Enum of RedistributionType on IsisLspV4Prefix -var IsisLspV4PrefixRedistributionType = struct { - UP IsisLspV4PrefixRedistributionTypeEnum - DOWN IsisLspV4PrefixRedistributionTypeEnum -}{ - UP: IsisLspV4PrefixRedistributionTypeEnum("up"), - DOWN: IsisLspV4PrefixRedistributionTypeEnum("down"), -} + if obj.obj.Value == nil { + obj.setChoice(PatternFlowSnmpv2CBulkPDURequestIdChoice.VALUE) + } -func (obj *isisLspV4Prefix) RedistributionType() IsisLspV4PrefixRedistributionTypeEnum { - return IsisLspV4PrefixRedistributionTypeEnum(obj.obj.RedistributionType.Enum().String()) -} + return *obj.obj.Value -// Up (0)-used when a prefix is initially advertised within the ISIS L3 hierarchy, -// and for all other prefixes in L1 and L2 LSPs. (default) -// Down (1)-used when an L1/L2 router advertises L2 prefixes in L1 LSPs. -// The prefixes are being advertised from a higher level (L2) down to a lower level (L1). -// RedistributionType returns a string -func (obj *isisLspV4Prefix) HasRedistributionType() bool { - return obj.obj.RedistributionType != nil } -func (obj *isisLspV4Prefix) SetRedistributionType(value IsisLspV4PrefixRedistributionTypeEnum) IsisLspV4Prefix { - intValue, ok := otg.IsisLspV4Prefix_RedistributionType_Enum_value[string(value)] - if !ok { - obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( - "%s is not a valid choice on IsisLspV4PrefixRedistributionTypeEnum", string(value))) - return obj - } - enumValue := otg.IsisLspV4Prefix_RedistributionType_Enum(intValue) - obj.obj.RedistributionType = &enumValue +// description is TBD +// Value returns a int32 +func (obj *patternFlowSnmpv2CBulkPDURequestId) HasValue() bool { + return obj.obj.Value != nil +} +// description is TBD +// SetValue sets the int32 value in the PatternFlowSnmpv2CBulkPDURequestId object +func (obj *patternFlowSnmpv2CBulkPDURequestId) SetValue(value int32) PatternFlowSnmpv2CBulkPDURequestId { + obj.setChoice(PatternFlowSnmpv2CBulkPDURequestIdChoice.VALUE) + obj.obj.Value = &value return obj } -// ISIS default metric value. -// DefaultMetric returns a uint32 -func (obj *isisLspV4Prefix) DefaultMetric() uint32 { +// description is TBD +// Values returns a []int32 +func (obj *patternFlowSnmpv2CBulkPDURequestId) Values() []int32 { + if obj.obj.Values == nil { + obj.SetValues([]int32{0}) + } + return obj.obj.Values +} - return *obj.obj.DefaultMetric +// description is TBD +// SetValues sets the []int32 value in the PatternFlowSnmpv2CBulkPDURequestId object +func (obj *patternFlowSnmpv2CBulkPDURequestId) SetValues(value []int32) PatternFlowSnmpv2CBulkPDURequestId { + obj.setChoice(PatternFlowSnmpv2CBulkPDURequestIdChoice.VALUES) + if obj.obj.Values == nil { + obj.obj.Values = make([]int32, 0) + } + obj.obj.Values = value + return obj } -// ISIS default metric value. -// DefaultMetric returns a uint32 -func (obj *isisLspV4Prefix) HasDefaultMetric() bool { - return obj.obj.DefaultMetric != nil +// description is TBD +// Increment returns a PatternFlowSnmpv2CBulkPDURequestIdCounter +func (obj *patternFlowSnmpv2CBulkPDURequestId) Increment() PatternFlowSnmpv2CBulkPDURequestIdCounter { + if obj.obj.Increment == nil { + obj.setChoice(PatternFlowSnmpv2CBulkPDURequestIdChoice.INCREMENT) + } + if obj.incrementHolder == nil { + obj.incrementHolder = &patternFlowSnmpv2CBulkPDURequestIdCounter{obj: obj.obj.Increment} + } + return obj.incrementHolder } -// ISIS default metric value. -// SetDefaultMetric sets the uint32 value in the IsisLspV4Prefix object -func (obj *isisLspV4Prefix) SetDefaultMetric(value uint32) IsisLspV4Prefix { - - obj.obj.DefaultMetric = &value - return obj +// description is TBD +// Increment returns a PatternFlowSnmpv2CBulkPDURequestIdCounter +func (obj *patternFlowSnmpv2CBulkPDURequestId) HasIncrement() bool { + return obj.obj.Increment != nil } -type IsisLspV4PrefixOriginTypeEnum string +// description is TBD +// SetIncrement sets the PatternFlowSnmpv2CBulkPDURequestIdCounter value in the PatternFlowSnmpv2CBulkPDURequestId object +func (obj *patternFlowSnmpv2CBulkPDURequestId) SetIncrement(value PatternFlowSnmpv2CBulkPDURequestIdCounter) PatternFlowSnmpv2CBulkPDURequestId { + obj.setChoice(PatternFlowSnmpv2CBulkPDURequestIdChoice.INCREMENT) + obj.incrementHolder = nil + obj.obj.Increment = value.msg() -// Enum of OriginType on IsisLspV4Prefix -var IsisLspV4PrefixOriginType = struct { - INTERNAL IsisLspV4PrefixOriginTypeEnum - EXTERNAL IsisLspV4PrefixOriginTypeEnum -}{ - INTERNAL: IsisLspV4PrefixOriginTypeEnum("internal"), - EXTERNAL: IsisLspV4PrefixOriginTypeEnum("external"), + return obj } -func (obj *isisLspV4Prefix) OriginType() IsisLspV4PrefixOriginTypeEnum { - return IsisLspV4PrefixOriginTypeEnum(obj.obj.OriginType.Enum().String()) +// description is TBD +// Decrement returns a PatternFlowSnmpv2CBulkPDURequestIdCounter +func (obj *patternFlowSnmpv2CBulkPDURequestId) Decrement() PatternFlowSnmpv2CBulkPDURequestIdCounter { + if obj.obj.Decrement == nil { + obj.setChoice(PatternFlowSnmpv2CBulkPDURequestIdChoice.DECREMENT) + } + if obj.decrementHolder == nil { + obj.decrementHolder = &patternFlowSnmpv2CBulkPDURequestIdCounter{obj: obj.obj.Decrement} + } + return obj.decrementHolder } -// The origin of the advertised route-internal or external to the ISIS area. Options include the following: -// Internal-for intra-area routes, through Level 1 LSPs. -// External-for inter-area routes redistributed within L1, through Level -// 1 LSPs. -// OriginType returns a string -func (obj *isisLspV4Prefix) HasOriginType() bool { - return obj.obj.OriginType != nil +// description is TBD +// Decrement returns a PatternFlowSnmpv2CBulkPDURequestIdCounter +func (obj *patternFlowSnmpv2CBulkPDURequestId) HasDecrement() bool { + return obj.obj.Decrement != nil } -func (obj *isisLspV4Prefix) SetOriginType(value IsisLspV4PrefixOriginTypeEnum) IsisLspV4Prefix { - intValue, ok := otg.IsisLspV4Prefix_OriginType_Enum_value[string(value)] - if !ok { - obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( - "%s is not a valid choice on IsisLspV4PrefixOriginTypeEnum", string(value))) - return obj - } - enumValue := otg.IsisLspV4Prefix_OriginType_Enum(intValue) - obj.obj.OriginType = &enumValue +// description is TBD +// SetDecrement sets the PatternFlowSnmpv2CBulkPDURequestIdCounter value in the PatternFlowSnmpv2CBulkPDURequestId object +func (obj *patternFlowSnmpv2CBulkPDURequestId) SetDecrement(value PatternFlowSnmpv2CBulkPDURequestIdCounter) PatternFlowSnmpv2CBulkPDURequestId { + obj.setChoice(PatternFlowSnmpv2CBulkPDURequestIdChoice.DECREMENT) + obj.decrementHolder = nil + obj.obj.Decrement = value.msg() return obj } -func (obj *isisLspV4Prefix) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowSnmpv2CBulkPDURequestId) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.PrefixLength != nil { + if obj.obj.Increment != nil { - if *obj.obj.PrefixLength > 32 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= IsisLspV4Prefix.PrefixLength <= 32 but Got %d", *obj.obj.PrefixLength)) - } + obj.Increment().validateObj(vObj, set_default) + } + + if obj.obj.Decrement != nil { + obj.Decrement().validateObj(vObj, set_default) } } -func (obj *isisLspV4Prefix) setDefault() { +func (obj *patternFlowSnmpv2CBulkPDURequestId) setDefault() { + if obj.obj.Choice == nil { + obj.setChoice(PatternFlowSnmpv2CBulkPDURequestIdChoice.VALUE) + + } } -// ***** IsisLspExtendedV4Prefix ***** -type isisLspExtendedV4Prefix struct { +// ***** PatternFlowSnmpv2CBulkPDUNonRepeaters ***** +type patternFlowSnmpv2CBulkPDUNonRepeaters struct { validation - obj *otg.IsisLspExtendedV4Prefix - marshaller marshalIsisLspExtendedV4Prefix - unMarshaller unMarshalIsisLspExtendedV4Prefix - prefixAttributesHolder IsisLspPrefixAttributes + obj *otg.PatternFlowSnmpv2CBulkPDUNonRepeaters + marshaller marshalPatternFlowSnmpv2CBulkPDUNonRepeaters + unMarshaller unMarshalPatternFlowSnmpv2CBulkPDUNonRepeaters } -func NewIsisLspExtendedV4Prefix() IsisLspExtendedV4Prefix { - obj := isisLspExtendedV4Prefix{obj: &otg.IsisLspExtendedV4Prefix{}} +func NewPatternFlowSnmpv2CBulkPDUNonRepeaters() PatternFlowSnmpv2CBulkPDUNonRepeaters { + obj := patternFlowSnmpv2CBulkPDUNonRepeaters{obj: &otg.PatternFlowSnmpv2CBulkPDUNonRepeaters{}} obj.setDefault() return &obj } -func (obj *isisLspExtendedV4Prefix) msg() *otg.IsisLspExtendedV4Prefix { +func (obj *patternFlowSnmpv2CBulkPDUNonRepeaters) msg() *otg.PatternFlowSnmpv2CBulkPDUNonRepeaters { return obj.obj } -func (obj *isisLspExtendedV4Prefix) setMsg(msg *otg.IsisLspExtendedV4Prefix) IsisLspExtendedV4Prefix { - obj.setNil() +func (obj *patternFlowSnmpv2CBulkPDUNonRepeaters) setMsg(msg *otg.PatternFlowSnmpv2CBulkPDUNonRepeaters) PatternFlowSnmpv2CBulkPDUNonRepeaters { + proto.Merge(obj.obj, msg) return obj } -type marshalisisLspExtendedV4Prefix struct { - obj *isisLspExtendedV4Prefix +type marshalpatternFlowSnmpv2CBulkPDUNonRepeaters struct { + obj *patternFlowSnmpv2CBulkPDUNonRepeaters } -type marshalIsisLspExtendedV4Prefix interface { - // ToProto marshals IsisLspExtendedV4Prefix to protobuf object *otg.IsisLspExtendedV4Prefix - ToProto() (*otg.IsisLspExtendedV4Prefix, error) - // ToPbText marshals IsisLspExtendedV4Prefix to protobuf text +type marshalPatternFlowSnmpv2CBulkPDUNonRepeaters interface { + // ToProto marshals PatternFlowSnmpv2CBulkPDUNonRepeaters to protobuf object *otg.PatternFlowSnmpv2CBulkPDUNonRepeaters + ToProto() (*otg.PatternFlowSnmpv2CBulkPDUNonRepeaters, error) + // ToPbText marshals PatternFlowSnmpv2CBulkPDUNonRepeaters to protobuf text ToPbText() (string, error) - // ToYaml marshals IsisLspExtendedV4Prefix to YAML text + // ToYaml marshals PatternFlowSnmpv2CBulkPDUNonRepeaters to YAML text ToYaml() (string, error) - // ToJson marshals IsisLspExtendedV4Prefix to JSON text + // ToJson marshals PatternFlowSnmpv2CBulkPDUNonRepeaters to JSON text ToJson() (string, error) } -type unMarshalisisLspExtendedV4Prefix struct { - obj *isisLspExtendedV4Prefix +type unMarshalpatternFlowSnmpv2CBulkPDUNonRepeaters struct { + obj *patternFlowSnmpv2CBulkPDUNonRepeaters } -type unMarshalIsisLspExtendedV4Prefix interface { - // FromProto unmarshals IsisLspExtendedV4Prefix from protobuf object *otg.IsisLspExtendedV4Prefix - FromProto(msg *otg.IsisLspExtendedV4Prefix) (IsisLspExtendedV4Prefix, error) - // FromPbText unmarshals IsisLspExtendedV4Prefix from protobuf text +type unMarshalPatternFlowSnmpv2CBulkPDUNonRepeaters interface { + // FromProto unmarshals PatternFlowSnmpv2CBulkPDUNonRepeaters from protobuf object *otg.PatternFlowSnmpv2CBulkPDUNonRepeaters + FromProto(msg *otg.PatternFlowSnmpv2CBulkPDUNonRepeaters) (PatternFlowSnmpv2CBulkPDUNonRepeaters, error) + // FromPbText unmarshals PatternFlowSnmpv2CBulkPDUNonRepeaters from protobuf text FromPbText(value string) error - // FromYaml unmarshals IsisLspExtendedV4Prefix from YAML text + // FromYaml unmarshals PatternFlowSnmpv2CBulkPDUNonRepeaters from YAML text FromYaml(value string) error - // FromJson unmarshals IsisLspExtendedV4Prefix from JSON text + // FromJson unmarshals PatternFlowSnmpv2CBulkPDUNonRepeaters from JSON text FromJson(value string) error } -func (obj *isisLspExtendedV4Prefix) Marshal() marshalIsisLspExtendedV4Prefix { +func (obj *patternFlowSnmpv2CBulkPDUNonRepeaters) Marshal() marshalPatternFlowSnmpv2CBulkPDUNonRepeaters { if obj.marshaller == nil { - obj.marshaller = &marshalisisLspExtendedV4Prefix{obj: obj} + obj.marshaller = &marshalpatternFlowSnmpv2CBulkPDUNonRepeaters{obj: obj} } return obj.marshaller } -func (obj *isisLspExtendedV4Prefix) Unmarshal() unMarshalIsisLspExtendedV4Prefix { +func (obj *patternFlowSnmpv2CBulkPDUNonRepeaters) Unmarshal() unMarshalPatternFlowSnmpv2CBulkPDUNonRepeaters { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalisisLspExtendedV4Prefix{obj: obj} + obj.unMarshaller = &unMarshalpatternFlowSnmpv2CBulkPDUNonRepeaters{obj: obj} } return obj.unMarshaller } -func (m *marshalisisLspExtendedV4Prefix) ToProto() (*otg.IsisLspExtendedV4Prefix, error) { +func (m *marshalpatternFlowSnmpv2CBulkPDUNonRepeaters) ToProto() (*otg.PatternFlowSnmpv2CBulkPDUNonRepeaters, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -321322,7 +324765,7 @@ func (m *marshalisisLspExtendedV4Prefix) ToProto() (*otg.IsisLspExtendedV4Prefix return m.obj.msg(), nil } -func (m *unMarshalisisLspExtendedV4Prefix) FromProto(msg *otg.IsisLspExtendedV4Prefix) (IsisLspExtendedV4Prefix, error) { +func (m *unMarshalpatternFlowSnmpv2CBulkPDUNonRepeaters) FromProto(msg *otg.PatternFlowSnmpv2CBulkPDUNonRepeaters) (PatternFlowSnmpv2CBulkPDUNonRepeaters, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -321331,7 +324774,7 @@ func (m *unMarshalisisLspExtendedV4Prefix) FromProto(msg *otg.IsisLspExtendedV4P return newObj, nil } -func (m *marshalisisLspExtendedV4Prefix) ToPbText() (string, error) { +func (m *marshalpatternFlowSnmpv2CBulkPDUNonRepeaters) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -321343,12 +324786,12 @@ func (m *marshalisisLspExtendedV4Prefix) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalisisLspExtendedV4Prefix) FromPbText(value string) error { +func (m *unMarshalpatternFlowSnmpv2CBulkPDUNonRepeaters) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - m.obj.setNil() + vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -321356,7 +324799,7 @@ func (m *unMarshalisisLspExtendedV4Prefix) FromPbText(value string) error { return retObj } -func (m *marshalisisLspExtendedV4Prefix) ToYaml() (string, error) { +func (m *marshalpatternFlowSnmpv2CBulkPDUNonRepeaters) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -321377,7 +324820,7 @@ func (m *marshalisisLspExtendedV4Prefix) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalisisLspExtendedV4Prefix) FromYaml(value string) error { +func (m *unMarshalpatternFlowSnmpv2CBulkPDUNonRepeaters) FromYaml(value string) error { if value == "" { value = "{}" } @@ -321394,7 +324837,7 @@ func (m *unMarshalisisLspExtendedV4Prefix) FromYaml(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - m.obj.setNil() + vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -321402,7 +324845,7 @@ func (m *unMarshalisisLspExtendedV4Prefix) FromYaml(value string) error { return nil } -func (m *marshalisisLspExtendedV4Prefix) ToJson() (string, error) { +func (m *marshalpatternFlowSnmpv2CBulkPDUNonRepeaters) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -321420,7 +324863,7 @@ func (m *marshalisisLspExtendedV4Prefix) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalisisLspExtendedV4Prefix) FromJson(value string) error { +func (m *unMarshalpatternFlowSnmpv2CBulkPDUNonRepeaters) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -321433,7 +324876,7 @@ func (m *unMarshalisisLspExtendedV4Prefix) FromJson(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - m.obj.setNil() + err := m.obj.validateToAndFrom() if err != nil { return err @@ -321441,19 +324884,19 @@ func (m *unMarshalisisLspExtendedV4Prefix) FromJson(value string) error { return nil } -func (obj *isisLspExtendedV4Prefix) validateToAndFrom() error { +func (obj *patternFlowSnmpv2CBulkPDUNonRepeaters) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *isisLspExtendedV4Prefix) validate() error { +func (obj *patternFlowSnmpv2CBulkPDUNonRepeaters) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *isisLspExtendedV4Prefix) String() string { +func (obj *patternFlowSnmpv2CBulkPDUNonRepeaters) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -321461,12 +324904,12 @@ func (obj *isisLspExtendedV4Prefix) String() string { return str } -func (obj *isisLspExtendedV4Prefix) Clone() (IsisLspExtendedV4Prefix, error) { +func (obj *patternFlowSnmpv2CBulkPDUNonRepeaters) Clone() (PatternFlowSnmpv2CBulkPDUNonRepeaters, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewIsisLspExtendedV4Prefix() + newObj := NewPatternFlowSnmpv2CBulkPDUNonRepeaters() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -321478,306 +324921,225 @@ func (obj *isisLspExtendedV4Prefix) Clone() (IsisLspExtendedV4Prefix, error) { return newObj, nil } -func (obj *isisLspExtendedV4Prefix) setNil() { - obj.prefixAttributesHolder = nil - obj.validationErrors = nil - obj.warnings = nil - obj.constraints = make(map[string]map[string]Constraints) -} - -// IsisLspExtendedV4Prefix is this group defines attributes of an IPv4 standard prefix. -type IsisLspExtendedV4Prefix interface { +// PatternFlowSnmpv2CBulkPDUNonRepeaters is one variable binding in the Response-PDU is requested for the first non_repeaters variable bindings in the GetBulkRequest. +type PatternFlowSnmpv2CBulkPDUNonRepeaters interface { Validation - // msg marshals IsisLspExtendedV4Prefix to protobuf object *otg.IsisLspExtendedV4Prefix + // msg marshals PatternFlowSnmpv2CBulkPDUNonRepeaters to protobuf object *otg.PatternFlowSnmpv2CBulkPDUNonRepeaters // and doesn't set defaults - msg() *otg.IsisLspExtendedV4Prefix - // setMsg unmarshals IsisLspExtendedV4Prefix from protobuf object *otg.IsisLspExtendedV4Prefix + msg() *otg.PatternFlowSnmpv2CBulkPDUNonRepeaters + // setMsg unmarshals PatternFlowSnmpv2CBulkPDUNonRepeaters from protobuf object *otg.PatternFlowSnmpv2CBulkPDUNonRepeaters // and doesn't set defaults - setMsg(*otg.IsisLspExtendedV4Prefix) IsisLspExtendedV4Prefix + setMsg(*otg.PatternFlowSnmpv2CBulkPDUNonRepeaters) PatternFlowSnmpv2CBulkPDUNonRepeaters // provides marshal interface - Marshal() marshalIsisLspExtendedV4Prefix + Marshal() marshalPatternFlowSnmpv2CBulkPDUNonRepeaters // provides unmarshal interface - Unmarshal() unMarshalIsisLspExtendedV4Prefix - // validate validates IsisLspExtendedV4Prefix + Unmarshal() unMarshalPatternFlowSnmpv2CBulkPDUNonRepeaters + // validate validates PatternFlowSnmpv2CBulkPDUNonRepeaters validate() error // A stringer function String() string // Clones the object - Clone() (IsisLspExtendedV4Prefix, error) + Clone() (PatternFlowSnmpv2CBulkPDUNonRepeaters, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Ipv4Address returns string, set in IsisLspExtendedV4Prefix. - Ipv4Address() string - // SetIpv4Address assigns string provided by user to IsisLspExtendedV4Prefix - SetIpv4Address(value string) IsisLspExtendedV4Prefix - // HasIpv4Address checks if Ipv4Address has been set in IsisLspExtendedV4Prefix - HasIpv4Address() bool - // PrefixLength returns uint32, set in IsisLspExtendedV4Prefix. - PrefixLength() uint32 - // SetPrefixLength assigns uint32 provided by user to IsisLspExtendedV4Prefix - SetPrefixLength(value uint32) IsisLspExtendedV4Prefix - // HasPrefixLength checks if PrefixLength has been set in IsisLspExtendedV4Prefix - HasPrefixLength() bool - // Metric returns uint32, set in IsisLspExtendedV4Prefix. - Metric() uint32 - // SetMetric assigns uint32 provided by user to IsisLspExtendedV4Prefix - SetMetric(value uint32) IsisLspExtendedV4Prefix - // HasMetric checks if Metric has been set in IsisLspExtendedV4Prefix - HasMetric() bool - // RedistributionType returns IsisLspExtendedV4PrefixRedistributionTypeEnum, set in IsisLspExtendedV4Prefix - RedistributionType() IsisLspExtendedV4PrefixRedistributionTypeEnum - // SetRedistributionType assigns IsisLspExtendedV4PrefixRedistributionTypeEnum provided by user to IsisLspExtendedV4Prefix - SetRedistributionType(value IsisLspExtendedV4PrefixRedistributionTypeEnum) IsisLspExtendedV4Prefix - // HasRedistributionType checks if RedistributionType has been set in IsisLspExtendedV4Prefix - HasRedistributionType() bool - // PrefixAttributes returns IsisLspPrefixAttributes, set in IsisLspExtendedV4Prefix. - // IsisLspPrefixAttributes is this contains the properties of ISIS Prefix attributes for the extended IPv4 and IPv6 reachability. https://www.rfc-editor.org/rfc/rfc7794.html - PrefixAttributes() IsisLspPrefixAttributes - // SetPrefixAttributes assigns IsisLspPrefixAttributes provided by user to IsisLspExtendedV4Prefix. - // IsisLspPrefixAttributes is this contains the properties of ISIS Prefix attributes for the extended IPv4 and IPv6 reachability. https://www.rfc-editor.org/rfc/rfc7794.html - SetPrefixAttributes(value IsisLspPrefixAttributes) IsisLspExtendedV4Prefix - // HasPrefixAttributes checks if PrefixAttributes has been set in IsisLspExtendedV4Prefix - HasPrefixAttributes() bool - setNil() + // Choice returns PatternFlowSnmpv2CBulkPDUNonRepeatersChoiceEnum, set in PatternFlowSnmpv2CBulkPDUNonRepeaters + Choice() PatternFlowSnmpv2CBulkPDUNonRepeatersChoiceEnum + // setChoice assigns PatternFlowSnmpv2CBulkPDUNonRepeatersChoiceEnum provided by user to PatternFlowSnmpv2CBulkPDUNonRepeaters + setChoice(value PatternFlowSnmpv2CBulkPDUNonRepeatersChoiceEnum) PatternFlowSnmpv2CBulkPDUNonRepeaters + // HasChoice checks if Choice has been set in PatternFlowSnmpv2CBulkPDUNonRepeaters + HasChoice() bool + // Value returns uint32, set in PatternFlowSnmpv2CBulkPDUNonRepeaters. + Value() uint32 + // SetValue assigns uint32 provided by user to PatternFlowSnmpv2CBulkPDUNonRepeaters + SetValue(value uint32) PatternFlowSnmpv2CBulkPDUNonRepeaters + // HasValue checks if Value has been set in PatternFlowSnmpv2CBulkPDUNonRepeaters + HasValue() bool + // Values returns []uint32, set in PatternFlowSnmpv2CBulkPDUNonRepeaters. + Values() []uint32 + // SetValues assigns []uint32 provided by user to PatternFlowSnmpv2CBulkPDUNonRepeaters + SetValues(value []uint32) PatternFlowSnmpv2CBulkPDUNonRepeaters } -// An IPv4 unicast prefix reachable via the originator of this LSP. -// Ipv4Address returns a string -func (obj *isisLspExtendedV4Prefix) Ipv4Address() string { +type PatternFlowSnmpv2CBulkPDUNonRepeatersChoiceEnum string - return *obj.obj.Ipv4Address +// Enum of Choice on PatternFlowSnmpv2CBulkPDUNonRepeaters +var PatternFlowSnmpv2CBulkPDUNonRepeatersChoice = struct { + VALUE PatternFlowSnmpv2CBulkPDUNonRepeatersChoiceEnum + VALUES PatternFlowSnmpv2CBulkPDUNonRepeatersChoiceEnum +}{ + VALUE: PatternFlowSnmpv2CBulkPDUNonRepeatersChoiceEnum("value"), + VALUES: PatternFlowSnmpv2CBulkPDUNonRepeatersChoiceEnum("values"), +} +func (obj *patternFlowSnmpv2CBulkPDUNonRepeaters) Choice() PatternFlowSnmpv2CBulkPDUNonRepeatersChoiceEnum { + return PatternFlowSnmpv2CBulkPDUNonRepeatersChoiceEnum(obj.obj.Choice.Enum().String()) } -// An IPv4 unicast prefix reachable via the originator of this LSP. -// Ipv4Address returns a string -func (obj *isisLspExtendedV4Prefix) HasIpv4Address() bool { - return obj.obj.Ipv4Address != nil +// description is TBD +// Choice returns a string +func (obj *patternFlowSnmpv2CBulkPDUNonRepeaters) HasChoice() bool { + return obj.obj.Choice != nil } -// An IPv4 unicast prefix reachable via the originator of this LSP. -// SetIpv4Address sets the string value in the IsisLspExtendedV4Prefix object -func (obj *isisLspExtendedV4Prefix) SetIpv4Address(value string) IsisLspExtendedV4Prefix { +func (obj *patternFlowSnmpv2CBulkPDUNonRepeaters) setChoice(value PatternFlowSnmpv2CBulkPDUNonRepeatersChoiceEnum) PatternFlowSnmpv2CBulkPDUNonRepeaters { + intValue, ok := otg.PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on PatternFlowSnmpv2CBulkPDUNonRepeatersChoiceEnum", string(value))) + return obj + } + enumValue := otg.PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.Values = nil + obj.obj.Value = nil + + if value == PatternFlowSnmpv2CBulkPDUNonRepeatersChoice.VALUE { + defaultValue := uint32(0) + obj.obj.Value = &defaultValue + } + + if value == PatternFlowSnmpv2CBulkPDUNonRepeatersChoice.VALUES { + defaultValue := []uint32{0} + obj.obj.Values = defaultValue + } - obj.obj.Ipv4Address = &value return obj } -// The length of the IPv4 prefix. -// PrefixLength returns a uint32 -func (obj *isisLspExtendedV4Prefix) PrefixLength() uint32 { +// description is TBD +// Value returns a uint32 +func (obj *patternFlowSnmpv2CBulkPDUNonRepeaters) Value() uint32 { - return *obj.obj.PrefixLength + if obj.obj.Value == nil { + obj.setChoice(PatternFlowSnmpv2CBulkPDUNonRepeatersChoice.VALUE) + } + + return *obj.obj.Value } -// The length of the IPv4 prefix. -// PrefixLength returns a uint32 -func (obj *isisLspExtendedV4Prefix) HasPrefixLength() bool { - return obj.obj.PrefixLength != nil -} - -// The length of the IPv4 prefix. -// SetPrefixLength sets the uint32 value in the IsisLspExtendedV4Prefix object -func (obj *isisLspExtendedV4Prefix) SetPrefixLength(value uint32) IsisLspExtendedV4Prefix { - - obj.obj.PrefixLength = &value - return obj -} - -// ISIS wide metric. -// Metric returns a uint32 -func (obj *isisLspExtendedV4Prefix) Metric() uint32 { - - return *obj.obj.Metric - -} - -// ISIS wide metric. -// Metric returns a uint32 -func (obj *isisLspExtendedV4Prefix) HasMetric() bool { - return obj.obj.Metric != nil -} - -// ISIS wide metric. -// SetMetric sets the uint32 value in the IsisLspExtendedV4Prefix object -func (obj *isisLspExtendedV4Prefix) SetMetric(value uint32) IsisLspExtendedV4Prefix { - - obj.obj.Metric = &value - return obj -} - -type IsisLspExtendedV4PrefixRedistributionTypeEnum string - -// Enum of RedistributionType on IsisLspExtendedV4Prefix -var IsisLspExtendedV4PrefixRedistributionType = struct { - UP IsisLspExtendedV4PrefixRedistributionTypeEnum - DOWN IsisLspExtendedV4PrefixRedistributionTypeEnum -}{ - UP: IsisLspExtendedV4PrefixRedistributionTypeEnum("up"), - DOWN: IsisLspExtendedV4PrefixRedistributionTypeEnum("down"), -} - -func (obj *isisLspExtendedV4Prefix) RedistributionType() IsisLspExtendedV4PrefixRedistributionTypeEnum { - return IsisLspExtendedV4PrefixRedistributionTypeEnum(obj.obj.RedistributionType.Enum().String()) -} - -// Up (0)-used when a prefix is initially advertised within the ISIS L3 hierarchy, -// and for all other prefixes in L1 and L2 LSPs. (default) -// Down (1)-used when an L1/L2 router advertises L2 prefixes in L1 LSPs. -// The prefixes are being advertised from a higher level (L2) down to a lower level (L1). -// RedistributionType returns a string -func (obj *isisLspExtendedV4Prefix) HasRedistributionType() bool { - return obj.obj.RedistributionType != nil +// description is TBD +// Value returns a uint32 +func (obj *patternFlowSnmpv2CBulkPDUNonRepeaters) HasValue() bool { + return obj.obj.Value != nil } -func (obj *isisLspExtendedV4Prefix) SetRedistributionType(value IsisLspExtendedV4PrefixRedistributionTypeEnum) IsisLspExtendedV4Prefix { - intValue, ok := otg.IsisLspExtendedV4Prefix_RedistributionType_Enum_value[string(value)] - if !ok { - obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( - "%s is not a valid choice on IsisLspExtendedV4PrefixRedistributionTypeEnum", string(value))) - return obj - } - enumValue := otg.IsisLspExtendedV4Prefix_RedistributionType_Enum(intValue) - obj.obj.RedistributionType = &enumValue - +// description is TBD +// SetValue sets the uint32 value in the PatternFlowSnmpv2CBulkPDUNonRepeaters object +func (obj *patternFlowSnmpv2CBulkPDUNonRepeaters) SetValue(value uint32) PatternFlowSnmpv2CBulkPDUNonRepeaters { + obj.setChoice(PatternFlowSnmpv2CBulkPDUNonRepeatersChoice.VALUE) + obj.obj.Value = &value return obj } // description is TBD -// PrefixAttributes returns a IsisLspPrefixAttributes -func (obj *isisLspExtendedV4Prefix) PrefixAttributes() IsisLspPrefixAttributes { - if obj.obj.PrefixAttributes == nil { - obj.obj.PrefixAttributes = NewIsisLspPrefixAttributes().msg() - } - if obj.prefixAttributesHolder == nil { - obj.prefixAttributesHolder = &isisLspPrefixAttributes{obj: obj.obj.PrefixAttributes} +// Values returns a []uint32 +func (obj *patternFlowSnmpv2CBulkPDUNonRepeaters) Values() []uint32 { + if obj.obj.Values == nil { + obj.SetValues([]uint32{0}) } - return obj.prefixAttributesHolder -} - -// description is TBD -// PrefixAttributes returns a IsisLspPrefixAttributes -func (obj *isisLspExtendedV4Prefix) HasPrefixAttributes() bool { - return obj.obj.PrefixAttributes != nil + return obj.obj.Values } // description is TBD -// SetPrefixAttributes sets the IsisLspPrefixAttributes value in the IsisLspExtendedV4Prefix object -func (obj *isisLspExtendedV4Prefix) SetPrefixAttributes(value IsisLspPrefixAttributes) IsisLspExtendedV4Prefix { - - obj.prefixAttributesHolder = nil - obj.obj.PrefixAttributes = value.msg() +// SetValues sets the []uint32 value in the PatternFlowSnmpv2CBulkPDUNonRepeaters object +func (obj *patternFlowSnmpv2CBulkPDUNonRepeaters) SetValues(value []uint32) PatternFlowSnmpv2CBulkPDUNonRepeaters { + obj.setChoice(PatternFlowSnmpv2CBulkPDUNonRepeatersChoice.VALUES) + if obj.obj.Values == nil { + obj.obj.Values = make([]uint32, 0) + } + obj.obj.Values = value return obj } -func (obj *isisLspExtendedV4Prefix) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowSnmpv2CBulkPDUNonRepeaters) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Ipv4Address != nil { - - err := obj.validateIpv4(obj.Ipv4Address()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on IsisLspExtendedV4Prefix.Ipv4Address")) - } - - } - - if obj.obj.PrefixLength != nil { - - if *obj.obj.PrefixLength > 32 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= IsisLspExtendedV4Prefix.PrefixLength <= 32 but Got %d", *obj.obj.PrefixLength)) - } - - } +} - if obj.obj.PrefixAttributes != nil { +func (obj *patternFlowSnmpv2CBulkPDUNonRepeaters) setDefault() { + if obj.obj.Choice == nil { + obj.setChoice(PatternFlowSnmpv2CBulkPDUNonRepeatersChoice.VALUE) - obj.PrefixAttributes().validateObj(vObj, set_default) } } -func (obj *isisLspExtendedV4Prefix) setDefault() { - -} - -// ***** IsisLspV6Prefix ***** -type isisLspV6Prefix struct { +// ***** PatternFlowSnmpv2CBulkPDUMaxRepetitions ***** +type patternFlowSnmpv2CBulkPDUMaxRepetitions struct { validation - obj *otg.IsisLspV6Prefix - marshaller marshalIsisLspV6Prefix - unMarshaller unMarshalIsisLspV6Prefix - prefixAttributesHolder IsisLspPrefixAttributes + obj *otg.PatternFlowSnmpv2CBulkPDUMaxRepetitions + marshaller marshalPatternFlowSnmpv2CBulkPDUMaxRepetitions + unMarshaller unMarshalPatternFlowSnmpv2CBulkPDUMaxRepetitions + incrementHolder PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter + decrementHolder PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter } -func NewIsisLspV6Prefix() IsisLspV6Prefix { - obj := isisLspV6Prefix{obj: &otg.IsisLspV6Prefix{}} +func NewPatternFlowSnmpv2CBulkPDUMaxRepetitions() PatternFlowSnmpv2CBulkPDUMaxRepetitions { + obj := patternFlowSnmpv2CBulkPDUMaxRepetitions{obj: &otg.PatternFlowSnmpv2CBulkPDUMaxRepetitions{}} obj.setDefault() return &obj } -func (obj *isisLspV6Prefix) msg() *otg.IsisLspV6Prefix { +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitions) msg() *otg.PatternFlowSnmpv2CBulkPDUMaxRepetitions { return obj.obj } -func (obj *isisLspV6Prefix) setMsg(msg *otg.IsisLspV6Prefix) IsisLspV6Prefix { +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitions) setMsg(msg *otg.PatternFlowSnmpv2CBulkPDUMaxRepetitions) PatternFlowSnmpv2CBulkPDUMaxRepetitions { obj.setNil() proto.Merge(obj.obj, msg) return obj } -type marshalisisLspV6Prefix struct { - obj *isisLspV6Prefix +type marshalpatternFlowSnmpv2CBulkPDUMaxRepetitions struct { + obj *patternFlowSnmpv2CBulkPDUMaxRepetitions } -type marshalIsisLspV6Prefix interface { - // ToProto marshals IsisLspV6Prefix to protobuf object *otg.IsisLspV6Prefix - ToProto() (*otg.IsisLspV6Prefix, error) - // ToPbText marshals IsisLspV6Prefix to protobuf text +type marshalPatternFlowSnmpv2CBulkPDUMaxRepetitions interface { + // ToProto marshals PatternFlowSnmpv2CBulkPDUMaxRepetitions to protobuf object *otg.PatternFlowSnmpv2CBulkPDUMaxRepetitions + ToProto() (*otg.PatternFlowSnmpv2CBulkPDUMaxRepetitions, error) + // ToPbText marshals PatternFlowSnmpv2CBulkPDUMaxRepetitions to protobuf text ToPbText() (string, error) - // ToYaml marshals IsisLspV6Prefix to YAML text + // ToYaml marshals PatternFlowSnmpv2CBulkPDUMaxRepetitions to YAML text ToYaml() (string, error) - // ToJson marshals IsisLspV6Prefix to JSON text + // ToJson marshals PatternFlowSnmpv2CBulkPDUMaxRepetitions to JSON text ToJson() (string, error) } -type unMarshalisisLspV6Prefix struct { - obj *isisLspV6Prefix +type unMarshalpatternFlowSnmpv2CBulkPDUMaxRepetitions struct { + obj *patternFlowSnmpv2CBulkPDUMaxRepetitions } -type unMarshalIsisLspV6Prefix interface { - // FromProto unmarshals IsisLspV6Prefix from protobuf object *otg.IsisLspV6Prefix - FromProto(msg *otg.IsisLspV6Prefix) (IsisLspV6Prefix, error) - // FromPbText unmarshals IsisLspV6Prefix from protobuf text +type unMarshalPatternFlowSnmpv2CBulkPDUMaxRepetitions interface { + // FromProto unmarshals PatternFlowSnmpv2CBulkPDUMaxRepetitions from protobuf object *otg.PatternFlowSnmpv2CBulkPDUMaxRepetitions + FromProto(msg *otg.PatternFlowSnmpv2CBulkPDUMaxRepetitions) (PatternFlowSnmpv2CBulkPDUMaxRepetitions, error) + // FromPbText unmarshals PatternFlowSnmpv2CBulkPDUMaxRepetitions from protobuf text FromPbText(value string) error - // FromYaml unmarshals IsisLspV6Prefix from YAML text + // FromYaml unmarshals PatternFlowSnmpv2CBulkPDUMaxRepetitions from YAML text FromYaml(value string) error - // FromJson unmarshals IsisLspV6Prefix from JSON text + // FromJson unmarshals PatternFlowSnmpv2CBulkPDUMaxRepetitions from JSON text FromJson(value string) error } -func (obj *isisLspV6Prefix) Marshal() marshalIsisLspV6Prefix { +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitions) Marshal() marshalPatternFlowSnmpv2CBulkPDUMaxRepetitions { if obj.marshaller == nil { - obj.marshaller = &marshalisisLspV6Prefix{obj: obj} + obj.marshaller = &marshalpatternFlowSnmpv2CBulkPDUMaxRepetitions{obj: obj} } return obj.marshaller } -func (obj *isisLspV6Prefix) Unmarshal() unMarshalIsisLspV6Prefix { +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitions) Unmarshal() unMarshalPatternFlowSnmpv2CBulkPDUMaxRepetitions { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalisisLspV6Prefix{obj: obj} + obj.unMarshaller = &unMarshalpatternFlowSnmpv2CBulkPDUMaxRepetitions{obj: obj} } return obj.unMarshaller } -func (m *marshalisisLspV6Prefix) ToProto() (*otg.IsisLspV6Prefix, error) { +func (m *marshalpatternFlowSnmpv2CBulkPDUMaxRepetitions) ToProto() (*otg.PatternFlowSnmpv2CBulkPDUMaxRepetitions, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -321785,7 +325147,7 @@ func (m *marshalisisLspV6Prefix) ToProto() (*otg.IsisLspV6Prefix, error) { return m.obj.msg(), nil } -func (m *unMarshalisisLspV6Prefix) FromProto(msg *otg.IsisLspV6Prefix) (IsisLspV6Prefix, error) { +func (m *unMarshalpatternFlowSnmpv2CBulkPDUMaxRepetitions) FromProto(msg *otg.PatternFlowSnmpv2CBulkPDUMaxRepetitions) (PatternFlowSnmpv2CBulkPDUMaxRepetitions, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -321794,7 +325156,7 @@ func (m *unMarshalisisLspV6Prefix) FromProto(msg *otg.IsisLspV6Prefix) (IsisLspV return newObj, nil } -func (m *marshalisisLspV6Prefix) ToPbText() (string, error) { +func (m *marshalpatternFlowSnmpv2CBulkPDUMaxRepetitions) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -321806,7 +325168,7 @@ func (m *marshalisisLspV6Prefix) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalisisLspV6Prefix) FromPbText(value string) error { +func (m *unMarshalpatternFlowSnmpv2CBulkPDUMaxRepetitions) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj @@ -321819,7 +325181,7 @@ func (m *unMarshalisisLspV6Prefix) FromPbText(value string) error { return retObj } -func (m *marshalisisLspV6Prefix) ToYaml() (string, error) { +func (m *marshalpatternFlowSnmpv2CBulkPDUMaxRepetitions) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -321840,7 +325202,7 @@ func (m *marshalisisLspV6Prefix) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalisisLspV6Prefix) FromYaml(value string) error { +func (m *unMarshalpatternFlowSnmpv2CBulkPDUMaxRepetitions) FromYaml(value string) error { if value == "" { value = "{}" } @@ -321865,7 +325227,7 @@ func (m *unMarshalisisLspV6Prefix) FromYaml(value string) error { return nil } -func (m *marshalisisLspV6Prefix) ToJson() (string, error) { +func (m *marshalpatternFlowSnmpv2CBulkPDUMaxRepetitions) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -321883,7 +325245,7 @@ func (m *marshalisisLspV6Prefix) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalisisLspV6Prefix) FromJson(value string) error { +func (m *unMarshalpatternFlowSnmpv2CBulkPDUMaxRepetitions) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -321904,19 +325266,19 @@ func (m *unMarshalisisLspV6Prefix) FromJson(value string) error { return nil } -func (obj *isisLspV6Prefix) validateToAndFrom() error { +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitions) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *isisLspV6Prefix) validate() error { +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitions) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *isisLspV6Prefix) String() string { +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitions) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -321924,12 +325286,12 @@ func (obj *isisLspV6Prefix) String() string { return str } -func (obj *isisLspV6Prefix) Clone() (IsisLspV6Prefix, error) { +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitions) Clone() (PatternFlowSnmpv2CBulkPDUMaxRepetitions, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewIsisLspV6Prefix() + newObj := NewPatternFlowSnmpv2CBulkPDUMaxRepetitions() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -321941,358 +325303,326 @@ func (obj *isisLspV6Prefix) Clone() (IsisLspV6Prefix, error) { return newObj, nil } -func (obj *isisLspV6Prefix) setNil() { - obj.prefixAttributesHolder = nil +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitions) setNil() { + obj.incrementHolder = nil + obj.decrementHolder = nil obj.validationErrors = nil obj.warnings = nil obj.constraints = make(map[string]map[string]Constraints) } -// IsisLspV6Prefix is it defines attributes of an IPv6 standard prefix. -type IsisLspV6Prefix interface { +// PatternFlowSnmpv2CBulkPDUMaxRepetitions is a maximum of max_repetitions variable bindings are requested in the Response-PDU for each of the remaining variable bindings in the GetBulkRequest after the non_repeaters variable bindings. +type PatternFlowSnmpv2CBulkPDUMaxRepetitions interface { Validation - // msg marshals IsisLspV6Prefix to protobuf object *otg.IsisLspV6Prefix + // msg marshals PatternFlowSnmpv2CBulkPDUMaxRepetitions to protobuf object *otg.PatternFlowSnmpv2CBulkPDUMaxRepetitions // and doesn't set defaults - msg() *otg.IsisLspV6Prefix - // setMsg unmarshals IsisLspV6Prefix from protobuf object *otg.IsisLspV6Prefix + msg() *otg.PatternFlowSnmpv2CBulkPDUMaxRepetitions + // setMsg unmarshals PatternFlowSnmpv2CBulkPDUMaxRepetitions from protobuf object *otg.PatternFlowSnmpv2CBulkPDUMaxRepetitions // and doesn't set defaults - setMsg(*otg.IsisLspV6Prefix) IsisLspV6Prefix + setMsg(*otg.PatternFlowSnmpv2CBulkPDUMaxRepetitions) PatternFlowSnmpv2CBulkPDUMaxRepetitions // provides marshal interface - Marshal() marshalIsisLspV6Prefix + Marshal() marshalPatternFlowSnmpv2CBulkPDUMaxRepetitions // provides unmarshal interface - Unmarshal() unMarshalIsisLspV6Prefix - // validate validates IsisLspV6Prefix + Unmarshal() unMarshalPatternFlowSnmpv2CBulkPDUMaxRepetitions + // validate validates PatternFlowSnmpv2CBulkPDUMaxRepetitions validate() error // A stringer function String() string // Clones the object - Clone() (IsisLspV6Prefix, error) + Clone() (PatternFlowSnmpv2CBulkPDUMaxRepetitions, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Ipv6Address returns string, set in IsisLspV6Prefix. - Ipv6Address() string - // SetIpv6Address assigns string provided by user to IsisLspV6Prefix - SetIpv6Address(value string) IsisLspV6Prefix - // HasIpv6Address checks if Ipv6Address has been set in IsisLspV6Prefix - HasIpv6Address() bool - // PrefixLength returns uint32, set in IsisLspV6Prefix. - PrefixLength() uint32 - // SetPrefixLength assigns uint32 provided by user to IsisLspV6Prefix - SetPrefixLength(value uint32) IsisLspV6Prefix - // HasPrefixLength checks if PrefixLength has been set in IsisLspV6Prefix - HasPrefixLength() bool - // Metric returns uint32, set in IsisLspV6Prefix. - Metric() uint32 - // SetMetric assigns uint32 provided by user to IsisLspV6Prefix - SetMetric(value uint32) IsisLspV6Prefix - // HasMetric checks if Metric has been set in IsisLspV6Prefix - HasMetric() bool - // RedistributionType returns IsisLspV6PrefixRedistributionTypeEnum, set in IsisLspV6Prefix - RedistributionType() IsisLspV6PrefixRedistributionTypeEnum - // SetRedistributionType assigns IsisLspV6PrefixRedistributionTypeEnum provided by user to IsisLspV6Prefix - SetRedistributionType(value IsisLspV6PrefixRedistributionTypeEnum) IsisLspV6Prefix - // HasRedistributionType checks if RedistributionType has been set in IsisLspV6Prefix - HasRedistributionType() bool - // OriginType returns IsisLspV6PrefixOriginTypeEnum, set in IsisLspV6Prefix - OriginType() IsisLspV6PrefixOriginTypeEnum - // SetOriginType assigns IsisLspV6PrefixOriginTypeEnum provided by user to IsisLspV6Prefix - SetOriginType(value IsisLspV6PrefixOriginTypeEnum) IsisLspV6Prefix - // HasOriginType checks if OriginType has been set in IsisLspV6Prefix - HasOriginType() bool - // PrefixAttributes returns IsisLspPrefixAttributes, set in IsisLspV6Prefix. - // IsisLspPrefixAttributes is this contains the properties of ISIS Prefix attributes for the extended IPv4 and IPv6 reachability. https://www.rfc-editor.org/rfc/rfc7794.html - PrefixAttributes() IsisLspPrefixAttributes - // SetPrefixAttributes assigns IsisLspPrefixAttributes provided by user to IsisLspV6Prefix. - // IsisLspPrefixAttributes is this contains the properties of ISIS Prefix attributes for the extended IPv4 and IPv6 reachability. https://www.rfc-editor.org/rfc/rfc7794.html - SetPrefixAttributes(value IsisLspPrefixAttributes) IsisLspV6Prefix - // HasPrefixAttributes checks if PrefixAttributes has been set in IsisLspV6Prefix - HasPrefixAttributes() bool + // Choice returns PatternFlowSnmpv2CBulkPDUMaxRepetitionsChoiceEnum, set in PatternFlowSnmpv2CBulkPDUMaxRepetitions + Choice() PatternFlowSnmpv2CBulkPDUMaxRepetitionsChoiceEnum + // setChoice assigns PatternFlowSnmpv2CBulkPDUMaxRepetitionsChoiceEnum provided by user to PatternFlowSnmpv2CBulkPDUMaxRepetitions + setChoice(value PatternFlowSnmpv2CBulkPDUMaxRepetitionsChoiceEnum) PatternFlowSnmpv2CBulkPDUMaxRepetitions + // HasChoice checks if Choice has been set in PatternFlowSnmpv2CBulkPDUMaxRepetitions + HasChoice() bool + // Value returns uint32, set in PatternFlowSnmpv2CBulkPDUMaxRepetitions. + Value() uint32 + // SetValue assigns uint32 provided by user to PatternFlowSnmpv2CBulkPDUMaxRepetitions + SetValue(value uint32) PatternFlowSnmpv2CBulkPDUMaxRepetitions + // HasValue checks if Value has been set in PatternFlowSnmpv2CBulkPDUMaxRepetitions + HasValue() bool + // Values returns []uint32, set in PatternFlowSnmpv2CBulkPDUMaxRepetitions. + Values() []uint32 + // SetValues assigns []uint32 provided by user to PatternFlowSnmpv2CBulkPDUMaxRepetitions + SetValues(value []uint32) PatternFlowSnmpv2CBulkPDUMaxRepetitions + // Increment returns PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter, set in PatternFlowSnmpv2CBulkPDUMaxRepetitions. + Increment() PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter + // SetIncrement assigns PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter provided by user to PatternFlowSnmpv2CBulkPDUMaxRepetitions. + SetIncrement(value PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) PatternFlowSnmpv2CBulkPDUMaxRepetitions + // HasIncrement checks if Increment has been set in PatternFlowSnmpv2CBulkPDUMaxRepetitions + HasIncrement() bool + // Decrement returns PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter, set in PatternFlowSnmpv2CBulkPDUMaxRepetitions. + Decrement() PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter + // SetDecrement assigns PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter provided by user to PatternFlowSnmpv2CBulkPDUMaxRepetitions. + SetDecrement(value PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) PatternFlowSnmpv2CBulkPDUMaxRepetitions + // HasDecrement checks if Decrement has been set in PatternFlowSnmpv2CBulkPDUMaxRepetitions + HasDecrement() bool setNil() } -// An IPv6 unicast prefix reachable via the originator of this LSP. -// Ipv6Address returns a string -func (obj *isisLspV6Prefix) Ipv6Address() string { - - return *obj.obj.Ipv6Address +type PatternFlowSnmpv2CBulkPDUMaxRepetitionsChoiceEnum string +// Enum of Choice on PatternFlowSnmpv2CBulkPDUMaxRepetitions +var PatternFlowSnmpv2CBulkPDUMaxRepetitionsChoice = struct { + VALUE PatternFlowSnmpv2CBulkPDUMaxRepetitionsChoiceEnum + VALUES PatternFlowSnmpv2CBulkPDUMaxRepetitionsChoiceEnum + INCREMENT PatternFlowSnmpv2CBulkPDUMaxRepetitionsChoiceEnum + DECREMENT PatternFlowSnmpv2CBulkPDUMaxRepetitionsChoiceEnum +}{ + VALUE: PatternFlowSnmpv2CBulkPDUMaxRepetitionsChoiceEnum("value"), + VALUES: PatternFlowSnmpv2CBulkPDUMaxRepetitionsChoiceEnum("values"), + INCREMENT: PatternFlowSnmpv2CBulkPDUMaxRepetitionsChoiceEnum("increment"), + DECREMENT: PatternFlowSnmpv2CBulkPDUMaxRepetitionsChoiceEnum("decrement"), } -// An IPv6 unicast prefix reachable via the originator of this LSP. -// Ipv6Address returns a string -func (obj *isisLspV6Prefix) HasIpv6Address() bool { - return obj.obj.Ipv6Address != nil +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitions) Choice() PatternFlowSnmpv2CBulkPDUMaxRepetitionsChoiceEnum { + return PatternFlowSnmpv2CBulkPDUMaxRepetitionsChoiceEnum(obj.obj.Choice.Enum().String()) } -// An IPv6 unicast prefix reachable via the originator of this LSP. -// SetIpv6Address sets the string value in the IsisLspV6Prefix object -func (obj *isisLspV6Prefix) SetIpv6Address(value string) IsisLspV6Prefix { - - obj.obj.Ipv6Address = &value - return obj +// description is TBD +// Choice returns a string +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitions) HasChoice() bool { + return obj.obj.Choice != nil } -// The length of the IPv6 prefix. -// PrefixLength returns a uint32 -func (obj *isisLspV6Prefix) PrefixLength() uint32 { +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitions) setChoice(value PatternFlowSnmpv2CBulkPDUMaxRepetitionsChoiceEnum) PatternFlowSnmpv2CBulkPDUMaxRepetitions { + intValue, ok := otg.PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on PatternFlowSnmpv2CBulkPDUMaxRepetitionsChoiceEnum", string(value))) + return obj + } + enumValue := otg.PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.Decrement = nil + obj.decrementHolder = nil + obj.obj.Increment = nil + obj.incrementHolder = nil + obj.obj.Values = nil + obj.obj.Value = nil - return *obj.obj.PrefixLength + if value == PatternFlowSnmpv2CBulkPDUMaxRepetitionsChoice.VALUE { + defaultValue := uint32(0) + obj.obj.Value = &defaultValue + } -} + if value == PatternFlowSnmpv2CBulkPDUMaxRepetitionsChoice.VALUES { + defaultValue := []uint32{0} + obj.obj.Values = defaultValue + } -// The length of the IPv6 prefix. -// PrefixLength returns a uint32 -func (obj *isisLspV6Prefix) HasPrefixLength() bool { - return obj.obj.PrefixLength != nil -} + if value == PatternFlowSnmpv2CBulkPDUMaxRepetitionsChoice.INCREMENT { + obj.obj.Increment = NewPatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter().msg() + } -// The length of the IPv6 prefix. -// SetPrefixLength sets the uint32 value in the IsisLspV6Prefix object -func (obj *isisLspV6Prefix) SetPrefixLength(value uint32) IsisLspV6Prefix { + if value == PatternFlowSnmpv2CBulkPDUMaxRepetitionsChoice.DECREMENT { + obj.obj.Decrement = NewPatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter().msg() + } - obj.obj.PrefixLength = &value return obj } -// ISIS wide metric. -// Metric returns a uint32 -func (obj *isisLspV6Prefix) Metric() uint32 { - - return *obj.obj.Metric - -} +// description is TBD +// Value returns a uint32 +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitions) Value() uint32 { -// ISIS wide metric. -// Metric returns a uint32 -func (obj *isisLspV6Prefix) HasMetric() bool { - return obj.obj.Metric != nil -} + if obj.obj.Value == nil { + obj.setChoice(PatternFlowSnmpv2CBulkPDUMaxRepetitionsChoice.VALUE) + } -// ISIS wide metric. -// SetMetric sets the uint32 value in the IsisLspV6Prefix object -func (obj *isisLspV6Prefix) SetMetric(value uint32) IsisLspV6Prefix { + return *obj.obj.Value - obj.obj.Metric = &value - return obj } -type IsisLspV6PrefixRedistributionTypeEnum string - -// Enum of RedistributionType on IsisLspV6Prefix -var IsisLspV6PrefixRedistributionType = struct { - UP IsisLspV6PrefixRedistributionTypeEnum - DOWN IsisLspV6PrefixRedistributionTypeEnum -}{ - UP: IsisLspV6PrefixRedistributionTypeEnum("up"), - DOWN: IsisLspV6PrefixRedistributionTypeEnum("down"), +// description is TBD +// Value returns a uint32 +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitions) HasValue() bool { + return obj.obj.Value != nil } -func (obj *isisLspV6Prefix) RedistributionType() IsisLspV6PrefixRedistributionTypeEnum { - return IsisLspV6PrefixRedistributionTypeEnum(obj.obj.RedistributionType.Enum().String()) +// description is TBD +// SetValue sets the uint32 value in the PatternFlowSnmpv2CBulkPDUMaxRepetitions object +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitions) SetValue(value uint32) PatternFlowSnmpv2CBulkPDUMaxRepetitions { + obj.setChoice(PatternFlowSnmpv2CBulkPDUMaxRepetitionsChoice.VALUE) + obj.obj.Value = &value + return obj } -// Up (0)-used when a prefix is initially advertised within the ISIS L3 hierarchy, -// and for all other prefixes in L1 and L2 LSPs. (default) -// Down (1)-used when an L1/L2 router advertises L2 prefixes in L1 LSPs. -// The prefixes are being advertised from a higher level (L2) down to a lower level (L1). -// RedistributionType returns a string -func (obj *isisLspV6Prefix) HasRedistributionType() bool { - return obj.obj.RedistributionType != nil +// description is TBD +// Values returns a []uint32 +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitions) Values() []uint32 { + if obj.obj.Values == nil { + obj.SetValues([]uint32{0}) + } + return obj.obj.Values } -func (obj *isisLspV6Prefix) SetRedistributionType(value IsisLspV6PrefixRedistributionTypeEnum) IsisLspV6Prefix { - intValue, ok := otg.IsisLspV6Prefix_RedistributionType_Enum_value[string(value)] - if !ok { - obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( - "%s is not a valid choice on IsisLspV6PrefixRedistributionTypeEnum", string(value))) - return obj +// description is TBD +// SetValues sets the []uint32 value in the PatternFlowSnmpv2CBulkPDUMaxRepetitions object +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitions) SetValues(value []uint32) PatternFlowSnmpv2CBulkPDUMaxRepetitions { + obj.setChoice(PatternFlowSnmpv2CBulkPDUMaxRepetitionsChoice.VALUES) + if obj.obj.Values == nil { + obj.obj.Values = make([]uint32, 0) } - enumValue := otg.IsisLspV6Prefix_RedistributionType_Enum(intValue) - obj.obj.RedistributionType = &enumValue + obj.obj.Values = value return obj } -type IsisLspV6PrefixOriginTypeEnum string - -// Enum of OriginType on IsisLspV6Prefix -var IsisLspV6PrefixOriginType = struct { - INTERNAL IsisLspV6PrefixOriginTypeEnum - EXTERNAL IsisLspV6PrefixOriginTypeEnum -}{ - INTERNAL: IsisLspV6PrefixOriginTypeEnum("internal"), - EXTERNAL: IsisLspV6PrefixOriginTypeEnum("external"), -} - -func (obj *isisLspV6Prefix) OriginType() IsisLspV6PrefixOriginTypeEnum { - return IsisLspV6PrefixOriginTypeEnum(obj.obj.OriginType.Enum().String()) +// description is TBD +// Increment returns a PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitions) Increment() PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter { + if obj.obj.Increment == nil { + obj.setChoice(PatternFlowSnmpv2CBulkPDUMaxRepetitionsChoice.INCREMENT) + } + if obj.incrementHolder == nil { + obj.incrementHolder = &patternFlowSnmpv2CBulkPDUMaxRepetitionsCounter{obj: obj.obj.Increment} + } + return obj.incrementHolder } -// The origin of the advertised route-internal or external to the ISIS area. Options include the following: -// Internal-for intra-area routes, through Level 1 LSPs. -// External-for inter-area routes redistributed within L1, through Level -// 1 LSPs. -// OriginType returns a string -func (obj *isisLspV6Prefix) HasOriginType() bool { - return obj.obj.OriginType != nil +// description is TBD +// Increment returns a PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitions) HasIncrement() bool { + return obj.obj.Increment != nil } -func (obj *isisLspV6Prefix) SetOriginType(value IsisLspV6PrefixOriginTypeEnum) IsisLspV6Prefix { - intValue, ok := otg.IsisLspV6Prefix_OriginType_Enum_value[string(value)] - if !ok { - obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( - "%s is not a valid choice on IsisLspV6PrefixOriginTypeEnum", string(value))) - return obj - } - enumValue := otg.IsisLspV6Prefix_OriginType_Enum(intValue) - obj.obj.OriginType = &enumValue +// description is TBD +// SetIncrement sets the PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter value in the PatternFlowSnmpv2CBulkPDUMaxRepetitions object +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitions) SetIncrement(value PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) PatternFlowSnmpv2CBulkPDUMaxRepetitions { + obj.setChoice(PatternFlowSnmpv2CBulkPDUMaxRepetitionsChoice.INCREMENT) + obj.incrementHolder = nil + obj.obj.Increment = value.msg() return obj } // description is TBD -// PrefixAttributes returns a IsisLspPrefixAttributes -func (obj *isisLspV6Prefix) PrefixAttributes() IsisLspPrefixAttributes { - if obj.obj.PrefixAttributes == nil { - obj.obj.PrefixAttributes = NewIsisLspPrefixAttributes().msg() +// Decrement returns a PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitions) Decrement() PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter { + if obj.obj.Decrement == nil { + obj.setChoice(PatternFlowSnmpv2CBulkPDUMaxRepetitionsChoice.DECREMENT) } - if obj.prefixAttributesHolder == nil { - obj.prefixAttributesHolder = &isisLspPrefixAttributes{obj: obj.obj.PrefixAttributes} + if obj.decrementHolder == nil { + obj.decrementHolder = &patternFlowSnmpv2CBulkPDUMaxRepetitionsCounter{obj: obj.obj.Decrement} } - return obj.prefixAttributesHolder + return obj.decrementHolder } // description is TBD -// PrefixAttributes returns a IsisLspPrefixAttributes -func (obj *isisLspV6Prefix) HasPrefixAttributes() bool { - return obj.obj.PrefixAttributes != nil +// Decrement returns a PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitions) HasDecrement() bool { + return obj.obj.Decrement != nil } // description is TBD -// SetPrefixAttributes sets the IsisLspPrefixAttributes value in the IsisLspV6Prefix object -func (obj *isisLspV6Prefix) SetPrefixAttributes(value IsisLspPrefixAttributes) IsisLspV6Prefix { - - obj.prefixAttributesHolder = nil - obj.obj.PrefixAttributes = value.msg() +// SetDecrement sets the PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter value in the PatternFlowSnmpv2CBulkPDUMaxRepetitions object +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitions) SetDecrement(value PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) PatternFlowSnmpv2CBulkPDUMaxRepetitions { + obj.setChoice(PatternFlowSnmpv2CBulkPDUMaxRepetitionsChoice.DECREMENT) + obj.decrementHolder = nil + obj.obj.Decrement = value.msg() return obj } -func (obj *isisLspV6Prefix) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitions) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Ipv6Address != nil { - - err := obj.validateIpv6(obj.Ipv6Address()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on IsisLspV6Prefix.Ipv6Address")) - } - - } - - if obj.obj.PrefixLength != nil { - - if *obj.obj.PrefixLength > 128 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= IsisLspV6Prefix.PrefixLength <= 128 but Got %d", *obj.obj.PrefixLength)) - } + if obj.obj.Increment != nil { + obj.Increment().validateObj(vObj, set_default) } - if obj.obj.PrefixAttributes != nil { + if obj.obj.Decrement != nil { - obj.PrefixAttributes().validateObj(vObj, set_default) + obj.Decrement().validateObj(vObj, set_default) } } -func (obj *isisLspV6Prefix) setDefault() { +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitions) setDefault() { + if obj.obj.Choice == nil { + obj.setChoice(PatternFlowSnmpv2CBulkPDUMaxRepetitionsChoice.VALUE) + + } } -// ***** BgpV4EviVxlan ***** -type bgpV4EviVxlan struct { +// ***** ActionResponseProtocolIpv4PingResponse ***** +type actionResponseProtocolIpv4PingResponse struct { validation - obj *otg.BgpV4EviVxlan - marshaller marshalBgpV4EviVxlan - unMarshaller unMarshalBgpV4EviVxlan - broadcastDomainsHolder BgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter - routeDistinguisherHolder BgpRouteDistinguisher - routeTargetExportHolder BgpV4EviVxlanBgpRouteTargetIter - routeTargetImportHolder BgpV4EviVxlanBgpRouteTargetIter - l3RouteTargetExportHolder BgpV4EviVxlanBgpRouteTargetIter - l3RouteTargetImportHolder BgpV4EviVxlanBgpRouteTargetIter - advancedHolder BgpRouteAdvanced - communitiesHolder BgpV4EviVxlanBgpCommunityIter - extCommunitiesHolder BgpV4EviVxlanBgpExtCommunityIter - asPathHolder BgpAsPath + obj *otg.ActionResponseProtocolIpv4PingResponse + marshaller marshalActionResponseProtocolIpv4PingResponse + unMarshaller unMarshalActionResponseProtocolIpv4PingResponse } -func NewBgpV4EviVxlan() BgpV4EviVxlan { - obj := bgpV4EviVxlan{obj: &otg.BgpV4EviVxlan{}} +func NewActionResponseProtocolIpv4PingResponse() ActionResponseProtocolIpv4PingResponse { + obj := actionResponseProtocolIpv4PingResponse{obj: &otg.ActionResponseProtocolIpv4PingResponse{}} obj.setDefault() return &obj } -func (obj *bgpV4EviVxlan) msg() *otg.BgpV4EviVxlan { +func (obj *actionResponseProtocolIpv4PingResponse) msg() *otg.ActionResponseProtocolIpv4PingResponse { return obj.obj } -func (obj *bgpV4EviVxlan) setMsg(msg *otg.BgpV4EviVxlan) BgpV4EviVxlan { - obj.setNil() +func (obj *actionResponseProtocolIpv4PingResponse) setMsg(msg *otg.ActionResponseProtocolIpv4PingResponse) ActionResponseProtocolIpv4PingResponse { + proto.Merge(obj.obj, msg) return obj } -type marshalbgpV4EviVxlan struct { - obj *bgpV4EviVxlan +type marshalactionResponseProtocolIpv4PingResponse struct { + obj *actionResponseProtocolIpv4PingResponse } -type marshalBgpV4EviVxlan interface { - // ToProto marshals BgpV4EviVxlan to protobuf object *otg.BgpV4EviVxlan - ToProto() (*otg.BgpV4EviVxlan, error) - // ToPbText marshals BgpV4EviVxlan to protobuf text +type marshalActionResponseProtocolIpv4PingResponse interface { + // ToProto marshals ActionResponseProtocolIpv4PingResponse to protobuf object *otg.ActionResponseProtocolIpv4PingResponse + ToProto() (*otg.ActionResponseProtocolIpv4PingResponse, error) + // ToPbText marshals ActionResponseProtocolIpv4PingResponse to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpV4EviVxlan to YAML text + // ToYaml marshals ActionResponseProtocolIpv4PingResponse to YAML text ToYaml() (string, error) - // ToJson marshals BgpV4EviVxlan to JSON text + // ToJson marshals ActionResponseProtocolIpv4PingResponse to JSON text ToJson() (string, error) } -type unMarshalbgpV4EviVxlan struct { - obj *bgpV4EviVxlan +type unMarshalactionResponseProtocolIpv4PingResponse struct { + obj *actionResponseProtocolIpv4PingResponse } -type unMarshalBgpV4EviVxlan interface { - // FromProto unmarshals BgpV4EviVxlan from protobuf object *otg.BgpV4EviVxlan - FromProto(msg *otg.BgpV4EviVxlan) (BgpV4EviVxlan, error) - // FromPbText unmarshals BgpV4EviVxlan from protobuf text +type unMarshalActionResponseProtocolIpv4PingResponse interface { + // FromProto unmarshals ActionResponseProtocolIpv4PingResponse from protobuf object *otg.ActionResponseProtocolIpv4PingResponse + FromProto(msg *otg.ActionResponseProtocolIpv4PingResponse) (ActionResponseProtocolIpv4PingResponse, error) + // FromPbText unmarshals ActionResponseProtocolIpv4PingResponse from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpV4EviVxlan from YAML text + // FromYaml unmarshals ActionResponseProtocolIpv4PingResponse from YAML text FromYaml(value string) error - // FromJson unmarshals BgpV4EviVxlan from JSON text + // FromJson unmarshals ActionResponseProtocolIpv4PingResponse from JSON text FromJson(value string) error } -func (obj *bgpV4EviVxlan) Marshal() marshalBgpV4EviVxlan { +func (obj *actionResponseProtocolIpv4PingResponse) Marshal() marshalActionResponseProtocolIpv4PingResponse { if obj.marshaller == nil { - obj.marshaller = &marshalbgpV4EviVxlan{obj: obj} + obj.marshaller = &marshalactionResponseProtocolIpv4PingResponse{obj: obj} } return obj.marshaller } -func (obj *bgpV4EviVxlan) Unmarshal() unMarshalBgpV4EviVxlan { +func (obj *actionResponseProtocolIpv4PingResponse) Unmarshal() unMarshalActionResponseProtocolIpv4PingResponse { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpV4EviVxlan{obj: obj} + obj.unMarshaller = &unMarshalactionResponseProtocolIpv4PingResponse{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpV4EviVxlan) ToProto() (*otg.BgpV4EviVxlan, error) { +func (m *marshalactionResponseProtocolIpv4PingResponse) ToProto() (*otg.ActionResponseProtocolIpv4PingResponse, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -322300,7 +325630,7 @@ func (m *marshalbgpV4EviVxlan) ToProto() (*otg.BgpV4EviVxlan, error) { return m.obj.msg(), nil } -func (m *unMarshalbgpV4EviVxlan) FromProto(msg *otg.BgpV4EviVxlan) (BgpV4EviVxlan, error) { +func (m *unMarshalactionResponseProtocolIpv4PingResponse) FromProto(msg *otg.ActionResponseProtocolIpv4PingResponse) (ActionResponseProtocolIpv4PingResponse, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -322309,7 +325639,7 @@ func (m *unMarshalbgpV4EviVxlan) FromProto(msg *otg.BgpV4EviVxlan) (BgpV4EviVxla return newObj, nil } -func (m *marshalbgpV4EviVxlan) ToPbText() (string, error) { +func (m *marshalactionResponseProtocolIpv4PingResponse) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -322321,12 +325651,12 @@ func (m *marshalbgpV4EviVxlan) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalbgpV4EviVxlan) FromPbText(value string) error { +func (m *unMarshalactionResponseProtocolIpv4PingResponse) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - m.obj.setNil() + vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -322334,7 +325664,7 @@ func (m *unMarshalbgpV4EviVxlan) FromPbText(value string) error { return retObj } -func (m *marshalbgpV4EviVxlan) ToYaml() (string, error) { +func (m *marshalactionResponseProtocolIpv4PingResponse) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -322355,7 +325685,7 @@ func (m *marshalbgpV4EviVxlan) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalbgpV4EviVxlan) FromYaml(value string) error { +func (m *unMarshalactionResponseProtocolIpv4PingResponse) FromYaml(value string) error { if value == "" { value = "{}" } @@ -322372,7 +325702,7 @@ func (m *unMarshalbgpV4EviVxlan) FromYaml(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - m.obj.setNil() + vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -322380,7 +325710,7 @@ func (m *unMarshalbgpV4EviVxlan) FromYaml(value string) error { return nil } -func (m *marshalbgpV4EviVxlan) ToJson() (string, error) { +func (m *marshalactionResponseProtocolIpv4PingResponse) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -322398,7 +325728,7 @@ func (m *marshalbgpV4EviVxlan) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalbgpV4EviVxlan) FromJson(value string) error { +func (m *unMarshalactionResponseProtocolIpv4PingResponse) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -322411,7 +325741,7 @@ func (m *unMarshalbgpV4EviVxlan) FromJson(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - m.obj.setNil() + err := m.obj.validateToAndFrom() if err != nil { return err @@ -322419,19 +325749,19 @@ func (m *unMarshalbgpV4EviVxlan) FromJson(value string) error { return nil } -func (obj *bgpV4EviVxlan) validateToAndFrom() error { +func (obj *actionResponseProtocolIpv4PingResponse) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpV4EviVxlan) validate() error { +func (obj *actionResponseProtocolIpv4PingResponse) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpV4EviVxlan) String() string { +func (obj *actionResponseProtocolIpv4PingResponse) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -322439,12 +325769,12 @@ func (obj *bgpV4EviVxlan) String() string { return str } -func (obj *bgpV4EviVxlan) Clone() (BgpV4EviVxlan, error) { +func (obj *actionResponseProtocolIpv4PingResponse) Clone() (ActionResponseProtocolIpv4PingResponse, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpV4EviVxlan() + newObj := NewActionResponseProtocolIpv4PingResponse() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -322456,876 +325786,593 @@ func (obj *bgpV4EviVxlan) Clone() (BgpV4EviVxlan, error) { return newObj, nil } -func (obj *bgpV4EviVxlan) setNil() { - obj.broadcastDomainsHolder = nil - obj.routeDistinguisherHolder = nil - obj.routeTargetExportHolder = nil - obj.routeTargetImportHolder = nil - obj.l3RouteTargetExportHolder = nil - obj.l3RouteTargetImportHolder = nil - obj.advancedHolder = nil - obj.communitiesHolder = nil - obj.extCommunitiesHolder = nil - obj.asPathHolder = nil - obj.validationErrors = nil - obj.warnings = nil - obj.constraints = make(map[string]map[string]Constraints) -} - -// BgpV4EviVxlan is configuration for BGP EVPN EVI. Advertises following routes - -// -// # Type 3 - Inclusive Multicast Ethernet Tag Route -// -// Type 1 - Ethernet Auto-discovery Route (Per EVI) -// -// Type 1 - Ethernet Auto-discovery Route (Per ES) -type BgpV4EviVxlan interface { +// ActionResponseProtocolIpv4PingResponse is response for ping initiated between a single source and destination pair. +type ActionResponseProtocolIpv4PingResponse interface { Validation - // msg marshals BgpV4EviVxlan to protobuf object *otg.BgpV4EviVxlan + // msg marshals ActionResponseProtocolIpv4PingResponse to protobuf object *otg.ActionResponseProtocolIpv4PingResponse // and doesn't set defaults - msg() *otg.BgpV4EviVxlan - // setMsg unmarshals BgpV4EviVxlan from protobuf object *otg.BgpV4EviVxlan + msg() *otg.ActionResponseProtocolIpv4PingResponse + // setMsg unmarshals ActionResponseProtocolIpv4PingResponse from protobuf object *otg.ActionResponseProtocolIpv4PingResponse // and doesn't set defaults - setMsg(*otg.BgpV4EviVxlan) BgpV4EviVxlan + setMsg(*otg.ActionResponseProtocolIpv4PingResponse) ActionResponseProtocolIpv4PingResponse // provides marshal interface - Marshal() marshalBgpV4EviVxlan + Marshal() marshalActionResponseProtocolIpv4PingResponse // provides unmarshal interface - Unmarshal() unMarshalBgpV4EviVxlan - // validate validates BgpV4EviVxlan + Unmarshal() unMarshalActionResponseProtocolIpv4PingResponse + // validate validates ActionResponseProtocolIpv4PingResponse validate() error // A stringer function String() string // Clones the object - Clone() (BgpV4EviVxlan, error) + Clone() (ActionResponseProtocolIpv4PingResponse, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // BroadcastDomains returns BgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIterIter, set in BgpV4EviVxlan - BroadcastDomains() BgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter - // ReplicationType returns BgpV4EviVxlanReplicationTypeEnum, set in BgpV4EviVxlan - ReplicationType() BgpV4EviVxlanReplicationTypeEnum - // SetReplicationType assigns BgpV4EviVxlanReplicationTypeEnum provided by user to BgpV4EviVxlan - SetReplicationType(value BgpV4EviVxlanReplicationTypeEnum) BgpV4EviVxlan - // HasReplicationType checks if ReplicationType has been set in BgpV4EviVxlan - HasReplicationType() bool - // PmsiLabel returns uint32, set in BgpV4EviVxlan. - PmsiLabel() uint32 - // SetPmsiLabel assigns uint32 provided by user to BgpV4EviVxlan - SetPmsiLabel(value uint32) BgpV4EviVxlan - // HasPmsiLabel checks if PmsiLabel has been set in BgpV4EviVxlan - HasPmsiLabel() bool - // AdLabel returns uint32, set in BgpV4EviVxlan. - AdLabel() uint32 - // SetAdLabel assigns uint32 provided by user to BgpV4EviVxlan - SetAdLabel(value uint32) BgpV4EviVxlan - // HasAdLabel checks if AdLabel has been set in BgpV4EviVxlan - HasAdLabel() bool - // RouteDistinguisher returns BgpRouteDistinguisher, set in BgpV4EviVxlan. - // BgpRouteDistinguisher is bGP Route Distinguisher. - RouteDistinguisher() BgpRouteDistinguisher - // SetRouteDistinguisher assigns BgpRouteDistinguisher provided by user to BgpV4EviVxlan. - // BgpRouteDistinguisher is bGP Route Distinguisher. - SetRouteDistinguisher(value BgpRouteDistinguisher) BgpV4EviVxlan - // HasRouteDistinguisher checks if RouteDistinguisher has been set in BgpV4EviVxlan - HasRouteDistinguisher() bool - // RouteTargetExport returns BgpV4EviVxlanBgpRouteTargetIterIter, set in BgpV4EviVxlan - RouteTargetExport() BgpV4EviVxlanBgpRouteTargetIter - // RouteTargetImport returns BgpV4EviVxlanBgpRouteTargetIterIter, set in BgpV4EviVxlan - RouteTargetImport() BgpV4EviVxlanBgpRouteTargetIter - // L3RouteTargetExport returns BgpV4EviVxlanBgpRouteTargetIterIter, set in BgpV4EviVxlan - L3RouteTargetExport() BgpV4EviVxlanBgpRouteTargetIter - // L3RouteTargetImport returns BgpV4EviVxlanBgpRouteTargetIterIter, set in BgpV4EviVxlan - L3RouteTargetImport() BgpV4EviVxlanBgpRouteTargetIter - // Advanced returns BgpRouteAdvanced, set in BgpV4EviVxlan. - // BgpRouteAdvanced is configuration for advanced BGP route range settings. - Advanced() BgpRouteAdvanced - // SetAdvanced assigns BgpRouteAdvanced provided by user to BgpV4EviVxlan. - // BgpRouteAdvanced is configuration for advanced BGP route range settings. - SetAdvanced(value BgpRouteAdvanced) BgpV4EviVxlan - // HasAdvanced checks if Advanced has been set in BgpV4EviVxlan - HasAdvanced() bool - // Communities returns BgpV4EviVxlanBgpCommunityIterIter, set in BgpV4EviVxlan - Communities() BgpV4EviVxlanBgpCommunityIter - // ExtCommunities returns BgpV4EviVxlanBgpExtCommunityIterIter, set in BgpV4EviVxlan - ExtCommunities() BgpV4EviVxlanBgpExtCommunityIter - // AsPath returns BgpAsPath, set in BgpV4EviVxlan. - // BgpAsPath is this attribute identifies the autonomous systems through which routing information carried in this UPDATE message has passed. This contains the configuration of how to include the Local AS in the AS path attribute of the MP REACH NLRI. It also contains optional configuration of additional AS Path Segments that can be included in the AS Path attribute. The AS Path consists of a Set or Sequence of Autonomous Systems (AS) numbers that a routing information passes through to reach the destination. - AsPath() BgpAsPath - // SetAsPath assigns BgpAsPath provided by user to BgpV4EviVxlan. - // BgpAsPath is this attribute identifies the autonomous systems through which routing information carried in this UPDATE message has passed. This contains the configuration of how to include the Local AS in the AS path attribute of the MP REACH NLRI. It also contains optional configuration of additional AS Path Segments that can be included in the AS Path attribute. The AS Path consists of a Set or Sequence of Autonomous Systems (AS) numbers that a routing information passes through to reach the destination. - SetAsPath(value BgpAsPath) BgpV4EviVxlan - // HasAsPath checks if AsPath has been set in BgpV4EviVxlan - HasAsPath() bool - setNil() + // SrcName returns string, set in ActionResponseProtocolIpv4PingResponse. + SrcName() string + // SetSrcName assigns string provided by user to ActionResponseProtocolIpv4PingResponse + SetSrcName(value string) ActionResponseProtocolIpv4PingResponse + // DstIp returns string, set in ActionResponseProtocolIpv4PingResponse. + DstIp() string + // SetDstIp assigns string provided by user to ActionResponseProtocolIpv4PingResponse + SetDstIp(value string) ActionResponseProtocolIpv4PingResponse + // Result returns ActionResponseProtocolIpv4PingResponseResultEnum, set in ActionResponseProtocolIpv4PingResponse + Result() ActionResponseProtocolIpv4PingResponseResultEnum + // SetResult assigns ActionResponseProtocolIpv4PingResponseResultEnum provided by user to ActionResponseProtocolIpv4PingResponse + SetResult(value ActionResponseProtocolIpv4PingResponseResultEnum) ActionResponseProtocolIpv4PingResponse } -// This contains the list of Broadcast Domains to be configured per EVI. -// BroadcastDomains returns a []BgpV4EviVxlanBroadcastDomain -func (obj *bgpV4EviVxlan) BroadcastDomains() BgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter { - if len(obj.obj.BroadcastDomains) == 0 { - obj.obj.BroadcastDomains = []*otg.BgpV4EviVxlanBroadcastDomain{} - } - if obj.broadcastDomainsHolder == nil { - obj.broadcastDomainsHolder = newBgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter(&obj.obj.BroadcastDomains).setMsg(obj) - } - return obj.broadcastDomainsHolder -} +// Name of source IPv4 interface used for ping. +// +// x-constraint: +// - /components/schemas/Device.Ipv4/properties/name +// +// x-constraint: +// - /components/schemas/Device.Ipv4/properties/name +// +// SrcName returns a string +func (obj *actionResponseProtocolIpv4PingResponse) SrcName() string { -type bgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter struct { - obj *bgpV4EviVxlan - bgpV4EviVxlanBroadcastDomainSlice []BgpV4EviVxlanBroadcastDomain - fieldPtr *[]*otg.BgpV4EviVxlanBroadcastDomain -} + return *obj.obj.SrcName -func newBgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter(ptr *[]*otg.BgpV4EviVxlanBroadcastDomain) BgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter { - return &bgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter{fieldPtr: ptr} } -type BgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter interface { - setMsg(*bgpV4EviVxlan) BgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter - Items() []BgpV4EviVxlanBroadcastDomain - Add() BgpV4EviVxlanBroadcastDomain - Append(items ...BgpV4EviVxlanBroadcastDomain) BgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter - Set(index int, newObj BgpV4EviVxlanBroadcastDomain) BgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter - Clear() BgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter - clearHolderSlice() BgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter - appendHolderSlice(item BgpV4EviVxlanBroadcastDomain) BgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter -} +// Name of source IPv4 interface used for ping. +// +// x-constraint: +// - /components/schemas/Device.Ipv4/properties/name +// +// x-constraint: +// - /components/schemas/Device.Ipv4/properties/name +// +// SetSrcName sets the string value in the ActionResponseProtocolIpv4PingResponse object +func (obj *actionResponseProtocolIpv4PingResponse) SetSrcName(value string) ActionResponseProtocolIpv4PingResponse { -func (obj *bgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter) setMsg(msg *bgpV4EviVxlan) BgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter { - obj.clearHolderSlice() - for _, val := range *obj.fieldPtr { - obj.appendHolderSlice(&bgpV4EviVxlanBroadcastDomain{obj: val}) - } - obj.obj = msg + obj.obj.SrcName = &value return obj } -func (obj *bgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter) Items() []BgpV4EviVxlanBroadcastDomain { - return obj.bgpV4EviVxlanBroadcastDomainSlice -} +// Destination IPv4 address used for ping. +// DstIp returns a string +func (obj *actionResponseProtocolIpv4PingResponse) DstIp() string { -func (obj *bgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter) Add() BgpV4EviVxlanBroadcastDomain { - newObj := &otg.BgpV4EviVxlanBroadcastDomain{} - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - newLibObj := &bgpV4EviVxlanBroadcastDomain{obj: newObj} - newLibObj.setDefault() - obj.bgpV4EviVxlanBroadcastDomainSlice = append(obj.bgpV4EviVxlanBroadcastDomainSlice, newLibObj) - return newLibObj -} + return *obj.obj.DstIp -func (obj *bgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter) Append(items ...BgpV4EviVxlanBroadcastDomain) BgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter { - for _, item := range items { - newObj := item.msg() - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - obj.bgpV4EviVxlanBroadcastDomainSlice = append(obj.bgpV4EviVxlanBroadcastDomainSlice, item) - } - return obj } -func (obj *bgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter) Set(index int, newObj BgpV4EviVxlanBroadcastDomain) BgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter { - (*obj.fieldPtr)[index] = newObj.msg() - obj.bgpV4EviVxlanBroadcastDomainSlice[index] = newObj - return obj -} -func (obj *bgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter) Clear() BgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter { - if len(*obj.fieldPtr) > 0 { - *obj.fieldPtr = []*otg.BgpV4EviVxlanBroadcastDomain{} - obj.bgpV4EviVxlanBroadcastDomainSlice = []BgpV4EviVxlanBroadcastDomain{} - } - return obj -} -func (obj *bgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter) clearHolderSlice() BgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter { - if len(obj.bgpV4EviVxlanBroadcastDomainSlice) > 0 { - obj.bgpV4EviVxlanBroadcastDomainSlice = []BgpV4EviVxlanBroadcastDomain{} - } - return obj -} -func (obj *bgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter) appendHolderSlice(item BgpV4EviVxlanBroadcastDomain) BgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter { - obj.bgpV4EviVxlanBroadcastDomainSlice = append(obj.bgpV4EviVxlanBroadcastDomainSlice, item) +// Destination IPv4 address used for ping. +// SetDstIp sets the string value in the ActionResponseProtocolIpv4PingResponse object +func (obj *actionResponseProtocolIpv4PingResponse) SetDstIp(value string) ActionResponseProtocolIpv4PingResponse { + + obj.obj.DstIp = &value return obj } -type BgpV4EviVxlanReplicationTypeEnum string +type ActionResponseProtocolIpv4PingResponseResultEnum string -// Enum of ReplicationType on BgpV4EviVxlan -var BgpV4EviVxlanReplicationType = struct { - INGRESS_REPLICATION BgpV4EviVxlanReplicationTypeEnum +// Enum of Result on ActionResponseProtocolIpv4PingResponse +var ActionResponseProtocolIpv4PingResponseResult = struct { + SUCCEEDED ActionResponseProtocolIpv4PingResponseResultEnum + FAILED ActionResponseProtocolIpv4PingResponseResultEnum }{ - INGRESS_REPLICATION: BgpV4EviVxlanReplicationTypeEnum("ingress_replication"), -} - -func (obj *bgpV4EviVxlan) ReplicationType() BgpV4EviVxlanReplicationTypeEnum { - return BgpV4EviVxlanReplicationTypeEnum(obj.obj.ReplicationType.Enum().String()) + SUCCEEDED: ActionResponseProtocolIpv4PingResponseResultEnum("succeeded"), + FAILED: ActionResponseProtocolIpv4PingResponseResultEnum("failed"), } -// This model only supports Ingress Replication -// ReplicationType returns a string -func (obj *bgpV4EviVxlan) HasReplicationType() bool { - return obj.obj.ReplicationType != nil +func (obj *actionResponseProtocolIpv4PingResponse) Result() ActionResponseProtocolIpv4PingResponseResultEnum { + return ActionResponseProtocolIpv4PingResponseResultEnum(obj.obj.Result.Enum().String()) } -func (obj *bgpV4EviVxlan) SetReplicationType(value BgpV4EviVxlanReplicationTypeEnum) BgpV4EviVxlan { - intValue, ok := otg.BgpV4EviVxlan_ReplicationType_Enum_value[string(value)] +func (obj *actionResponseProtocolIpv4PingResponse) SetResult(value ActionResponseProtocolIpv4PingResponseResultEnum) ActionResponseProtocolIpv4PingResponse { + intValue, ok := otg.ActionResponseProtocolIpv4PingResponse_Result_Enum_value[string(value)] if !ok { obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( - "%s is not a valid choice on BgpV4EviVxlanReplicationTypeEnum", string(value))) + "%s is not a valid choice on ActionResponseProtocolIpv4PingResponseResultEnum", string(value))) return obj } - enumValue := otg.BgpV4EviVxlan_ReplicationType_Enum(intValue) - obj.obj.ReplicationType = &enumValue + enumValue := otg.ActionResponseProtocolIpv4PingResponse_Result_Enum(intValue) + obj.obj.Result = &enumValue return obj } -// Downstream assigned VNI to be carried as Part of P-Multicast Service Interface Tunnel attribute (PMSI Tunnel Attribute) in Type 3 Inclusive Multicast Ethernet Tag Route. -// PmsiLabel returns a uint32 -func (obj *bgpV4EviVxlan) PmsiLabel() uint32 { +func (obj *actionResponseProtocolIpv4PingResponse) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } - return *obj.obj.PmsiLabel + // SrcName is required + if obj.obj.SrcName == nil { + vObj.validationErrors = append(vObj.validationErrors, "SrcName is required field on interface ActionResponseProtocolIpv4PingResponse") + } -} + // DstIp is required + if obj.obj.DstIp == nil { + vObj.validationErrors = append(vObj.validationErrors, "DstIp is required field on interface ActionResponseProtocolIpv4PingResponse") + } + if obj.obj.DstIp != nil { -// Downstream assigned VNI to be carried as Part of P-Multicast Service Interface Tunnel attribute (PMSI Tunnel Attribute) in Type 3 Inclusive Multicast Ethernet Tag Route. -// PmsiLabel returns a uint32 -func (obj *bgpV4EviVxlan) HasPmsiLabel() bool { - return obj.obj.PmsiLabel != nil -} + err := obj.validateIpv4(obj.DstIp()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on ActionResponseProtocolIpv4PingResponse.DstIp")) + } -// Downstream assigned VNI to be carried as Part of P-Multicast Service Interface Tunnel attribute (PMSI Tunnel Attribute) in Type 3 Inclusive Multicast Ethernet Tag Route. -// SetPmsiLabel sets the uint32 value in the BgpV4EviVxlan object -func (obj *bgpV4EviVxlan) SetPmsiLabel(value uint32) BgpV4EviVxlan { + } - obj.obj.PmsiLabel = &value - return obj + // Result is required + if obj.obj.Result == nil { + vObj.validationErrors = append(vObj.validationErrors, "Result is required field on interface ActionResponseProtocolIpv4PingResponse") + } } -// The Auto-discovery Route label (AD label) value, which gets advertised in the Ethernet Auto-discovery Route per -// AdLabel returns a uint32 -func (obj *bgpV4EviVxlan) AdLabel() uint32 { - - return *obj.obj.AdLabel - -} +func (obj *actionResponseProtocolIpv4PingResponse) setDefault() { -// The Auto-discovery Route label (AD label) value, which gets advertised in the Ethernet Auto-discovery Route per -// AdLabel returns a uint32 -func (obj *bgpV4EviVxlan) HasAdLabel() bool { - return obj.obj.AdLabel != nil } -// The Auto-discovery Route label (AD label) value, which gets advertised in the Ethernet Auto-discovery Route per -// SetAdLabel sets the uint32 value in the BgpV4EviVxlan object -func (obj *bgpV4EviVxlan) SetAdLabel(value uint32) BgpV4EviVxlan { - - obj.obj.AdLabel = &value - return obj +// ***** ActionResponseProtocolIpv6PingResponse ***** +type actionResponseProtocolIpv6PingResponse struct { + validation + obj *otg.ActionResponseProtocolIpv6PingResponse + marshaller marshalActionResponseProtocolIpv6PingResponse + unMarshaller unMarshalActionResponseProtocolIpv6PingResponse } -// Colon separated Extended Community value of 6 Bytes - "AS number: Value" identifying an EVI. Example - for the as_2octet "60005:100". -// RouteDistinguisher returns a BgpRouteDistinguisher -func (obj *bgpV4EviVxlan) RouteDistinguisher() BgpRouteDistinguisher { - if obj.obj.RouteDistinguisher == nil { - obj.obj.RouteDistinguisher = NewBgpRouteDistinguisher().msg() - } - if obj.routeDistinguisherHolder == nil { - obj.routeDistinguisherHolder = &bgpRouteDistinguisher{obj: obj.obj.RouteDistinguisher} - } - return obj.routeDistinguisherHolder +func NewActionResponseProtocolIpv6PingResponse() ActionResponseProtocolIpv6PingResponse { + obj := actionResponseProtocolIpv6PingResponse{obj: &otg.ActionResponseProtocolIpv6PingResponse{}} + obj.setDefault() + return &obj } -// Colon separated Extended Community value of 6 Bytes - "AS number: Value" identifying an EVI. Example - for the as_2octet "60005:100". -// RouteDistinguisher returns a BgpRouteDistinguisher -func (obj *bgpV4EviVxlan) HasRouteDistinguisher() bool { - return obj.obj.RouteDistinguisher != nil +func (obj *actionResponseProtocolIpv6PingResponse) msg() *otg.ActionResponseProtocolIpv6PingResponse { + return obj.obj } -// Colon separated Extended Community value of 6 Bytes - "AS number: Value" identifying an EVI. Example - for the as_2octet "60005:100". -// SetRouteDistinguisher sets the BgpRouteDistinguisher value in the BgpV4EviVxlan object -func (obj *bgpV4EviVxlan) SetRouteDistinguisher(value BgpRouteDistinguisher) BgpV4EviVxlan { - - obj.routeDistinguisherHolder = nil - obj.obj.RouteDistinguisher = value.msg() +func (obj *actionResponseProtocolIpv6PingResponse) setMsg(msg *otg.ActionResponseProtocolIpv6PingResponse) ActionResponseProtocolIpv6PingResponse { + proto.Merge(obj.obj, msg) return obj } -// List of Layer 2 Virtual Network Identifier (L2VNI) export targets associated with this EVI. -// RouteTargetExport returns a []BgpRouteTarget -func (obj *bgpV4EviVxlan) RouteTargetExport() BgpV4EviVxlanBgpRouteTargetIter { - if len(obj.obj.RouteTargetExport) == 0 { - obj.obj.RouteTargetExport = []*otg.BgpRouteTarget{} - } - if obj.routeTargetExportHolder == nil { - obj.routeTargetExportHolder = newBgpV4EviVxlanBgpRouteTargetIter(&obj.obj.RouteTargetExport).setMsg(obj) - } - return obj.routeTargetExportHolder +type marshalactionResponseProtocolIpv6PingResponse struct { + obj *actionResponseProtocolIpv6PingResponse } -type bgpV4EviVxlanBgpRouteTargetIter struct { - obj *bgpV4EviVxlan - bgpRouteTargetSlice []BgpRouteTarget - fieldPtr *[]*otg.BgpRouteTarget +type marshalActionResponseProtocolIpv6PingResponse interface { + // ToProto marshals ActionResponseProtocolIpv6PingResponse to protobuf object *otg.ActionResponseProtocolIpv6PingResponse + ToProto() (*otg.ActionResponseProtocolIpv6PingResponse, error) + // ToPbText marshals ActionResponseProtocolIpv6PingResponse to protobuf text + ToPbText() (string, error) + // ToYaml marshals ActionResponseProtocolIpv6PingResponse to YAML text + ToYaml() (string, error) + // ToJson marshals ActionResponseProtocolIpv6PingResponse to JSON text + ToJson() (string, error) } -func newBgpV4EviVxlanBgpRouteTargetIter(ptr *[]*otg.BgpRouteTarget) BgpV4EviVxlanBgpRouteTargetIter { - return &bgpV4EviVxlanBgpRouteTargetIter{fieldPtr: ptr} +type unMarshalactionResponseProtocolIpv6PingResponse struct { + obj *actionResponseProtocolIpv6PingResponse } -type BgpV4EviVxlanBgpRouteTargetIter interface { - setMsg(*bgpV4EviVxlan) BgpV4EviVxlanBgpRouteTargetIter - Items() []BgpRouteTarget - Add() BgpRouteTarget - Append(items ...BgpRouteTarget) BgpV4EviVxlanBgpRouteTargetIter - Set(index int, newObj BgpRouteTarget) BgpV4EviVxlanBgpRouteTargetIter - Clear() BgpV4EviVxlanBgpRouteTargetIter - clearHolderSlice() BgpV4EviVxlanBgpRouteTargetIter - appendHolderSlice(item BgpRouteTarget) BgpV4EviVxlanBgpRouteTargetIter +type unMarshalActionResponseProtocolIpv6PingResponse interface { + // FromProto unmarshals ActionResponseProtocolIpv6PingResponse from protobuf object *otg.ActionResponseProtocolIpv6PingResponse + FromProto(msg *otg.ActionResponseProtocolIpv6PingResponse) (ActionResponseProtocolIpv6PingResponse, error) + // FromPbText unmarshals ActionResponseProtocolIpv6PingResponse from protobuf text + FromPbText(value string) error + // FromYaml unmarshals ActionResponseProtocolIpv6PingResponse from YAML text + FromYaml(value string) error + // FromJson unmarshals ActionResponseProtocolIpv6PingResponse from JSON text + FromJson(value string) error } -func (obj *bgpV4EviVxlanBgpRouteTargetIter) setMsg(msg *bgpV4EviVxlan) BgpV4EviVxlanBgpRouteTargetIter { - obj.clearHolderSlice() - for _, val := range *obj.fieldPtr { - obj.appendHolderSlice(&bgpRouteTarget{obj: val}) +func (obj *actionResponseProtocolIpv6PingResponse) Marshal() marshalActionResponseProtocolIpv6PingResponse { + if obj.marshaller == nil { + obj.marshaller = &marshalactionResponseProtocolIpv6PingResponse{obj: obj} } - obj.obj = msg - return obj + return obj.marshaller } -func (obj *bgpV4EviVxlanBgpRouteTargetIter) Items() []BgpRouteTarget { - return obj.bgpRouteTargetSlice +func (obj *actionResponseProtocolIpv6PingResponse) Unmarshal() unMarshalActionResponseProtocolIpv6PingResponse { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshalactionResponseProtocolIpv6PingResponse{obj: obj} + } + return obj.unMarshaller } -func (obj *bgpV4EviVxlanBgpRouteTargetIter) Add() BgpRouteTarget { - newObj := &otg.BgpRouteTarget{} - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - newLibObj := &bgpRouteTarget{obj: newObj} - newLibObj.setDefault() - obj.bgpRouteTargetSlice = append(obj.bgpRouteTargetSlice, newLibObj) - return newLibObj +func (m *marshalactionResponseProtocolIpv6PingResponse) ToProto() (*otg.ActionResponseProtocolIpv6PingResponse, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil } -func (obj *bgpV4EviVxlanBgpRouteTargetIter) Append(items ...BgpRouteTarget) BgpV4EviVxlanBgpRouteTargetIter { - for _, item := range items { - newObj := item.msg() - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - obj.bgpRouteTargetSlice = append(obj.bgpRouteTargetSlice, item) +func (m *unMarshalactionResponseProtocolIpv6PingResponse) FromProto(msg *otg.ActionResponseProtocolIpv6PingResponse) (ActionResponseProtocolIpv6PingResponse, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err } - return obj + return newObj, nil } -func (obj *bgpV4EviVxlanBgpRouteTargetIter) Set(index int, newObj BgpRouteTarget) BgpV4EviVxlanBgpRouteTargetIter { - (*obj.fieldPtr)[index] = newObj.msg() - obj.bgpRouteTargetSlice[index] = newObj - return obj -} -func (obj *bgpV4EviVxlanBgpRouteTargetIter) Clear() BgpV4EviVxlanBgpRouteTargetIter { - if len(*obj.fieldPtr) > 0 { - *obj.fieldPtr = []*otg.BgpRouteTarget{} - obj.bgpRouteTargetSlice = []BgpRouteTarget{} +func (m *marshalactionResponseProtocolIpv6PingResponse) ToPbText() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr } - return obj -} -func (obj *bgpV4EviVxlanBgpRouteTargetIter) clearHolderSlice() BgpV4EviVxlanBgpRouteTargetIter { - if len(obj.bgpRouteTargetSlice) > 0 { - obj.bgpRouteTargetSlice = []BgpRouteTarget{} + protoMarshal, err := proto.Marshal(m.obj.msg()) + if err != nil { + return "", err } - return obj -} -func (obj *bgpV4EviVxlanBgpRouteTargetIter) appendHolderSlice(item BgpRouteTarget) BgpV4EviVxlanBgpRouteTargetIter { - obj.bgpRouteTargetSlice = append(obj.bgpRouteTargetSlice, item) - return obj + return string(protoMarshal), nil } -// List of L2VNI import targets associated with this EVI. -// RouteTargetImport returns a []BgpRouteTarget -func (obj *bgpV4EviVxlan) RouteTargetImport() BgpV4EviVxlanBgpRouteTargetIter { - if len(obj.obj.RouteTargetImport) == 0 { - obj.obj.RouteTargetImport = []*otg.BgpRouteTarget{} +func (m *unMarshalactionResponseProtocolIpv6PingResponse) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), m.obj.msg()) + if retObj != nil { + return retObj } - if obj.routeTargetImportHolder == nil { - obj.routeTargetImportHolder = newBgpV4EviVxlanBgpRouteTargetIter(&obj.obj.RouteTargetImport).setMsg(obj) + + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr } - return obj.routeTargetImportHolder + return retObj } -// List of Layer 3 Virtual Network Identifier (L3VNI) Export Route Targets. -// L3RouteTargetExport returns a []BgpRouteTarget -func (obj *bgpV4EviVxlan) L3RouteTargetExport() BgpV4EviVxlanBgpRouteTargetIter { - if len(obj.obj.L3RouteTargetExport) == 0 { - obj.obj.L3RouteTargetExport = []*otg.BgpRouteTarget{} +func (m *marshalactionResponseProtocolIpv6PingResponse) ToYaml() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr } - if obj.l3RouteTargetExportHolder == nil { - obj.l3RouteTargetExportHolder = newBgpV4EviVxlanBgpRouteTargetIter(&obj.obj.L3RouteTargetExport).setMsg(obj) + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, } - return obj.l3RouteTargetExportHolder + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil } -// List of L3VNI Import Route Targets. -// L3RouteTargetImport returns a []BgpRouteTarget -func (obj *bgpV4EviVxlan) L3RouteTargetImport() BgpV4EviVxlanBgpRouteTargetIter { - if len(obj.obj.L3RouteTargetImport) == 0 { - obj.obj.L3RouteTargetImport = []*otg.BgpRouteTarget{} +func (m *unMarshalactionResponseProtocolIpv6PingResponse) FromYaml(value string) error { + if value == "" { + value = "{}" } - if obj.l3RouteTargetImportHolder == nil { - obj.l3RouteTargetImportHolder = newBgpV4EviVxlanBgpRouteTargetIter(&obj.obj.L3RouteTargetImport).setMsg(obj) + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err } - return obj.l3RouteTargetImportHolder -} - -// description is TBD -// Advanced returns a BgpRouteAdvanced -func (obj *bgpV4EviVxlan) Advanced() BgpRouteAdvanced { - if obj.obj.Advanced == nil { - obj.obj.Advanced = NewBgpRouteAdvanced().msg() + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, } - if obj.advancedHolder == nil { - obj.advancedHolder = &bgpRouteAdvanced{obj: obj.obj.Advanced} + uError := opts.Unmarshal([]byte(data), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) } - return obj.advancedHolder -} -// description is TBD -// Advanced returns a BgpRouteAdvanced -func (obj *bgpV4EviVxlan) HasAdvanced() bool { - return obj.obj.Advanced != nil -} - -// description is TBD -// SetAdvanced sets the BgpRouteAdvanced value in the BgpV4EviVxlan object -func (obj *bgpV4EviVxlan) SetAdvanced(value BgpRouteAdvanced) BgpV4EviVxlan { - - obj.advancedHolder = nil - obj.obj.Advanced = value.msg() - - return obj + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil } -// Optional community settings. -// Communities returns a []BgpCommunity -func (obj *bgpV4EviVxlan) Communities() BgpV4EviVxlanBgpCommunityIter { - if len(obj.obj.Communities) == 0 { - obj.obj.Communities = []*otg.BgpCommunity{} +func (m *marshalactionResponseProtocolIpv6PingResponse) ToJson() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr } - if obj.communitiesHolder == nil { - obj.communitiesHolder = newBgpV4EviVxlanBgpCommunityIter(&obj.obj.Communities).setMsg(obj) + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", } - return obj.communitiesHolder -} - -type bgpV4EviVxlanBgpCommunityIter struct { - obj *bgpV4EviVxlan - bgpCommunitySlice []BgpCommunity - fieldPtr *[]*otg.BgpCommunity -} - -func newBgpV4EviVxlanBgpCommunityIter(ptr *[]*otg.BgpCommunity) BgpV4EviVxlanBgpCommunityIter { - return &bgpV4EviVxlanBgpCommunityIter{fieldPtr: ptr} + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(data), nil } -type BgpV4EviVxlanBgpCommunityIter interface { - setMsg(*bgpV4EviVxlan) BgpV4EviVxlanBgpCommunityIter - Items() []BgpCommunity - Add() BgpCommunity - Append(items ...BgpCommunity) BgpV4EviVxlanBgpCommunityIter - Set(index int, newObj BgpCommunity) BgpV4EviVxlanBgpCommunityIter - Clear() BgpV4EviVxlanBgpCommunityIter - clearHolderSlice() BgpV4EviVxlanBgpCommunityIter - appendHolderSlice(item BgpCommunity) BgpV4EviVxlanBgpCommunityIter -} +func (m *unMarshalactionResponseProtocolIpv6PingResponse) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } -func (obj *bgpV4EviVxlanBgpCommunityIter) setMsg(msg *bgpV4EviVxlan) BgpV4EviVxlanBgpCommunityIter { - obj.clearHolderSlice() - for _, val := range *obj.fieldPtr { - obj.appendHolderSlice(&bgpCommunity{obj: val}) + err := m.obj.validateToAndFrom() + if err != nil { + return err } - obj.obj = msg - return obj + return nil } -func (obj *bgpV4EviVxlanBgpCommunityIter) Items() []BgpCommunity { - return obj.bgpCommunitySlice +func (obj *actionResponseProtocolIpv6PingResponse) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() } -func (obj *bgpV4EviVxlanBgpCommunityIter) Add() BgpCommunity { - newObj := &otg.BgpCommunity{} - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - newLibObj := &bgpCommunity{obj: newObj} - newLibObj.setDefault() - obj.bgpCommunitySlice = append(obj.bgpCommunitySlice, newLibObj) - return newLibObj +func (obj *actionResponseProtocolIpv6PingResponse) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() } -func (obj *bgpV4EviVxlanBgpCommunityIter) Append(items ...BgpCommunity) BgpV4EviVxlanBgpCommunityIter { - for _, item := range items { - newObj := item.msg() - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - obj.bgpCommunitySlice = append(obj.bgpCommunitySlice, item) +func (obj *actionResponseProtocolIpv6PingResponse) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() } - return obj + return str } -func (obj *bgpV4EviVxlanBgpCommunityIter) Set(index int, newObj BgpCommunity) BgpV4EviVxlanBgpCommunityIter { - (*obj.fieldPtr)[index] = newObj.msg() - obj.bgpCommunitySlice[index] = newObj - return obj -} -func (obj *bgpV4EviVxlanBgpCommunityIter) Clear() BgpV4EviVxlanBgpCommunityIter { - if len(*obj.fieldPtr) > 0 { - *obj.fieldPtr = []*otg.BgpCommunity{} - obj.bgpCommunitySlice = []BgpCommunity{} - } - return obj -} -func (obj *bgpV4EviVxlanBgpCommunityIter) clearHolderSlice() BgpV4EviVxlanBgpCommunityIter { - if len(obj.bgpCommunitySlice) > 0 { - obj.bgpCommunitySlice = []BgpCommunity{} +func (obj *actionResponseProtocolIpv6PingResponse) Clone() (ActionResponseProtocolIpv6PingResponse, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr } - return obj -} -func (obj *bgpV4EviVxlanBgpCommunityIter) appendHolderSlice(item BgpCommunity) BgpV4EviVxlanBgpCommunityIter { - obj.bgpCommunitySlice = append(obj.bgpCommunitySlice, item) - return obj -} - -// Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two byte local administrator id. When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for administrator_ipv4_address is a four byte IPv4 address followed by a two byte local administrator id. When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from IANA's "ETHER TYPES" registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format. When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates occur for the same MAC address. -// ExtCommunities returns a []BgpExtCommunity -func (obj *bgpV4EviVxlan) ExtCommunities() BgpV4EviVxlanBgpExtCommunityIter { - if len(obj.obj.ExtCommunities) == 0 { - obj.obj.ExtCommunities = []*otg.BgpExtCommunity{} + newObj := NewActionResponseProtocolIpv6PingResponse() + data, err := proto.Marshal(obj.msg()) + if err != nil { + return nil, err } - if obj.extCommunitiesHolder == nil { - obj.extCommunitiesHolder = newBgpV4EviVxlanBgpExtCommunityIter(&obj.obj.ExtCommunities).setMsg(obj) + pbErr := proto.Unmarshal(data, newObj.msg()) + if pbErr != nil { + return nil, pbErr } - return obj.extCommunitiesHolder + return newObj, nil } -type bgpV4EviVxlanBgpExtCommunityIter struct { - obj *bgpV4EviVxlan - bgpExtCommunitySlice []BgpExtCommunity - fieldPtr *[]*otg.BgpExtCommunity +// ActionResponseProtocolIpv6PingResponse is response for ping initiated between a single source and destination pair. +type ActionResponseProtocolIpv6PingResponse interface { + Validation + // msg marshals ActionResponseProtocolIpv6PingResponse to protobuf object *otg.ActionResponseProtocolIpv6PingResponse + // and doesn't set defaults + msg() *otg.ActionResponseProtocolIpv6PingResponse + // setMsg unmarshals ActionResponseProtocolIpv6PingResponse from protobuf object *otg.ActionResponseProtocolIpv6PingResponse + // and doesn't set defaults + setMsg(*otg.ActionResponseProtocolIpv6PingResponse) ActionResponseProtocolIpv6PingResponse + // provides marshal interface + Marshal() marshalActionResponseProtocolIpv6PingResponse + // provides unmarshal interface + Unmarshal() unMarshalActionResponseProtocolIpv6PingResponse + // validate validates ActionResponseProtocolIpv6PingResponse + validate() error + // A stringer function + String() string + // Clones the object + Clone() (ActionResponseProtocolIpv6PingResponse, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // SrcName returns string, set in ActionResponseProtocolIpv6PingResponse. + SrcName() string + // SetSrcName assigns string provided by user to ActionResponseProtocolIpv6PingResponse + SetSrcName(value string) ActionResponseProtocolIpv6PingResponse + // DstIp returns string, set in ActionResponseProtocolIpv6PingResponse. + DstIp() string + // SetDstIp assigns string provided by user to ActionResponseProtocolIpv6PingResponse + SetDstIp(value string) ActionResponseProtocolIpv6PingResponse + // Result returns ActionResponseProtocolIpv6PingResponseResultEnum, set in ActionResponseProtocolIpv6PingResponse + Result() ActionResponseProtocolIpv6PingResponseResultEnum + // SetResult assigns ActionResponseProtocolIpv6PingResponseResultEnum provided by user to ActionResponseProtocolIpv6PingResponse + SetResult(value ActionResponseProtocolIpv6PingResponseResultEnum) ActionResponseProtocolIpv6PingResponse } -func newBgpV4EviVxlanBgpExtCommunityIter(ptr *[]*otg.BgpExtCommunity) BgpV4EviVxlanBgpExtCommunityIter { - return &bgpV4EviVxlanBgpExtCommunityIter{fieldPtr: ptr} -} +// Name of source IPv6 interface used for ping. +// +// x-constraint: +// - /components/schemas/Device.Ipv6/properties/name +// +// x-constraint: +// - /components/schemas/Device.Ipv6/properties/name +// +// SrcName returns a string +func (obj *actionResponseProtocolIpv6PingResponse) SrcName() string { + + return *obj.obj.SrcName -type BgpV4EviVxlanBgpExtCommunityIter interface { - setMsg(*bgpV4EviVxlan) BgpV4EviVxlanBgpExtCommunityIter - Items() []BgpExtCommunity - Add() BgpExtCommunity - Append(items ...BgpExtCommunity) BgpV4EviVxlanBgpExtCommunityIter - Set(index int, newObj BgpExtCommunity) BgpV4EviVxlanBgpExtCommunityIter - Clear() BgpV4EviVxlanBgpExtCommunityIter - clearHolderSlice() BgpV4EviVxlanBgpExtCommunityIter - appendHolderSlice(item BgpExtCommunity) BgpV4EviVxlanBgpExtCommunityIter } -func (obj *bgpV4EviVxlanBgpExtCommunityIter) setMsg(msg *bgpV4EviVxlan) BgpV4EviVxlanBgpExtCommunityIter { - obj.clearHolderSlice() - for _, val := range *obj.fieldPtr { - obj.appendHolderSlice(&bgpExtCommunity{obj: val}) - } - obj.obj = msg +// Name of source IPv6 interface used for ping. +// +// x-constraint: +// - /components/schemas/Device.Ipv6/properties/name +// +// x-constraint: +// - /components/schemas/Device.Ipv6/properties/name +// +// SetSrcName sets the string value in the ActionResponseProtocolIpv6PingResponse object +func (obj *actionResponseProtocolIpv6PingResponse) SetSrcName(value string) ActionResponseProtocolIpv6PingResponse { + + obj.obj.SrcName = &value return obj } -func (obj *bgpV4EviVxlanBgpExtCommunityIter) Items() []BgpExtCommunity { - return obj.bgpExtCommunitySlice -} +// Destination IPv6 address used for ping. +// DstIp returns a string +func (obj *actionResponseProtocolIpv6PingResponse) DstIp() string { -func (obj *bgpV4EviVxlanBgpExtCommunityIter) Add() BgpExtCommunity { - newObj := &otg.BgpExtCommunity{} - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - newLibObj := &bgpExtCommunity{obj: newObj} - newLibObj.setDefault() - obj.bgpExtCommunitySlice = append(obj.bgpExtCommunitySlice, newLibObj) - return newLibObj -} + return *obj.obj.DstIp -func (obj *bgpV4EviVxlanBgpExtCommunityIter) Append(items ...BgpExtCommunity) BgpV4EviVxlanBgpExtCommunityIter { - for _, item := range items { - newObj := item.msg() - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - obj.bgpExtCommunitySlice = append(obj.bgpExtCommunitySlice, item) - } - return obj } -func (obj *bgpV4EviVxlanBgpExtCommunityIter) Set(index int, newObj BgpExtCommunity) BgpV4EviVxlanBgpExtCommunityIter { - (*obj.fieldPtr)[index] = newObj.msg() - obj.bgpExtCommunitySlice[index] = newObj - return obj -} -func (obj *bgpV4EviVxlanBgpExtCommunityIter) Clear() BgpV4EviVxlanBgpExtCommunityIter { - if len(*obj.fieldPtr) > 0 { - *obj.fieldPtr = []*otg.BgpExtCommunity{} - obj.bgpExtCommunitySlice = []BgpExtCommunity{} - } - return obj -} -func (obj *bgpV4EviVxlanBgpExtCommunityIter) clearHolderSlice() BgpV4EviVxlanBgpExtCommunityIter { - if len(obj.bgpExtCommunitySlice) > 0 { - obj.bgpExtCommunitySlice = []BgpExtCommunity{} - } - return obj -} -func (obj *bgpV4EviVxlanBgpExtCommunityIter) appendHolderSlice(item BgpExtCommunity) BgpV4EviVxlanBgpExtCommunityIter { - obj.bgpExtCommunitySlice = append(obj.bgpExtCommunitySlice, item) +// Destination IPv6 address used for ping. +// SetDstIp sets the string value in the ActionResponseProtocolIpv6PingResponse object +func (obj *actionResponseProtocolIpv6PingResponse) SetDstIp(value string) ActionResponseProtocolIpv6PingResponse { + + obj.obj.DstIp = &value return obj } -// Optional AS PATH settings. -// AsPath returns a BgpAsPath -func (obj *bgpV4EviVxlan) AsPath() BgpAsPath { - if obj.obj.AsPath == nil { - obj.obj.AsPath = NewBgpAsPath().msg() - } - if obj.asPathHolder == nil { - obj.asPathHolder = &bgpAsPath{obj: obj.obj.AsPath} - } - return obj.asPathHolder -} +type ActionResponseProtocolIpv6PingResponseResultEnum string -// Optional AS PATH settings. -// AsPath returns a BgpAsPath -func (obj *bgpV4EviVxlan) HasAsPath() bool { - return obj.obj.AsPath != nil +// Enum of Result on ActionResponseProtocolIpv6PingResponse +var ActionResponseProtocolIpv6PingResponseResult = struct { + SUCCEEDED ActionResponseProtocolIpv6PingResponseResultEnum + FAILED ActionResponseProtocolIpv6PingResponseResultEnum +}{ + SUCCEEDED: ActionResponseProtocolIpv6PingResponseResultEnum("succeeded"), + FAILED: ActionResponseProtocolIpv6PingResponseResultEnum("failed"), } -// Optional AS PATH settings. -// SetAsPath sets the BgpAsPath value in the BgpV4EviVxlan object -func (obj *bgpV4EviVxlan) SetAsPath(value BgpAsPath) BgpV4EviVxlan { +func (obj *actionResponseProtocolIpv6PingResponse) Result() ActionResponseProtocolIpv6PingResponseResultEnum { + return ActionResponseProtocolIpv6PingResponseResultEnum(obj.obj.Result.Enum().String()) +} - obj.asPathHolder = nil - obj.obj.AsPath = value.msg() +func (obj *actionResponseProtocolIpv6PingResponse) SetResult(value ActionResponseProtocolIpv6PingResponseResultEnum) ActionResponseProtocolIpv6PingResponse { + intValue, ok := otg.ActionResponseProtocolIpv6PingResponse_Result_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on ActionResponseProtocolIpv6PingResponseResultEnum", string(value))) + return obj + } + enumValue := otg.ActionResponseProtocolIpv6PingResponse_Result_Enum(intValue) + obj.obj.Result = &enumValue return obj } -func (obj *bgpV4EviVxlan) validateObj(vObj *validation, set_default bool) { +func (obj *actionResponseProtocolIpv6PingResponse) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if len(obj.obj.BroadcastDomains) != 0 { - - if set_default { - obj.BroadcastDomains().clearHolderSlice() - for _, item := range obj.obj.BroadcastDomains { - obj.BroadcastDomains().appendHolderSlice(&bgpV4EviVxlanBroadcastDomain{obj: item}) - } - } - for _, item := range obj.BroadcastDomains().Items() { - item.validateObj(vObj, set_default) - } - - } - - if obj.obj.PmsiLabel != nil { - - if *obj.obj.PmsiLabel > 16777215 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= BgpV4EviVxlan.PmsiLabel <= 16777215 but Got %d", *obj.obj.PmsiLabel)) - } - - } - - if obj.obj.AdLabel != nil { - - if *obj.obj.AdLabel > 16777215 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= BgpV4EviVxlan.AdLabel <= 16777215 but Got %d", *obj.obj.AdLabel)) - } - - } - - if obj.obj.RouteDistinguisher != nil { - - obj.RouteDistinguisher().validateObj(vObj, set_default) - } - - if len(obj.obj.RouteTargetExport) != 0 { - - if set_default { - obj.RouteTargetExport().clearHolderSlice() - for _, item := range obj.obj.RouteTargetExport { - obj.RouteTargetExport().appendHolderSlice(&bgpRouteTarget{obj: item}) - } - } - for _, item := range obj.RouteTargetExport().Items() { - item.validateObj(vObj, set_default) - } - - } - - if len(obj.obj.RouteTargetImport) != 0 { - - if set_default { - obj.RouteTargetImport().clearHolderSlice() - for _, item := range obj.obj.RouteTargetImport { - obj.RouteTargetImport().appendHolderSlice(&bgpRouteTarget{obj: item}) - } - } - for _, item := range obj.RouteTargetImport().Items() { - item.validateObj(vObj, set_default) - } - - } - - if len(obj.obj.L3RouteTargetExport) != 0 { - - if set_default { - obj.L3RouteTargetExport().clearHolderSlice() - for _, item := range obj.obj.L3RouteTargetExport { - obj.L3RouteTargetExport().appendHolderSlice(&bgpRouteTarget{obj: item}) - } - } - for _, item := range obj.L3RouteTargetExport().Items() { - item.validateObj(vObj, set_default) - } - - } - - if len(obj.obj.L3RouteTargetImport) != 0 { - - if set_default { - obj.L3RouteTargetImport().clearHolderSlice() - for _, item := range obj.obj.L3RouteTargetImport { - obj.L3RouteTargetImport().appendHolderSlice(&bgpRouteTarget{obj: item}) - } - } - for _, item := range obj.L3RouteTargetImport().Items() { - item.validateObj(vObj, set_default) - } - - } - - if obj.obj.Advanced != nil { - - obj.Advanced().validateObj(vObj, set_default) + // SrcName is required + if obj.obj.SrcName == nil { + vObj.validationErrors = append(vObj.validationErrors, "SrcName is required field on interface ActionResponseProtocolIpv6PingResponse") } - if len(obj.obj.Communities) != 0 { - - if set_default { - obj.Communities().clearHolderSlice() - for _, item := range obj.obj.Communities { - obj.Communities().appendHolderSlice(&bgpCommunity{obj: item}) - } - } - for _, item := range obj.Communities().Items() { - item.validateObj(vObj, set_default) - } - + // DstIp is required + if obj.obj.DstIp == nil { + vObj.validationErrors = append(vObj.validationErrors, "DstIp is required field on interface ActionResponseProtocolIpv6PingResponse") } + if obj.obj.DstIp != nil { - if len(obj.obj.ExtCommunities) != 0 { - - if set_default { - obj.ExtCommunities().clearHolderSlice() - for _, item := range obj.obj.ExtCommunities { - obj.ExtCommunities().appendHolderSlice(&bgpExtCommunity{obj: item}) - } - } - for _, item := range obj.ExtCommunities().Items() { - item.validateObj(vObj, set_default) + err := obj.validateIpv6(obj.DstIp()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on ActionResponseProtocolIpv6PingResponse.DstIp")) } } - if obj.obj.AsPath != nil { - - obj.AsPath().validateObj(vObj, set_default) + // Result is required + if obj.obj.Result == nil { + vObj.validationErrors = append(vObj.validationErrors, "Result is required field on interface ActionResponseProtocolIpv6PingResponse") } - } -func (obj *bgpV4EviVxlan) setDefault() { - if obj.obj.ReplicationType == nil { - obj.SetReplicationType(BgpV4EviVxlanReplicationType.INGRESS_REPLICATION) - - } - if obj.obj.PmsiLabel == nil { - obj.SetPmsiLabel(16) - } - if obj.obj.AdLabel == nil { - obj.SetAdLabel(0) - } +func (obj *actionResponseProtocolIpv6PingResponse) setDefault() { } -// ***** BgpAsPathSegment ***** -type bgpAsPathSegment struct { +// ***** IsisLspneighbor ***** +type isisLspneighbor struct { validation - obj *otg.BgpAsPathSegment - marshaller marshalBgpAsPathSegment - unMarshaller unMarshalBgpAsPathSegment + obj *otg.IsisLspneighbor + marshaller marshalIsisLspneighbor + unMarshaller unMarshalIsisLspneighbor } -func NewBgpAsPathSegment() BgpAsPathSegment { - obj := bgpAsPathSegment{obj: &otg.BgpAsPathSegment{}} +func NewIsisLspneighbor() IsisLspneighbor { + obj := isisLspneighbor{obj: &otg.IsisLspneighbor{}} obj.setDefault() return &obj } -func (obj *bgpAsPathSegment) msg() *otg.BgpAsPathSegment { +func (obj *isisLspneighbor) msg() *otg.IsisLspneighbor { return obj.obj } -func (obj *bgpAsPathSegment) setMsg(msg *otg.BgpAsPathSegment) BgpAsPathSegment { +func (obj *isisLspneighbor) setMsg(msg *otg.IsisLspneighbor) IsisLspneighbor { proto.Merge(obj.obj, msg) return obj } -type marshalbgpAsPathSegment struct { - obj *bgpAsPathSegment +type marshalisisLspneighbor struct { + obj *isisLspneighbor } -type marshalBgpAsPathSegment interface { - // ToProto marshals BgpAsPathSegment to protobuf object *otg.BgpAsPathSegment - ToProto() (*otg.BgpAsPathSegment, error) - // ToPbText marshals BgpAsPathSegment to protobuf text +type marshalIsisLspneighbor interface { + // ToProto marshals IsisLspneighbor to protobuf object *otg.IsisLspneighbor + ToProto() (*otg.IsisLspneighbor, error) + // ToPbText marshals IsisLspneighbor to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpAsPathSegment to YAML text + // ToYaml marshals IsisLspneighbor to YAML text ToYaml() (string, error) - // ToJson marshals BgpAsPathSegment to JSON text + // ToJson marshals IsisLspneighbor to JSON text ToJson() (string, error) } -type unMarshalbgpAsPathSegment struct { - obj *bgpAsPathSegment +type unMarshalisisLspneighbor struct { + obj *isisLspneighbor } -type unMarshalBgpAsPathSegment interface { - // FromProto unmarshals BgpAsPathSegment from protobuf object *otg.BgpAsPathSegment - FromProto(msg *otg.BgpAsPathSegment) (BgpAsPathSegment, error) - // FromPbText unmarshals BgpAsPathSegment from protobuf text +type unMarshalIsisLspneighbor interface { + // FromProto unmarshals IsisLspneighbor from protobuf object *otg.IsisLspneighbor + FromProto(msg *otg.IsisLspneighbor) (IsisLspneighbor, error) + // FromPbText unmarshals IsisLspneighbor from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpAsPathSegment from YAML text + // FromYaml unmarshals IsisLspneighbor from YAML text FromYaml(value string) error - // FromJson unmarshals BgpAsPathSegment from JSON text + // FromJson unmarshals IsisLspneighbor from JSON text FromJson(value string) error } -func (obj *bgpAsPathSegment) Marshal() marshalBgpAsPathSegment { +func (obj *isisLspneighbor) Marshal() marshalIsisLspneighbor { if obj.marshaller == nil { - obj.marshaller = &marshalbgpAsPathSegment{obj: obj} + obj.marshaller = &marshalisisLspneighbor{obj: obj} } return obj.marshaller } -func (obj *bgpAsPathSegment) Unmarshal() unMarshalBgpAsPathSegment { +func (obj *isisLspneighbor) Unmarshal() unMarshalIsisLspneighbor { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpAsPathSegment{obj: obj} + obj.unMarshaller = &unMarshalisisLspneighbor{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpAsPathSegment) ToProto() (*otg.BgpAsPathSegment, error) { +func (m *marshalisisLspneighbor) ToProto() (*otg.IsisLspneighbor, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -323333,7 +326380,7 @@ func (m *marshalbgpAsPathSegment) ToProto() (*otg.BgpAsPathSegment, error) { return m.obj.msg(), nil } -func (m *unMarshalbgpAsPathSegment) FromProto(msg *otg.BgpAsPathSegment) (BgpAsPathSegment, error) { +func (m *unMarshalisisLspneighbor) FromProto(msg *otg.IsisLspneighbor) (IsisLspneighbor, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -323342,7 +326389,7 @@ func (m *unMarshalbgpAsPathSegment) FromProto(msg *otg.BgpAsPathSegment) (BgpAsP return newObj, nil } -func (m *marshalbgpAsPathSegment) ToPbText() (string, error) { +func (m *marshalisisLspneighbor) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -323354,7 +326401,7 @@ func (m *marshalbgpAsPathSegment) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalbgpAsPathSegment) FromPbText(value string) error { +func (m *unMarshalisisLspneighbor) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj @@ -323367,7 +326414,7 @@ func (m *unMarshalbgpAsPathSegment) FromPbText(value string) error { return retObj } -func (m *marshalbgpAsPathSegment) ToYaml() (string, error) { +func (m *marshalisisLspneighbor) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -323388,7 +326435,7 @@ func (m *marshalbgpAsPathSegment) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalbgpAsPathSegment) FromYaml(value string) error { +func (m *unMarshalisisLspneighbor) FromYaml(value string) error { if value == "" { value = "{}" } @@ -323413,7 +326460,7 @@ func (m *unMarshalbgpAsPathSegment) FromYaml(value string) error { return nil } -func (m *marshalbgpAsPathSegment) ToJson() (string, error) { +func (m *marshalisisLspneighbor) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -323431,7 +326478,7 @@ func (m *marshalbgpAsPathSegment) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalbgpAsPathSegment) FromJson(value string) error { +func (m *unMarshalisisLspneighbor) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -323452,19 +326499,19 @@ func (m *unMarshalbgpAsPathSegment) FromJson(value string) error { return nil } -func (obj *bgpAsPathSegment) validateToAndFrom() error { +func (obj *isisLspneighbor) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpAsPathSegment) validate() error { +func (obj *isisLspneighbor) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpAsPathSegment) String() string { +func (obj *isisLspneighbor) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -323472,12 +326519,12 @@ func (obj *bgpAsPathSegment) String() string { return str } -func (obj *bgpAsPathSegment) Clone() (BgpAsPathSegment, error) { +func (obj *isisLspneighbor) Clone() (IsisLspneighbor, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpAsPathSegment() + newObj := NewIsisLspneighbor() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -323489,186 +326536,147 @@ func (obj *bgpAsPathSegment) Clone() (BgpAsPathSegment, error) { return newObj, nil } -// BgpAsPathSegment is configuration for a single BGP AS path segment -type BgpAsPathSegment interface { +// IsisLspneighbor is this contains IS neighbors. +type IsisLspneighbor interface { Validation - // msg marshals BgpAsPathSegment to protobuf object *otg.BgpAsPathSegment + // msg marshals IsisLspneighbor to protobuf object *otg.IsisLspneighbor // and doesn't set defaults - msg() *otg.BgpAsPathSegment - // setMsg unmarshals BgpAsPathSegment from protobuf object *otg.BgpAsPathSegment + msg() *otg.IsisLspneighbor + // setMsg unmarshals IsisLspneighbor from protobuf object *otg.IsisLspneighbor // and doesn't set defaults - setMsg(*otg.BgpAsPathSegment) BgpAsPathSegment + setMsg(*otg.IsisLspneighbor) IsisLspneighbor // provides marshal interface - Marshal() marshalBgpAsPathSegment + Marshal() marshalIsisLspneighbor // provides unmarshal interface - Unmarshal() unMarshalBgpAsPathSegment - // validate validates BgpAsPathSegment + Unmarshal() unMarshalIsisLspneighbor + // validate validates IsisLspneighbor validate() error // A stringer function String() string // Clones the object - Clone() (BgpAsPathSegment, error) + Clone() (IsisLspneighbor, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Type returns BgpAsPathSegmentTypeEnum, set in BgpAsPathSegment - Type() BgpAsPathSegmentTypeEnum - // SetType assigns BgpAsPathSegmentTypeEnum provided by user to BgpAsPathSegment - SetType(value BgpAsPathSegmentTypeEnum) BgpAsPathSegment - // HasType checks if Type has been set in BgpAsPathSegment - HasType() bool - // AsNumbers returns []uint32, set in BgpAsPathSegment. - AsNumbers() []uint32 - // SetAsNumbers assigns []uint32 provided by user to BgpAsPathSegment - SetAsNumbers(value []uint32) BgpAsPathSegment + // SystemId returns string, set in IsisLspneighbor. + SystemId() string + // SetSystemId assigns string provided by user to IsisLspneighbor + SetSystemId(value string) IsisLspneighbor + // HasSystemId checks if SystemId has been set in IsisLspneighbor + HasSystemId() bool } -type BgpAsPathSegmentTypeEnum string +// The System ID for this emulated ISIS router, e.g. "640100010000". +// SystemId returns a string +func (obj *isisLspneighbor) SystemId() string { -// Enum of Type on BgpAsPathSegment -var BgpAsPathSegmentType = struct { - AS_SEQ BgpAsPathSegmentTypeEnum - AS_SET BgpAsPathSegmentTypeEnum - AS_CONFED_SEQ BgpAsPathSegmentTypeEnum - AS_CONFED_SET BgpAsPathSegmentTypeEnum -}{ - AS_SEQ: BgpAsPathSegmentTypeEnum("as_seq"), - AS_SET: BgpAsPathSegmentTypeEnum("as_set"), - AS_CONFED_SEQ: BgpAsPathSegmentTypeEnum("as_confed_seq"), - AS_CONFED_SET: BgpAsPathSegmentTypeEnum("as_confed_set"), -} + return *obj.obj.SystemId -func (obj *bgpAsPathSegment) Type() BgpAsPathSegmentTypeEnum { - return BgpAsPathSegmentTypeEnum(obj.obj.Type.Enum().String()) } -// AS sequence is the most common type of AS_PATH, it contains the list of ASNs starting with the most recent ASN being added read from left to right. -// The other three AS_PATH types are used for Confederations - AS_SET is the type of AS_PATH attribute that summarizes routes using using the aggregate-address command, allowing AS_PATHs to be summarized in the update as well. - AS_CONFED_SEQ gives the list of ASNs in the path starting with the most recent ASN to be added reading left to right - AS_CONFED_SET will allow summarization of multiple AS PATHs to be sent in BGP Updates. -// Type returns a string -func (obj *bgpAsPathSegment) HasType() bool { - return obj.obj.Type != nil +// The System ID for this emulated ISIS router, e.g. "640100010000". +// SystemId returns a string +func (obj *isisLspneighbor) HasSystemId() bool { + return obj.obj.SystemId != nil } -func (obj *bgpAsPathSegment) SetType(value BgpAsPathSegmentTypeEnum) BgpAsPathSegment { - intValue, ok := otg.BgpAsPathSegment_Type_Enum_value[string(value)] - if !ok { - obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( - "%s is not a valid choice on BgpAsPathSegmentTypeEnum", string(value))) - return obj - } - enumValue := otg.BgpAsPathSegment_Type_Enum(intValue) - obj.obj.Type = &enumValue +// The System ID for this emulated ISIS router, e.g. "640100010000". +// SetSystemId sets the string value in the IsisLspneighbor object +func (obj *isisLspneighbor) SetSystemId(value string) IsisLspneighbor { + obj.obj.SystemId = &value return obj } -// The AS numbers in this AS path segment. -// AsNumbers returns a []uint32 -func (obj *bgpAsPathSegment) AsNumbers() []uint32 { - if obj.obj.AsNumbers == nil { - obj.obj.AsNumbers = make([]uint32, 0) +func (obj *isisLspneighbor) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() } - return obj.obj.AsNumbers -} - -// The AS numbers in this AS path segment. -// SetAsNumbers sets the []uint32 value in the BgpAsPathSegment object -func (obj *bgpAsPathSegment) SetAsNumbers(value []uint32) BgpAsPathSegment { - if obj.obj.AsNumbers == nil { - obj.obj.AsNumbers = make([]uint32, 0) - } - obj.obj.AsNumbers = value + if obj.obj.SystemId != nil { - return obj -} + err := obj.validateHex(obj.SystemId()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on IsisLspneighbor.SystemId")) + } -func (obj *bgpAsPathSegment) validateObj(vObj *validation, set_default bool) { - if set_default { - obj.setDefault() } } -func (obj *bgpAsPathSegment) setDefault() { - if obj.obj.Type == nil { - obj.SetType(BgpAsPathSegmentType.AS_SEQ) - - } +func (obj *isisLspneighbor) setDefault() { } -// ***** BgpExtendedCommunityTransitive2OctetAsType ***** -type bgpExtendedCommunityTransitive2OctetAsType struct { +// ***** IsisLspV4Prefix ***** +type isisLspV4Prefix struct { validation - obj *otg.BgpExtendedCommunityTransitive2OctetAsType - marshaller marshalBgpExtendedCommunityTransitive2OctetAsType - unMarshaller unMarshalBgpExtendedCommunityTransitive2OctetAsType - routeTargetSubtypeHolder BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget - routeOriginSubtypeHolder BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + obj *otg.IsisLspV4Prefix + marshaller marshalIsisLspV4Prefix + unMarshaller unMarshalIsisLspV4Prefix } -func NewBgpExtendedCommunityTransitive2OctetAsType() BgpExtendedCommunityTransitive2OctetAsType { - obj := bgpExtendedCommunityTransitive2OctetAsType{obj: &otg.BgpExtendedCommunityTransitive2OctetAsType{}} +func NewIsisLspV4Prefix() IsisLspV4Prefix { + obj := isisLspV4Prefix{obj: &otg.IsisLspV4Prefix{}} obj.setDefault() return &obj } -func (obj *bgpExtendedCommunityTransitive2OctetAsType) msg() *otg.BgpExtendedCommunityTransitive2OctetAsType { +func (obj *isisLspV4Prefix) msg() *otg.IsisLspV4Prefix { return obj.obj } -func (obj *bgpExtendedCommunityTransitive2OctetAsType) setMsg(msg *otg.BgpExtendedCommunityTransitive2OctetAsType) BgpExtendedCommunityTransitive2OctetAsType { - obj.setNil() +func (obj *isisLspV4Prefix) setMsg(msg *otg.IsisLspV4Prefix) IsisLspV4Prefix { + proto.Merge(obj.obj, msg) return obj } -type marshalbgpExtendedCommunityTransitive2OctetAsType struct { - obj *bgpExtendedCommunityTransitive2OctetAsType +type marshalisisLspV4Prefix struct { + obj *isisLspV4Prefix } -type marshalBgpExtendedCommunityTransitive2OctetAsType interface { - // ToProto marshals BgpExtendedCommunityTransitive2OctetAsType to protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsType - ToProto() (*otg.BgpExtendedCommunityTransitive2OctetAsType, error) - // ToPbText marshals BgpExtendedCommunityTransitive2OctetAsType to protobuf text +type marshalIsisLspV4Prefix interface { + // ToProto marshals IsisLspV4Prefix to protobuf object *otg.IsisLspV4Prefix + ToProto() (*otg.IsisLspV4Prefix, error) + // ToPbText marshals IsisLspV4Prefix to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpExtendedCommunityTransitive2OctetAsType to YAML text + // ToYaml marshals IsisLspV4Prefix to YAML text ToYaml() (string, error) - // ToJson marshals BgpExtendedCommunityTransitive2OctetAsType to JSON text + // ToJson marshals IsisLspV4Prefix to JSON text ToJson() (string, error) } -type unMarshalbgpExtendedCommunityTransitive2OctetAsType struct { - obj *bgpExtendedCommunityTransitive2OctetAsType +type unMarshalisisLspV4Prefix struct { + obj *isisLspV4Prefix } -type unMarshalBgpExtendedCommunityTransitive2OctetAsType interface { - // FromProto unmarshals BgpExtendedCommunityTransitive2OctetAsType from protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsType - FromProto(msg *otg.BgpExtendedCommunityTransitive2OctetAsType) (BgpExtendedCommunityTransitive2OctetAsType, error) - // FromPbText unmarshals BgpExtendedCommunityTransitive2OctetAsType from protobuf text +type unMarshalIsisLspV4Prefix interface { + // FromProto unmarshals IsisLspV4Prefix from protobuf object *otg.IsisLspV4Prefix + FromProto(msg *otg.IsisLspV4Prefix) (IsisLspV4Prefix, error) + // FromPbText unmarshals IsisLspV4Prefix from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpExtendedCommunityTransitive2OctetAsType from YAML text + // FromYaml unmarshals IsisLspV4Prefix from YAML text FromYaml(value string) error - // FromJson unmarshals BgpExtendedCommunityTransitive2OctetAsType from JSON text + // FromJson unmarshals IsisLspV4Prefix from JSON text FromJson(value string) error } -func (obj *bgpExtendedCommunityTransitive2OctetAsType) Marshal() marshalBgpExtendedCommunityTransitive2OctetAsType { +func (obj *isisLspV4Prefix) Marshal() marshalIsisLspV4Prefix { if obj.marshaller == nil { - obj.marshaller = &marshalbgpExtendedCommunityTransitive2OctetAsType{obj: obj} + obj.marshaller = &marshalisisLspV4Prefix{obj: obj} } return obj.marshaller } -func (obj *bgpExtendedCommunityTransitive2OctetAsType) Unmarshal() unMarshalBgpExtendedCommunityTransitive2OctetAsType { +func (obj *isisLspV4Prefix) Unmarshal() unMarshalIsisLspV4Prefix { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpExtendedCommunityTransitive2OctetAsType{obj: obj} + obj.unMarshaller = &unMarshalisisLspV4Prefix{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpExtendedCommunityTransitive2OctetAsType) ToProto() (*otg.BgpExtendedCommunityTransitive2OctetAsType, error) { +func (m *marshalisisLspV4Prefix) ToProto() (*otg.IsisLspV4Prefix, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -323676,7 +326684,7 @@ func (m *marshalbgpExtendedCommunityTransitive2OctetAsType) ToProto() (*otg.BgpE return m.obj.msg(), nil } -func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsType) FromProto(msg *otg.BgpExtendedCommunityTransitive2OctetAsType) (BgpExtendedCommunityTransitive2OctetAsType, error) { +func (m *unMarshalisisLspV4Prefix) FromProto(msg *otg.IsisLspV4Prefix) (IsisLspV4Prefix, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -323685,7 +326693,7 @@ func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsType) FromProto(msg *otg return newObj, nil } -func (m *marshalbgpExtendedCommunityTransitive2OctetAsType) ToPbText() (string, error) { +func (m *marshalisisLspV4Prefix) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -323697,12 +326705,12 @@ func (m *marshalbgpExtendedCommunityTransitive2OctetAsType) ToPbText() (string, return string(protoMarshal), nil } -func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsType) FromPbText(value string) error { +func (m *unMarshalisisLspV4Prefix) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - m.obj.setNil() + vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -323710,7 +326718,7 @@ func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsType) FromPbText(value s return retObj } -func (m *marshalbgpExtendedCommunityTransitive2OctetAsType) ToYaml() (string, error) { +func (m *marshalisisLspV4Prefix) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -323731,7 +326739,7 @@ func (m *marshalbgpExtendedCommunityTransitive2OctetAsType) ToYaml() (string, er return string(data), nil } -func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsType) FromYaml(value string) error { +func (m *unMarshalisisLspV4Prefix) FromYaml(value string) error { if value == "" { value = "{}" } @@ -323748,7 +326756,7 @@ func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsType) FromYaml(value str return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - m.obj.setNil() + vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -323756,7 +326764,7 @@ func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsType) FromYaml(value str return nil } -func (m *marshalbgpExtendedCommunityTransitive2OctetAsType) ToJson() (string, error) { +func (m *marshalisisLspV4Prefix) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -323774,7 +326782,7 @@ func (m *marshalbgpExtendedCommunityTransitive2OctetAsType) ToJson() (string, er return string(data), nil } -func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsType) FromJson(value string) error { +func (m *unMarshalisisLspV4Prefix) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -323787,7 +326795,7 @@ func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsType) FromJson(value str return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - m.obj.setNil() + err := m.obj.validateToAndFrom() if err != nil { return err @@ -323795,19 +326803,19 @@ func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsType) FromJson(value str return nil } -func (obj *bgpExtendedCommunityTransitive2OctetAsType) validateToAndFrom() error { +func (obj *isisLspV4Prefix) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpExtendedCommunityTransitive2OctetAsType) validate() error { +func (obj *isisLspV4Prefix) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpExtendedCommunityTransitive2OctetAsType) String() string { +func (obj *isisLspV4Prefix) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -323815,12 +326823,12 @@ func (obj *bgpExtendedCommunityTransitive2OctetAsType) String() string { return str } -func (obj *bgpExtendedCommunityTransitive2OctetAsType) Clone() (BgpExtendedCommunityTransitive2OctetAsType, error) { +func (obj *isisLspV4Prefix) Clone() (IsisLspV4Prefix, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpExtendedCommunityTransitive2OctetAsType() + newObj := NewIsisLspV4Prefix() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -323832,259 +326840,291 @@ func (obj *bgpExtendedCommunityTransitive2OctetAsType) Clone() (BgpExtendedCommu return newObj, nil } -func (obj *bgpExtendedCommunityTransitive2OctetAsType) setNil() { - obj.routeTargetSubtypeHolder = nil - obj.routeOriginSubtypeHolder = nil - obj.validationErrors = nil - obj.warnings = nil - obj.constraints = make(map[string]map[string]Constraints) -} - -// BgpExtendedCommunityTransitive2OctetAsType is the Transitive Two-Octet AS-Specific Extended Community is sent as type 0x00 . -type BgpExtendedCommunityTransitive2OctetAsType interface { +// IsisLspV4Prefix is this group defines attributes of an IPv4 standard prefix. +type IsisLspV4Prefix interface { Validation - // msg marshals BgpExtendedCommunityTransitive2OctetAsType to protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsType + // msg marshals IsisLspV4Prefix to protobuf object *otg.IsisLspV4Prefix // and doesn't set defaults - msg() *otg.BgpExtendedCommunityTransitive2OctetAsType - // setMsg unmarshals BgpExtendedCommunityTransitive2OctetAsType from protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsType + msg() *otg.IsisLspV4Prefix + // setMsg unmarshals IsisLspV4Prefix from protobuf object *otg.IsisLspV4Prefix // and doesn't set defaults - setMsg(*otg.BgpExtendedCommunityTransitive2OctetAsType) BgpExtendedCommunityTransitive2OctetAsType + setMsg(*otg.IsisLspV4Prefix) IsisLspV4Prefix // provides marshal interface - Marshal() marshalBgpExtendedCommunityTransitive2OctetAsType + Marshal() marshalIsisLspV4Prefix // provides unmarshal interface - Unmarshal() unMarshalBgpExtendedCommunityTransitive2OctetAsType - // validate validates BgpExtendedCommunityTransitive2OctetAsType + Unmarshal() unMarshalIsisLspV4Prefix + // validate validates IsisLspV4Prefix validate() error // A stringer function String() string // Clones the object - Clone() (BgpExtendedCommunityTransitive2OctetAsType, error) + Clone() (IsisLspV4Prefix, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Choice returns BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum, set in BgpExtendedCommunityTransitive2OctetAsType - Choice() BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum - // setChoice assigns BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum provided by user to BgpExtendedCommunityTransitive2OctetAsType - setChoice(value BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum) BgpExtendedCommunityTransitive2OctetAsType - // HasChoice checks if Choice has been set in BgpExtendedCommunityTransitive2OctetAsType - HasChoice() bool - // RouteTargetSubtype returns BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget, set in BgpExtendedCommunityTransitive2OctetAsType. - // BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget is the Route Target Community identifies one or more routers that may receive a set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02. - RouteTargetSubtype() BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget - // SetRouteTargetSubtype assigns BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget provided by user to BgpExtendedCommunityTransitive2OctetAsType. - // BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget is the Route Target Community identifies one or more routers that may receive a set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02. - SetRouteTargetSubtype(value BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) BgpExtendedCommunityTransitive2OctetAsType - // HasRouteTargetSubtype checks if RouteTargetSubtype has been set in BgpExtendedCommunityTransitive2OctetAsType - HasRouteTargetSubtype() bool - // RouteOriginSubtype returns BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin, set in BgpExtendedCommunityTransitive2OctetAsType. - // BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin is the Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP. It is sent with sub-type as 0x03 . - RouteOriginSubtype() BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin - // SetRouteOriginSubtype assigns BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin provided by user to BgpExtendedCommunityTransitive2OctetAsType. - // BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin is the Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP. It is sent with sub-type as 0x03 . - SetRouteOriginSubtype(value BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) BgpExtendedCommunityTransitive2OctetAsType - // HasRouteOriginSubtype checks if RouteOriginSubtype has been set in BgpExtendedCommunityTransitive2OctetAsType - HasRouteOriginSubtype() bool - setNil() + // Ipv4Address returns string, set in IsisLspV4Prefix. + Ipv4Address() string + // SetIpv4Address assigns string provided by user to IsisLspV4Prefix + SetIpv4Address(value string) IsisLspV4Prefix + // HasIpv4Address checks if Ipv4Address has been set in IsisLspV4Prefix + HasIpv4Address() bool + // PrefixLength returns uint32, set in IsisLspV4Prefix. + PrefixLength() uint32 + // SetPrefixLength assigns uint32 provided by user to IsisLspV4Prefix + SetPrefixLength(value uint32) IsisLspV4Prefix + // HasPrefixLength checks if PrefixLength has been set in IsisLspV4Prefix + HasPrefixLength() bool + // RedistributionType returns IsisLspV4PrefixRedistributionTypeEnum, set in IsisLspV4Prefix + RedistributionType() IsisLspV4PrefixRedistributionTypeEnum + // SetRedistributionType assigns IsisLspV4PrefixRedistributionTypeEnum provided by user to IsisLspV4Prefix + SetRedistributionType(value IsisLspV4PrefixRedistributionTypeEnum) IsisLspV4Prefix + // HasRedistributionType checks if RedistributionType has been set in IsisLspV4Prefix + HasRedistributionType() bool + // DefaultMetric returns uint32, set in IsisLspV4Prefix. + DefaultMetric() uint32 + // SetDefaultMetric assigns uint32 provided by user to IsisLspV4Prefix + SetDefaultMetric(value uint32) IsisLspV4Prefix + // HasDefaultMetric checks if DefaultMetric has been set in IsisLspV4Prefix + HasDefaultMetric() bool + // OriginType returns IsisLspV4PrefixOriginTypeEnum, set in IsisLspV4Prefix + OriginType() IsisLspV4PrefixOriginTypeEnum + // SetOriginType assigns IsisLspV4PrefixOriginTypeEnum provided by user to IsisLspV4Prefix + SetOriginType(value IsisLspV4PrefixOriginTypeEnum) IsisLspV4Prefix + // HasOriginType checks if OriginType has been set in IsisLspV4Prefix + HasOriginType() bool } -type BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum string +// An IPv4 unicast prefix reachable via the originator of this LSP. +// Ipv4Address returns a string +func (obj *isisLspV4Prefix) Ipv4Address() string { -// Enum of Choice on BgpExtendedCommunityTransitive2OctetAsType -var BgpExtendedCommunityTransitive2OctetAsTypeChoice = struct { - ROUTE_TARGET_SUBTYPE BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum - ROUTE_ORIGIN_SUBTYPE BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum -}{ - ROUTE_TARGET_SUBTYPE: BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum("route_target_subtype"), - ROUTE_ORIGIN_SUBTYPE: BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum("route_origin_subtype"), -} + return *obj.obj.Ipv4Address -func (obj *bgpExtendedCommunityTransitive2OctetAsType) Choice() BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum { - return BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum(obj.obj.Choice.Enum().String()) } -// description is TBD -// Choice returns a string -func (obj *bgpExtendedCommunityTransitive2OctetAsType) HasChoice() bool { - return obj.obj.Choice != nil +// An IPv4 unicast prefix reachable via the originator of this LSP. +// Ipv4Address returns a string +func (obj *isisLspV4Prefix) HasIpv4Address() bool { + return obj.obj.Ipv4Address != nil } -func (obj *bgpExtendedCommunityTransitive2OctetAsType) setChoice(value BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum) BgpExtendedCommunityTransitive2OctetAsType { - intValue, ok := otg.BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum_value[string(value)] - if !ok { - obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( - "%s is not a valid choice on BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum", string(value))) - return obj - } - enumValue := otg.BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum(intValue) - obj.obj.Choice = &enumValue - obj.obj.RouteOriginSubtype = nil - obj.routeOriginSubtypeHolder = nil - obj.obj.RouteTargetSubtype = nil - obj.routeTargetSubtypeHolder = nil - - if value == BgpExtendedCommunityTransitive2OctetAsTypeChoice.ROUTE_TARGET_SUBTYPE { - obj.obj.RouteTargetSubtype = NewBgpExtendedCommunityTransitive2OctetAsTypeRouteTarget().msg() - } - - if value == BgpExtendedCommunityTransitive2OctetAsTypeChoice.ROUTE_ORIGIN_SUBTYPE { - obj.obj.RouteOriginSubtype = NewBgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin().msg() - } +// An IPv4 unicast prefix reachable via the originator of this LSP. +// SetIpv4Address sets the string value in the IsisLspV4Prefix object +func (obj *isisLspV4Prefix) SetIpv4Address(value string) IsisLspV4Prefix { + obj.obj.Ipv4Address = &value return obj } -// description is TBD -// RouteTargetSubtype returns a BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget -func (obj *bgpExtendedCommunityTransitive2OctetAsType) RouteTargetSubtype() BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget { - if obj.obj.RouteTargetSubtype == nil { - obj.setChoice(BgpExtendedCommunityTransitive2OctetAsTypeChoice.ROUTE_TARGET_SUBTYPE) - } - if obj.routeTargetSubtypeHolder == nil { - obj.routeTargetSubtypeHolder = &bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget{obj: obj.obj.RouteTargetSubtype} - } - return obj.routeTargetSubtypeHolder +// The length of the IPv4 prefix. +// PrefixLength returns a uint32 +func (obj *isisLspV4Prefix) PrefixLength() uint32 { + + return *obj.obj.PrefixLength + } -// description is TBD -// RouteTargetSubtype returns a BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget -func (obj *bgpExtendedCommunityTransitive2OctetAsType) HasRouteTargetSubtype() bool { - return obj.obj.RouteTargetSubtype != nil +// The length of the IPv4 prefix. +// PrefixLength returns a uint32 +func (obj *isisLspV4Prefix) HasPrefixLength() bool { + return obj.obj.PrefixLength != nil } -// description is TBD -// SetRouteTargetSubtype sets the BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget value in the BgpExtendedCommunityTransitive2OctetAsType object -func (obj *bgpExtendedCommunityTransitive2OctetAsType) SetRouteTargetSubtype(value BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) BgpExtendedCommunityTransitive2OctetAsType { - obj.setChoice(BgpExtendedCommunityTransitive2OctetAsTypeChoice.ROUTE_TARGET_SUBTYPE) - obj.routeTargetSubtypeHolder = nil - obj.obj.RouteTargetSubtype = value.msg() +// The length of the IPv4 prefix. +// SetPrefixLength sets the uint32 value in the IsisLspV4Prefix object +func (obj *isisLspV4Prefix) SetPrefixLength(value uint32) IsisLspV4Prefix { + obj.obj.PrefixLength = &value return obj } -// description is TBD -// RouteOriginSubtype returns a BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin -func (obj *bgpExtendedCommunityTransitive2OctetAsType) RouteOriginSubtype() BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin { - if obj.obj.RouteOriginSubtype == nil { - obj.setChoice(BgpExtendedCommunityTransitive2OctetAsTypeChoice.ROUTE_ORIGIN_SUBTYPE) - } - if obj.routeOriginSubtypeHolder == nil { - obj.routeOriginSubtypeHolder = &bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin{obj: obj.obj.RouteOriginSubtype} - } - return obj.routeOriginSubtypeHolder -} +type IsisLspV4PrefixRedistributionTypeEnum string -// description is TBD -// RouteOriginSubtype returns a BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin -func (obj *bgpExtendedCommunityTransitive2OctetAsType) HasRouteOriginSubtype() bool { - return obj.obj.RouteOriginSubtype != nil +// Enum of RedistributionType on IsisLspV4Prefix +var IsisLspV4PrefixRedistributionType = struct { + UP IsisLspV4PrefixRedistributionTypeEnum + DOWN IsisLspV4PrefixRedistributionTypeEnum +}{ + UP: IsisLspV4PrefixRedistributionTypeEnum("up"), + DOWN: IsisLspV4PrefixRedistributionTypeEnum("down"), } -// description is TBD -// SetRouteOriginSubtype sets the BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin value in the BgpExtendedCommunityTransitive2OctetAsType object -func (obj *bgpExtendedCommunityTransitive2OctetAsType) SetRouteOriginSubtype(value BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) BgpExtendedCommunityTransitive2OctetAsType { - obj.setChoice(BgpExtendedCommunityTransitive2OctetAsTypeChoice.ROUTE_ORIGIN_SUBTYPE) - obj.routeOriginSubtypeHolder = nil - obj.obj.RouteOriginSubtype = value.msg() +func (obj *isisLspV4Prefix) RedistributionType() IsisLspV4PrefixRedistributionTypeEnum { + return IsisLspV4PrefixRedistributionTypeEnum(obj.obj.RedistributionType.Enum().String()) +} - return obj +// Up (0)-used when a prefix is initially advertised within the ISIS L3 hierarchy, +// and for all other prefixes in L1 and L2 LSPs. (default) +// Down (1)-used when an L1/L2 router advertises L2 prefixes in L1 LSPs. +// The prefixes are being advertised from a higher level (L2) down to a lower level (L1). +// RedistributionType returns a string +func (obj *isisLspV4Prefix) HasRedistributionType() bool { + return obj.obj.RedistributionType != nil } -func (obj *bgpExtendedCommunityTransitive2OctetAsType) validateObj(vObj *validation, set_default bool) { - if set_default { - obj.setDefault() +func (obj *isisLspV4Prefix) SetRedistributionType(value IsisLspV4PrefixRedistributionTypeEnum) IsisLspV4Prefix { + intValue, ok := otg.IsisLspV4Prefix_RedistributionType_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on IsisLspV4PrefixRedistributionTypeEnum", string(value))) + return obj } + enumValue := otg.IsisLspV4Prefix_RedistributionType_Enum(intValue) + obj.obj.RedistributionType = &enumValue - if obj.obj.RouteTargetSubtype != nil { + return obj +} - obj.RouteTargetSubtype().validateObj(vObj, set_default) - } +// ISIS default metric value. +// DefaultMetric returns a uint32 +func (obj *isisLspV4Prefix) DefaultMetric() uint32 { - if obj.obj.RouteOriginSubtype != nil { + return *obj.obj.DefaultMetric - obj.RouteOriginSubtype().validateObj(vObj, set_default) - } +} +// ISIS default metric value. +// DefaultMetric returns a uint32 +func (obj *isisLspV4Prefix) HasDefaultMetric() bool { + return obj.obj.DefaultMetric != nil } -func (obj *bgpExtendedCommunityTransitive2OctetAsType) setDefault() { - if obj.obj.Choice == nil { - obj.setChoice(BgpExtendedCommunityTransitive2OctetAsTypeChoice.ROUTE_TARGET_SUBTYPE) +// ISIS default metric value. +// SetDefaultMetric sets the uint32 value in the IsisLspV4Prefix object +func (obj *isisLspV4Prefix) SetDefaultMetric(value uint32) IsisLspV4Prefix { + + obj.obj.DefaultMetric = &value + return obj +} + +type IsisLspV4PrefixOriginTypeEnum string + +// Enum of OriginType on IsisLspV4Prefix +var IsisLspV4PrefixOriginType = struct { + INTERNAL IsisLspV4PrefixOriginTypeEnum + EXTERNAL IsisLspV4PrefixOriginTypeEnum +}{ + INTERNAL: IsisLspV4PrefixOriginTypeEnum("internal"), + EXTERNAL: IsisLspV4PrefixOriginTypeEnum("external"), +} + +func (obj *isisLspV4Prefix) OriginType() IsisLspV4PrefixOriginTypeEnum { + return IsisLspV4PrefixOriginTypeEnum(obj.obj.OriginType.Enum().String()) +} + +// The origin of the advertised route-internal or external to the ISIS area. Options include the following: +// Internal-for intra-area routes, through Level 1 LSPs. +// External-for inter-area routes redistributed within L1, through Level +// 1 LSPs. +// OriginType returns a string +func (obj *isisLspV4Prefix) HasOriginType() bool { + return obj.obj.OriginType != nil +} +func (obj *isisLspV4Prefix) SetOriginType(value IsisLspV4PrefixOriginTypeEnum) IsisLspV4Prefix { + intValue, ok := otg.IsisLspV4Prefix_OriginType_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on IsisLspV4PrefixOriginTypeEnum", string(value))) + return obj } + enumValue := otg.IsisLspV4Prefix_OriginType_Enum(intValue) + obj.obj.OriginType = &enumValue + return obj } -// ***** BgpExtendedCommunityTransitiveIpv4AddressType ***** -type bgpExtendedCommunityTransitiveIpv4AddressType struct { +func (obj *isisLspV4Prefix) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.PrefixLength != nil { + + if *obj.obj.PrefixLength > 32 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= IsisLspV4Prefix.PrefixLength <= 32 but Got %d", *obj.obj.PrefixLength)) + } + + } + +} + +func (obj *isisLspV4Prefix) setDefault() { + +} + +// ***** IsisLspExtendedV4Prefix ***** +type isisLspExtendedV4Prefix struct { validation - obj *otg.BgpExtendedCommunityTransitiveIpv4AddressType - marshaller marshalBgpExtendedCommunityTransitiveIpv4AddressType - unMarshaller unMarshalBgpExtendedCommunityTransitiveIpv4AddressType - routeTargetSubtypeHolder BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget - routeOriginSubtypeHolder BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + obj *otg.IsisLspExtendedV4Prefix + marshaller marshalIsisLspExtendedV4Prefix + unMarshaller unMarshalIsisLspExtendedV4Prefix + prefixAttributesHolder IsisLspPrefixAttributes } -func NewBgpExtendedCommunityTransitiveIpv4AddressType() BgpExtendedCommunityTransitiveIpv4AddressType { - obj := bgpExtendedCommunityTransitiveIpv4AddressType{obj: &otg.BgpExtendedCommunityTransitiveIpv4AddressType{}} +func NewIsisLspExtendedV4Prefix() IsisLspExtendedV4Prefix { + obj := isisLspExtendedV4Prefix{obj: &otg.IsisLspExtendedV4Prefix{}} obj.setDefault() return &obj } -func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) msg() *otg.BgpExtendedCommunityTransitiveIpv4AddressType { +func (obj *isisLspExtendedV4Prefix) msg() *otg.IsisLspExtendedV4Prefix { return obj.obj } -func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) setMsg(msg *otg.BgpExtendedCommunityTransitiveIpv4AddressType) BgpExtendedCommunityTransitiveIpv4AddressType { +func (obj *isisLspExtendedV4Prefix) setMsg(msg *otg.IsisLspExtendedV4Prefix) IsisLspExtendedV4Prefix { obj.setNil() proto.Merge(obj.obj, msg) return obj } -type marshalbgpExtendedCommunityTransitiveIpv4AddressType struct { - obj *bgpExtendedCommunityTransitiveIpv4AddressType +type marshalisisLspExtendedV4Prefix struct { + obj *isisLspExtendedV4Prefix } -type marshalBgpExtendedCommunityTransitiveIpv4AddressType interface { - // ToProto marshals BgpExtendedCommunityTransitiveIpv4AddressType to protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressType - ToProto() (*otg.BgpExtendedCommunityTransitiveIpv4AddressType, error) - // ToPbText marshals BgpExtendedCommunityTransitiveIpv4AddressType to protobuf text +type marshalIsisLspExtendedV4Prefix interface { + // ToProto marshals IsisLspExtendedV4Prefix to protobuf object *otg.IsisLspExtendedV4Prefix + ToProto() (*otg.IsisLspExtendedV4Prefix, error) + // ToPbText marshals IsisLspExtendedV4Prefix to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpExtendedCommunityTransitiveIpv4AddressType to YAML text + // ToYaml marshals IsisLspExtendedV4Prefix to YAML text ToYaml() (string, error) - // ToJson marshals BgpExtendedCommunityTransitiveIpv4AddressType to JSON text + // ToJson marshals IsisLspExtendedV4Prefix to JSON text ToJson() (string, error) } -type unMarshalbgpExtendedCommunityTransitiveIpv4AddressType struct { - obj *bgpExtendedCommunityTransitiveIpv4AddressType +type unMarshalisisLspExtendedV4Prefix struct { + obj *isisLspExtendedV4Prefix } -type unMarshalBgpExtendedCommunityTransitiveIpv4AddressType interface { - // FromProto unmarshals BgpExtendedCommunityTransitiveIpv4AddressType from protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressType - FromProto(msg *otg.BgpExtendedCommunityTransitiveIpv4AddressType) (BgpExtendedCommunityTransitiveIpv4AddressType, error) - // FromPbText unmarshals BgpExtendedCommunityTransitiveIpv4AddressType from protobuf text +type unMarshalIsisLspExtendedV4Prefix interface { + // FromProto unmarshals IsisLspExtendedV4Prefix from protobuf object *otg.IsisLspExtendedV4Prefix + FromProto(msg *otg.IsisLspExtendedV4Prefix) (IsisLspExtendedV4Prefix, error) + // FromPbText unmarshals IsisLspExtendedV4Prefix from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpExtendedCommunityTransitiveIpv4AddressType from YAML text + // FromYaml unmarshals IsisLspExtendedV4Prefix from YAML text FromYaml(value string) error - // FromJson unmarshals BgpExtendedCommunityTransitiveIpv4AddressType from JSON text + // FromJson unmarshals IsisLspExtendedV4Prefix from JSON text FromJson(value string) error } -func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) Marshal() marshalBgpExtendedCommunityTransitiveIpv4AddressType { +func (obj *isisLspExtendedV4Prefix) Marshal() marshalIsisLspExtendedV4Prefix { if obj.marshaller == nil { - obj.marshaller = &marshalbgpExtendedCommunityTransitiveIpv4AddressType{obj: obj} + obj.marshaller = &marshalisisLspExtendedV4Prefix{obj: obj} } return obj.marshaller } -func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) Unmarshal() unMarshalBgpExtendedCommunityTransitiveIpv4AddressType { +func (obj *isisLspExtendedV4Prefix) Unmarshal() unMarshalIsisLspExtendedV4Prefix { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpExtendedCommunityTransitiveIpv4AddressType{obj: obj} + obj.unMarshaller = &unMarshalisisLspExtendedV4Prefix{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpExtendedCommunityTransitiveIpv4AddressType) ToProto() (*otg.BgpExtendedCommunityTransitiveIpv4AddressType, error) { +func (m *marshalisisLspExtendedV4Prefix) ToProto() (*otg.IsisLspExtendedV4Prefix, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -324092,7 +327132,7 @@ func (m *marshalbgpExtendedCommunityTransitiveIpv4AddressType) ToProto() (*otg.B return m.obj.msg(), nil } -func (m *unMarshalbgpExtendedCommunityTransitiveIpv4AddressType) FromProto(msg *otg.BgpExtendedCommunityTransitiveIpv4AddressType) (BgpExtendedCommunityTransitiveIpv4AddressType, error) { +func (m *unMarshalisisLspExtendedV4Prefix) FromProto(msg *otg.IsisLspExtendedV4Prefix) (IsisLspExtendedV4Prefix, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -324101,7 +327141,7 @@ func (m *unMarshalbgpExtendedCommunityTransitiveIpv4AddressType) FromProto(msg * return newObj, nil } -func (m *marshalbgpExtendedCommunityTransitiveIpv4AddressType) ToPbText() (string, error) { +func (m *marshalisisLspExtendedV4Prefix) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -324113,7 +327153,7 @@ func (m *marshalbgpExtendedCommunityTransitiveIpv4AddressType) ToPbText() (strin return string(protoMarshal), nil } -func (m *unMarshalbgpExtendedCommunityTransitiveIpv4AddressType) FromPbText(value string) error { +func (m *unMarshalisisLspExtendedV4Prefix) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj @@ -324126,7 +327166,7 @@ func (m *unMarshalbgpExtendedCommunityTransitiveIpv4AddressType) FromPbText(valu return retObj } -func (m *marshalbgpExtendedCommunityTransitiveIpv4AddressType) ToYaml() (string, error) { +func (m *marshalisisLspExtendedV4Prefix) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -324147,7 +327187,7 @@ func (m *marshalbgpExtendedCommunityTransitiveIpv4AddressType) ToYaml() (string, return string(data), nil } -func (m *unMarshalbgpExtendedCommunityTransitiveIpv4AddressType) FromYaml(value string) error { +func (m *unMarshalisisLspExtendedV4Prefix) FromYaml(value string) error { if value == "" { value = "{}" } @@ -324172,7 +327212,7 @@ func (m *unMarshalbgpExtendedCommunityTransitiveIpv4AddressType) FromYaml(value return nil } -func (m *marshalbgpExtendedCommunityTransitiveIpv4AddressType) ToJson() (string, error) { +func (m *marshalisisLspExtendedV4Prefix) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -324190,7 +327230,7 @@ func (m *marshalbgpExtendedCommunityTransitiveIpv4AddressType) ToJson() (string, return string(data), nil } -func (m *unMarshalbgpExtendedCommunityTransitiveIpv4AddressType) FromJson(value string) error { +func (m *unMarshalisisLspExtendedV4Prefix) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -324211,19 +327251,19 @@ func (m *unMarshalbgpExtendedCommunityTransitiveIpv4AddressType) FromJson(value return nil } -func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) validateToAndFrom() error { +func (obj *isisLspExtendedV4Prefix) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) validate() error { +func (obj *isisLspExtendedV4Prefix) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) String() string { +func (obj *isisLspExtendedV4Prefix) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -324231,12 +327271,12 @@ func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) String() string { return str } -func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) Clone() (BgpExtendedCommunityTransitiveIpv4AddressType, error) { +func (obj *isisLspExtendedV4Prefix) Clone() (IsisLspExtendedV4Prefix, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpExtendedCommunityTransitiveIpv4AddressType() + newObj := NewIsisLspExtendedV4Prefix() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -324248,259 +327288,306 @@ func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) Clone() (BgpExtendedCo return newObj, nil } -func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) setNil() { - obj.routeTargetSubtypeHolder = nil - obj.routeOriginSubtypeHolder = nil +func (obj *isisLspExtendedV4Prefix) setNil() { + obj.prefixAttributesHolder = nil obj.validationErrors = nil obj.warnings = nil obj.constraints = make(map[string]map[string]Constraints) } -// BgpExtendedCommunityTransitiveIpv4AddressType is the Transitive IPv4 Address Specific Extended Community is sent as type 0x01. -type BgpExtendedCommunityTransitiveIpv4AddressType interface { +// IsisLspExtendedV4Prefix is this group defines attributes of an IPv4 standard prefix. +type IsisLspExtendedV4Prefix interface { Validation - // msg marshals BgpExtendedCommunityTransitiveIpv4AddressType to protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressType + // msg marshals IsisLspExtendedV4Prefix to protobuf object *otg.IsisLspExtendedV4Prefix // and doesn't set defaults - msg() *otg.BgpExtendedCommunityTransitiveIpv4AddressType - // setMsg unmarshals BgpExtendedCommunityTransitiveIpv4AddressType from protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressType + msg() *otg.IsisLspExtendedV4Prefix + // setMsg unmarshals IsisLspExtendedV4Prefix from protobuf object *otg.IsisLspExtendedV4Prefix // and doesn't set defaults - setMsg(*otg.BgpExtendedCommunityTransitiveIpv4AddressType) BgpExtendedCommunityTransitiveIpv4AddressType + setMsg(*otg.IsisLspExtendedV4Prefix) IsisLspExtendedV4Prefix // provides marshal interface - Marshal() marshalBgpExtendedCommunityTransitiveIpv4AddressType + Marshal() marshalIsisLspExtendedV4Prefix // provides unmarshal interface - Unmarshal() unMarshalBgpExtendedCommunityTransitiveIpv4AddressType - // validate validates BgpExtendedCommunityTransitiveIpv4AddressType + Unmarshal() unMarshalIsisLspExtendedV4Prefix + // validate validates IsisLspExtendedV4Prefix validate() error // A stringer function String() string // Clones the object - Clone() (BgpExtendedCommunityTransitiveIpv4AddressType, error) + Clone() (IsisLspExtendedV4Prefix, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Choice returns BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum, set in BgpExtendedCommunityTransitiveIpv4AddressType - Choice() BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum - // setChoice assigns BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum provided by user to BgpExtendedCommunityTransitiveIpv4AddressType - setChoice(value BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum) BgpExtendedCommunityTransitiveIpv4AddressType - // HasChoice checks if Choice has been set in BgpExtendedCommunityTransitiveIpv4AddressType - HasChoice() bool - // RouteTargetSubtype returns BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget, set in BgpExtendedCommunityTransitiveIpv4AddressType. - // BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget is the Route Target Community identifies one or more routers that may receive a set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02. - RouteTargetSubtype() BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget - // SetRouteTargetSubtype assigns BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget provided by user to BgpExtendedCommunityTransitiveIpv4AddressType. - // BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget is the Route Target Community identifies one or more routers that may receive a set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02. - SetRouteTargetSubtype(value BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) BgpExtendedCommunityTransitiveIpv4AddressType - // HasRouteTargetSubtype checks if RouteTargetSubtype has been set in BgpExtendedCommunityTransitiveIpv4AddressType - HasRouteTargetSubtype() bool - // RouteOriginSubtype returns BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin, set in BgpExtendedCommunityTransitiveIpv4AddressType. - // BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin is the Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP It is sent with sub-type as 0x03. - RouteOriginSubtype() BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin - // SetRouteOriginSubtype assigns BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin provided by user to BgpExtendedCommunityTransitiveIpv4AddressType. - // BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin is the Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP It is sent with sub-type as 0x03. - SetRouteOriginSubtype(value BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) BgpExtendedCommunityTransitiveIpv4AddressType - // HasRouteOriginSubtype checks if RouteOriginSubtype has been set in BgpExtendedCommunityTransitiveIpv4AddressType - HasRouteOriginSubtype() bool + // Ipv4Address returns string, set in IsisLspExtendedV4Prefix. + Ipv4Address() string + // SetIpv4Address assigns string provided by user to IsisLspExtendedV4Prefix + SetIpv4Address(value string) IsisLspExtendedV4Prefix + // HasIpv4Address checks if Ipv4Address has been set in IsisLspExtendedV4Prefix + HasIpv4Address() bool + // PrefixLength returns uint32, set in IsisLspExtendedV4Prefix. + PrefixLength() uint32 + // SetPrefixLength assigns uint32 provided by user to IsisLspExtendedV4Prefix + SetPrefixLength(value uint32) IsisLspExtendedV4Prefix + // HasPrefixLength checks if PrefixLength has been set in IsisLspExtendedV4Prefix + HasPrefixLength() bool + // Metric returns uint32, set in IsisLspExtendedV4Prefix. + Metric() uint32 + // SetMetric assigns uint32 provided by user to IsisLspExtendedV4Prefix + SetMetric(value uint32) IsisLspExtendedV4Prefix + // HasMetric checks if Metric has been set in IsisLspExtendedV4Prefix + HasMetric() bool + // RedistributionType returns IsisLspExtendedV4PrefixRedistributionTypeEnum, set in IsisLspExtendedV4Prefix + RedistributionType() IsisLspExtendedV4PrefixRedistributionTypeEnum + // SetRedistributionType assigns IsisLspExtendedV4PrefixRedistributionTypeEnum provided by user to IsisLspExtendedV4Prefix + SetRedistributionType(value IsisLspExtendedV4PrefixRedistributionTypeEnum) IsisLspExtendedV4Prefix + // HasRedistributionType checks if RedistributionType has been set in IsisLspExtendedV4Prefix + HasRedistributionType() bool + // PrefixAttributes returns IsisLspPrefixAttributes, set in IsisLspExtendedV4Prefix. + // IsisLspPrefixAttributes is this contains the properties of ISIS Prefix attributes for the extended IPv4 and IPv6 reachability. https://www.rfc-editor.org/rfc/rfc7794.html + PrefixAttributes() IsisLspPrefixAttributes + // SetPrefixAttributes assigns IsisLspPrefixAttributes provided by user to IsisLspExtendedV4Prefix. + // IsisLspPrefixAttributes is this contains the properties of ISIS Prefix attributes for the extended IPv4 and IPv6 reachability. https://www.rfc-editor.org/rfc/rfc7794.html + SetPrefixAttributes(value IsisLspPrefixAttributes) IsisLspExtendedV4Prefix + // HasPrefixAttributes checks if PrefixAttributes has been set in IsisLspExtendedV4Prefix + HasPrefixAttributes() bool setNil() } -type BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum string +// An IPv4 unicast prefix reachable via the originator of this LSP. +// Ipv4Address returns a string +func (obj *isisLspExtendedV4Prefix) Ipv4Address() string { + + return *obj.obj.Ipv4Address -// Enum of Choice on BgpExtendedCommunityTransitiveIpv4AddressType -var BgpExtendedCommunityTransitiveIpv4AddressTypeChoice = struct { - ROUTE_TARGET_SUBTYPE BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum - ROUTE_ORIGIN_SUBTYPE BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum -}{ - ROUTE_TARGET_SUBTYPE: BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum("route_target_subtype"), - ROUTE_ORIGIN_SUBTYPE: BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum("route_origin_subtype"), } -func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) Choice() BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum { - return BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum(obj.obj.Choice.Enum().String()) +// An IPv4 unicast prefix reachable via the originator of this LSP. +// Ipv4Address returns a string +func (obj *isisLspExtendedV4Prefix) HasIpv4Address() bool { + return obj.obj.Ipv4Address != nil } -// description is TBD -// Choice returns a string -func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) HasChoice() bool { - return obj.obj.Choice != nil +// An IPv4 unicast prefix reachable via the originator of this LSP. +// SetIpv4Address sets the string value in the IsisLspExtendedV4Prefix object +func (obj *isisLspExtendedV4Prefix) SetIpv4Address(value string) IsisLspExtendedV4Prefix { + + obj.obj.Ipv4Address = &value + return obj } -func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) setChoice(value BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum) BgpExtendedCommunityTransitiveIpv4AddressType { - intValue, ok := otg.BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum_value[string(value)] - if !ok { - obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( - "%s is not a valid choice on BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum", string(value))) - return obj - } - enumValue := otg.BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum(intValue) - obj.obj.Choice = &enumValue - obj.obj.RouteOriginSubtype = nil - obj.routeOriginSubtypeHolder = nil - obj.obj.RouteTargetSubtype = nil - obj.routeTargetSubtypeHolder = nil +// The length of the IPv4 prefix. +// PrefixLength returns a uint32 +func (obj *isisLspExtendedV4Prefix) PrefixLength() uint32 { - if value == BgpExtendedCommunityTransitiveIpv4AddressTypeChoice.ROUTE_TARGET_SUBTYPE { - obj.obj.RouteTargetSubtype = NewBgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget().msg() - } + return *obj.obj.PrefixLength - if value == BgpExtendedCommunityTransitiveIpv4AddressTypeChoice.ROUTE_ORIGIN_SUBTYPE { - obj.obj.RouteOriginSubtype = NewBgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin().msg() - } +} + +// The length of the IPv4 prefix. +// PrefixLength returns a uint32 +func (obj *isisLspExtendedV4Prefix) HasPrefixLength() bool { + return obj.obj.PrefixLength != nil +} + +// The length of the IPv4 prefix. +// SetPrefixLength sets the uint32 value in the IsisLspExtendedV4Prefix object +func (obj *isisLspExtendedV4Prefix) SetPrefixLength(value uint32) IsisLspExtendedV4Prefix { + obj.obj.PrefixLength = &value return obj } -// description is TBD -// RouteTargetSubtype returns a BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget -func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) RouteTargetSubtype() BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget { - if obj.obj.RouteTargetSubtype == nil { - obj.setChoice(BgpExtendedCommunityTransitiveIpv4AddressTypeChoice.ROUTE_TARGET_SUBTYPE) - } - if obj.routeTargetSubtypeHolder == nil { - obj.routeTargetSubtypeHolder = &bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget{obj: obj.obj.RouteTargetSubtype} - } - return obj.routeTargetSubtypeHolder +// ISIS wide metric. +// Metric returns a uint32 +func (obj *isisLspExtendedV4Prefix) Metric() uint32 { + + return *obj.obj.Metric + } -// description is TBD -// RouteTargetSubtype returns a BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget -func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) HasRouteTargetSubtype() bool { - return obj.obj.RouteTargetSubtype != nil +// ISIS wide metric. +// Metric returns a uint32 +func (obj *isisLspExtendedV4Prefix) HasMetric() bool { + return obj.obj.Metric != nil } -// description is TBD -// SetRouteTargetSubtype sets the BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget value in the BgpExtendedCommunityTransitiveIpv4AddressType object -func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) SetRouteTargetSubtype(value BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) BgpExtendedCommunityTransitiveIpv4AddressType { - obj.setChoice(BgpExtendedCommunityTransitiveIpv4AddressTypeChoice.ROUTE_TARGET_SUBTYPE) - obj.routeTargetSubtypeHolder = nil - obj.obj.RouteTargetSubtype = value.msg() +// ISIS wide metric. +// SetMetric sets the uint32 value in the IsisLspExtendedV4Prefix object +func (obj *isisLspExtendedV4Prefix) SetMetric(value uint32) IsisLspExtendedV4Prefix { + + obj.obj.Metric = &value + return obj +} + +type IsisLspExtendedV4PrefixRedistributionTypeEnum string + +// Enum of RedistributionType on IsisLspExtendedV4Prefix +var IsisLspExtendedV4PrefixRedistributionType = struct { + UP IsisLspExtendedV4PrefixRedistributionTypeEnum + DOWN IsisLspExtendedV4PrefixRedistributionTypeEnum +}{ + UP: IsisLspExtendedV4PrefixRedistributionTypeEnum("up"), + DOWN: IsisLspExtendedV4PrefixRedistributionTypeEnum("down"), +} + +func (obj *isisLspExtendedV4Prefix) RedistributionType() IsisLspExtendedV4PrefixRedistributionTypeEnum { + return IsisLspExtendedV4PrefixRedistributionTypeEnum(obj.obj.RedistributionType.Enum().String()) +} + +// Up (0)-used when a prefix is initially advertised within the ISIS L3 hierarchy, +// and for all other prefixes in L1 and L2 LSPs. (default) +// Down (1)-used when an L1/L2 router advertises L2 prefixes in L1 LSPs. +// The prefixes are being advertised from a higher level (L2) down to a lower level (L1). +// RedistributionType returns a string +func (obj *isisLspExtendedV4Prefix) HasRedistributionType() bool { + return obj.obj.RedistributionType != nil +} + +func (obj *isisLspExtendedV4Prefix) SetRedistributionType(value IsisLspExtendedV4PrefixRedistributionTypeEnum) IsisLspExtendedV4Prefix { + intValue, ok := otg.IsisLspExtendedV4Prefix_RedistributionType_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on IsisLspExtendedV4PrefixRedistributionTypeEnum", string(value))) + return obj + } + enumValue := otg.IsisLspExtendedV4Prefix_RedistributionType_Enum(intValue) + obj.obj.RedistributionType = &enumValue return obj } // description is TBD -// RouteOriginSubtype returns a BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin -func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) RouteOriginSubtype() BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin { - if obj.obj.RouteOriginSubtype == nil { - obj.setChoice(BgpExtendedCommunityTransitiveIpv4AddressTypeChoice.ROUTE_ORIGIN_SUBTYPE) +// PrefixAttributes returns a IsisLspPrefixAttributes +func (obj *isisLspExtendedV4Prefix) PrefixAttributes() IsisLspPrefixAttributes { + if obj.obj.PrefixAttributes == nil { + obj.obj.PrefixAttributes = NewIsisLspPrefixAttributes().msg() } - if obj.routeOriginSubtypeHolder == nil { - obj.routeOriginSubtypeHolder = &bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin{obj: obj.obj.RouteOriginSubtype} + if obj.prefixAttributesHolder == nil { + obj.prefixAttributesHolder = &isisLspPrefixAttributes{obj: obj.obj.PrefixAttributes} } - return obj.routeOriginSubtypeHolder + return obj.prefixAttributesHolder } // description is TBD -// RouteOriginSubtype returns a BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin -func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) HasRouteOriginSubtype() bool { - return obj.obj.RouteOriginSubtype != nil +// PrefixAttributes returns a IsisLspPrefixAttributes +func (obj *isisLspExtendedV4Prefix) HasPrefixAttributes() bool { + return obj.obj.PrefixAttributes != nil } // description is TBD -// SetRouteOriginSubtype sets the BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin value in the BgpExtendedCommunityTransitiveIpv4AddressType object -func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) SetRouteOriginSubtype(value BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) BgpExtendedCommunityTransitiveIpv4AddressType { - obj.setChoice(BgpExtendedCommunityTransitiveIpv4AddressTypeChoice.ROUTE_ORIGIN_SUBTYPE) - obj.routeOriginSubtypeHolder = nil - obj.obj.RouteOriginSubtype = value.msg() +// SetPrefixAttributes sets the IsisLspPrefixAttributes value in the IsisLspExtendedV4Prefix object +func (obj *isisLspExtendedV4Prefix) SetPrefixAttributes(value IsisLspPrefixAttributes) IsisLspExtendedV4Prefix { + + obj.prefixAttributesHolder = nil + obj.obj.PrefixAttributes = value.msg() return obj } -func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) validateObj(vObj *validation, set_default bool) { +func (obj *isisLspExtendedV4Prefix) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.RouteTargetSubtype != nil { + if obj.obj.Ipv4Address != nil { + + err := obj.validateIpv4(obj.Ipv4Address()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on IsisLspExtendedV4Prefix.Ipv4Address")) + } - obj.RouteTargetSubtype().validateObj(vObj, set_default) } - if obj.obj.RouteOriginSubtype != nil { + if obj.obj.PrefixLength != nil { - obj.RouteOriginSubtype().validateObj(vObj, set_default) - } + if *obj.obj.PrefixLength > 32 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= IsisLspExtendedV4Prefix.PrefixLength <= 32 but Got %d", *obj.obj.PrefixLength)) + } -} + } -func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) setDefault() { - if obj.obj.Choice == nil { - obj.setChoice(BgpExtendedCommunityTransitiveIpv4AddressTypeChoice.ROUTE_TARGET_SUBTYPE) + if obj.obj.PrefixAttributes != nil { + obj.PrefixAttributes().validateObj(vObj, set_default) } } -// ***** BgpExtendedCommunityTransitive4OctetAsType ***** -type bgpExtendedCommunityTransitive4OctetAsType struct { +func (obj *isisLspExtendedV4Prefix) setDefault() { + +} + +// ***** IsisLspV6Prefix ***** +type isisLspV6Prefix struct { validation - obj *otg.BgpExtendedCommunityTransitive4OctetAsType - marshaller marshalBgpExtendedCommunityTransitive4OctetAsType - unMarshaller unMarshalBgpExtendedCommunityTransitive4OctetAsType - routeTargetSubtypeHolder BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget - routeOriginSubtypeHolder BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + obj *otg.IsisLspV6Prefix + marshaller marshalIsisLspV6Prefix + unMarshaller unMarshalIsisLspV6Prefix + prefixAttributesHolder IsisLspPrefixAttributes } -func NewBgpExtendedCommunityTransitive4OctetAsType() BgpExtendedCommunityTransitive4OctetAsType { - obj := bgpExtendedCommunityTransitive4OctetAsType{obj: &otg.BgpExtendedCommunityTransitive4OctetAsType{}} +func NewIsisLspV6Prefix() IsisLspV6Prefix { + obj := isisLspV6Prefix{obj: &otg.IsisLspV6Prefix{}} obj.setDefault() return &obj } -func (obj *bgpExtendedCommunityTransitive4OctetAsType) msg() *otg.BgpExtendedCommunityTransitive4OctetAsType { +func (obj *isisLspV6Prefix) msg() *otg.IsisLspV6Prefix { return obj.obj } -func (obj *bgpExtendedCommunityTransitive4OctetAsType) setMsg(msg *otg.BgpExtendedCommunityTransitive4OctetAsType) BgpExtendedCommunityTransitive4OctetAsType { +func (obj *isisLspV6Prefix) setMsg(msg *otg.IsisLspV6Prefix) IsisLspV6Prefix { obj.setNil() proto.Merge(obj.obj, msg) return obj } -type marshalbgpExtendedCommunityTransitive4OctetAsType struct { - obj *bgpExtendedCommunityTransitive4OctetAsType +type marshalisisLspV6Prefix struct { + obj *isisLspV6Prefix } -type marshalBgpExtendedCommunityTransitive4OctetAsType interface { - // ToProto marshals BgpExtendedCommunityTransitive4OctetAsType to protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsType - ToProto() (*otg.BgpExtendedCommunityTransitive4OctetAsType, error) - // ToPbText marshals BgpExtendedCommunityTransitive4OctetAsType to protobuf text +type marshalIsisLspV6Prefix interface { + // ToProto marshals IsisLspV6Prefix to protobuf object *otg.IsisLspV6Prefix + ToProto() (*otg.IsisLspV6Prefix, error) + // ToPbText marshals IsisLspV6Prefix to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpExtendedCommunityTransitive4OctetAsType to YAML text + // ToYaml marshals IsisLspV6Prefix to YAML text ToYaml() (string, error) - // ToJson marshals BgpExtendedCommunityTransitive4OctetAsType to JSON text + // ToJson marshals IsisLspV6Prefix to JSON text ToJson() (string, error) } -type unMarshalbgpExtendedCommunityTransitive4OctetAsType struct { - obj *bgpExtendedCommunityTransitive4OctetAsType +type unMarshalisisLspV6Prefix struct { + obj *isisLspV6Prefix } -type unMarshalBgpExtendedCommunityTransitive4OctetAsType interface { - // FromProto unmarshals BgpExtendedCommunityTransitive4OctetAsType from protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsType - FromProto(msg *otg.BgpExtendedCommunityTransitive4OctetAsType) (BgpExtendedCommunityTransitive4OctetAsType, error) - // FromPbText unmarshals BgpExtendedCommunityTransitive4OctetAsType from protobuf text +type unMarshalIsisLspV6Prefix interface { + // FromProto unmarshals IsisLspV6Prefix from protobuf object *otg.IsisLspV6Prefix + FromProto(msg *otg.IsisLspV6Prefix) (IsisLspV6Prefix, error) + // FromPbText unmarshals IsisLspV6Prefix from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpExtendedCommunityTransitive4OctetAsType from YAML text + // FromYaml unmarshals IsisLspV6Prefix from YAML text FromYaml(value string) error - // FromJson unmarshals BgpExtendedCommunityTransitive4OctetAsType from JSON text + // FromJson unmarshals IsisLspV6Prefix from JSON text FromJson(value string) error } -func (obj *bgpExtendedCommunityTransitive4OctetAsType) Marshal() marshalBgpExtendedCommunityTransitive4OctetAsType { +func (obj *isisLspV6Prefix) Marshal() marshalIsisLspV6Prefix { if obj.marshaller == nil { - obj.marshaller = &marshalbgpExtendedCommunityTransitive4OctetAsType{obj: obj} + obj.marshaller = &marshalisisLspV6Prefix{obj: obj} } return obj.marshaller } -func (obj *bgpExtendedCommunityTransitive4OctetAsType) Unmarshal() unMarshalBgpExtendedCommunityTransitive4OctetAsType { +func (obj *isisLspV6Prefix) Unmarshal() unMarshalIsisLspV6Prefix { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpExtendedCommunityTransitive4OctetAsType{obj: obj} + obj.unMarshaller = &unMarshalisisLspV6Prefix{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpExtendedCommunityTransitive4OctetAsType) ToProto() (*otg.BgpExtendedCommunityTransitive4OctetAsType, error) { +func (m *marshalisisLspV6Prefix) ToProto() (*otg.IsisLspV6Prefix, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -324508,7 +327595,7 @@ func (m *marshalbgpExtendedCommunityTransitive4OctetAsType) ToProto() (*otg.BgpE return m.obj.msg(), nil } -func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsType) FromProto(msg *otg.BgpExtendedCommunityTransitive4OctetAsType) (BgpExtendedCommunityTransitive4OctetAsType, error) { +func (m *unMarshalisisLspV6Prefix) FromProto(msg *otg.IsisLspV6Prefix) (IsisLspV6Prefix, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -324517,7 +327604,7 @@ func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsType) FromProto(msg *otg return newObj, nil } -func (m *marshalbgpExtendedCommunityTransitive4OctetAsType) ToPbText() (string, error) { +func (m *marshalisisLspV6Prefix) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -324529,7 +327616,7 @@ func (m *marshalbgpExtendedCommunityTransitive4OctetAsType) ToPbText() (string, return string(protoMarshal), nil } -func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsType) FromPbText(value string) error { +func (m *unMarshalisisLspV6Prefix) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj @@ -324542,7 +327629,7 @@ func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsType) FromPbText(value s return retObj } -func (m *marshalbgpExtendedCommunityTransitive4OctetAsType) ToYaml() (string, error) { +func (m *marshalisisLspV6Prefix) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -324563,7 +327650,7 @@ func (m *marshalbgpExtendedCommunityTransitive4OctetAsType) ToYaml() (string, er return string(data), nil } -func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsType) FromYaml(value string) error { +func (m *unMarshalisisLspV6Prefix) FromYaml(value string) error { if value == "" { value = "{}" } @@ -324588,7 +327675,7 @@ func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsType) FromYaml(value str return nil } -func (m *marshalbgpExtendedCommunityTransitive4OctetAsType) ToJson() (string, error) { +func (m *marshalisisLspV6Prefix) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -324606,7 +327693,7 @@ func (m *marshalbgpExtendedCommunityTransitive4OctetAsType) ToJson() (string, er return string(data), nil } -func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsType) FromJson(value string) error { +func (m *unMarshalisisLspV6Prefix) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -324627,19 +327714,19 @@ func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsType) FromJson(value str return nil } -func (obj *bgpExtendedCommunityTransitive4OctetAsType) validateToAndFrom() error { +func (obj *isisLspV6Prefix) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpExtendedCommunityTransitive4OctetAsType) validate() error { +func (obj *isisLspV6Prefix) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpExtendedCommunityTransitive4OctetAsType) String() string { +func (obj *isisLspV6Prefix) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -324647,12 +327734,12 @@ func (obj *bgpExtendedCommunityTransitive4OctetAsType) String() string { return str } -func (obj *bgpExtendedCommunityTransitive4OctetAsType) Clone() (BgpExtendedCommunityTransitive4OctetAsType, error) { +func (obj *isisLspV6Prefix) Clone() (IsisLspV6Prefix, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpExtendedCommunityTransitive4OctetAsType() + newObj := NewIsisLspV6Prefix() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -324664,259 +327751,358 @@ func (obj *bgpExtendedCommunityTransitive4OctetAsType) Clone() (BgpExtendedCommu return newObj, nil } -func (obj *bgpExtendedCommunityTransitive4OctetAsType) setNil() { - obj.routeTargetSubtypeHolder = nil - obj.routeOriginSubtypeHolder = nil +func (obj *isisLspV6Prefix) setNil() { + obj.prefixAttributesHolder = nil obj.validationErrors = nil obj.warnings = nil obj.constraints = make(map[string]map[string]Constraints) } -// BgpExtendedCommunityTransitive4OctetAsType is the Transitive Four-Octet AS-Specific Extended Community is sent as type 0x02. It is defined in RFC 5668. -type BgpExtendedCommunityTransitive4OctetAsType interface { +// IsisLspV6Prefix is it defines attributes of an IPv6 standard prefix. +type IsisLspV6Prefix interface { Validation - // msg marshals BgpExtendedCommunityTransitive4OctetAsType to protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsType + // msg marshals IsisLspV6Prefix to protobuf object *otg.IsisLspV6Prefix // and doesn't set defaults - msg() *otg.BgpExtendedCommunityTransitive4OctetAsType - // setMsg unmarshals BgpExtendedCommunityTransitive4OctetAsType from protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsType + msg() *otg.IsisLspV6Prefix + // setMsg unmarshals IsisLspV6Prefix from protobuf object *otg.IsisLspV6Prefix // and doesn't set defaults - setMsg(*otg.BgpExtendedCommunityTransitive4OctetAsType) BgpExtendedCommunityTransitive4OctetAsType + setMsg(*otg.IsisLspV6Prefix) IsisLspV6Prefix // provides marshal interface - Marshal() marshalBgpExtendedCommunityTransitive4OctetAsType + Marshal() marshalIsisLspV6Prefix // provides unmarshal interface - Unmarshal() unMarshalBgpExtendedCommunityTransitive4OctetAsType - // validate validates BgpExtendedCommunityTransitive4OctetAsType + Unmarshal() unMarshalIsisLspV6Prefix + // validate validates IsisLspV6Prefix validate() error // A stringer function String() string // Clones the object - Clone() (BgpExtendedCommunityTransitive4OctetAsType, error) + Clone() (IsisLspV6Prefix, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Choice returns BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum, set in BgpExtendedCommunityTransitive4OctetAsType - Choice() BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum - // setChoice assigns BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum provided by user to BgpExtendedCommunityTransitive4OctetAsType - setChoice(value BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum) BgpExtendedCommunityTransitive4OctetAsType - // HasChoice checks if Choice has been set in BgpExtendedCommunityTransitive4OctetAsType - HasChoice() bool - // RouteTargetSubtype returns BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget, set in BgpExtendedCommunityTransitive4OctetAsType. - // BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget is the Route Target Community identifies one or more routers that may receive a set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02 - RouteTargetSubtype() BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget - // SetRouteTargetSubtype assigns BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget provided by user to BgpExtendedCommunityTransitive4OctetAsType. - // BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget is the Route Target Community identifies one or more routers that may receive a set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02 - SetRouteTargetSubtype(value BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) BgpExtendedCommunityTransitive4OctetAsType - // HasRouteTargetSubtype checks if RouteTargetSubtype has been set in BgpExtendedCommunityTransitive4OctetAsType - HasRouteTargetSubtype() bool - // RouteOriginSubtype returns BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin, set in BgpExtendedCommunityTransitive4OctetAsType. - // BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin is the Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP. It is sent with sub-type as 0x03. - RouteOriginSubtype() BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin - // SetRouteOriginSubtype assigns BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin provided by user to BgpExtendedCommunityTransitive4OctetAsType. - // BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin is the Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP. It is sent with sub-type as 0x03. - SetRouteOriginSubtype(value BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) BgpExtendedCommunityTransitive4OctetAsType - // HasRouteOriginSubtype checks if RouteOriginSubtype has been set in BgpExtendedCommunityTransitive4OctetAsType - HasRouteOriginSubtype() bool + // Ipv6Address returns string, set in IsisLspV6Prefix. + Ipv6Address() string + // SetIpv6Address assigns string provided by user to IsisLspV6Prefix + SetIpv6Address(value string) IsisLspV6Prefix + // HasIpv6Address checks if Ipv6Address has been set in IsisLspV6Prefix + HasIpv6Address() bool + // PrefixLength returns uint32, set in IsisLspV6Prefix. + PrefixLength() uint32 + // SetPrefixLength assigns uint32 provided by user to IsisLspV6Prefix + SetPrefixLength(value uint32) IsisLspV6Prefix + // HasPrefixLength checks if PrefixLength has been set in IsisLspV6Prefix + HasPrefixLength() bool + // Metric returns uint32, set in IsisLspV6Prefix. + Metric() uint32 + // SetMetric assigns uint32 provided by user to IsisLspV6Prefix + SetMetric(value uint32) IsisLspV6Prefix + // HasMetric checks if Metric has been set in IsisLspV6Prefix + HasMetric() bool + // RedistributionType returns IsisLspV6PrefixRedistributionTypeEnum, set in IsisLspV6Prefix + RedistributionType() IsisLspV6PrefixRedistributionTypeEnum + // SetRedistributionType assigns IsisLspV6PrefixRedistributionTypeEnum provided by user to IsisLspV6Prefix + SetRedistributionType(value IsisLspV6PrefixRedistributionTypeEnum) IsisLspV6Prefix + // HasRedistributionType checks if RedistributionType has been set in IsisLspV6Prefix + HasRedistributionType() bool + // OriginType returns IsisLspV6PrefixOriginTypeEnum, set in IsisLspV6Prefix + OriginType() IsisLspV6PrefixOriginTypeEnum + // SetOriginType assigns IsisLspV6PrefixOriginTypeEnum provided by user to IsisLspV6Prefix + SetOriginType(value IsisLspV6PrefixOriginTypeEnum) IsisLspV6Prefix + // HasOriginType checks if OriginType has been set in IsisLspV6Prefix + HasOriginType() bool + // PrefixAttributes returns IsisLspPrefixAttributes, set in IsisLspV6Prefix. + // IsisLspPrefixAttributes is this contains the properties of ISIS Prefix attributes for the extended IPv4 and IPv6 reachability. https://www.rfc-editor.org/rfc/rfc7794.html + PrefixAttributes() IsisLspPrefixAttributes + // SetPrefixAttributes assigns IsisLspPrefixAttributes provided by user to IsisLspV6Prefix. + // IsisLspPrefixAttributes is this contains the properties of ISIS Prefix attributes for the extended IPv4 and IPv6 reachability. https://www.rfc-editor.org/rfc/rfc7794.html + SetPrefixAttributes(value IsisLspPrefixAttributes) IsisLspV6Prefix + // HasPrefixAttributes checks if PrefixAttributes has been set in IsisLspV6Prefix + HasPrefixAttributes() bool setNil() } -type BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum string +// An IPv6 unicast prefix reachable via the originator of this LSP. +// Ipv6Address returns a string +func (obj *isisLspV6Prefix) Ipv6Address() string { -// Enum of Choice on BgpExtendedCommunityTransitive4OctetAsType -var BgpExtendedCommunityTransitive4OctetAsTypeChoice = struct { - ROUTE_TARGET_SUBTYPE BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum - ROUTE_ORIGIN_SUBTYPE BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum + return *obj.obj.Ipv6Address + +} + +// An IPv6 unicast prefix reachable via the originator of this LSP. +// Ipv6Address returns a string +func (obj *isisLspV6Prefix) HasIpv6Address() bool { + return obj.obj.Ipv6Address != nil +} + +// An IPv6 unicast prefix reachable via the originator of this LSP. +// SetIpv6Address sets the string value in the IsisLspV6Prefix object +func (obj *isisLspV6Prefix) SetIpv6Address(value string) IsisLspV6Prefix { + + obj.obj.Ipv6Address = &value + return obj +} + +// The length of the IPv6 prefix. +// PrefixLength returns a uint32 +func (obj *isisLspV6Prefix) PrefixLength() uint32 { + + return *obj.obj.PrefixLength + +} + +// The length of the IPv6 prefix. +// PrefixLength returns a uint32 +func (obj *isisLspV6Prefix) HasPrefixLength() bool { + return obj.obj.PrefixLength != nil +} + +// The length of the IPv6 prefix. +// SetPrefixLength sets the uint32 value in the IsisLspV6Prefix object +func (obj *isisLspV6Prefix) SetPrefixLength(value uint32) IsisLspV6Prefix { + + obj.obj.PrefixLength = &value + return obj +} + +// ISIS wide metric. +// Metric returns a uint32 +func (obj *isisLspV6Prefix) Metric() uint32 { + + return *obj.obj.Metric + +} + +// ISIS wide metric. +// Metric returns a uint32 +func (obj *isisLspV6Prefix) HasMetric() bool { + return obj.obj.Metric != nil +} + +// ISIS wide metric. +// SetMetric sets the uint32 value in the IsisLspV6Prefix object +func (obj *isisLspV6Prefix) SetMetric(value uint32) IsisLspV6Prefix { + + obj.obj.Metric = &value + return obj +} + +type IsisLspV6PrefixRedistributionTypeEnum string + +// Enum of RedistributionType on IsisLspV6Prefix +var IsisLspV6PrefixRedistributionType = struct { + UP IsisLspV6PrefixRedistributionTypeEnum + DOWN IsisLspV6PrefixRedistributionTypeEnum }{ - ROUTE_TARGET_SUBTYPE: BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum("route_target_subtype"), - ROUTE_ORIGIN_SUBTYPE: BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum("route_origin_subtype"), + UP: IsisLspV6PrefixRedistributionTypeEnum("up"), + DOWN: IsisLspV6PrefixRedistributionTypeEnum("down"), } -func (obj *bgpExtendedCommunityTransitive4OctetAsType) Choice() BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum { - return BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum(obj.obj.Choice.Enum().String()) +func (obj *isisLspV6Prefix) RedistributionType() IsisLspV6PrefixRedistributionTypeEnum { + return IsisLspV6PrefixRedistributionTypeEnum(obj.obj.RedistributionType.Enum().String()) } -// description is TBD -// Choice returns a string -func (obj *bgpExtendedCommunityTransitive4OctetAsType) HasChoice() bool { - return obj.obj.Choice != nil +// Up (0)-used when a prefix is initially advertised within the ISIS L3 hierarchy, +// and for all other prefixes in L1 and L2 LSPs. (default) +// Down (1)-used when an L1/L2 router advertises L2 prefixes in L1 LSPs. +// The prefixes are being advertised from a higher level (L2) down to a lower level (L1). +// RedistributionType returns a string +func (obj *isisLspV6Prefix) HasRedistributionType() bool { + return obj.obj.RedistributionType != nil } -func (obj *bgpExtendedCommunityTransitive4OctetAsType) setChoice(value BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum) BgpExtendedCommunityTransitive4OctetAsType { - intValue, ok := otg.BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum_value[string(value)] +func (obj *isisLspV6Prefix) SetRedistributionType(value IsisLspV6PrefixRedistributionTypeEnum) IsisLspV6Prefix { + intValue, ok := otg.IsisLspV6Prefix_RedistributionType_Enum_value[string(value)] if !ok { obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( - "%s is not a valid choice on BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum", string(value))) + "%s is not a valid choice on IsisLspV6PrefixRedistributionTypeEnum", string(value))) return obj } - enumValue := otg.BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum(intValue) - obj.obj.Choice = &enumValue - obj.obj.RouteOriginSubtype = nil - obj.routeOriginSubtypeHolder = nil - obj.obj.RouteTargetSubtype = nil - obj.routeTargetSubtypeHolder = nil + enumValue := otg.IsisLspV6Prefix_RedistributionType_Enum(intValue) + obj.obj.RedistributionType = &enumValue - if value == BgpExtendedCommunityTransitive4OctetAsTypeChoice.ROUTE_TARGET_SUBTYPE { - obj.obj.RouteTargetSubtype = NewBgpExtendedCommunityTransitive4OctetAsTypeRouteTarget().msg() - } + return obj +} - if value == BgpExtendedCommunityTransitive4OctetAsTypeChoice.ROUTE_ORIGIN_SUBTYPE { - obj.obj.RouteOriginSubtype = NewBgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin().msg() - } +type IsisLspV6PrefixOriginTypeEnum string - return obj +// Enum of OriginType on IsisLspV6Prefix +var IsisLspV6PrefixOriginType = struct { + INTERNAL IsisLspV6PrefixOriginTypeEnum + EXTERNAL IsisLspV6PrefixOriginTypeEnum +}{ + INTERNAL: IsisLspV6PrefixOriginTypeEnum("internal"), + EXTERNAL: IsisLspV6PrefixOriginTypeEnum("external"), } -// description is TBD -// RouteTargetSubtype returns a BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget -func (obj *bgpExtendedCommunityTransitive4OctetAsType) RouteTargetSubtype() BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget { - if obj.obj.RouteTargetSubtype == nil { - obj.setChoice(BgpExtendedCommunityTransitive4OctetAsTypeChoice.ROUTE_TARGET_SUBTYPE) - } - if obj.routeTargetSubtypeHolder == nil { - obj.routeTargetSubtypeHolder = &bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget{obj: obj.obj.RouteTargetSubtype} - } - return obj.routeTargetSubtypeHolder +func (obj *isisLspV6Prefix) OriginType() IsisLspV6PrefixOriginTypeEnum { + return IsisLspV6PrefixOriginTypeEnum(obj.obj.OriginType.Enum().String()) } -// description is TBD -// RouteTargetSubtype returns a BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget -func (obj *bgpExtendedCommunityTransitive4OctetAsType) HasRouteTargetSubtype() bool { - return obj.obj.RouteTargetSubtype != nil +// The origin of the advertised route-internal or external to the ISIS area. Options include the following: +// Internal-for intra-area routes, through Level 1 LSPs. +// External-for inter-area routes redistributed within L1, through Level +// 1 LSPs. +// OriginType returns a string +func (obj *isisLspV6Prefix) HasOriginType() bool { + return obj.obj.OriginType != nil } -// description is TBD -// SetRouteTargetSubtype sets the BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget value in the BgpExtendedCommunityTransitive4OctetAsType object -func (obj *bgpExtendedCommunityTransitive4OctetAsType) SetRouteTargetSubtype(value BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) BgpExtendedCommunityTransitive4OctetAsType { - obj.setChoice(BgpExtendedCommunityTransitive4OctetAsTypeChoice.ROUTE_TARGET_SUBTYPE) - obj.routeTargetSubtypeHolder = nil - obj.obj.RouteTargetSubtype = value.msg() +func (obj *isisLspV6Prefix) SetOriginType(value IsisLspV6PrefixOriginTypeEnum) IsisLspV6Prefix { + intValue, ok := otg.IsisLspV6Prefix_OriginType_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on IsisLspV6PrefixOriginTypeEnum", string(value))) + return obj + } + enumValue := otg.IsisLspV6Prefix_OriginType_Enum(intValue) + obj.obj.OriginType = &enumValue return obj } // description is TBD -// RouteOriginSubtype returns a BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin -func (obj *bgpExtendedCommunityTransitive4OctetAsType) RouteOriginSubtype() BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin { - if obj.obj.RouteOriginSubtype == nil { - obj.setChoice(BgpExtendedCommunityTransitive4OctetAsTypeChoice.ROUTE_ORIGIN_SUBTYPE) +// PrefixAttributes returns a IsisLspPrefixAttributes +func (obj *isisLspV6Prefix) PrefixAttributes() IsisLspPrefixAttributes { + if obj.obj.PrefixAttributes == nil { + obj.obj.PrefixAttributes = NewIsisLspPrefixAttributes().msg() } - if obj.routeOriginSubtypeHolder == nil { - obj.routeOriginSubtypeHolder = &bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin{obj: obj.obj.RouteOriginSubtype} + if obj.prefixAttributesHolder == nil { + obj.prefixAttributesHolder = &isisLspPrefixAttributes{obj: obj.obj.PrefixAttributes} } - return obj.routeOriginSubtypeHolder + return obj.prefixAttributesHolder } // description is TBD -// RouteOriginSubtype returns a BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin -func (obj *bgpExtendedCommunityTransitive4OctetAsType) HasRouteOriginSubtype() bool { - return obj.obj.RouteOriginSubtype != nil +// PrefixAttributes returns a IsisLspPrefixAttributes +func (obj *isisLspV6Prefix) HasPrefixAttributes() bool { + return obj.obj.PrefixAttributes != nil } // description is TBD -// SetRouteOriginSubtype sets the BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin value in the BgpExtendedCommunityTransitive4OctetAsType object -func (obj *bgpExtendedCommunityTransitive4OctetAsType) SetRouteOriginSubtype(value BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) BgpExtendedCommunityTransitive4OctetAsType { - obj.setChoice(BgpExtendedCommunityTransitive4OctetAsTypeChoice.ROUTE_ORIGIN_SUBTYPE) - obj.routeOriginSubtypeHolder = nil - obj.obj.RouteOriginSubtype = value.msg() +// SetPrefixAttributes sets the IsisLspPrefixAttributes value in the IsisLspV6Prefix object +func (obj *isisLspV6Prefix) SetPrefixAttributes(value IsisLspPrefixAttributes) IsisLspV6Prefix { + + obj.prefixAttributesHolder = nil + obj.obj.PrefixAttributes = value.msg() return obj } -func (obj *bgpExtendedCommunityTransitive4OctetAsType) validateObj(vObj *validation, set_default bool) { +func (obj *isisLspV6Prefix) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.RouteTargetSubtype != nil { + if obj.obj.Ipv6Address != nil { + + err := obj.validateIpv6(obj.Ipv6Address()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on IsisLspV6Prefix.Ipv6Address")) + } - obj.RouteTargetSubtype().validateObj(vObj, set_default) } - if obj.obj.RouteOriginSubtype != nil { + if obj.obj.PrefixLength != nil { - obj.RouteOriginSubtype().validateObj(vObj, set_default) - } + if *obj.obj.PrefixLength > 128 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= IsisLspV6Prefix.PrefixLength <= 128 but Got %d", *obj.obj.PrefixLength)) + } -} + } -func (obj *bgpExtendedCommunityTransitive4OctetAsType) setDefault() { - if obj.obj.Choice == nil { - obj.setChoice(BgpExtendedCommunityTransitive4OctetAsTypeChoice.ROUTE_TARGET_SUBTYPE) + if obj.obj.PrefixAttributes != nil { + obj.PrefixAttributes().validateObj(vObj, set_default) } } -// ***** BgpExtendedCommunityTransitiveOpaqueType ***** -type bgpExtendedCommunityTransitiveOpaqueType struct { +func (obj *isisLspV6Prefix) setDefault() { + +} + +// ***** BgpV4EviVxlan ***** +type bgpV4EviVxlan struct { validation - obj *otg.BgpExtendedCommunityTransitiveOpaqueType - marshaller marshalBgpExtendedCommunityTransitiveOpaqueType - unMarshaller unMarshalBgpExtendedCommunityTransitiveOpaqueType - colorSubtypeHolder BgpExtendedCommunityTransitiveOpaqueTypeColor - encapsulationSubtypeHolder BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + obj *otg.BgpV4EviVxlan + marshaller marshalBgpV4EviVxlan + unMarshaller unMarshalBgpV4EviVxlan + broadcastDomainsHolder BgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter + routeDistinguisherHolder BgpRouteDistinguisher + routeTargetExportHolder BgpV4EviVxlanBgpRouteTargetIter + routeTargetImportHolder BgpV4EviVxlanBgpRouteTargetIter + l3RouteTargetExportHolder BgpV4EviVxlanBgpRouteTargetIter + l3RouteTargetImportHolder BgpV4EviVxlanBgpRouteTargetIter + advancedHolder BgpRouteAdvanced + communitiesHolder BgpV4EviVxlanBgpCommunityIter + extCommunitiesHolder BgpV4EviVxlanBgpExtCommunityIter + asPathHolder BgpAsPath } -func NewBgpExtendedCommunityTransitiveOpaqueType() BgpExtendedCommunityTransitiveOpaqueType { - obj := bgpExtendedCommunityTransitiveOpaqueType{obj: &otg.BgpExtendedCommunityTransitiveOpaqueType{}} +func NewBgpV4EviVxlan() BgpV4EviVxlan { + obj := bgpV4EviVxlan{obj: &otg.BgpV4EviVxlan{}} obj.setDefault() return &obj } -func (obj *bgpExtendedCommunityTransitiveOpaqueType) msg() *otg.BgpExtendedCommunityTransitiveOpaqueType { +func (obj *bgpV4EviVxlan) msg() *otg.BgpV4EviVxlan { return obj.obj } -func (obj *bgpExtendedCommunityTransitiveOpaqueType) setMsg(msg *otg.BgpExtendedCommunityTransitiveOpaqueType) BgpExtendedCommunityTransitiveOpaqueType { +func (obj *bgpV4EviVxlan) setMsg(msg *otg.BgpV4EviVxlan) BgpV4EviVxlan { obj.setNil() proto.Merge(obj.obj, msg) return obj } -type marshalbgpExtendedCommunityTransitiveOpaqueType struct { - obj *bgpExtendedCommunityTransitiveOpaqueType +type marshalbgpV4EviVxlan struct { + obj *bgpV4EviVxlan } -type marshalBgpExtendedCommunityTransitiveOpaqueType interface { - // ToProto marshals BgpExtendedCommunityTransitiveOpaqueType to protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueType - ToProto() (*otg.BgpExtendedCommunityTransitiveOpaqueType, error) - // ToPbText marshals BgpExtendedCommunityTransitiveOpaqueType to protobuf text +type marshalBgpV4EviVxlan interface { + // ToProto marshals BgpV4EviVxlan to protobuf object *otg.BgpV4EviVxlan + ToProto() (*otg.BgpV4EviVxlan, error) + // ToPbText marshals BgpV4EviVxlan to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpExtendedCommunityTransitiveOpaqueType to YAML text + // ToYaml marshals BgpV4EviVxlan to YAML text ToYaml() (string, error) - // ToJson marshals BgpExtendedCommunityTransitiveOpaqueType to JSON text + // ToJson marshals BgpV4EviVxlan to JSON text ToJson() (string, error) } -type unMarshalbgpExtendedCommunityTransitiveOpaqueType struct { - obj *bgpExtendedCommunityTransitiveOpaqueType +type unMarshalbgpV4EviVxlan struct { + obj *bgpV4EviVxlan } -type unMarshalBgpExtendedCommunityTransitiveOpaqueType interface { - // FromProto unmarshals BgpExtendedCommunityTransitiveOpaqueType from protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueType - FromProto(msg *otg.BgpExtendedCommunityTransitiveOpaqueType) (BgpExtendedCommunityTransitiveOpaqueType, error) - // FromPbText unmarshals BgpExtendedCommunityTransitiveOpaqueType from protobuf text +type unMarshalBgpV4EviVxlan interface { + // FromProto unmarshals BgpV4EviVxlan from protobuf object *otg.BgpV4EviVxlan + FromProto(msg *otg.BgpV4EviVxlan) (BgpV4EviVxlan, error) + // FromPbText unmarshals BgpV4EviVxlan from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpExtendedCommunityTransitiveOpaqueType from YAML text + // FromYaml unmarshals BgpV4EviVxlan from YAML text FromYaml(value string) error - // FromJson unmarshals BgpExtendedCommunityTransitiveOpaqueType from JSON text + // FromJson unmarshals BgpV4EviVxlan from JSON text FromJson(value string) error } -func (obj *bgpExtendedCommunityTransitiveOpaqueType) Marshal() marshalBgpExtendedCommunityTransitiveOpaqueType { +func (obj *bgpV4EviVxlan) Marshal() marshalBgpV4EviVxlan { if obj.marshaller == nil { - obj.marshaller = &marshalbgpExtendedCommunityTransitiveOpaqueType{obj: obj} + obj.marshaller = &marshalbgpV4EviVxlan{obj: obj} } return obj.marshaller } -func (obj *bgpExtendedCommunityTransitiveOpaqueType) Unmarshal() unMarshalBgpExtendedCommunityTransitiveOpaqueType { +func (obj *bgpV4EviVxlan) Unmarshal() unMarshalBgpV4EviVxlan { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpExtendedCommunityTransitiveOpaqueType{obj: obj} + obj.unMarshaller = &unMarshalbgpV4EviVxlan{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpExtendedCommunityTransitiveOpaqueType) ToProto() (*otg.BgpExtendedCommunityTransitiveOpaqueType, error) { +func (m *marshalbgpV4EviVxlan) ToProto() (*otg.BgpV4EviVxlan, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -324924,7 +328110,7 @@ func (m *marshalbgpExtendedCommunityTransitiveOpaqueType) ToProto() (*otg.BgpExt return m.obj.msg(), nil } -func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueType) FromProto(msg *otg.BgpExtendedCommunityTransitiveOpaqueType) (BgpExtendedCommunityTransitiveOpaqueType, error) { +func (m *unMarshalbgpV4EviVxlan) FromProto(msg *otg.BgpV4EviVxlan) (BgpV4EviVxlan, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -324933,7 +328119,7 @@ func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueType) FromProto(msg *otg.B return newObj, nil } -func (m *marshalbgpExtendedCommunityTransitiveOpaqueType) ToPbText() (string, error) { +func (m *marshalbgpV4EviVxlan) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -324945,7 +328131,7 @@ func (m *marshalbgpExtendedCommunityTransitiveOpaqueType) ToPbText() (string, er return string(protoMarshal), nil } -func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueType) FromPbText(value string) error { +func (m *unMarshalbgpV4EviVxlan) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj @@ -324958,7 +328144,7 @@ func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueType) FromPbText(value str return retObj } -func (m *marshalbgpExtendedCommunityTransitiveOpaqueType) ToYaml() (string, error) { +func (m *marshalbgpV4EviVxlan) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -324979,7 +328165,7 @@ func (m *marshalbgpExtendedCommunityTransitiveOpaqueType) ToYaml() (string, erro return string(data), nil } -func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueType) FromYaml(value string) error { +func (m *unMarshalbgpV4EviVxlan) FromYaml(value string) error { if value == "" { value = "{}" } @@ -325004,7 +328190,7 @@ func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueType) FromYaml(value strin return nil } -func (m *marshalbgpExtendedCommunityTransitiveOpaqueType) ToJson() (string, error) { +func (m *marshalbgpV4EviVxlan) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -325022,7 +328208,7 @@ func (m *marshalbgpExtendedCommunityTransitiveOpaqueType) ToJson() (string, erro return string(data), nil } -func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueType) FromJson(value string) error { +func (m *unMarshalbgpV4EviVxlan) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -325043,19 +328229,19 @@ func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueType) FromJson(value strin return nil } -func (obj *bgpExtendedCommunityTransitiveOpaqueType) validateToAndFrom() error { +func (obj *bgpV4EviVxlan) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpExtendedCommunityTransitiveOpaqueType) validate() error { +func (obj *bgpV4EviVxlan) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpExtendedCommunityTransitiveOpaqueType) String() string { +func (obj *bgpV4EviVxlan) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -325063,12 +328249,12 @@ func (obj *bgpExtendedCommunityTransitiveOpaqueType) String() string { return str } -func (obj *bgpExtendedCommunityTransitiveOpaqueType) Clone() (BgpExtendedCommunityTransitiveOpaqueType, error) { +func (obj *bgpV4EviVxlan) Clone() (BgpV4EviVxlan, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpExtendedCommunityTransitiveOpaqueType() + newObj := NewBgpV4EviVxlan() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -325080,258 +328266,9403 @@ func (obj *bgpExtendedCommunityTransitiveOpaqueType) Clone() (BgpExtendedCommuni return newObj, nil } -func (obj *bgpExtendedCommunityTransitiveOpaqueType) setNil() { - obj.colorSubtypeHolder = nil - obj.encapsulationSubtypeHolder = nil +func (obj *bgpV4EviVxlan) setNil() { + obj.broadcastDomainsHolder = nil + obj.routeDistinguisherHolder = nil + obj.routeTargetExportHolder = nil + obj.routeTargetImportHolder = nil + obj.l3RouteTargetExportHolder = nil + obj.l3RouteTargetImportHolder = nil + obj.advancedHolder = nil + obj.communitiesHolder = nil + obj.extCommunitiesHolder = nil + obj.asPathHolder = nil obj.validationErrors = nil obj.warnings = nil obj.constraints = make(map[string]map[string]Constraints) } -// BgpExtendedCommunityTransitiveOpaqueType is the Transitive Opaque Extended Community is sent as type 0x03. -type BgpExtendedCommunityTransitiveOpaqueType interface { +// BgpV4EviVxlan is configuration for BGP EVPN EVI. Advertises following routes - +// +// # Type 3 - Inclusive Multicast Ethernet Tag Route +// +// Type 1 - Ethernet Auto-discovery Route (Per EVI) +// +// Type 1 - Ethernet Auto-discovery Route (Per ES) +type BgpV4EviVxlan interface { Validation - // msg marshals BgpExtendedCommunityTransitiveOpaqueType to protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueType + // msg marshals BgpV4EviVxlan to protobuf object *otg.BgpV4EviVxlan // and doesn't set defaults - msg() *otg.BgpExtendedCommunityTransitiveOpaqueType - // setMsg unmarshals BgpExtendedCommunityTransitiveOpaqueType from protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueType + msg() *otg.BgpV4EviVxlan + // setMsg unmarshals BgpV4EviVxlan from protobuf object *otg.BgpV4EviVxlan // and doesn't set defaults - setMsg(*otg.BgpExtendedCommunityTransitiveOpaqueType) BgpExtendedCommunityTransitiveOpaqueType + setMsg(*otg.BgpV4EviVxlan) BgpV4EviVxlan // provides marshal interface - Marshal() marshalBgpExtendedCommunityTransitiveOpaqueType + Marshal() marshalBgpV4EviVxlan // provides unmarshal interface - Unmarshal() unMarshalBgpExtendedCommunityTransitiveOpaqueType - // validate validates BgpExtendedCommunityTransitiveOpaqueType + Unmarshal() unMarshalBgpV4EviVxlan + // validate validates BgpV4EviVxlan validate() error // A stringer function String() string // Clones the object - Clone() (BgpExtendedCommunityTransitiveOpaqueType, error) + Clone() (BgpV4EviVxlan, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Choice returns BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum, set in BgpExtendedCommunityTransitiveOpaqueType - Choice() BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum - // setChoice assigns BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum provided by user to BgpExtendedCommunityTransitiveOpaqueType - setChoice(value BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum) BgpExtendedCommunityTransitiveOpaqueType - // HasChoice checks if Choice has been set in BgpExtendedCommunityTransitiveOpaqueType - HasChoice() bool - // ColorSubtype returns BgpExtendedCommunityTransitiveOpaqueTypeColor, set in BgpExtendedCommunityTransitiveOpaqueType. - // BgpExtendedCommunityTransitiveOpaqueTypeColor is the Color Community contains locally administrator defined 'color' value which is used in conjunction with Encapsulation attribute to decide whether a data packet can be transmitted on a certain tunnel or not. It is defined in RFC9012 and sent with sub-type as 0x0b. - ColorSubtype() BgpExtendedCommunityTransitiveOpaqueTypeColor - // SetColorSubtype assigns BgpExtendedCommunityTransitiveOpaqueTypeColor provided by user to BgpExtendedCommunityTransitiveOpaqueType. - // BgpExtendedCommunityTransitiveOpaqueTypeColor is the Color Community contains locally administrator defined 'color' value which is used in conjunction with Encapsulation attribute to decide whether a data packet can be transmitted on a certain tunnel or not. It is defined in RFC9012 and sent with sub-type as 0x0b. - SetColorSubtype(value BgpExtendedCommunityTransitiveOpaqueTypeColor) BgpExtendedCommunityTransitiveOpaqueType - // HasColorSubtype checks if ColorSubtype has been set in BgpExtendedCommunityTransitiveOpaqueType - HasColorSubtype() bool - // EncapsulationSubtype returns BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation, set in BgpExtendedCommunityTransitiveOpaqueType. - // BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation is this identifies the type of tunneling technology being signalled. It is defined in RFC9012 and sent with sub-type as 0x0c. - EncapsulationSubtype() BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation - // SetEncapsulationSubtype assigns BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation provided by user to BgpExtendedCommunityTransitiveOpaqueType. - // BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation is this identifies the type of tunneling technology being signalled. It is defined in RFC9012 and sent with sub-type as 0x0c. - SetEncapsulationSubtype(value BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) BgpExtendedCommunityTransitiveOpaqueType - // HasEncapsulationSubtype checks if EncapsulationSubtype has been set in BgpExtendedCommunityTransitiveOpaqueType - HasEncapsulationSubtype() bool - setNil() -} - -type BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum string - -// Enum of Choice on BgpExtendedCommunityTransitiveOpaqueType -var BgpExtendedCommunityTransitiveOpaqueTypeChoice = struct { - COLOR_SUBTYPE BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum - ENCAPSULATION_SUBTYPE BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum -}{ - COLOR_SUBTYPE: BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum("color_subtype"), - ENCAPSULATION_SUBTYPE: BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum("encapsulation_subtype"), -} - -func (obj *bgpExtendedCommunityTransitiveOpaqueType) Choice() BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum { - return BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum(obj.obj.Choice.Enum().String()) -} - -// description is TBD -// Choice returns a string -func (obj *bgpExtendedCommunityTransitiveOpaqueType) HasChoice() bool { - return obj.obj.Choice != nil -} - -func (obj *bgpExtendedCommunityTransitiveOpaqueType) setChoice(value BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum) BgpExtendedCommunityTransitiveOpaqueType { - intValue, ok := otg.BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum_value[string(value)] - if !ok { - obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( - "%s is not a valid choice on BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum", string(value))) - return obj - } - enumValue := otg.BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum(intValue) - obj.obj.Choice = &enumValue - obj.obj.EncapsulationSubtype = nil - obj.encapsulationSubtypeHolder = nil - obj.obj.ColorSubtype = nil - obj.colorSubtypeHolder = nil - - if value == BgpExtendedCommunityTransitiveOpaqueTypeChoice.COLOR_SUBTYPE { - obj.obj.ColorSubtype = NewBgpExtendedCommunityTransitiveOpaqueTypeColor().msg() - } - - if value == BgpExtendedCommunityTransitiveOpaqueTypeChoice.ENCAPSULATION_SUBTYPE { - obj.obj.EncapsulationSubtype = NewBgpExtendedCommunityTransitiveOpaqueTypeEncapsulation().msg() - } + // BroadcastDomains returns BgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIterIter, set in BgpV4EviVxlan + BroadcastDomains() BgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter + // ReplicationType returns BgpV4EviVxlanReplicationTypeEnum, set in BgpV4EviVxlan + ReplicationType() BgpV4EviVxlanReplicationTypeEnum + // SetReplicationType assigns BgpV4EviVxlanReplicationTypeEnum provided by user to BgpV4EviVxlan + SetReplicationType(value BgpV4EviVxlanReplicationTypeEnum) BgpV4EviVxlan + // HasReplicationType checks if ReplicationType has been set in BgpV4EviVxlan + HasReplicationType() bool + // PmsiLabel returns uint32, set in BgpV4EviVxlan. + PmsiLabel() uint32 + // SetPmsiLabel assigns uint32 provided by user to BgpV4EviVxlan + SetPmsiLabel(value uint32) BgpV4EviVxlan + // HasPmsiLabel checks if PmsiLabel has been set in BgpV4EviVxlan + HasPmsiLabel() bool + // AdLabel returns uint32, set in BgpV4EviVxlan. + AdLabel() uint32 + // SetAdLabel assigns uint32 provided by user to BgpV4EviVxlan + SetAdLabel(value uint32) BgpV4EviVxlan + // HasAdLabel checks if AdLabel has been set in BgpV4EviVxlan + HasAdLabel() bool + // RouteDistinguisher returns BgpRouteDistinguisher, set in BgpV4EviVxlan. + // BgpRouteDistinguisher is bGP Route Distinguisher. + RouteDistinguisher() BgpRouteDistinguisher + // SetRouteDistinguisher assigns BgpRouteDistinguisher provided by user to BgpV4EviVxlan. + // BgpRouteDistinguisher is bGP Route Distinguisher. + SetRouteDistinguisher(value BgpRouteDistinguisher) BgpV4EviVxlan + // HasRouteDistinguisher checks if RouteDistinguisher has been set in BgpV4EviVxlan + HasRouteDistinguisher() bool + // RouteTargetExport returns BgpV4EviVxlanBgpRouteTargetIterIter, set in BgpV4EviVxlan + RouteTargetExport() BgpV4EviVxlanBgpRouteTargetIter + // RouteTargetImport returns BgpV4EviVxlanBgpRouteTargetIterIter, set in BgpV4EviVxlan + RouteTargetImport() BgpV4EviVxlanBgpRouteTargetIter + // L3RouteTargetExport returns BgpV4EviVxlanBgpRouteTargetIterIter, set in BgpV4EviVxlan + L3RouteTargetExport() BgpV4EviVxlanBgpRouteTargetIter + // L3RouteTargetImport returns BgpV4EviVxlanBgpRouteTargetIterIter, set in BgpV4EviVxlan + L3RouteTargetImport() BgpV4EviVxlanBgpRouteTargetIter + // Advanced returns BgpRouteAdvanced, set in BgpV4EviVxlan. + // BgpRouteAdvanced is configuration for advanced BGP route range settings. + Advanced() BgpRouteAdvanced + // SetAdvanced assigns BgpRouteAdvanced provided by user to BgpV4EviVxlan. + // BgpRouteAdvanced is configuration for advanced BGP route range settings. + SetAdvanced(value BgpRouteAdvanced) BgpV4EviVxlan + // HasAdvanced checks if Advanced has been set in BgpV4EviVxlan + HasAdvanced() bool + // Communities returns BgpV4EviVxlanBgpCommunityIterIter, set in BgpV4EviVxlan + Communities() BgpV4EviVxlanBgpCommunityIter + // ExtCommunities returns BgpV4EviVxlanBgpExtCommunityIterIter, set in BgpV4EviVxlan + ExtCommunities() BgpV4EviVxlanBgpExtCommunityIter + // AsPath returns BgpAsPath, set in BgpV4EviVxlan. + // BgpAsPath is this attribute identifies the autonomous systems through which routing information carried in this UPDATE message has passed. This contains the configuration of how to include the Local AS in the AS path attribute of the MP REACH NLRI. It also contains optional configuration of additional AS Path Segments that can be included in the AS Path attribute. The AS Path consists of a Set or Sequence of Autonomous Systems (AS) numbers that a routing information passes through to reach the destination. + AsPath() BgpAsPath + // SetAsPath assigns BgpAsPath provided by user to BgpV4EviVxlan. + // BgpAsPath is this attribute identifies the autonomous systems through which routing information carried in this UPDATE message has passed. This contains the configuration of how to include the Local AS in the AS path attribute of the MP REACH NLRI. It also contains optional configuration of additional AS Path Segments that can be included in the AS Path attribute. The AS Path consists of a Set or Sequence of Autonomous Systems (AS) numbers that a routing information passes through to reach the destination. + SetAsPath(value BgpAsPath) BgpV4EviVxlan + // HasAsPath checks if AsPath has been set in BgpV4EviVxlan + HasAsPath() bool + setNil() +} + +// This contains the list of Broadcast Domains to be configured per EVI. +// BroadcastDomains returns a []BgpV4EviVxlanBroadcastDomain +func (obj *bgpV4EviVxlan) BroadcastDomains() BgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter { + if len(obj.obj.BroadcastDomains) == 0 { + obj.obj.BroadcastDomains = []*otg.BgpV4EviVxlanBroadcastDomain{} + } + if obj.broadcastDomainsHolder == nil { + obj.broadcastDomainsHolder = newBgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter(&obj.obj.BroadcastDomains).setMsg(obj) + } + return obj.broadcastDomainsHolder +} + +type bgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter struct { + obj *bgpV4EviVxlan + bgpV4EviVxlanBroadcastDomainSlice []BgpV4EviVxlanBroadcastDomain + fieldPtr *[]*otg.BgpV4EviVxlanBroadcastDomain +} + +func newBgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter(ptr *[]*otg.BgpV4EviVxlanBroadcastDomain) BgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter { + return &bgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter{fieldPtr: ptr} +} + +type BgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter interface { + setMsg(*bgpV4EviVxlan) BgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter + Items() []BgpV4EviVxlanBroadcastDomain + Add() BgpV4EviVxlanBroadcastDomain + Append(items ...BgpV4EviVxlanBroadcastDomain) BgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter + Set(index int, newObj BgpV4EviVxlanBroadcastDomain) BgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter + Clear() BgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter + clearHolderSlice() BgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter + appendHolderSlice(item BgpV4EviVxlanBroadcastDomain) BgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter +} + +func (obj *bgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter) setMsg(msg *bgpV4EviVxlan) BgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&bgpV4EviVxlanBroadcastDomain{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *bgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter) Items() []BgpV4EviVxlanBroadcastDomain { + return obj.bgpV4EviVxlanBroadcastDomainSlice +} + +func (obj *bgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter) Add() BgpV4EviVxlanBroadcastDomain { + newObj := &otg.BgpV4EviVxlanBroadcastDomain{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &bgpV4EviVxlanBroadcastDomain{obj: newObj} + newLibObj.setDefault() + obj.bgpV4EviVxlanBroadcastDomainSlice = append(obj.bgpV4EviVxlanBroadcastDomainSlice, newLibObj) + return newLibObj +} + +func (obj *bgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter) Append(items ...BgpV4EviVxlanBroadcastDomain) BgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter { + for _, item := range items { + newObj := item.msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.bgpV4EviVxlanBroadcastDomainSlice = append(obj.bgpV4EviVxlanBroadcastDomainSlice, item) + } + return obj +} + +func (obj *bgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter) Set(index int, newObj BgpV4EviVxlanBroadcastDomain) BgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter { + (*obj.fieldPtr)[index] = newObj.msg() + obj.bgpV4EviVxlanBroadcastDomainSlice[index] = newObj + return obj +} +func (obj *bgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter) Clear() BgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.BgpV4EviVxlanBroadcastDomain{} + obj.bgpV4EviVxlanBroadcastDomainSlice = []BgpV4EviVxlanBroadcastDomain{} + } + return obj +} +func (obj *bgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter) clearHolderSlice() BgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter { + if len(obj.bgpV4EviVxlanBroadcastDomainSlice) > 0 { + obj.bgpV4EviVxlanBroadcastDomainSlice = []BgpV4EviVxlanBroadcastDomain{} + } + return obj +} +func (obj *bgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter) appendHolderSlice(item BgpV4EviVxlanBroadcastDomain) BgpV4EviVxlanBgpV4EviVxlanBroadcastDomainIter { + obj.bgpV4EviVxlanBroadcastDomainSlice = append(obj.bgpV4EviVxlanBroadcastDomainSlice, item) + return obj +} + +type BgpV4EviVxlanReplicationTypeEnum string + +// Enum of ReplicationType on BgpV4EviVxlan +var BgpV4EviVxlanReplicationType = struct { + INGRESS_REPLICATION BgpV4EviVxlanReplicationTypeEnum +}{ + INGRESS_REPLICATION: BgpV4EviVxlanReplicationTypeEnum("ingress_replication"), +} + +func (obj *bgpV4EviVxlan) ReplicationType() BgpV4EviVxlanReplicationTypeEnum { + return BgpV4EviVxlanReplicationTypeEnum(obj.obj.ReplicationType.Enum().String()) +} + +// This model only supports Ingress Replication +// ReplicationType returns a string +func (obj *bgpV4EviVxlan) HasReplicationType() bool { + return obj.obj.ReplicationType != nil +} + +func (obj *bgpV4EviVxlan) SetReplicationType(value BgpV4EviVxlanReplicationTypeEnum) BgpV4EviVxlan { + intValue, ok := otg.BgpV4EviVxlan_ReplicationType_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on BgpV4EviVxlanReplicationTypeEnum", string(value))) + return obj + } + enumValue := otg.BgpV4EviVxlan_ReplicationType_Enum(intValue) + obj.obj.ReplicationType = &enumValue + + return obj +} + +// Downstream assigned VNI to be carried as Part of P-Multicast Service Interface Tunnel attribute (PMSI Tunnel Attribute) in Type 3 Inclusive Multicast Ethernet Tag Route. +// PmsiLabel returns a uint32 +func (obj *bgpV4EviVxlan) PmsiLabel() uint32 { + + return *obj.obj.PmsiLabel + +} + +// Downstream assigned VNI to be carried as Part of P-Multicast Service Interface Tunnel attribute (PMSI Tunnel Attribute) in Type 3 Inclusive Multicast Ethernet Tag Route. +// PmsiLabel returns a uint32 +func (obj *bgpV4EviVxlan) HasPmsiLabel() bool { + return obj.obj.PmsiLabel != nil +} + +// Downstream assigned VNI to be carried as Part of P-Multicast Service Interface Tunnel attribute (PMSI Tunnel Attribute) in Type 3 Inclusive Multicast Ethernet Tag Route. +// SetPmsiLabel sets the uint32 value in the BgpV4EviVxlan object +func (obj *bgpV4EviVxlan) SetPmsiLabel(value uint32) BgpV4EviVxlan { + + obj.obj.PmsiLabel = &value + return obj +} + +// The Auto-discovery Route label (AD label) value, which gets advertised in the Ethernet Auto-discovery Route per +// AdLabel returns a uint32 +func (obj *bgpV4EviVxlan) AdLabel() uint32 { + + return *obj.obj.AdLabel + +} + +// The Auto-discovery Route label (AD label) value, which gets advertised in the Ethernet Auto-discovery Route per +// AdLabel returns a uint32 +func (obj *bgpV4EviVxlan) HasAdLabel() bool { + return obj.obj.AdLabel != nil +} + +// The Auto-discovery Route label (AD label) value, which gets advertised in the Ethernet Auto-discovery Route per +// SetAdLabel sets the uint32 value in the BgpV4EviVxlan object +func (obj *bgpV4EviVxlan) SetAdLabel(value uint32) BgpV4EviVxlan { + + obj.obj.AdLabel = &value + return obj +} + +// Colon separated Extended Community value of 6 Bytes - "AS number: Value" identifying an EVI. Example - for the as_2octet "60005:100". +// RouteDistinguisher returns a BgpRouteDistinguisher +func (obj *bgpV4EviVxlan) RouteDistinguisher() BgpRouteDistinguisher { + if obj.obj.RouteDistinguisher == nil { + obj.obj.RouteDistinguisher = NewBgpRouteDistinguisher().msg() + } + if obj.routeDistinguisherHolder == nil { + obj.routeDistinguisherHolder = &bgpRouteDistinguisher{obj: obj.obj.RouteDistinguisher} + } + return obj.routeDistinguisherHolder +} + +// Colon separated Extended Community value of 6 Bytes - "AS number: Value" identifying an EVI. Example - for the as_2octet "60005:100". +// RouteDistinguisher returns a BgpRouteDistinguisher +func (obj *bgpV4EviVxlan) HasRouteDistinguisher() bool { + return obj.obj.RouteDistinguisher != nil +} + +// Colon separated Extended Community value of 6 Bytes - "AS number: Value" identifying an EVI. Example - for the as_2octet "60005:100". +// SetRouteDistinguisher sets the BgpRouteDistinguisher value in the BgpV4EviVxlan object +func (obj *bgpV4EviVxlan) SetRouteDistinguisher(value BgpRouteDistinguisher) BgpV4EviVxlan { + + obj.routeDistinguisherHolder = nil + obj.obj.RouteDistinguisher = value.msg() + + return obj +} + +// List of Layer 2 Virtual Network Identifier (L2VNI) export targets associated with this EVI. +// RouteTargetExport returns a []BgpRouteTarget +func (obj *bgpV4EviVxlan) RouteTargetExport() BgpV4EviVxlanBgpRouteTargetIter { + if len(obj.obj.RouteTargetExport) == 0 { + obj.obj.RouteTargetExport = []*otg.BgpRouteTarget{} + } + if obj.routeTargetExportHolder == nil { + obj.routeTargetExportHolder = newBgpV4EviVxlanBgpRouteTargetIter(&obj.obj.RouteTargetExport).setMsg(obj) + } + return obj.routeTargetExportHolder +} + +type bgpV4EviVxlanBgpRouteTargetIter struct { + obj *bgpV4EviVxlan + bgpRouteTargetSlice []BgpRouteTarget + fieldPtr *[]*otg.BgpRouteTarget +} + +func newBgpV4EviVxlanBgpRouteTargetIter(ptr *[]*otg.BgpRouteTarget) BgpV4EviVxlanBgpRouteTargetIter { + return &bgpV4EviVxlanBgpRouteTargetIter{fieldPtr: ptr} +} + +type BgpV4EviVxlanBgpRouteTargetIter interface { + setMsg(*bgpV4EviVxlan) BgpV4EviVxlanBgpRouteTargetIter + Items() []BgpRouteTarget + Add() BgpRouteTarget + Append(items ...BgpRouteTarget) BgpV4EviVxlanBgpRouteTargetIter + Set(index int, newObj BgpRouteTarget) BgpV4EviVxlanBgpRouteTargetIter + Clear() BgpV4EviVxlanBgpRouteTargetIter + clearHolderSlice() BgpV4EviVxlanBgpRouteTargetIter + appendHolderSlice(item BgpRouteTarget) BgpV4EviVxlanBgpRouteTargetIter +} + +func (obj *bgpV4EviVxlanBgpRouteTargetIter) setMsg(msg *bgpV4EviVxlan) BgpV4EviVxlanBgpRouteTargetIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&bgpRouteTarget{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *bgpV4EviVxlanBgpRouteTargetIter) Items() []BgpRouteTarget { + return obj.bgpRouteTargetSlice +} + +func (obj *bgpV4EviVxlanBgpRouteTargetIter) Add() BgpRouteTarget { + newObj := &otg.BgpRouteTarget{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &bgpRouteTarget{obj: newObj} + newLibObj.setDefault() + obj.bgpRouteTargetSlice = append(obj.bgpRouteTargetSlice, newLibObj) + return newLibObj +} + +func (obj *bgpV4EviVxlanBgpRouteTargetIter) Append(items ...BgpRouteTarget) BgpV4EviVxlanBgpRouteTargetIter { + for _, item := range items { + newObj := item.msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.bgpRouteTargetSlice = append(obj.bgpRouteTargetSlice, item) + } + return obj +} + +func (obj *bgpV4EviVxlanBgpRouteTargetIter) Set(index int, newObj BgpRouteTarget) BgpV4EviVxlanBgpRouteTargetIter { + (*obj.fieldPtr)[index] = newObj.msg() + obj.bgpRouteTargetSlice[index] = newObj + return obj +} +func (obj *bgpV4EviVxlanBgpRouteTargetIter) Clear() BgpV4EviVxlanBgpRouteTargetIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.BgpRouteTarget{} + obj.bgpRouteTargetSlice = []BgpRouteTarget{} + } + return obj +} +func (obj *bgpV4EviVxlanBgpRouteTargetIter) clearHolderSlice() BgpV4EviVxlanBgpRouteTargetIter { + if len(obj.bgpRouteTargetSlice) > 0 { + obj.bgpRouteTargetSlice = []BgpRouteTarget{} + } + return obj +} +func (obj *bgpV4EviVxlanBgpRouteTargetIter) appendHolderSlice(item BgpRouteTarget) BgpV4EviVxlanBgpRouteTargetIter { + obj.bgpRouteTargetSlice = append(obj.bgpRouteTargetSlice, item) + return obj +} + +// List of L2VNI import targets associated with this EVI. +// RouteTargetImport returns a []BgpRouteTarget +func (obj *bgpV4EviVxlan) RouteTargetImport() BgpV4EviVxlanBgpRouteTargetIter { + if len(obj.obj.RouteTargetImport) == 0 { + obj.obj.RouteTargetImport = []*otg.BgpRouteTarget{} + } + if obj.routeTargetImportHolder == nil { + obj.routeTargetImportHolder = newBgpV4EviVxlanBgpRouteTargetIter(&obj.obj.RouteTargetImport).setMsg(obj) + } + return obj.routeTargetImportHolder +} + +// List of Layer 3 Virtual Network Identifier (L3VNI) Export Route Targets. +// L3RouteTargetExport returns a []BgpRouteTarget +func (obj *bgpV4EviVxlan) L3RouteTargetExport() BgpV4EviVxlanBgpRouteTargetIter { + if len(obj.obj.L3RouteTargetExport) == 0 { + obj.obj.L3RouteTargetExport = []*otg.BgpRouteTarget{} + } + if obj.l3RouteTargetExportHolder == nil { + obj.l3RouteTargetExportHolder = newBgpV4EviVxlanBgpRouteTargetIter(&obj.obj.L3RouteTargetExport).setMsg(obj) + } + return obj.l3RouteTargetExportHolder +} + +// List of L3VNI Import Route Targets. +// L3RouteTargetImport returns a []BgpRouteTarget +func (obj *bgpV4EviVxlan) L3RouteTargetImport() BgpV4EviVxlanBgpRouteTargetIter { + if len(obj.obj.L3RouteTargetImport) == 0 { + obj.obj.L3RouteTargetImport = []*otg.BgpRouteTarget{} + } + if obj.l3RouteTargetImportHolder == nil { + obj.l3RouteTargetImportHolder = newBgpV4EviVxlanBgpRouteTargetIter(&obj.obj.L3RouteTargetImport).setMsg(obj) + } + return obj.l3RouteTargetImportHolder +} + +// description is TBD +// Advanced returns a BgpRouteAdvanced +func (obj *bgpV4EviVxlan) Advanced() BgpRouteAdvanced { + if obj.obj.Advanced == nil { + obj.obj.Advanced = NewBgpRouteAdvanced().msg() + } + if obj.advancedHolder == nil { + obj.advancedHolder = &bgpRouteAdvanced{obj: obj.obj.Advanced} + } + return obj.advancedHolder +} + +// description is TBD +// Advanced returns a BgpRouteAdvanced +func (obj *bgpV4EviVxlan) HasAdvanced() bool { + return obj.obj.Advanced != nil +} + +// description is TBD +// SetAdvanced sets the BgpRouteAdvanced value in the BgpV4EviVxlan object +func (obj *bgpV4EviVxlan) SetAdvanced(value BgpRouteAdvanced) BgpV4EviVxlan { + + obj.advancedHolder = nil + obj.obj.Advanced = value.msg() + + return obj +} + +// Optional community settings. +// Communities returns a []BgpCommunity +func (obj *bgpV4EviVxlan) Communities() BgpV4EviVxlanBgpCommunityIter { + if len(obj.obj.Communities) == 0 { + obj.obj.Communities = []*otg.BgpCommunity{} + } + if obj.communitiesHolder == nil { + obj.communitiesHolder = newBgpV4EviVxlanBgpCommunityIter(&obj.obj.Communities).setMsg(obj) + } + return obj.communitiesHolder +} + +type bgpV4EviVxlanBgpCommunityIter struct { + obj *bgpV4EviVxlan + bgpCommunitySlice []BgpCommunity + fieldPtr *[]*otg.BgpCommunity +} + +func newBgpV4EviVxlanBgpCommunityIter(ptr *[]*otg.BgpCommunity) BgpV4EviVxlanBgpCommunityIter { + return &bgpV4EviVxlanBgpCommunityIter{fieldPtr: ptr} +} + +type BgpV4EviVxlanBgpCommunityIter interface { + setMsg(*bgpV4EviVxlan) BgpV4EviVxlanBgpCommunityIter + Items() []BgpCommunity + Add() BgpCommunity + Append(items ...BgpCommunity) BgpV4EviVxlanBgpCommunityIter + Set(index int, newObj BgpCommunity) BgpV4EviVxlanBgpCommunityIter + Clear() BgpV4EviVxlanBgpCommunityIter + clearHolderSlice() BgpV4EviVxlanBgpCommunityIter + appendHolderSlice(item BgpCommunity) BgpV4EviVxlanBgpCommunityIter +} + +func (obj *bgpV4EviVxlanBgpCommunityIter) setMsg(msg *bgpV4EviVxlan) BgpV4EviVxlanBgpCommunityIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&bgpCommunity{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *bgpV4EviVxlanBgpCommunityIter) Items() []BgpCommunity { + return obj.bgpCommunitySlice +} + +func (obj *bgpV4EviVxlanBgpCommunityIter) Add() BgpCommunity { + newObj := &otg.BgpCommunity{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &bgpCommunity{obj: newObj} + newLibObj.setDefault() + obj.bgpCommunitySlice = append(obj.bgpCommunitySlice, newLibObj) + return newLibObj +} + +func (obj *bgpV4EviVxlanBgpCommunityIter) Append(items ...BgpCommunity) BgpV4EviVxlanBgpCommunityIter { + for _, item := range items { + newObj := item.msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.bgpCommunitySlice = append(obj.bgpCommunitySlice, item) + } + return obj +} + +func (obj *bgpV4EviVxlanBgpCommunityIter) Set(index int, newObj BgpCommunity) BgpV4EviVxlanBgpCommunityIter { + (*obj.fieldPtr)[index] = newObj.msg() + obj.bgpCommunitySlice[index] = newObj + return obj +} +func (obj *bgpV4EviVxlanBgpCommunityIter) Clear() BgpV4EviVxlanBgpCommunityIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.BgpCommunity{} + obj.bgpCommunitySlice = []BgpCommunity{} + } + return obj +} +func (obj *bgpV4EviVxlanBgpCommunityIter) clearHolderSlice() BgpV4EviVxlanBgpCommunityIter { + if len(obj.bgpCommunitySlice) > 0 { + obj.bgpCommunitySlice = []BgpCommunity{} + } + return obj +} +func (obj *bgpV4EviVxlanBgpCommunityIter) appendHolderSlice(item BgpCommunity) BgpV4EviVxlanBgpCommunityIter { + obj.bgpCommunitySlice = append(obj.bgpCommunitySlice, item) + return obj +} + +// Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two byte local administrator id. When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for administrator_ipv4_address is a four byte IPv4 address followed by a two byte local administrator id. When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from IANA's "ETHER TYPES" registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format. When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates occur for the same MAC address. +// ExtCommunities returns a []BgpExtCommunity +func (obj *bgpV4EviVxlan) ExtCommunities() BgpV4EviVxlanBgpExtCommunityIter { + if len(obj.obj.ExtCommunities) == 0 { + obj.obj.ExtCommunities = []*otg.BgpExtCommunity{} + } + if obj.extCommunitiesHolder == nil { + obj.extCommunitiesHolder = newBgpV4EviVxlanBgpExtCommunityIter(&obj.obj.ExtCommunities).setMsg(obj) + } + return obj.extCommunitiesHolder +} + +type bgpV4EviVxlanBgpExtCommunityIter struct { + obj *bgpV4EviVxlan + bgpExtCommunitySlice []BgpExtCommunity + fieldPtr *[]*otg.BgpExtCommunity +} + +func newBgpV4EviVxlanBgpExtCommunityIter(ptr *[]*otg.BgpExtCommunity) BgpV4EviVxlanBgpExtCommunityIter { + return &bgpV4EviVxlanBgpExtCommunityIter{fieldPtr: ptr} +} + +type BgpV4EviVxlanBgpExtCommunityIter interface { + setMsg(*bgpV4EviVxlan) BgpV4EviVxlanBgpExtCommunityIter + Items() []BgpExtCommunity + Add() BgpExtCommunity + Append(items ...BgpExtCommunity) BgpV4EviVxlanBgpExtCommunityIter + Set(index int, newObj BgpExtCommunity) BgpV4EviVxlanBgpExtCommunityIter + Clear() BgpV4EviVxlanBgpExtCommunityIter + clearHolderSlice() BgpV4EviVxlanBgpExtCommunityIter + appendHolderSlice(item BgpExtCommunity) BgpV4EviVxlanBgpExtCommunityIter +} + +func (obj *bgpV4EviVxlanBgpExtCommunityIter) setMsg(msg *bgpV4EviVxlan) BgpV4EviVxlanBgpExtCommunityIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&bgpExtCommunity{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *bgpV4EviVxlanBgpExtCommunityIter) Items() []BgpExtCommunity { + return obj.bgpExtCommunitySlice +} + +func (obj *bgpV4EviVxlanBgpExtCommunityIter) Add() BgpExtCommunity { + newObj := &otg.BgpExtCommunity{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &bgpExtCommunity{obj: newObj} + newLibObj.setDefault() + obj.bgpExtCommunitySlice = append(obj.bgpExtCommunitySlice, newLibObj) + return newLibObj +} + +func (obj *bgpV4EviVxlanBgpExtCommunityIter) Append(items ...BgpExtCommunity) BgpV4EviVxlanBgpExtCommunityIter { + for _, item := range items { + newObj := item.msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.bgpExtCommunitySlice = append(obj.bgpExtCommunitySlice, item) + } + return obj +} + +func (obj *bgpV4EviVxlanBgpExtCommunityIter) Set(index int, newObj BgpExtCommunity) BgpV4EviVxlanBgpExtCommunityIter { + (*obj.fieldPtr)[index] = newObj.msg() + obj.bgpExtCommunitySlice[index] = newObj + return obj +} +func (obj *bgpV4EviVxlanBgpExtCommunityIter) Clear() BgpV4EviVxlanBgpExtCommunityIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.BgpExtCommunity{} + obj.bgpExtCommunitySlice = []BgpExtCommunity{} + } + return obj +} +func (obj *bgpV4EviVxlanBgpExtCommunityIter) clearHolderSlice() BgpV4EviVxlanBgpExtCommunityIter { + if len(obj.bgpExtCommunitySlice) > 0 { + obj.bgpExtCommunitySlice = []BgpExtCommunity{} + } + return obj +} +func (obj *bgpV4EviVxlanBgpExtCommunityIter) appendHolderSlice(item BgpExtCommunity) BgpV4EviVxlanBgpExtCommunityIter { + obj.bgpExtCommunitySlice = append(obj.bgpExtCommunitySlice, item) + return obj +} + +// Optional AS PATH settings. +// AsPath returns a BgpAsPath +func (obj *bgpV4EviVxlan) AsPath() BgpAsPath { + if obj.obj.AsPath == nil { + obj.obj.AsPath = NewBgpAsPath().msg() + } + if obj.asPathHolder == nil { + obj.asPathHolder = &bgpAsPath{obj: obj.obj.AsPath} + } + return obj.asPathHolder +} + +// Optional AS PATH settings. +// AsPath returns a BgpAsPath +func (obj *bgpV4EviVxlan) HasAsPath() bool { + return obj.obj.AsPath != nil +} + +// Optional AS PATH settings. +// SetAsPath sets the BgpAsPath value in the BgpV4EviVxlan object +func (obj *bgpV4EviVxlan) SetAsPath(value BgpAsPath) BgpV4EviVxlan { + + obj.asPathHolder = nil + obj.obj.AsPath = value.msg() + + return obj +} + +func (obj *bgpV4EviVxlan) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if len(obj.obj.BroadcastDomains) != 0 { + + if set_default { + obj.BroadcastDomains().clearHolderSlice() + for _, item := range obj.obj.BroadcastDomains { + obj.BroadcastDomains().appendHolderSlice(&bgpV4EviVxlanBroadcastDomain{obj: item}) + } + } + for _, item := range obj.BroadcastDomains().Items() { + item.validateObj(vObj, set_default) + } + + } + + if obj.obj.PmsiLabel != nil { + + if *obj.obj.PmsiLabel > 16777215 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= BgpV4EviVxlan.PmsiLabel <= 16777215 but Got %d", *obj.obj.PmsiLabel)) + } + + } + + if obj.obj.AdLabel != nil { + + if *obj.obj.AdLabel > 16777215 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= BgpV4EviVxlan.AdLabel <= 16777215 but Got %d", *obj.obj.AdLabel)) + } + + } + + if obj.obj.RouteDistinguisher != nil { + + obj.RouteDistinguisher().validateObj(vObj, set_default) + } + + if len(obj.obj.RouteTargetExport) != 0 { + + if set_default { + obj.RouteTargetExport().clearHolderSlice() + for _, item := range obj.obj.RouteTargetExport { + obj.RouteTargetExport().appendHolderSlice(&bgpRouteTarget{obj: item}) + } + } + for _, item := range obj.RouteTargetExport().Items() { + item.validateObj(vObj, set_default) + } + + } + + if len(obj.obj.RouteTargetImport) != 0 { + + if set_default { + obj.RouteTargetImport().clearHolderSlice() + for _, item := range obj.obj.RouteTargetImport { + obj.RouteTargetImport().appendHolderSlice(&bgpRouteTarget{obj: item}) + } + } + for _, item := range obj.RouteTargetImport().Items() { + item.validateObj(vObj, set_default) + } + + } + + if len(obj.obj.L3RouteTargetExport) != 0 { + + if set_default { + obj.L3RouteTargetExport().clearHolderSlice() + for _, item := range obj.obj.L3RouteTargetExport { + obj.L3RouteTargetExport().appendHolderSlice(&bgpRouteTarget{obj: item}) + } + } + for _, item := range obj.L3RouteTargetExport().Items() { + item.validateObj(vObj, set_default) + } + + } + + if len(obj.obj.L3RouteTargetImport) != 0 { + + if set_default { + obj.L3RouteTargetImport().clearHolderSlice() + for _, item := range obj.obj.L3RouteTargetImport { + obj.L3RouteTargetImport().appendHolderSlice(&bgpRouteTarget{obj: item}) + } + } + for _, item := range obj.L3RouteTargetImport().Items() { + item.validateObj(vObj, set_default) + } + + } + + if obj.obj.Advanced != nil { + + obj.Advanced().validateObj(vObj, set_default) + } + + if len(obj.obj.Communities) != 0 { + + if set_default { + obj.Communities().clearHolderSlice() + for _, item := range obj.obj.Communities { + obj.Communities().appendHolderSlice(&bgpCommunity{obj: item}) + } + } + for _, item := range obj.Communities().Items() { + item.validateObj(vObj, set_default) + } + + } + + if len(obj.obj.ExtCommunities) != 0 { + + if set_default { + obj.ExtCommunities().clearHolderSlice() + for _, item := range obj.obj.ExtCommunities { + obj.ExtCommunities().appendHolderSlice(&bgpExtCommunity{obj: item}) + } + } + for _, item := range obj.ExtCommunities().Items() { + item.validateObj(vObj, set_default) + } + + } + + if obj.obj.AsPath != nil { + + obj.AsPath().validateObj(vObj, set_default) + } + +} + +func (obj *bgpV4EviVxlan) setDefault() { + if obj.obj.ReplicationType == nil { + obj.SetReplicationType(BgpV4EviVxlanReplicationType.INGRESS_REPLICATION) + + } + if obj.obj.PmsiLabel == nil { + obj.SetPmsiLabel(16) + } + if obj.obj.AdLabel == nil { + obj.SetAdLabel(0) + } + +} + +// ***** BgpAsPathSegment ***** +type bgpAsPathSegment struct { + validation + obj *otg.BgpAsPathSegment + marshaller marshalBgpAsPathSegment + unMarshaller unMarshalBgpAsPathSegment +} + +func NewBgpAsPathSegment() BgpAsPathSegment { + obj := bgpAsPathSegment{obj: &otg.BgpAsPathSegment{}} + obj.setDefault() + return &obj +} + +func (obj *bgpAsPathSegment) msg() *otg.BgpAsPathSegment { + return obj.obj +} + +func (obj *bgpAsPathSegment) setMsg(msg *otg.BgpAsPathSegment) BgpAsPathSegment { + + proto.Merge(obj.obj, msg) + return obj +} + +type marshalbgpAsPathSegment struct { + obj *bgpAsPathSegment +} + +type marshalBgpAsPathSegment interface { + // ToProto marshals BgpAsPathSegment to protobuf object *otg.BgpAsPathSegment + ToProto() (*otg.BgpAsPathSegment, error) + // ToPbText marshals BgpAsPathSegment to protobuf text + ToPbText() (string, error) + // ToYaml marshals BgpAsPathSegment to YAML text + ToYaml() (string, error) + // ToJson marshals BgpAsPathSegment to JSON text + ToJson() (string, error) +} + +type unMarshalbgpAsPathSegment struct { + obj *bgpAsPathSegment +} + +type unMarshalBgpAsPathSegment interface { + // FromProto unmarshals BgpAsPathSegment from protobuf object *otg.BgpAsPathSegment + FromProto(msg *otg.BgpAsPathSegment) (BgpAsPathSegment, error) + // FromPbText unmarshals BgpAsPathSegment from protobuf text + FromPbText(value string) error + // FromYaml unmarshals BgpAsPathSegment from YAML text + FromYaml(value string) error + // FromJson unmarshals BgpAsPathSegment from JSON text + FromJson(value string) error +} + +func (obj *bgpAsPathSegment) Marshal() marshalBgpAsPathSegment { + if obj.marshaller == nil { + obj.marshaller = &marshalbgpAsPathSegment{obj: obj} + } + return obj.marshaller +} + +func (obj *bgpAsPathSegment) Unmarshal() unMarshalBgpAsPathSegment { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshalbgpAsPathSegment{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshalbgpAsPathSegment) ToProto() (*otg.BgpAsPathSegment, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshalbgpAsPathSegment) FromProto(msg *otg.BgpAsPathSegment) (BgpAsPathSegment, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshalbgpAsPathSegment) ToPbText() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (m *unMarshalbgpAsPathSegment) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), m.obj.msg()) + if retObj != nil { + return retObj + } + + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (m *marshalbgpAsPathSegment) ToYaml() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalbgpAsPathSegment) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (m *marshalbgpAsPathSegment) ToJson() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalbgpAsPathSegment) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := m.obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *bgpAsPathSegment) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *bgpAsPathSegment) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *bgpAsPathSegment) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *bgpAsPathSegment) Clone() (BgpAsPathSegment, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewBgpAsPathSegment() + data, err := proto.Marshal(obj.msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// BgpAsPathSegment is configuration for a single BGP AS path segment +type BgpAsPathSegment interface { + Validation + // msg marshals BgpAsPathSegment to protobuf object *otg.BgpAsPathSegment + // and doesn't set defaults + msg() *otg.BgpAsPathSegment + // setMsg unmarshals BgpAsPathSegment from protobuf object *otg.BgpAsPathSegment + // and doesn't set defaults + setMsg(*otg.BgpAsPathSegment) BgpAsPathSegment + // provides marshal interface + Marshal() marshalBgpAsPathSegment + // provides unmarshal interface + Unmarshal() unMarshalBgpAsPathSegment + // validate validates BgpAsPathSegment + validate() error + // A stringer function + String() string + // Clones the object + Clone() (BgpAsPathSegment, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Type returns BgpAsPathSegmentTypeEnum, set in BgpAsPathSegment + Type() BgpAsPathSegmentTypeEnum + // SetType assigns BgpAsPathSegmentTypeEnum provided by user to BgpAsPathSegment + SetType(value BgpAsPathSegmentTypeEnum) BgpAsPathSegment + // HasType checks if Type has been set in BgpAsPathSegment + HasType() bool + // AsNumbers returns []uint32, set in BgpAsPathSegment. + AsNumbers() []uint32 + // SetAsNumbers assigns []uint32 provided by user to BgpAsPathSegment + SetAsNumbers(value []uint32) BgpAsPathSegment +} + +type BgpAsPathSegmentTypeEnum string + +// Enum of Type on BgpAsPathSegment +var BgpAsPathSegmentType = struct { + AS_SEQ BgpAsPathSegmentTypeEnum + AS_SET BgpAsPathSegmentTypeEnum + AS_CONFED_SEQ BgpAsPathSegmentTypeEnum + AS_CONFED_SET BgpAsPathSegmentTypeEnum +}{ + AS_SEQ: BgpAsPathSegmentTypeEnum("as_seq"), + AS_SET: BgpAsPathSegmentTypeEnum("as_set"), + AS_CONFED_SEQ: BgpAsPathSegmentTypeEnum("as_confed_seq"), + AS_CONFED_SET: BgpAsPathSegmentTypeEnum("as_confed_set"), +} + +func (obj *bgpAsPathSegment) Type() BgpAsPathSegmentTypeEnum { + return BgpAsPathSegmentTypeEnum(obj.obj.Type.Enum().String()) +} + +// AS sequence is the most common type of AS_PATH, it contains the list of ASNs starting with the most recent ASN being added read from left to right. +// The other three AS_PATH types are used for Confederations - AS_SET is the type of AS_PATH attribute that summarizes routes using using the aggregate-address command, allowing AS_PATHs to be summarized in the update as well. - AS_CONFED_SEQ gives the list of ASNs in the path starting with the most recent ASN to be added reading left to right - AS_CONFED_SET will allow summarization of multiple AS PATHs to be sent in BGP Updates. +// Type returns a string +func (obj *bgpAsPathSegment) HasType() bool { + return obj.obj.Type != nil +} + +func (obj *bgpAsPathSegment) SetType(value BgpAsPathSegmentTypeEnum) BgpAsPathSegment { + intValue, ok := otg.BgpAsPathSegment_Type_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on BgpAsPathSegmentTypeEnum", string(value))) + return obj + } + enumValue := otg.BgpAsPathSegment_Type_Enum(intValue) + obj.obj.Type = &enumValue + + return obj +} + +// The AS numbers in this AS path segment. +// AsNumbers returns a []uint32 +func (obj *bgpAsPathSegment) AsNumbers() []uint32 { + if obj.obj.AsNumbers == nil { + obj.obj.AsNumbers = make([]uint32, 0) + } + return obj.obj.AsNumbers +} + +// The AS numbers in this AS path segment. +// SetAsNumbers sets the []uint32 value in the BgpAsPathSegment object +func (obj *bgpAsPathSegment) SetAsNumbers(value []uint32) BgpAsPathSegment { + + if obj.obj.AsNumbers == nil { + obj.obj.AsNumbers = make([]uint32, 0) + } + obj.obj.AsNumbers = value + + return obj +} + +func (obj *bgpAsPathSegment) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + +} + +func (obj *bgpAsPathSegment) setDefault() { + if obj.obj.Type == nil { + obj.SetType(BgpAsPathSegmentType.AS_SEQ) + + } + +} + +// ***** BgpExtendedCommunityTransitive2OctetAsType ***** +type bgpExtendedCommunityTransitive2OctetAsType struct { + validation + obj *otg.BgpExtendedCommunityTransitive2OctetAsType + marshaller marshalBgpExtendedCommunityTransitive2OctetAsType + unMarshaller unMarshalBgpExtendedCommunityTransitive2OctetAsType + routeTargetSubtypeHolder BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + routeOriginSubtypeHolder BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin +} + +func NewBgpExtendedCommunityTransitive2OctetAsType() BgpExtendedCommunityTransitive2OctetAsType { + obj := bgpExtendedCommunityTransitive2OctetAsType{obj: &otg.BgpExtendedCommunityTransitive2OctetAsType{}} + obj.setDefault() + return &obj +} + +func (obj *bgpExtendedCommunityTransitive2OctetAsType) msg() *otg.BgpExtendedCommunityTransitive2OctetAsType { + return obj.obj +} + +func (obj *bgpExtendedCommunityTransitive2OctetAsType) setMsg(msg *otg.BgpExtendedCommunityTransitive2OctetAsType) BgpExtendedCommunityTransitive2OctetAsType { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +type marshalbgpExtendedCommunityTransitive2OctetAsType struct { + obj *bgpExtendedCommunityTransitive2OctetAsType +} + +type marshalBgpExtendedCommunityTransitive2OctetAsType interface { + // ToProto marshals BgpExtendedCommunityTransitive2OctetAsType to protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsType + ToProto() (*otg.BgpExtendedCommunityTransitive2OctetAsType, error) + // ToPbText marshals BgpExtendedCommunityTransitive2OctetAsType to protobuf text + ToPbText() (string, error) + // ToYaml marshals BgpExtendedCommunityTransitive2OctetAsType to YAML text + ToYaml() (string, error) + // ToJson marshals BgpExtendedCommunityTransitive2OctetAsType to JSON text + ToJson() (string, error) +} + +type unMarshalbgpExtendedCommunityTransitive2OctetAsType struct { + obj *bgpExtendedCommunityTransitive2OctetAsType +} + +type unMarshalBgpExtendedCommunityTransitive2OctetAsType interface { + // FromProto unmarshals BgpExtendedCommunityTransitive2OctetAsType from protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsType + FromProto(msg *otg.BgpExtendedCommunityTransitive2OctetAsType) (BgpExtendedCommunityTransitive2OctetAsType, error) + // FromPbText unmarshals BgpExtendedCommunityTransitive2OctetAsType from protobuf text + FromPbText(value string) error + // FromYaml unmarshals BgpExtendedCommunityTransitive2OctetAsType from YAML text + FromYaml(value string) error + // FromJson unmarshals BgpExtendedCommunityTransitive2OctetAsType from JSON text + FromJson(value string) error +} + +func (obj *bgpExtendedCommunityTransitive2OctetAsType) Marshal() marshalBgpExtendedCommunityTransitive2OctetAsType { + if obj.marshaller == nil { + obj.marshaller = &marshalbgpExtendedCommunityTransitive2OctetAsType{obj: obj} + } + return obj.marshaller +} + +func (obj *bgpExtendedCommunityTransitive2OctetAsType) Unmarshal() unMarshalBgpExtendedCommunityTransitive2OctetAsType { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshalbgpExtendedCommunityTransitive2OctetAsType{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshalbgpExtendedCommunityTransitive2OctetAsType) ToProto() (*otg.BgpExtendedCommunityTransitive2OctetAsType, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsType) FromProto(msg *otg.BgpExtendedCommunityTransitive2OctetAsType) (BgpExtendedCommunityTransitive2OctetAsType, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshalbgpExtendedCommunityTransitive2OctetAsType) ToPbText() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsType) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), m.obj.msg()) + if retObj != nil { + return retObj + } + m.obj.setNil() + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (m *marshalbgpExtendedCommunityTransitive2OctetAsType) ToYaml() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsType) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + m.obj.setNil() + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (m *marshalbgpExtendedCommunityTransitive2OctetAsType) ToJson() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsType) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + m.obj.setNil() + err := m.obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *bgpExtendedCommunityTransitive2OctetAsType) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *bgpExtendedCommunityTransitive2OctetAsType) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *bgpExtendedCommunityTransitive2OctetAsType) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *bgpExtendedCommunityTransitive2OctetAsType) Clone() (BgpExtendedCommunityTransitive2OctetAsType, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewBgpExtendedCommunityTransitive2OctetAsType() + data, err := proto.Marshal(obj.msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +func (obj *bgpExtendedCommunityTransitive2OctetAsType) setNil() { + obj.routeTargetSubtypeHolder = nil + obj.routeOriginSubtypeHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// BgpExtendedCommunityTransitive2OctetAsType is the Transitive Two-Octet AS-Specific Extended Community is sent as type 0x00 . +type BgpExtendedCommunityTransitive2OctetAsType interface { + Validation + // msg marshals BgpExtendedCommunityTransitive2OctetAsType to protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsType + // and doesn't set defaults + msg() *otg.BgpExtendedCommunityTransitive2OctetAsType + // setMsg unmarshals BgpExtendedCommunityTransitive2OctetAsType from protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsType + // and doesn't set defaults + setMsg(*otg.BgpExtendedCommunityTransitive2OctetAsType) BgpExtendedCommunityTransitive2OctetAsType + // provides marshal interface + Marshal() marshalBgpExtendedCommunityTransitive2OctetAsType + // provides unmarshal interface + Unmarshal() unMarshalBgpExtendedCommunityTransitive2OctetAsType + // validate validates BgpExtendedCommunityTransitive2OctetAsType + validate() error + // A stringer function + String() string + // Clones the object + Clone() (BgpExtendedCommunityTransitive2OctetAsType, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Choice returns BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum, set in BgpExtendedCommunityTransitive2OctetAsType + Choice() BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum + // setChoice assigns BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum provided by user to BgpExtendedCommunityTransitive2OctetAsType + setChoice(value BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum) BgpExtendedCommunityTransitive2OctetAsType + // HasChoice checks if Choice has been set in BgpExtendedCommunityTransitive2OctetAsType + HasChoice() bool + // RouteTargetSubtype returns BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget, set in BgpExtendedCommunityTransitive2OctetAsType. + // BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget is the Route Target Community identifies one or more routers that may receive a set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02. + RouteTargetSubtype() BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + // SetRouteTargetSubtype assigns BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget provided by user to BgpExtendedCommunityTransitive2OctetAsType. + // BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget is the Route Target Community identifies one or more routers that may receive a set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02. + SetRouteTargetSubtype(value BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) BgpExtendedCommunityTransitive2OctetAsType + // HasRouteTargetSubtype checks if RouteTargetSubtype has been set in BgpExtendedCommunityTransitive2OctetAsType + HasRouteTargetSubtype() bool + // RouteOriginSubtype returns BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin, set in BgpExtendedCommunityTransitive2OctetAsType. + // BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin is the Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP. It is sent with sub-type as 0x03 . + RouteOriginSubtype() BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + // SetRouteOriginSubtype assigns BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin provided by user to BgpExtendedCommunityTransitive2OctetAsType. + // BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin is the Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP. It is sent with sub-type as 0x03 . + SetRouteOriginSubtype(value BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) BgpExtendedCommunityTransitive2OctetAsType + // HasRouteOriginSubtype checks if RouteOriginSubtype has been set in BgpExtendedCommunityTransitive2OctetAsType + HasRouteOriginSubtype() bool + setNil() +} + +type BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum string + +// Enum of Choice on BgpExtendedCommunityTransitive2OctetAsType +var BgpExtendedCommunityTransitive2OctetAsTypeChoice = struct { + ROUTE_TARGET_SUBTYPE BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum + ROUTE_ORIGIN_SUBTYPE BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum +}{ + ROUTE_TARGET_SUBTYPE: BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum("route_target_subtype"), + ROUTE_ORIGIN_SUBTYPE: BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum("route_origin_subtype"), +} + +func (obj *bgpExtendedCommunityTransitive2OctetAsType) Choice() BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum { + return BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum(obj.obj.Choice.Enum().String()) +} + +// description is TBD +// Choice returns a string +func (obj *bgpExtendedCommunityTransitive2OctetAsType) HasChoice() bool { + return obj.obj.Choice != nil +} + +func (obj *bgpExtendedCommunityTransitive2OctetAsType) setChoice(value BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum) BgpExtendedCommunityTransitive2OctetAsType { + intValue, ok := otg.BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on BgpExtendedCommunityTransitive2OctetAsTypeChoiceEnum", string(value))) + return obj + } + enumValue := otg.BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.RouteOriginSubtype = nil + obj.routeOriginSubtypeHolder = nil + obj.obj.RouteTargetSubtype = nil + obj.routeTargetSubtypeHolder = nil + + if value == BgpExtendedCommunityTransitive2OctetAsTypeChoice.ROUTE_TARGET_SUBTYPE { + obj.obj.RouteTargetSubtype = NewBgpExtendedCommunityTransitive2OctetAsTypeRouteTarget().msg() + } + + if value == BgpExtendedCommunityTransitive2OctetAsTypeChoice.ROUTE_ORIGIN_SUBTYPE { + obj.obj.RouteOriginSubtype = NewBgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin().msg() + } + + return obj +} + +// description is TBD +// RouteTargetSubtype returns a BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget +func (obj *bgpExtendedCommunityTransitive2OctetAsType) RouteTargetSubtype() BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget { + if obj.obj.RouteTargetSubtype == nil { + obj.setChoice(BgpExtendedCommunityTransitive2OctetAsTypeChoice.ROUTE_TARGET_SUBTYPE) + } + if obj.routeTargetSubtypeHolder == nil { + obj.routeTargetSubtypeHolder = &bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget{obj: obj.obj.RouteTargetSubtype} + } + return obj.routeTargetSubtypeHolder +} + +// description is TBD +// RouteTargetSubtype returns a BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget +func (obj *bgpExtendedCommunityTransitive2OctetAsType) HasRouteTargetSubtype() bool { + return obj.obj.RouteTargetSubtype != nil +} + +// description is TBD +// SetRouteTargetSubtype sets the BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget value in the BgpExtendedCommunityTransitive2OctetAsType object +func (obj *bgpExtendedCommunityTransitive2OctetAsType) SetRouteTargetSubtype(value BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) BgpExtendedCommunityTransitive2OctetAsType { + obj.setChoice(BgpExtendedCommunityTransitive2OctetAsTypeChoice.ROUTE_TARGET_SUBTYPE) + obj.routeTargetSubtypeHolder = nil + obj.obj.RouteTargetSubtype = value.msg() + + return obj +} + +// description is TBD +// RouteOriginSubtype returns a BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin +func (obj *bgpExtendedCommunityTransitive2OctetAsType) RouteOriginSubtype() BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin { + if obj.obj.RouteOriginSubtype == nil { + obj.setChoice(BgpExtendedCommunityTransitive2OctetAsTypeChoice.ROUTE_ORIGIN_SUBTYPE) + } + if obj.routeOriginSubtypeHolder == nil { + obj.routeOriginSubtypeHolder = &bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin{obj: obj.obj.RouteOriginSubtype} + } + return obj.routeOriginSubtypeHolder +} + +// description is TBD +// RouteOriginSubtype returns a BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin +func (obj *bgpExtendedCommunityTransitive2OctetAsType) HasRouteOriginSubtype() bool { + return obj.obj.RouteOriginSubtype != nil +} + +// description is TBD +// SetRouteOriginSubtype sets the BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin value in the BgpExtendedCommunityTransitive2OctetAsType object +func (obj *bgpExtendedCommunityTransitive2OctetAsType) SetRouteOriginSubtype(value BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) BgpExtendedCommunityTransitive2OctetAsType { + obj.setChoice(BgpExtendedCommunityTransitive2OctetAsTypeChoice.ROUTE_ORIGIN_SUBTYPE) + obj.routeOriginSubtypeHolder = nil + obj.obj.RouteOriginSubtype = value.msg() + + return obj +} + +func (obj *bgpExtendedCommunityTransitive2OctetAsType) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.RouteTargetSubtype != nil { + + obj.RouteTargetSubtype().validateObj(vObj, set_default) + } + + if obj.obj.RouteOriginSubtype != nil { + + obj.RouteOriginSubtype().validateObj(vObj, set_default) + } + +} + +func (obj *bgpExtendedCommunityTransitive2OctetAsType) setDefault() { + if obj.obj.Choice == nil { + obj.setChoice(BgpExtendedCommunityTransitive2OctetAsTypeChoice.ROUTE_TARGET_SUBTYPE) + + } + +} + +// ***** BgpExtendedCommunityTransitiveIpv4AddressType ***** +type bgpExtendedCommunityTransitiveIpv4AddressType struct { + validation + obj *otg.BgpExtendedCommunityTransitiveIpv4AddressType + marshaller marshalBgpExtendedCommunityTransitiveIpv4AddressType + unMarshaller unMarshalBgpExtendedCommunityTransitiveIpv4AddressType + routeTargetSubtypeHolder BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + routeOriginSubtypeHolder BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin +} + +func NewBgpExtendedCommunityTransitiveIpv4AddressType() BgpExtendedCommunityTransitiveIpv4AddressType { + obj := bgpExtendedCommunityTransitiveIpv4AddressType{obj: &otg.BgpExtendedCommunityTransitiveIpv4AddressType{}} + obj.setDefault() + return &obj +} + +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) msg() *otg.BgpExtendedCommunityTransitiveIpv4AddressType { + return obj.obj +} + +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) setMsg(msg *otg.BgpExtendedCommunityTransitiveIpv4AddressType) BgpExtendedCommunityTransitiveIpv4AddressType { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +type marshalbgpExtendedCommunityTransitiveIpv4AddressType struct { + obj *bgpExtendedCommunityTransitiveIpv4AddressType +} + +type marshalBgpExtendedCommunityTransitiveIpv4AddressType interface { + // ToProto marshals BgpExtendedCommunityTransitiveIpv4AddressType to protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressType + ToProto() (*otg.BgpExtendedCommunityTransitiveIpv4AddressType, error) + // ToPbText marshals BgpExtendedCommunityTransitiveIpv4AddressType to protobuf text + ToPbText() (string, error) + // ToYaml marshals BgpExtendedCommunityTransitiveIpv4AddressType to YAML text + ToYaml() (string, error) + // ToJson marshals BgpExtendedCommunityTransitiveIpv4AddressType to JSON text + ToJson() (string, error) +} + +type unMarshalbgpExtendedCommunityTransitiveIpv4AddressType struct { + obj *bgpExtendedCommunityTransitiveIpv4AddressType +} + +type unMarshalBgpExtendedCommunityTransitiveIpv4AddressType interface { + // FromProto unmarshals BgpExtendedCommunityTransitiveIpv4AddressType from protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressType + FromProto(msg *otg.BgpExtendedCommunityTransitiveIpv4AddressType) (BgpExtendedCommunityTransitiveIpv4AddressType, error) + // FromPbText unmarshals BgpExtendedCommunityTransitiveIpv4AddressType from protobuf text + FromPbText(value string) error + // FromYaml unmarshals BgpExtendedCommunityTransitiveIpv4AddressType from YAML text + FromYaml(value string) error + // FromJson unmarshals BgpExtendedCommunityTransitiveIpv4AddressType from JSON text + FromJson(value string) error +} + +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) Marshal() marshalBgpExtendedCommunityTransitiveIpv4AddressType { + if obj.marshaller == nil { + obj.marshaller = &marshalbgpExtendedCommunityTransitiveIpv4AddressType{obj: obj} + } + return obj.marshaller +} + +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) Unmarshal() unMarshalBgpExtendedCommunityTransitiveIpv4AddressType { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshalbgpExtendedCommunityTransitiveIpv4AddressType{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshalbgpExtendedCommunityTransitiveIpv4AddressType) ToProto() (*otg.BgpExtendedCommunityTransitiveIpv4AddressType, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshalbgpExtendedCommunityTransitiveIpv4AddressType) FromProto(msg *otg.BgpExtendedCommunityTransitiveIpv4AddressType) (BgpExtendedCommunityTransitiveIpv4AddressType, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshalbgpExtendedCommunityTransitiveIpv4AddressType) ToPbText() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (m *unMarshalbgpExtendedCommunityTransitiveIpv4AddressType) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), m.obj.msg()) + if retObj != nil { + return retObj + } + m.obj.setNil() + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (m *marshalbgpExtendedCommunityTransitiveIpv4AddressType) ToYaml() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalbgpExtendedCommunityTransitiveIpv4AddressType) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + m.obj.setNil() + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (m *marshalbgpExtendedCommunityTransitiveIpv4AddressType) ToJson() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalbgpExtendedCommunityTransitiveIpv4AddressType) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + m.obj.setNil() + err := m.obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) Clone() (BgpExtendedCommunityTransitiveIpv4AddressType, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewBgpExtendedCommunityTransitiveIpv4AddressType() + data, err := proto.Marshal(obj.msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) setNil() { + obj.routeTargetSubtypeHolder = nil + obj.routeOriginSubtypeHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// BgpExtendedCommunityTransitiveIpv4AddressType is the Transitive IPv4 Address Specific Extended Community is sent as type 0x01. +type BgpExtendedCommunityTransitiveIpv4AddressType interface { + Validation + // msg marshals BgpExtendedCommunityTransitiveIpv4AddressType to protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressType + // and doesn't set defaults + msg() *otg.BgpExtendedCommunityTransitiveIpv4AddressType + // setMsg unmarshals BgpExtendedCommunityTransitiveIpv4AddressType from protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressType + // and doesn't set defaults + setMsg(*otg.BgpExtendedCommunityTransitiveIpv4AddressType) BgpExtendedCommunityTransitiveIpv4AddressType + // provides marshal interface + Marshal() marshalBgpExtendedCommunityTransitiveIpv4AddressType + // provides unmarshal interface + Unmarshal() unMarshalBgpExtendedCommunityTransitiveIpv4AddressType + // validate validates BgpExtendedCommunityTransitiveIpv4AddressType + validate() error + // A stringer function + String() string + // Clones the object + Clone() (BgpExtendedCommunityTransitiveIpv4AddressType, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Choice returns BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum, set in BgpExtendedCommunityTransitiveIpv4AddressType + Choice() BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum + // setChoice assigns BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum provided by user to BgpExtendedCommunityTransitiveIpv4AddressType + setChoice(value BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum) BgpExtendedCommunityTransitiveIpv4AddressType + // HasChoice checks if Choice has been set in BgpExtendedCommunityTransitiveIpv4AddressType + HasChoice() bool + // RouteTargetSubtype returns BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget, set in BgpExtendedCommunityTransitiveIpv4AddressType. + // BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget is the Route Target Community identifies one or more routers that may receive a set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02. + RouteTargetSubtype() BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + // SetRouteTargetSubtype assigns BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget provided by user to BgpExtendedCommunityTransitiveIpv4AddressType. + // BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget is the Route Target Community identifies one or more routers that may receive a set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02. + SetRouteTargetSubtype(value BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) BgpExtendedCommunityTransitiveIpv4AddressType + // HasRouteTargetSubtype checks if RouteTargetSubtype has been set in BgpExtendedCommunityTransitiveIpv4AddressType + HasRouteTargetSubtype() bool + // RouteOriginSubtype returns BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin, set in BgpExtendedCommunityTransitiveIpv4AddressType. + // BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin is the Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP It is sent with sub-type as 0x03. + RouteOriginSubtype() BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + // SetRouteOriginSubtype assigns BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin provided by user to BgpExtendedCommunityTransitiveIpv4AddressType. + // BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin is the Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP It is sent with sub-type as 0x03. + SetRouteOriginSubtype(value BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) BgpExtendedCommunityTransitiveIpv4AddressType + // HasRouteOriginSubtype checks if RouteOriginSubtype has been set in BgpExtendedCommunityTransitiveIpv4AddressType + HasRouteOriginSubtype() bool + setNil() +} + +type BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum string + +// Enum of Choice on BgpExtendedCommunityTransitiveIpv4AddressType +var BgpExtendedCommunityTransitiveIpv4AddressTypeChoice = struct { + ROUTE_TARGET_SUBTYPE BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum + ROUTE_ORIGIN_SUBTYPE BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum +}{ + ROUTE_TARGET_SUBTYPE: BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum("route_target_subtype"), + ROUTE_ORIGIN_SUBTYPE: BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum("route_origin_subtype"), +} + +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) Choice() BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum { + return BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum(obj.obj.Choice.Enum().String()) +} + +// description is TBD +// Choice returns a string +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) HasChoice() bool { + return obj.obj.Choice != nil +} + +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) setChoice(value BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum) BgpExtendedCommunityTransitiveIpv4AddressType { + intValue, ok := otg.BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on BgpExtendedCommunityTransitiveIpv4AddressTypeChoiceEnum", string(value))) + return obj + } + enumValue := otg.BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.RouteOriginSubtype = nil + obj.routeOriginSubtypeHolder = nil + obj.obj.RouteTargetSubtype = nil + obj.routeTargetSubtypeHolder = nil + + if value == BgpExtendedCommunityTransitiveIpv4AddressTypeChoice.ROUTE_TARGET_SUBTYPE { + obj.obj.RouteTargetSubtype = NewBgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget().msg() + } + + if value == BgpExtendedCommunityTransitiveIpv4AddressTypeChoice.ROUTE_ORIGIN_SUBTYPE { + obj.obj.RouteOriginSubtype = NewBgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin().msg() + } + + return obj +} + +// description is TBD +// RouteTargetSubtype returns a BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) RouteTargetSubtype() BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget { + if obj.obj.RouteTargetSubtype == nil { + obj.setChoice(BgpExtendedCommunityTransitiveIpv4AddressTypeChoice.ROUTE_TARGET_SUBTYPE) + } + if obj.routeTargetSubtypeHolder == nil { + obj.routeTargetSubtypeHolder = &bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget{obj: obj.obj.RouteTargetSubtype} + } + return obj.routeTargetSubtypeHolder +} + +// description is TBD +// RouteTargetSubtype returns a BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) HasRouteTargetSubtype() bool { + return obj.obj.RouteTargetSubtype != nil +} + +// description is TBD +// SetRouteTargetSubtype sets the BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget value in the BgpExtendedCommunityTransitiveIpv4AddressType object +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) SetRouteTargetSubtype(value BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) BgpExtendedCommunityTransitiveIpv4AddressType { + obj.setChoice(BgpExtendedCommunityTransitiveIpv4AddressTypeChoice.ROUTE_TARGET_SUBTYPE) + obj.routeTargetSubtypeHolder = nil + obj.obj.RouteTargetSubtype = value.msg() + + return obj +} + +// description is TBD +// RouteOriginSubtype returns a BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) RouteOriginSubtype() BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin { + if obj.obj.RouteOriginSubtype == nil { + obj.setChoice(BgpExtendedCommunityTransitiveIpv4AddressTypeChoice.ROUTE_ORIGIN_SUBTYPE) + } + if obj.routeOriginSubtypeHolder == nil { + obj.routeOriginSubtypeHolder = &bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin{obj: obj.obj.RouteOriginSubtype} + } + return obj.routeOriginSubtypeHolder +} + +// description is TBD +// RouteOriginSubtype returns a BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) HasRouteOriginSubtype() bool { + return obj.obj.RouteOriginSubtype != nil +} + +// description is TBD +// SetRouteOriginSubtype sets the BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin value in the BgpExtendedCommunityTransitiveIpv4AddressType object +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) SetRouteOriginSubtype(value BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) BgpExtendedCommunityTransitiveIpv4AddressType { + obj.setChoice(BgpExtendedCommunityTransitiveIpv4AddressTypeChoice.ROUTE_ORIGIN_SUBTYPE) + obj.routeOriginSubtypeHolder = nil + obj.obj.RouteOriginSubtype = value.msg() + + return obj +} + +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.RouteTargetSubtype != nil { + + obj.RouteTargetSubtype().validateObj(vObj, set_default) + } + + if obj.obj.RouteOriginSubtype != nil { + + obj.RouteOriginSubtype().validateObj(vObj, set_default) + } + +} + +func (obj *bgpExtendedCommunityTransitiveIpv4AddressType) setDefault() { + if obj.obj.Choice == nil { + obj.setChoice(BgpExtendedCommunityTransitiveIpv4AddressTypeChoice.ROUTE_TARGET_SUBTYPE) + + } + +} + +// ***** BgpExtendedCommunityTransitive4OctetAsType ***** +type bgpExtendedCommunityTransitive4OctetAsType struct { + validation + obj *otg.BgpExtendedCommunityTransitive4OctetAsType + marshaller marshalBgpExtendedCommunityTransitive4OctetAsType + unMarshaller unMarshalBgpExtendedCommunityTransitive4OctetAsType + routeTargetSubtypeHolder BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + routeOriginSubtypeHolder BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin +} + +func NewBgpExtendedCommunityTransitive4OctetAsType() BgpExtendedCommunityTransitive4OctetAsType { + obj := bgpExtendedCommunityTransitive4OctetAsType{obj: &otg.BgpExtendedCommunityTransitive4OctetAsType{}} + obj.setDefault() + return &obj +} + +func (obj *bgpExtendedCommunityTransitive4OctetAsType) msg() *otg.BgpExtendedCommunityTransitive4OctetAsType { + return obj.obj +} + +func (obj *bgpExtendedCommunityTransitive4OctetAsType) setMsg(msg *otg.BgpExtendedCommunityTransitive4OctetAsType) BgpExtendedCommunityTransitive4OctetAsType { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +type marshalbgpExtendedCommunityTransitive4OctetAsType struct { + obj *bgpExtendedCommunityTransitive4OctetAsType +} + +type marshalBgpExtendedCommunityTransitive4OctetAsType interface { + // ToProto marshals BgpExtendedCommunityTransitive4OctetAsType to protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsType + ToProto() (*otg.BgpExtendedCommunityTransitive4OctetAsType, error) + // ToPbText marshals BgpExtendedCommunityTransitive4OctetAsType to protobuf text + ToPbText() (string, error) + // ToYaml marshals BgpExtendedCommunityTransitive4OctetAsType to YAML text + ToYaml() (string, error) + // ToJson marshals BgpExtendedCommunityTransitive4OctetAsType to JSON text + ToJson() (string, error) +} + +type unMarshalbgpExtendedCommunityTransitive4OctetAsType struct { + obj *bgpExtendedCommunityTransitive4OctetAsType +} + +type unMarshalBgpExtendedCommunityTransitive4OctetAsType interface { + // FromProto unmarshals BgpExtendedCommunityTransitive4OctetAsType from protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsType + FromProto(msg *otg.BgpExtendedCommunityTransitive4OctetAsType) (BgpExtendedCommunityTransitive4OctetAsType, error) + // FromPbText unmarshals BgpExtendedCommunityTransitive4OctetAsType from protobuf text + FromPbText(value string) error + // FromYaml unmarshals BgpExtendedCommunityTransitive4OctetAsType from YAML text + FromYaml(value string) error + // FromJson unmarshals BgpExtendedCommunityTransitive4OctetAsType from JSON text + FromJson(value string) error +} + +func (obj *bgpExtendedCommunityTransitive4OctetAsType) Marshal() marshalBgpExtendedCommunityTransitive4OctetAsType { + if obj.marshaller == nil { + obj.marshaller = &marshalbgpExtendedCommunityTransitive4OctetAsType{obj: obj} + } + return obj.marshaller +} + +func (obj *bgpExtendedCommunityTransitive4OctetAsType) Unmarshal() unMarshalBgpExtendedCommunityTransitive4OctetAsType { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshalbgpExtendedCommunityTransitive4OctetAsType{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshalbgpExtendedCommunityTransitive4OctetAsType) ToProto() (*otg.BgpExtendedCommunityTransitive4OctetAsType, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsType) FromProto(msg *otg.BgpExtendedCommunityTransitive4OctetAsType) (BgpExtendedCommunityTransitive4OctetAsType, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshalbgpExtendedCommunityTransitive4OctetAsType) ToPbText() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsType) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), m.obj.msg()) + if retObj != nil { + return retObj + } + m.obj.setNil() + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (m *marshalbgpExtendedCommunityTransitive4OctetAsType) ToYaml() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsType) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + m.obj.setNil() + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (m *marshalbgpExtendedCommunityTransitive4OctetAsType) ToJson() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsType) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + m.obj.setNil() + err := m.obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *bgpExtendedCommunityTransitive4OctetAsType) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *bgpExtendedCommunityTransitive4OctetAsType) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *bgpExtendedCommunityTransitive4OctetAsType) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *bgpExtendedCommunityTransitive4OctetAsType) Clone() (BgpExtendedCommunityTransitive4OctetAsType, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewBgpExtendedCommunityTransitive4OctetAsType() + data, err := proto.Marshal(obj.msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +func (obj *bgpExtendedCommunityTransitive4OctetAsType) setNil() { + obj.routeTargetSubtypeHolder = nil + obj.routeOriginSubtypeHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// BgpExtendedCommunityTransitive4OctetAsType is the Transitive Four-Octet AS-Specific Extended Community is sent as type 0x02. It is defined in RFC 5668. +type BgpExtendedCommunityTransitive4OctetAsType interface { + Validation + // msg marshals BgpExtendedCommunityTransitive4OctetAsType to protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsType + // and doesn't set defaults + msg() *otg.BgpExtendedCommunityTransitive4OctetAsType + // setMsg unmarshals BgpExtendedCommunityTransitive4OctetAsType from protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsType + // and doesn't set defaults + setMsg(*otg.BgpExtendedCommunityTransitive4OctetAsType) BgpExtendedCommunityTransitive4OctetAsType + // provides marshal interface + Marshal() marshalBgpExtendedCommunityTransitive4OctetAsType + // provides unmarshal interface + Unmarshal() unMarshalBgpExtendedCommunityTransitive4OctetAsType + // validate validates BgpExtendedCommunityTransitive4OctetAsType + validate() error + // A stringer function + String() string + // Clones the object + Clone() (BgpExtendedCommunityTransitive4OctetAsType, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Choice returns BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum, set in BgpExtendedCommunityTransitive4OctetAsType + Choice() BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum + // setChoice assigns BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum provided by user to BgpExtendedCommunityTransitive4OctetAsType + setChoice(value BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum) BgpExtendedCommunityTransitive4OctetAsType + // HasChoice checks if Choice has been set in BgpExtendedCommunityTransitive4OctetAsType + HasChoice() bool + // RouteTargetSubtype returns BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget, set in BgpExtendedCommunityTransitive4OctetAsType. + // BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget is the Route Target Community identifies one or more routers that may receive a set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02 + RouteTargetSubtype() BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + // SetRouteTargetSubtype assigns BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget provided by user to BgpExtendedCommunityTransitive4OctetAsType. + // BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget is the Route Target Community identifies one or more routers that may receive a set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02 + SetRouteTargetSubtype(value BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) BgpExtendedCommunityTransitive4OctetAsType + // HasRouteTargetSubtype checks if RouteTargetSubtype has been set in BgpExtendedCommunityTransitive4OctetAsType + HasRouteTargetSubtype() bool + // RouteOriginSubtype returns BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin, set in BgpExtendedCommunityTransitive4OctetAsType. + // BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin is the Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP. It is sent with sub-type as 0x03. + RouteOriginSubtype() BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + // SetRouteOriginSubtype assigns BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin provided by user to BgpExtendedCommunityTransitive4OctetAsType. + // BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin is the Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP. It is sent with sub-type as 0x03. + SetRouteOriginSubtype(value BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) BgpExtendedCommunityTransitive4OctetAsType + // HasRouteOriginSubtype checks if RouteOriginSubtype has been set in BgpExtendedCommunityTransitive4OctetAsType + HasRouteOriginSubtype() bool + setNil() +} + +type BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum string + +// Enum of Choice on BgpExtendedCommunityTransitive4OctetAsType +var BgpExtendedCommunityTransitive4OctetAsTypeChoice = struct { + ROUTE_TARGET_SUBTYPE BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum + ROUTE_ORIGIN_SUBTYPE BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum +}{ + ROUTE_TARGET_SUBTYPE: BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum("route_target_subtype"), + ROUTE_ORIGIN_SUBTYPE: BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum("route_origin_subtype"), +} + +func (obj *bgpExtendedCommunityTransitive4OctetAsType) Choice() BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum { + return BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum(obj.obj.Choice.Enum().String()) +} + +// description is TBD +// Choice returns a string +func (obj *bgpExtendedCommunityTransitive4OctetAsType) HasChoice() bool { + return obj.obj.Choice != nil +} + +func (obj *bgpExtendedCommunityTransitive4OctetAsType) setChoice(value BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum) BgpExtendedCommunityTransitive4OctetAsType { + intValue, ok := otg.BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on BgpExtendedCommunityTransitive4OctetAsTypeChoiceEnum", string(value))) + return obj + } + enumValue := otg.BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.RouteOriginSubtype = nil + obj.routeOriginSubtypeHolder = nil + obj.obj.RouteTargetSubtype = nil + obj.routeTargetSubtypeHolder = nil + + if value == BgpExtendedCommunityTransitive4OctetAsTypeChoice.ROUTE_TARGET_SUBTYPE { + obj.obj.RouteTargetSubtype = NewBgpExtendedCommunityTransitive4OctetAsTypeRouteTarget().msg() + } + + if value == BgpExtendedCommunityTransitive4OctetAsTypeChoice.ROUTE_ORIGIN_SUBTYPE { + obj.obj.RouteOriginSubtype = NewBgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin().msg() + } + + return obj +} + +// description is TBD +// RouteTargetSubtype returns a BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget +func (obj *bgpExtendedCommunityTransitive4OctetAsType) RouteTargetSubtype() BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget { + if obj.obj.RouteTargetSubtype == nil { + obj.setChoice(BgpExtendedCommunityTransitive4OctetAsTypeChoice.ROUTE_TARGET_SUBTYPE) + } + if obj.routeTargetSubtypeHolder == nil { + obj.routeTargetSubtypeHolder = &bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget{obj: obj.obj.RouteTargetSubtype} + } + return obj.routeTargetSubtypeHolder +} + +// description is TBD +// RouteTargetSubtype returns a BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget +func (obj *bgpExtendedCommunityTransitive4OctetAsType) HasRouteTargetSubtype() bool { + return obj.obj.RouteTargetSubtype != nil +} + +// description is TBD +// SetRouteTargetSubtype sets the BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget value in the BgpExtendedCommunityTransitive4OctetAsType object +func (obj *bgpExtendedCommunityTransitive4OctetAsType) SetRouteTargetSubtype(value BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) BgpExtendedCommunityTransitive4OctetAsType { + obj.setChoice(BgpExtendedCommunityTransitive4OctetAsTypeChoice.ROUTE_TARGET_SUBTYPE) + obj.routeTargetSubtypeHolder = nil + obj.obj.RouteTargetSubtype = value.msg() + + return obj +} + +// description is TBD +// RouteOriginSubtype returns a BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin +func (obj *bgpExtendedCommunityTransitive4OctetAsType) RouteOriginSubtype() BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin { + if obj.obj.RouteOriginSubtype == nil { + obj.setChoice(BgpExtendedCommunityTransitive4OctetAsTypeChoice.ROUTE_ORIGIN_SUBTYPE) + } + if obj.routeOriginSubtypeHolder == nil { + obj.routeOriginSubtypeHolder = &bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin{obj: obj.obj.RouteOriginSubtype} + } + return obj.routeOriginSubtypeHolder +} + +// description is TBD +// RouteOriginSubtype returns a BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin +func (obj *bgpExtendedCommunityTransitive4OctetAsType) HasRouteOriginSubtype() bool { + return obj.obj.RouteOriginSubtype != nil +} + +// description is TBD +// SetRouteOriginSubtype sets the BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin value in the BgpExtendedCommunityTransitive4OctetAsType object +func (obj *bgpExtendedCommunityTransitive4OctetAsType) SetRouteOriginSubtype(value BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) BgpExtendedCommunityTransitive4OctetAsType { + obj.setChoice(BgpExtendedCommunityTransitive4OctetAsTypeChoice.ROUTE_ORIGIN_SUBTYPE) + obj.routeOriginSubtypeHolder = nil + obj.obj.RouteOriginSubtype = value.msg() + + return obj +} + +func (obj *bgpExtendedCommunityTransitive4OctetAsType) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.RouteTargetSubtype != nil { + + obj.RouteTargetSubtype().validateObj(vObj, set_default) + } + + if obj.obj.RouteOriginSubtype != nil { + + obj.RouteOriginSubtype().validateObj(vObj, set_default) + } + +} + +func (obj *bgpExtendedCommunityTransitive4OctetAsType) setDefault() { + if obj.obj.Choice == nil { + obj.setChoice(BgpExtendedCommunityTransitive4OctetAsTypeChoice.ROUTE_TARGET_SUBTYPE) + + } + +} + +// ***** BgpExtendedCommunityTransitiveOpaqueType ***** +type bgpExtendedCommunityTransitiveOpaqueType struct { + validation + obj *otg.BgpExtendedCommunityTransitiveOpaqueType + marshaller marshalBgpExtendedCommunityTransitiveOpaqueType + unMarshaller unMarshalBgpExtendedCommunityTransitiveOpaqueType + colorSubtypeHolder BgpExtendedCommunityTransitiveOpaqueTypeColor + encapsulationSubtypeHolder BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation +} + +func NewBgpExtendedCommunityTransitiveOpaqueType() BgpExtendedCommunityTransitiveOpaqueType { + obj := bgpExtendedCommunityTransitiveOpaqueType{obj: &otg.BgpExtendedCommunityTransitiveOpaqueType{}} + obj.setDefault() + return &obj +} + +func (obj *bgpExtendedCommunityTransitiveOpaqueType) msg() *otg.BgpExtendedCommunityTransitiveOpaqueType { + return obj.obj +} + +func (obj *bgpExtendedCommunityTransitiveOpaqueType) setMsg(msg *otg.BgpExtendedCommunityTransitiveOpaqueType) BgpExtendedCommunityTransitiveOpaqueType { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +type marshalbgpExtendedCommunityTransitiveOpaqueType struct { + obj *bgpExtendedCommunityTransitiveOpaqueType +} + +type marshalBgpExtendedCommunityTransitiveOpaqueType interface { + // ToProto marshals BgpExtendedCommunityTransitiveOpaqueType to protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueType + ToProto() (*otg.BgpExtendedCommunityTransitiveOpaqueType, error) + // ToPbText marshals BgpExtendedCommunityTransitiveOpaqueType to protobuf text + ToPbText() (string, error) + // ToYaml marshals BgpExtendedCommunityTransitiveOpaqueType to YAML text + ToYaml() (string, error) + // ToJson marshals BgpExtendedCommunityTransitiveOpaqueType to JSON text + ToJson() (string, error) +} + +type unMarshalbgpExtendedCommunityTransitiveOpaqueType struct { + obj *bgpExtendedCommunityTransitiveOpaqueType +} + +type unMarshalBgpExtendedCommunityTransitiveOpaqueType interface { + // FromProto unmarshals BgpExtendedCommunityTransitiveOpaqueType from protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueType + FromProto(msg *otg.BgpExtendedCommunityTransitiveOpaqueType) (BgpExtendedCommunityTransitiveOpaqueType, error) + // FromPbText unmarshals BgpExtendedCommunityTransitiveOpaqueType from protobuf text + FromPbText(value string) error + // FromYaml unmarshals BgpExtendedCommunityTransitiveOpaqueType from YAML text + FromYaml(value string) error + // FromJson unmarshals BgpExtendedCommunityTransitiveOpaqueType from JSON text + FromJson(value string) error +} + +func (obj *bgpExtendedCommunityTransitiveOpaqueType) Marshal() marshalBgpExtendedCommunityTransitiveOpaqueType { + if obj.marshaller == nil { + obj.marshaller = &marshalbgpExtendedCommunityTransitiveOpaqueType{obj: obj} + } + return obj.marshaller +} + +func (obj *bgpExtendedCommunityTransitiveOpaqueType) Unmarshal() unMarshalBgpExtendedCommunityTransitiveOpaqueType { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshalbgpExtendedCommunityTransitiveOpaqueType{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshalbgpExtendedCommunityTransitiveOpaqueType) ToProto() (*otg.BgpExtendedCommunityTransitiveOpaqueType, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueType) FromProto(msg *otg.BgpExtendedCommunityTransitiveOpaqueType) (BgpExtendedCommunityTransitiveOpaqueType, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshalbgpExtendedCommunityTransitiveOpaqueType) ToPbText() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueType) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), m.obj.msg()) + if retObj != nil { + return retObj + } + m.obj.setNil() + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (m *marshalbgpExtendedCommunityTransitiveOpaqueType) ToYaml() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueType) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + m.obj.setNil() + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (m *marshalbgpExtendedCommunityTransitiveOpaqueType) ToJson() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueType) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + m.obj.setNil() + err := m.obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *bgpExtendedCommunityTransitiveOpaqueType) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *bgpExtendedCommunityTransitiveOpaqueType) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *bgpExtendedCommunityTransitiveOpaqueType) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *bgpExtendedCommunityTransitiveOpaqueType) Clone() (BgpExtendedCommunityTransitiveOpaqueType, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewBgpExtendedCommunityTransitiveOpaqueType() + data, err := proto.Marshal(obj.msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +func (obj *bgpExtendedCommunityTransitiveOpaqueType) setNil() { + obj.colorSubtypeHolder = nil + obj.encapsulationSubtypeHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// BgpExtendedCommunityTransitiveOpaqueType is the Transitive Opaque Extended Community is sent as type 0x03. +type BgpExtendedCommunityTransitiveOpaqueType interface { + Validation + // msg marshals BgpExtendedCommunityTransitiveOpaqueType to protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueType + // and doesn't set defaults + msg() *otg.BgpExtendedCommunityTransitiveOpaqueType + // setMsg unmarshals BgpExtendedCommunityTransitiveOpaqueType from protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueType + // and doesn't set defaults + setMsg(*otg.BgpExtendedCommunityTransitiveOpaqueType) BgpExtendedCommunityTransitiveOpaqueType + // provides marshal interface + Marshal() marshalBgpExtendedCommunityTransitiveOpaqueType + // provides unmarshal interface + Unmarshal() unMarshalBgpExtendedCommunityTransitiveOpaqueType + // validate validates BgpExtendedCommunityTransitiveOpaqueType + validate() error + // A stringer function + String() string + // Clones the object + Clone() (BgpExtendedCommunityTransitiveOpaqueType, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Choice returns BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum, set in BgpExtendedCommunityTransitiveOpaqueType + Choice() BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum + // setChoice assigns BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum provided by user to BgpExtendedCommunityTransitiveOpaqueType + setChoice(value BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum) BgpExtendedCommunityTransitiveOpaqueType + // HasChoice checks if Choice has been set in BgpExtendedCommunityTransitiveOpaqueType + HasChoice() bool + // ColorSubtype returns BgpExtendedCommunityTransitiveOpaqueTypeColor, set in BgpExtendedCommunityTransitiveOpaqueType. + // BgpExtendedCommunityTransitiveOpaqueTypeColor is the Color Community contains locally administrator defined 'color' value which is used in conjunction with Encapsulation attribute to decide whether a data packet can be transmitted on a certain tunnel or not. It is defined in RFC9012 and sent with sub-type as 0x0b. + ColorSubtype() BgpExtendedCommunityTransitiveOpaqueTypeColor + // SetColorSubtype assigns BgpExtendedCommunityTransitiveOpaqueTypeColor provided by user to BgpExtendedCommunityTransitiveOpaqueType. + // BgpExtendedCommunityTransitiveOpaqueTypeColor is the Color Community contains locally administrator defined 'color' value which is used in conjunction with Encapsulation attribute to decide whether a data packet can be transmitted on a certain tunnel or not. It is defined in RFC9012 and sent with sub-type as 0x0b. + SetColorSubtype(value BgpExtendedCommunityTransitiveOpaqueTypeColor) BgpExtendedCommunityTransitiveOpaqueType + // HasColorSubtype checks if ColorSubtype has been set in BgpExtendedCommunityTransitiveOpaqueType + HasColorSubtype() bool + // EncapsulationSubtype returns BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation, set in BgpExtendedCommunityTransitiveOpaqueType. + // BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation is this identifies the type of tunneling technology being signalled. It is defined in RFC9012 and sent with sub-type as 0x0c. + EncapsulationSubtype() BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + // SetEncapsulationSubtype assigns BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation provided by user to BgpExtendedCommunityTransitiveOpaqueType. + // BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation is this identifies the type of tunneling technology being signalled. It is defined in RFC9012 and sent with sub-type as 0x0c. + SetEncapsulationSubtype(value BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) BgpExtendedCommunityTransitiveOpaqueType + // HasEncapsulationSubtype checks if EncapsulationSubtype has been set in BgpExtendedCommunityTransitiveOpaqueType + HasEncapsulationSubtype() bool + setNil() +} + +type BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum string + +// Enum of Choice on BgpExtendedCommunityTransitiveOpaqueType +var BgpExtendedCommunityTransitiveOpaqueTypeChoice = struct { + COLOR_SUBTYPE BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum + ENCAPSULATION_SUBTYPE BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum +}{ + COLOR_SUBTYPE: BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum("color_subtype"), + ENCAPSULATION_SUBTYPE: BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum("encapsulation_subtype"), +} + +func (obj *bgpExtendedCommunityTransitiveOpaqueType) Choice() BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum { + return BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum(obj.obj.Choice.Enum().String()) +} + +// description is TBD +// Choice returns a string +func (obj *bgpExtendedCommunityTransitiveOpaqueType) HasChoice() bool { + return obj.obj.Choice != nil +} + +func (obj *bgpExtendedCommunityTransitiveOpaqueType) setChoice(value BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum) BgpExtendedCommunityTransitiveOpaqueType { + intValue, ok := otg.BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on BgpExtendedCommunityTransitiveOpaqueTypeChoiceEnum", string(value))) + return obj + } + enumValue := otg.BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.EncapsulationSubtype = nil + obj.encapsulationSubtypeHolder = nil + obj.obj.ColorSubtype = nil + obj.colorSubtypeHolder = nil + + if value == BgpExtendedCommunityTransitiveOpaqueTypeChoice.COLOR_SUBTYPE { + obj.obj.ColorSubtype = NewBgpExtendedCommunityTransitiveOpaqueTypeColor().msg() + } + + if value == BgpExtendedCommunityTransitiveOpaqueTypeChoice.ENCAPSULATION_SUBTYPE { + obj.obj.EncapsulationSubtype = NewBgpExtendedCommunityTransitiveOpaqueTypeEncapsulation().msg() + } + + return obj +} + +// description is TBD +// ColorSubtype returns a BgpExtendedCommunityTransitiveOpaqueTypeColor +func (obj *bgpExtendedCommunityTransitiveOpaqueType) ColorSubtype() BgpExtendedCommunityTransitiveOpaqueTypeColor { + if obj.obj.ColorSubtype == nil { + obj.setChoice(BgpExtendedCommunityTransitiveOpaqueTypeChoice.COLOR_SUBTYPE) + } + if obj.colorSubtypeHolder == nil { + obj.colorSubtypeHolder = &bgpExtendedCommunityTransitiveOpaqueTypeColor{obj: obj.obj.ColorSubtype} + } + return obj.colorSubtypeHolder +} + +// description is TBD +// ColorSubtype returns a BgpExtendedCommunityTransitiveOpaqueTypeColor +func (obj *bgpExtendedCommunityTransitiveOpaqueType) HasColorSubtype() bool { + return obj.obj.ColorSubtype != nil +} + +// description is TBD +// SetColorSubtype sets the BgpExtendedCommunityTransitiveOpaqueTypeColor value in the BgpExtendedCommunityTransitiveOpaqueType object +func (obj *bgpExtendedCommunityTransitiveOpaqueType) SetColorSubtype(value BgpExtendedCommunityTransitiveOpaqueTypeColor) BgpExtendedCommunityTransitiveOpaqueType { + obj.setChoice(BgpExtendedCommunityTransitiveOpaqueTypeChoice.COLOR_SUBTYPE) + obj.colorSubtypeHolder = nil + obj.obj.ColorSubtype = value.msg() + + return obj +} + +// description is TBD +// EncapsulationSubtype returns a BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation +func (obj *bgpExtendedCommunityTransitiveOpaqueType) EncapsulationSubtype() BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation { + if obj.obj.EncapsulationSubtype == nil { + obj.setChoice(BgpExtendedCommunityTransitiveOpaqueTypeChoice.ENCAPSULATION_SUBTYPE) + } + if obj.encapsulationSubtypeHolder == nil { + obj.encapsulationSubtypeHolder = &bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation{obj: obj.obj.EncapsulationSubtype} + } + return obj.encapsulationSubtypeHolder +} + +// description is TBD +// EncapsulationSubtype returns a BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation +func (obj *bgpExtendedCommunityTransitiveOpaqueType) HasEncapsulationSubtype() bool { + return obj.obj.EncapsulationSubtype != nil +} + +// description is TBD +// SetEncapsulationSubtype sets the BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation value in the BgpExtendedCommunityTransitiveOpaqueType object +func (obj *bgpExtendedCommunityTransitiveOpaqueType) SetEncapsulationSubtype(value BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) BgpExtendedCommunityTransitiveOpaqueType { + obj.setChoice(BgpExtendedCommunityTransitiveOpaqueTypeChoice.ENCAPSULATION_SUBTYPE) + obj.encapsulationSubtypeHolder = nil + obj.obj.EncapsulationSubtype = value.msg() + + return obj +} + +func (obj *bgpExtendedCommunityTransitiveOpaqueType) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.ColorSubtype != nil { + + obj.ColorSubtype().validateObj(vObj, set_default) + } + + if obj.obj.EncapsulationSubtype != nil { + + obj.EncapsulationSubtype().validateObj(vObj, set_default) + } + +} + +func (obj *bgpExtendedCommunityTransitiveOpaqueType) setDefault() { + if obj.obj.Choice == nil { + obj.setChoice(BgpExtendedCommunityTransitiveOpaqueTypeChoice.COLOR_SUBTYPE) + + } + +} + +// ***** BgpExtendedCommunityTransitiveEvpnType ***** +type bgpExtendedCommunityTransitiveEvpnType struct { + validation + obj *otg.BgpExtendedCommunityTransitiveEvpnType + marshaller marshalBgpExtendedCommunityTransitiveEvpnType + unMarshaller unMarshalBgpExtendedCommunityTransitiveEvpnType + routerMacSubtypeHolder BgpExtendedCommunityTransitiveEvpnTypeRouterMac +} + +func NewBgpExtendedCommunityTransitiveEvpnType() BgpExtendedCommunityTransitiveEvpnType { + obj := bgpExtendedCommunityTransitiveEvpnType{obj: &otg.BgpExtendedCommunityTransitiveEvpnType{}} + obj.setDefault() + return &obj +} + +func (obj *bgpExtendedCommunityTransitiveEvpnType) msg() *otg.BgpExtendedCommunityTransitiveEvpnType { + return obj.obj +} + +func (obj *bgpExtendedCommunityTransitiveEvpnType) setMsg(msg *otg.BgpExtendedCommunityTransitiveEvpnType) BgpExtendedCommunityTransitiveEvpnType { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +type marshalbgpExtendedCommunityTransitiveEvpnType struct { + obj *bgpExtendedCommunityTransitiveEvpnType +} + +type marshalBgpExtendedCommunityTransitiveEvpnType interface { + // ToProto marshals BgpExtendedCommunityTransitiveEvpnType to protobuf object *otg.BgpExtendedCommunityTransitiveEvpnType + ToProto() (*otg.BgpExtendedCommunityTransitiveEvpnType, error) + // ToPbText marshals BgpExtendedCommunityTransitiveEvpnType to protobuf text + ToPbText() (string, error) + // ToYaml marshals BgpExtendedCommunityTransitiveEvpnType to YAML text + ToYaml() (string, error) + // ToJson marshals BgpExtendedCommunityTransitiveEvpnType to JSON text + ToJson() (string, error) +} + +type unMarshalbgpExtendedCommunityTransitiveEvpnType struct { + obj *bgpExtendedCommunityTransitiveEvpnType +} + +type unMarshalBgpExtendedCommunityTransitiveEvpnType interface { + // FromProto unmarshals BgpExtendedCommunityTransitiveEvpnType from protobuf object *otg.BgpExtendedCommunityTransitiveEvpnType + FromProto(msg *otg.BgpExtendedCommunityTransitiveEvpnType) (BgpExtendedCommunityTransitiveEvpnType, error) + // FromPbText unmarshals BgpExtendedCommunityTransitiveEvpnType from protobuf text + FromPbText(value string) error + // FromYaml unmarshals BgpExtendedCommunityTransitiveEvpnType from YAML text + FromYaml(value string) error + // FromJson unmarshals BgpExtendedCommunityTransitiveEvpnType from JSON text + FromJson(value string) error +} + +func (obj *bgpExtendedCommunityTransitiveEvpnType) Marshal() marshalBgpExtendedCommunityTransitiveEvpnType { + if obj.marshaller == nil { + obj.marshaller = &marshalbgpExtendedCommunityTransitiveEvpnType{obj: obj} + } + return obj.marshaller +} + +func (obj *bgpExtendedCommunityTransitiveEvpnType) Unmarshal() unMarshalBgpExtendedCommunityTransitiveEvpnType { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshalbgpExtendedCommunityTransitiveEvpnType{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshalbgpExtendedCommunityTransitiveEvpnType) ToProto() (*otg.BgpExtendedCommunityTransitiveEvpnType, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshalbgpExtendedCommunityTransitiveEvpnType) FromProto(msg *otg.BgpExtendedCommunityTransitiveEvpnType) (BgpExtendedCommunityTransitiveEvpnType, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshalbgpExtendedCommunityTransitiveEvpnType) ToPbText() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (m *unMarshalbgpExtendedCommunityTransitiveEvpnType) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), m.obj.msg()) + if retObj != nil { + return retObj + } + m.obj.setNil() + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (m *marshalbgpExtendedCommunityTransitiveEvpnType) ToYaml() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalbgpExtendedCommunityTransitiveEvpnType) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + m.obj.setNil() + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (m *marshalbgpExtendedCommunityTransitiveEvpnType) ToJson() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalbgpExtendedCommunityTransitiveEvpnType) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + m.obj.setNil() + err := m.obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *bgpExtendedCommunityTransitiveEvpnType) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *bgpExtendedCommunityTransitiveEvpnType) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *bgpExtendedCommunityTransitiveEvpnType) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *bgpExtendedCommunityTransitiveEvpnType) Clone() (BgpExtendedCommunityTransitiveEvpnType, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewBgpExtendedCommunityTransitiveEvpnType() + data, err := proto.Marshal(obj.msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +func (obj *bgpExtendedCommunityTransitiveEvpnType) setNil() { + obj.routerMacSubtypeHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// BgpExtendedCommunityTransitiveEvpnType is the Transitive EVPN Extended Community is sent as type 0x06 . +type BgpExtendedCommunityTransitiveEvpnType interface { + Validation + // msg marshals BgpExtendedCommunityTransitiveEvpnType to protobuf object *otg.BgpExtendedCommunityTransitiveEvpnType + // and doesn't set defaults + msg() *otg.BgpExtendedCommunityTransitiveEvpnType + // setMsg unmarshals BgpExtendedCommunityTransitiveEvpnType from protobuf object *otg.BgpExtendedCommunityTransitiveEvpnType + // and doesn't set defaults + setMsg(*otg.BgpExtendedCommunityTransitiveEvpnType) BgpExtendedCommunityTransitiveEvpnType + // provides marshal interface + Marshal() marshalBgpExtendedCommunityTransitiveEvpnType + // provides unmarshal interface + Unmarshal() unMarshalBgpExtendedCommunityTransitiveEvpnType + // validate validates BgpExtendedCommunityTransitiveEvpnType + validate() error + // A stringer function + String() string + // Clones the object + Clone() (BgpExtendedCommunityTransitiveEvpnType, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Choice returns BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum, set in BgpExtendedCommunityTransitiveEvpnType + Choice() BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum + // setChoice assigns BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum provided by user to BgpExtendedCommunityTransitiveEvpnType + setChoice(value BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum) BgpExtendedCommunityTransitiveEvpnType + // HasChoice checks if Choice has been set in BgpExtendedCommunityTransitiveEvpnType + HasChoice() bool + // RouterMacSubtype returns BgpExtendedCommunityTransitiveEvpnTypeRouterMac, set in BgpExtendedCommunityTransitiveEvpnType. + // BgpExtendedCommunityTransitiveEvpnTypeRouterMac is the Router MAC EVPN Community is defined in RFC9135 and normally sent only for EVPN Type-2 Routes . It is sent with sub-type 0x03. + RouterMacSubtype() BgpExtendedCommunityTransitiveEvpnTypeRouterMac + // SetRouterMacSubtype assigns BgpExtendedCommunityTransitiveEvpnTypeRouterMac provided by user to BgpExtendedCommunityTransitiveEvpnType. + // BgpExtendedCommunityTransitiveEvpnTypeRouterMac is the Router MAC EVPN Community is defined in RFC9135 and normally sent only for EVPN Type-2 Routes . It is sent with sub-type 0x03. + SetRouterMacSubtype(value BgpExtendedCommunityTransitiveEvpnTypeRouterMac) BgpExtendedCommunityTransitiveEvpnType + // HasRouterMacSubtype checks if RouterMacSubtype has been set in BgpExtendedCommunityTransitiveEvpnType + HasRouterMacSubtype() bool + setNil() +} + +type BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum string + +// Enum of Choice on BgpExtendedCommunityTransitiveEvpnType +var BgpExtendedCommunityTransitiveEvpnTypeChoice = struct { + ROUTER_MAC_SUBTYPE BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum +}{ + ROUTER_MAC_SUBTYPE: BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum("router_mac_subtype"), +} + +func (obj *bgpExtendedCommunityTransitiveEvpnType) Choice() BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum { + return BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum(obj.obj.Choice.Enum().String()) +} + +// description is TBD +// Choice returns a string +func (obj *bgpExtendedCommunityTransitiveEvpnType) HasChoice() bool { + return obj.obj.Choice != nil +} + +func (obj *bgpExtendedCommunityTransitiveEvpnType) setChoice(value BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum) BgpExtendedCommunityTransitiveEvpnType { + intValue, ok := otg.BgpExtendedCommunityTransitiveEvpnType_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum", string(value))) + return obj + } + enumValue := otg.BgpExtendedCommunityTransitiveEvpnType_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.RouterMacSubtype = nil + obj.routerMacSubtypeHolder = nil + + if value == BgpExtendedCommunityTransitiveEvpnTypeChoice.ROUTER_MAC_SUBTYPE { + obj.obj.RouterMacSubtype = NewBgpExtendedCommunityTransitiveEvpnTypeRouterMac().msg() + } + + return obj +} + +// description is TBD +// RouterMacSubtype returns a BgpExtendedCommunityTransitiveEvpnTypeRouterMac +func (obj *bgpExtendedCommunityTransitiveEvpnType) RouterMacSubtype() BgpExtendedCommunityTransitiveEvpnTypeRouterMac { + if obj.obj.RouterMacSubtype == nil { + obj.setChoice(BgpExtendedCommunityTransitiveEvpnTypeChoice.ROUTER_MAC_SUBTYPE) + } + if obj.routerMacSubtypeHolder == nil { + obj.routerMacSubtypeHolder = &bgpExtendedCommunityTransitiveEvpnTypeRouterMac{obj: obj.obj.RouterMacSubtype} + } + return obj.routerMacSubtypeHolder +} + +// description is TBD +// RouterMacSubtype returns a BgpExtendedCommunityTransitiveEvpnTypeRouterMac +func (obj *bgpExtendedCommunityTransitiveEvpnType) HasRouterMacSubtype() bool { + return obj.obj.RouterMacSubtype != nil +} + +// description is TBD +// SetRouterMacSubtype sets the BgpExtendedCommunityTransitiveEvpnTypeRouterMac value in the BgpExtendedCommunityTransitiveEvpnType object +func (obj *bgpExtendedCommunityTransitiveEvpnType) SetRouterMacSubtype(value BgpExtendedCommunityTransitiveEvpnTypeRouterMac) BgpExtendedCommunityTransitiveEvpnType { + obj.setChoice(BgpExtendedCommunityTransitiveEvpnTypeChoice.ROUTER_MAC_SUBTYPE) + obj.routerMacSubtypeHolder = nil + obj.obj.RouterMacSubtype = value.msg() + + return obj +} + +func (obj *bgpExtendedCommunityTransitiveEvpnType) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.RouterMacSubtype != nil { + + obj.RouterMacSubtype().validateObj(vObj, set_default) + } + +} + +func (obj *bgpExtendedCommunityTransitiveEvpnType) setDefault() { + if obj.obj.Choice == nil { + obj.setChoice(BgpExtendedCommunityTransitiveEvpnTypeChoice.ROUTER_MAC_SUBTYPE) + + } + +} + +// ***** BgpExtendedCommunityNonTransitive2OctetAsType ***** +type bgpExtendedCommunityNonTransitive2OctetAsType struct { + validation + obj *otg.BgpExtendedCommunityNonTransitive2OctetAsType + marshaller marshalBgpExtendedCommunityNonTransitive2OctetAsType + unMarshaller unMarshalBgpExtendedCommunityNonTransitive2OctetAsType + linkBandwidthSubtypeHolder BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth +} + +func NewBgpExtendedCommunityNonTransitive2OctetAsType() BgpExtendedCommunityNonTransitive2OctetAsType { + obj := bgpExtendedCommunityNonTransitive2OctetAsType{obj: &otg.BgpExtendedCommunityNonTransitive2OctetAsType{}} + obj.setDefault() + return &obj +} + +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) msg() *otg.BgpExtendedCommunityNonTransitive2OctetAsType { + return obj.obj +} + +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) setMsg(msg *otg.BgpExtendedCommunityNonTransitive2OctetAsType) BgpExtendedCommunityNonTransitive2OctetAsType { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +type marshalbgpExtendedCommunityNonTransitive2OctetAsType struct { + obj *bgpExtendedCommunityNonTransitive2OctetAsType +} + +type marshalBgpExtendedCommunityNonTransitive2OctetAsType interface { + // ToProto marshals BgpExtendedCommunityNonTransitive2OctetAsType to protobuf object *otg.BgpExtendedCommunityNonTransitive2OctetAsType + ToProto() (*otg.BgpExtendedCommunityNonTransitive2OctetAsType, error) + // ToPbText marshals BgpExtendedCommunityNonTransitive2OctetAsType to protobuf text + ToPbText() (string, error) + // ToYaml marshals BgpExtendedCommunityNonTransitive2OctetAsType to YAML text + ToYaml() (string, error) + // ToJson marshals BgpExtendedCommunityNonTransitive2OctetAsType to JSON text + ToJson() (string, error) +} + +type unMarshalbgpExtendedCommunityNonTransitive2OctetAsType struct { + obj *bgpExtendedCommunityNonTransitive2OctetAsType +} + +type unMarshalBgpExtendedCommunityNonTransitive2OctetAsType interface { + // FromProto unmarshals BgpExtendedCommunityNonTransitive2OctetAsType from protobuf object *otg.BgpExtendedCommunityNonTransitive2OctetAsType + FromProto(msg *otg.BgpExtendedCommunityNonTransitive2OctetAsType) (BgpExtendedCommunityNonTransitive2OctetAsType, error) + // FromPbText unmarshals BgpExtendedCommunityNonTransitive2OctetAsType from protobuf text + FromPbText(value string) error + // FromYaml unmarshals BgpExtendedCommunityNonTransitive2OctetAsType from YAML text + FromYaml(value string) error + // FromJson unmarshals BgpExtendedCommunityNonTransitive2OctetAsType from JSON text + FromJson(value string) error +} + +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) Marshal() marshalBgpExtendedCommunityNonTransitive2OctetAsType { + if obj.marshaller == nil { + obj.marshaller = &marshalbgpExtendedCommunityNonTransitive2OctetAsType{obj: obj} + } + return obj.marshaller +} + +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) Unmarshal() unMarshalBgpExtendedCommunityNonTransitive2OctetAsType { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshalbgpExtendedCommunityNonTransitive2OctetAsType{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshalbgpExtendedCommunityNonTransitive2OctetAsType) ToProto() (*otg.BgpExtendedCommunityNonTransitive2OctetAsType, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshalbgpExtendedCommunityNonTransitive2OctetAsType) FromProto(msg *otg.BgpExtendedCommunityNonTransitive2OctetAsType) (BgpExtendedCommunityNonTransitive2OctetAsType, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshalbgpExtendedCommunityNonTransitive2OctetAsType) ToPbText() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (m *unMarshalbgpExtendedCommunityNonTransitive2OctetAsType) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), m.obj.msg()) + if retObj != nil { + return retObj + } + m.obj.setNil() + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (m *marshalbgpExtendedCommunityNonTransitive2OctetAsType) ToYaml() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalbgpExtendedCommunityNonTransitive2OctetAsType) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + m.obj.setNil() + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (m *marshalbgpExtendedCommunityNonTransitive2OctetAsType) ToJson() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalbgpExtendedCommunityNonTransitive2OctetAsType) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + m.obj.setNil() + err := m.obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) Clone() (BgpExtendedCommunityNonTransitive2OctetAsType, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewBgpExtendedCommunityNonTransitive2OctetAsType() + data, err := proto.Marshal(obj.msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) setNil() { + obj.linkBandwidthSubtypeHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// BgpExtendedCommunityNonTransitive2OctetAsType is the Non-Transitive Two-Octet AS-Specific Extended Community is sent as type 0x40. +type BgpExtendedCommunityNonTransitive2OctetAsType interface { + Validation + // msg marshals BgpExtendedCommunityNonTransitive2OctetAsType to protobuf object *otg.BgpExtendedCommunityNonTransitive2OctetAsType + // and doesn't set defaults + msg() *otg.BgpExtendedCommunityNonTransitive2OctetAsType + // setMsg unmarshals BgpExtendedCommunityNonTransitive2OctetAsType from protobuf object *otg.BgpExtendedCommunityNonTransitive2OctetAsType + // and doesn't set defaults + setMsg(*otg.BgpExtendedCommunityNonTransitive2OctetAsType) BgpExtendedCommunityNonTransitive2OctetAsType + // provides marshal interface + Marshal() marshalBgpExtendedCommunityNonTransitive2OctetAsType + // provides unmarshal interface + Unmarshal() unMarshalBgpExtendedCommunityNonTransitive2OctetAsType + // validate validates BgpExtendedCommunityNonTransitive2OctetAsType + validate() error + // A stringer function + String() string + // Clones the object + Clone() (BgpExtendedCommunityNonTransitive2OctetAsType, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Choice returns BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum, set in BgpExtendedCommunityNonTransitive2OctetAsType + Choice() BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum + // setChoice assigns BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum provided by user to BgpExtendedCommunityNonTransitive2OctetAsType + setChoice(value BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum) BgpExtendedCommunityNonTransitive2OctetAsType + // HasChoice checks if Choice has been set in BgpExtendedCommunityNonTransitive2OctetAsType + HasChoice() bool + // LinkBandwidthSubtype returns BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth, set in BgpExtendedCommunityNonTransitive2OctetAsType. + // BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth is the Link Bandwidth Extended Community attribute is defined in draft-ietf-idr-link-bandwidth. It is sent with sub-type as 0x04. + LinkBandwidthSubtype() BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + // SetLinkBandwidthSubtype assigns BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth provided by user to BgpExtendedCommunityNonTransitive2OctetAsType. + // BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth is the Link Bandwidth Extended Community attribute is defined in draft-ietf-idr-link-bandwidth. It is sent with sub-type as 0x04. + SetLinkBandwidthSubtype(value BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) BgpExtendedCommunityNonTransitive2OctetAsType + // HasLinkBandwidthSubtype checks if LinkBandwidthSubtype has been set in BgpExtendedCommunityNonTransitive2OctetAsType + HasLinkBandwidthSubtype() bool + setNil() +} + +type BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum string + +// Enum of Choice on BgpExtendedCommunityNonTransitive2OctetAsType +var BgpExtendedCommunityNonTransitive2OctetAsTypeChoice = struct { + LINK_BANDWIDTH_SUBTYPE BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum +}{ + LINK_BANDWIDTH_SUBTYPE: BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum("link_bandwidth_subtype"), +} + +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) Choice() BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum { + return BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum(obj.obj.Choice.Enum().String()) +} + +// description is TBD +// Choice returns a string +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) HasChoice() bool { + return obj.obj.Choice != nil +} + +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) setChoice(value BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum) BgpExtendedCommunityNonTransitive2OctetAsType { + intValue, ok := otg.BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum", string(value))) + return obj + } + enumValue := otg.BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.LinkBandwidthSubtype = nil + obj.linkBandwidthSubtypeHolder = nil + + if value == BgpExtendedCommunityNonTransitive2OctetAsTypeChoice.LINK_BANDWIDTH_SUBTYPE { + obj.obj.LinkBandwidthSubtype = NewBgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth().msg() + } + + return obj +} + +// description is TBD +// LinkBandwidthSubtype returns a BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) LinkBandwidthSubtype() BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth { + if obj.obj.LinkBandwidthSubtype == nil { + obj.setChoice(BgpExtendedCommunityNonTransitive2OctetAsTypeChoice.LINK_BANDWIDTH_SUBTYPE) + } + if obj.linkBandwidthSubtypeHolder == nil { + obj.linkBandwidthSubtypeHolder = &bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth{obj: obj.obj.LinkBandwidthSubtype} + } + return obj.linkBandwidthSubtypeHolder +} + +// description is TBD +// LinkBandwidthSubtype returns a BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) HasLinkBandwidthSubtype() bool { + return obj.obj.LinkBandwidthSubtype != nil +} + +// description is TBD +// SetLinkBandwidthSubtype sets the BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth value in the BgpExtendedCommunityNonTransitive2OctetAsType object +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) SetLinkBandwidthSubtype(value BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) BgpExtendedCommunityNonTransitive2OctetAsType { + obj.setChoice(BgpExtendedCommunityNonTransitive2OctetAsTypeChoice.LINK_BANDWIDTH_SUBTYPE) + obj.linkBandwidthSubtypeHolder = nil + obj.obj.LinkBandwidthSubtype = value.msg() + + return obj +} + +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.LinkBandwidthSubtype != nil { + + obj.LinkBandwidthSubtype().validateObj(vObj, set_default) + } + +} + +func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) setDefault() { + if obj.obj.Choice == nil { + obj.setChoice(BgpExtendedCommunityNonTransitive2OctetAsTypeChoice.LINK_BANDWIDTH_SUBTYPE) + + } + +} + +// ***** BgpExtendedCommunityCustomType ***** +type bgpExtendedCommunityCustomType struct { + validation + obj *otg.BgpExtendedCommunityCustomType + marshaller marshalBgpExtendedCommunityCustomType + unMarshaller unMarshalBgpExtendedCommunityCustomType +} + +func NewBgpExtendedCommunityCustomType() BgpExtendedCommunityCustomType { + obj := bgpExtendedCommunityCustomType{obj: &otg.BgpExtendedCommunityCustomType{}} + obj.setDefault() + return &obj +} + +func (obj *bgpExtendedCommunityCustomType) msg() *otg.BgpExtendedCommunityCustomType { + return obj.obj +} + +func (obj *bgpExtendedCommunityCustomType) setMsg(msg *otg.BgpExtendedCommunityCustomType) BgpExtendedCommunityCustomType { + + proto.Merge(obj.obj, msg) + return obj +} + +type marshalbgpExtendedCommunityCustomType struct { + obj *bgpExtendedCommunityCustomType +} + +type marshalBgpExtendedCommunityCustomType interface { + // ToProto marshals BgpExtendedCommunityCustomType to protobuf object *otg.BgpExtendedCommunityCustomType + ToProto() (*otg.BgpExtendedCommunityCustomType, error) + // ToPbText marshals BgpExtendedCommunityCustomType to protobuf text + ToPbText() (string, error) + // ToYaml marshals BgpExtendedCommunityCustomType to YAML text + ToYaml() (string, error) + // ToJson marshals BgpExtendedCommunityCustomType to JSON text + ToJson() (string, error) +} + +type unMarshalbgpExtendedCommunityCustomType struct { + obj *bgpExtendedCommunityCustomType +} + +type unMarshalBgpExtendedCommunityCustomType interface { + // FromProto unmarshals BgpExtendedCommunityCustomType from protobuf object *otg.BgpExtendedCommunityCustomType + FromProto(msg *otg.BgpExtendedCommunityCustomType) (BgpExtendedCommunityCustomType, error) + // FromPbText unmarshals BgpExtendedCommunityCustomType from protobuf text + FromPbText(value string) error + // FromYaml unmarshals BgpExtendedCommunityCustomType from YAML text + FromYaml(value string) error + // FromJson unmarshals BgpExtendedCommunityCustomType from JSON text + FromJson(value string) error +} + +func (obj *bgpExtendedCommunityCustomType) Marshal() marshalBgpExtendedCommunityCustomType { + if obj.marshaller == nil { + obj.marshaller = &marshalbgpExtendedCommunityCustomType{obj: obj} + } + return obj.marshaller +} + +func (obj *bgpExtendedCommunityCustomType) Unmarshal() unMarshalBgpExtendedCommunityCustomType { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshalbgpExtendedCommunityCustomType{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshalbgpExtendedCommunityCustomType) ToProto() (*otg.BgpExtendedCommunityCustomType, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshalbgpExtendedCommunityCustomType) FromProto(msg *otg.BgpExtendedCommunityCustomType) (BgpExtendedCommunityCustomType, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshalbgpExtendedCommunityCustomType) ToPbText() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (m *unMarshalbgpExtendedCommunityCustomType) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), m.obj.msg()) + if retObj != nil { + return retObj + } + + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (m *marshalbgpExtendedCommunityCustomType) ToYaml() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalbgpExtendedCommunityCustomType) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (m *marshalbgpExtendedCommunityCustomType) ToJson() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalbgpExtendedCommunityCustomType) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := m.obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *bgpExtendedCommunityCustomType) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *bgpExtendedCommunityCustomType) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *bgpExtendedCommunityCustomType) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *bgpExtendedCommunityCustomType) Clone() (BgpExtendedCommunityCustomType, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewBgpExtendedCommunityCustomType() + data, err := proto.Marshal(obj.msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// BgpExtendedCommunityCustomType is add a custom Extended Community with a combination of types , sub-types and values not explicitly specified above or not defined yet. +type BgpExtendedCommunityCustomType interface { + Validation + // msg marshals BgpExtendedCommunityCustomType to protobuf object *otg.BgpExtendedCommunityCustomType + // and doesn't set defaults + msg() *otg.BgpExtendedCommunityCustomType + // setMsg unmarshals BgpExtendedCommunityCustomType from protobuf object *otg.BgpExtendedCommunityCustomType + // and doesn't set defaults + setMsg(*otg.BgpExtendedCommunityCustomType) BgpExtendedCommunityCustomType + // provides marshal interface + Marshal() marshalBgpExtendedCommunityCustomType + // provides unmarshal interface + Unmarshal() unMarshalBgpExtendedCommunityCustomType + // validate validates BgpExtendedCommunityCustomType + validate() error + // A stringer function + String() string + // Clones the object + Clone() (BgpExtendedCommunityCustomType, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // CommunityType returns string, set in BgpExtendedCommunityCustomType. + CommunityType() string + // SetCommunityType assigns string provided by user to BgpExtendedCommunityCustomType + SetCommunityType(value string) BgpExtendedCommunityCustomType + // HasCommunityType checks if CommunityType has been set in BgpExtendedCommunityCustomType + HasCommunityType() bool + // CommunitySubtype returns string, set in BgpExtendedCommunityCustomType. + CommunitySubtype() string + // SetCommunitySubtype assigns string provided by user to BgpExtendedCommunityCustomType + SetCommunitySubtype(value string) BgpExtendedCommunityCustomType + // HasCommunitySubtype checks if CommunitySubtype has been set in BgpExtendedCommunityCustomType + HasCommunitySubtype() bool + // Value returns string, set in BgpExtendedCommunityCustomType. + Value() string + // SetValue assigns string provided by user to BgpExtendedCommunityCustomType + SetValue(value string) BgpExtendedCommunityCustomType + // HasValue checks if Value has been set in BgpExtendedCommunityCustomType + HasValue() bool +} + +// The type to be set in the Extended Community attribute. Accepts hexadecimal input upto ff . +// CommunityType returns a string +func (obj *bgpExtendedCommunityCustomType) CommunityType() string { + + return *obj.obj.CommunityType + +} + +// The type to be set in the Extended Community attribute. Accepts hexadecimal input upto ff . +// CommunityType returns a string +func (obj *bgpExtendedCommunityCustomType) HasCommunityType() bool { + return obj.obj.CommunityType != nil +} + +// The type to be set in the Extended Community attribute. Accepts hexadecimal input upto ff . +// SetCommunityType sets the string value in the BgpExtendedCommunityCustomType object +func (obj *bgpExtendedCommunityCustomType) SetCommunityType(value string) BgpExtendedCommunityCustomType { + + obj.obj.CommunityType = &value + return obj +} + +// The sub-type to be set in the Extended Community attribute. For certain types with no sub-type this byte can also be used as part of an extended value field. Accepts hexadecimal input upto ff. +// CommunitySubtype returns a string +func (obj *bgpExtendedCommunityCustomType) CommunitySubtype() string { + + return *obj.obj.CommunitySubtype + +} + +// The sub-type to be set in the Extended Community attribute. For certain types with no sub-type this byte can also be used as part of an extended value field. Accepts hexadecimal input upto ff. +// CommunitySubtype returns a string +func (obj *bgpExtendedCommunityCustomType) HasCommunitySubtype() bool { + return obj.obj.CommunitySubtype != nil +} + +// The sub-type to be set in the Extended Community attribute. For certain types with no sub-type this byte can also be used as part of an extended value field. Accepts hexadecimal input upto ff. +// SetCommunitySubtype sets the string value in the BgpExtendedCommunityCustomType object +func (obj *bgpExtendedCommunityCustomType) SetCommunitySubtype(value string) BgpExtendedCommunityCustomType { + + obj.obj.CommunitySubtype = &value + return obj +} + +// 6 byte hex value to be carried in the last 6 bytes of the Extended Community. Accepts hexadecimal input upto ffffffffffff. +// Value returns a string +func (obj *bgpExtendedCommunityCustomType) Value() string { + + return *obj.obj.Value + +} + +// 6 byte hex value to be carried in the last 6 bytes of the Extended Community. Accepts hexadecimal input upto ffffffffffff. +// Value returns a string +func (obj *bgpExtendedCommunityCustomType) HasValue() bool { + return obj.obj.Value != nil +} + +// 6 byte hex value to be carried in the last 6 bytes of the Extended Community. Accepts hexadecimal input upto ffffffffffff. +// SetValue sets the string value in the BgpExtendedCommunityCustomType object +func (obj *bgpExtendedCommunityCustomType) SetValue(value string) BgpExtendedCommunityCustomType { + + obj.obj.Value = &value + return obj +} + +func (obj *bgpExtendedCommunityCustomType) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.CommunityType != nil { + + if len(*obj.obj.CommunityType) > 2 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf( + "None <= length of BgpExtendedCommunityCustomType.CommunityType <= 2 but Got %d", + len(*obj.obj.CommunityType))) + } + + } + + if obj.obj.CommunitySubtype != nil { + + if len(*obj.obj.CommunitySubtype) > 2 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf( + "None <= length of BgpExtendedCommunityCustomType.CommunitySubtype <= 2 but Got %d", + len(*obj.obj.CommunitySubtype))) + } + + } + + if obj.obj.Value != nil { + + if len(*obj.obj.Value) > 12 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf( + "None <= length of BgpExtendedCommunityCustomType.Value <= 12 but Got %d", + len(*obj.obj.Value))) + } + + } + +} + +func (obj *bgpExtendedCommunityCustomType) setDefault() { + if obj.obj.CommunityType == nil { + obj.SetCommunityType("00") + } + if obj.obj.CommunitySubtype == nil { + obj.SetCommunitySubtype("00") + } + if obj.obj.Value == nil { + obj.SetValue("000000000000") + } + +} + +// ***** BgpSrteRemoteEndpointSubTlv ***** +type bgpSrteRemoteEndpointSubTlv struct { + validation + obj *otg.BgpSrteRemoteEndpointSubTlv + marshaller marshalBgpSrteRemoteEndpointSubTlv + unMarshaller unMarshalBgpSrteRemoteEndpointSubTlv +} + +func NewBgpSrteRemoteEndpointSubTlv() BgpSrteRemoteEndpointSubTlv { + obj := bgpSrteRemoteEndpointSubTlv{obj: &otg.BgpSrteRemoteEndpointSubTlv{}} + obj.setDefault() + return &obj +} + +func (obj *bgpSrteRemoteEndpointSubTlv) msg() *otg.BgpSrteRemoteEndpointSubTlv { + return obj.obj +} + +func (obj *bgpSrteRemoteEndpointSubTlv) setMsg(msg *otg.BgpSrteRemoteEndpointSubTlv) BgpSrteRemoteEndpointSubTlv { + + proto.Merge(obj.obj, msg) + return obj +} + +type marshalbgpSrteRemoteEndpointSubTlv struct { + obj *bgpSrteRemoteEndpointSubTlv +} + +type marshalBgpSrteRemoteEndpointSubTlv interface { + // ToProto marshals BgpSrteRemoteEndpointSubTlv to protobuf object *otg.BgpSrteRemoteEndpointSubTlv + ToProto() (*otg.BgpSrteRemoteEndpointSubTlv, error) + // ToPbText marshals BgpSrteRemoteEndpointSubTlv to protobuf text + ToPbText() (string, error) + // ToYaml marshals BgpSrteRemoteEndpointSubTlv to YAML text + ToYaml() (string, error) + // ToJson marshals BgpSrteRemoteEndpointSubTlv to JSON text + ToJson() (string, error) +} + +type unMarshalbgpSrteRemoteEndpointSubTlv struct { + obj *bgpSrteRemoteEndpointSubTlv +} + +type unMarshalBgpSrteRemoteEndpointSubTlv interface { + // FromProto unmarshals BgpSrteRemoteEndpointSubTlv from protobuf object *otg.BgpSrteRemoteEndpointSubTlv + FromProto(msg *otg.BgpSrteRemoteEndpointSubTlv) (BgpSrteRemoteEndpointSubTlv, error) + // FromPbText unmarshals BgpSrteRemoteEndpointSubTlv from protobuf text + FromPbText(value string) error + // FromYaml unmarshals BgpSrteRemoteEndpointSubTlv from YAML text + FromYaml(value string) error + // FromJson unmarshals BgpSrteRemoteEndpointSubTlv from JSON text + FromJson(value string) error +} + +func (obj *bgpSrteRemoteEndpointSubTlv) Marshal() marshalBgpSrteRemoteEndpointSubTlv { + if obj.marshaller == nil { + obj.marshaller = &marshalbgpSrteRemoteEndpointSubTlv{obj: obj} + } + return obj.marshaller +} + +func (obj *bgpSrteRemoteEndpointSubTlv) Unmarshal() unMarshalBgpSrteRemoteEndpointSubTlv { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshalbgpSrteRemoteEndpointSubTlv{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshalbgpSrteRemoteEndpointSubTlv) ToProto() (*otg.BgpSrteRemoteEndpointSubTlv, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshalbgpSrteRemoteEndpointSubTlv) FromProto(msg *otg.BgpSrteRemoteEndpointSubTlv) (BgpSrteRemoteEndpointSubTlv, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshalbgpSrteRemoteEndpointSubTlv) ToPbText() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (m *unMarshalbgpSrteRemoteEndpointSubTlv) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), m.obj.msg()) + if retObj != nil { + return retObj + } + + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (m *marshalbgpSrteRemoteEndpointSubTlv) ToYaml() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalbgpSrteRemoteEndpointSubTlv) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (m *marshalbgpSrteRemoteEndpointSubTlv) ToJson() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalbgpSrteRemoteEndpointSubTlv) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := m.obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *bgpSrteRemoteEndpointSubTlv) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *bgpSrteRemoteEndpointSubTlv) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *bgpSrteRemoteEndpointSubTlv) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *bgpSrteRemoteEndpointSubTlv) Clone() (BgpSrteRemoteEndpointSubTlv, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewBgpSrteRemoteEndpointSubTlv() + data, err := proto.Marshal(obj.msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// BgpSrteRemoteEndpointSubTlv is configuration for the BGP remote endpoint sub TLV. +type BgpSrteRemoteEndpointSubTlv interface { + Validation + // msg marshals BgpSrteRemoteEndpointSubTlv to protobuf object *otg.BgpSrteRemoteEndpointSubTlv + // and doesn't set defaults + msg() *otg.BgpSrteRemoteEndpointSubTlv + // setMsg unmarshals BgpSrteRemoteEndpointSubTlv from protobuf object *otg.BgpSrteRemoteEndpointSubTlv + // and doesn't set defaults + setMsg(*otg.BgpSrteRemoteEndpointSubTlv) BgpSrteRemoteEndpointSubTlv + // provides marshal interface + Marshal() marshalBgpSrteRemoteEndpointSubTlv + // provides unmarshal interface + Unmarshal() unMarshalBgpSrteRemoteEndpointSubTlv + // validate validates BgpSrteRemoteEndpointSubTlv + validate() error + // A stringer function + String() string + // Clones the object + Clone() (BgpSrteRemoteEndpointSubTlv, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // AsNumber returns uint32, set in BgpSrteRemoteEndpointSubTlv. + AsNumber() uint32 + // SetAsNumber assigns uint32 provided by user to BgpSrteRemoteEndpointSubTlv + SetAsNumber(value uint32) BgpSrteRemoteEndpointSubTlv + // HasAsNumber checks if AsNumber has been set in BgpSrteRemoteEndpointSubTlv + HasAsNumber() bool + // AddressFamily returns BgpSrteRemoteEndpointSubTlvAddressFamilyEnum, set in BgpSrteRemoteEndpointSubTlv + AddressFamily() BgpSrteRemoteEndpointSubTlvAddressFamilyEnum + // SetAddressFamily assigns BgpSrteRemoteEndpointSubTlvAddressFamilyEnum provided by user to BgpSrteRemoteEndpointSubTlv + SetAddressFamily(value BgpSrteRemoteEndpointSubTlvAddressFamilyEnum) BgpSrteRemoteEndpointSubTlv + // HasAddressFamily checks if AddressFamily has been set in BgpSrteRemoteEndpointSubTlv + HasAddressFamily() bool + // Ipv4Address returns string, set in BgpSrteRemoteEndpointSubTlv. + Ipv4Address() string + // SetIpv4Address assigns string provided by user to BgpSrteRemoteEndpointSubTlv + SetIpv4Address(value string) BgpSrteRemoteEndpointSubTlv + // HasIpv4Address checks if Ipv4Address has been set in BgpSrteRemoteEndpointSubTlv + HasIpv4Address() bool + // Ipv6Address returns string, set in BgpSrteRemoteEndpointSubTlv. + Ipv6Address() string + // SetIpv6Address assigns string provided by user to BgpSrteRemoteEndpointSubTlv + SetIpv6Address(value string) BgpSrteRemoteEndpointSubTlv + // HasIpv6Address checks if Ipv6Address has been set in BgpSrteRemoteEndpointSubTlv + HasIpv6Address() bool +} + +// Autonomous system (AS) number +// AsNumber returns a uint32 +func (obj *bgpSrteRemoteEndpointSubTlv) AsNumber() uint32 { + + return *obj.obj.AsNumber + +} + +// Autonomous system (AS) number +// AsNumber returns a uint32 +func (obj *bgpSrteRemoteEndpointSubTlv) HasAsNumber() bool { + return obj.obj.AsNumber != nil +} + +// Autonomous system (AS) number +// SetAsNumber sets the uint32 value in the BgpSrteRemoteEndpointSubTlv object +func (obj *bgpSrteRemoteEndpointSubTlv) SetAsNumber(value uint32) BgpSrteRemoteEndpointSubTlv { + + obj.obj.AsNumber = &value + return obj +} + +type BgpSrteRemoteEndpointSubTlvAddressFamilyEnum string + +// Enum of AddressFamily on BgpSrteRemoteEndpointSubTlv +var BgpSrteRemoteEndpointSubTlvAddressFamily = struct { + IPV4 BgpSrteRemoteEndpointSubTlvAddressFamilyEnum + IPV6 BgpSrteRemoteEndpointSubTlvAddressFamilyEnum +}{ + IPV4: BgpSrteRemoteEndpointSubTlvAddressFamilyEnum("ipv4"), + IPV6: BgpSrteRemoteEndpointSubTlvAddressFamilyEnum("ipv6"), +} + +func (obj *bgpSrteRemoteEndpointSubTlv) AddressFamily() BgpSrteRemoteEndpointSubTlvAddressFamilyEnum { + return BgpSrteRemoteEndpointSubTlvAddressFamilyEnum(obj.obj.AddressFamily.Enum().String()) +} + +// Determines the address type +// AddressFamily returns a string +func (obj *bgpSrteRemoteEndpointSubTlv) HasAddressFamily() bool { + return obj.obj.AddressFamily != nil +} + +func (obj *bgpSrteRemoteEndpointSubTlv) SetAddressFamily(value BgpSrteRemoteEndpointSubTlvAddressFamilyEnum) BgpSrteRemoteEndpointSubTlv { + intValue, ok := otg.BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on BgpSrteRemoteEndpointSubTlvAddressFamilyEnum", string(value))) + return obj + } + enumValue := otg.BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum(intValue) + obj.obj.AddressFamily = &enumValue + + return obj +} + +// The IPv4 address of the Remote Endpoint. +// Ipv4Address returns a string +func (obj *bgpSrteRemoteEndpointSubTlv) Ipv4Address() string { + + return *obj.obj.Ipv4Address + +} + +// The IPv4 address of the Remote Endpoint. +// Ipv4Address returns a string +func (obj *bgpSrteRemoteEndpointSubTlv) HasIpv4Address() bool { + return obj.obj.Ipv4Address != nil +} + +// The IPv4 address of the Remote Endpoint. +// SetIpv4Address sets the string value in the BgpSrteRemoteEndpointSubTlv object +func (obj *bgpSrteRemoteEndpointSubTlv) SetIpv4Address(value string) BgpSrteRemoteEndpointSubTlv { + + obj.obj.Ipv4Address = &value + return obj +} + +// The IPv6 address of the Remote Endpoint. +// Ipv6Address returns a string +func (obj *bgpSrteRemoteEndpointSubTlv) Ipv6Address() string { + + return *obj.obj.Ipv6Address + +} + +// The IPv6 address of the Remote Endpoint. +// Ipv6Address returns a string +func (obj *bgpSrteRemoteEndpointSubTlv) HasIpv6Address() bool { + return obj.obj.Ipv6Address != nil +} + +// The IPv6 address of the Remote Endpoint. +// SetIpv6Address sets the string value in the BgpSrteRemoteEndpointSubTlv object +func (obj *bgpSrteRemoteEndpointSubTlv) SetIpv6Address(value string) BgpSrteRemoteEndpointSubTlv { + + obj.obj.Ipv6Address = &value + return obj +} + +func (obj *bgpSrteRemoteEndpointSubTlv) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.Ipv4Address != nil { + + err := obj.validateIpv4(obj.Ipv4Address()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteRemoteEndpointSubTlv.Ipv4Address")) + } + + } + + if obj.obj.Ipv6Address != nil { + + err := obj.validateIpv6(obj.Ipv6Address()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteRemoteEndpointSubTlv.Ipv6Address")) + } + + } + +} + +func (obj *bgpSrteRemoteEndpointSubTlv) setDefault() { + if obj.obj.AsNumber == nil { + obj.SetAsNumber(0) + } + if obj.obj.AddressFamily == nil { + obj.SetAddressFamily(BgpSrteRemoteEndpointSubTlvAddressFamily.IPV4) + + } + if obj.obj.Ipv4Address == nil { + obj.SetIpv4Address("0.0.0.0") + } + if obj.obj.Ipv6Address == nil { + obj.SetIpv6Address("::0") + } + +} + +// ***** BgpSrteColorSubTlv ***** +type bgpSrteColorSubTlv struct { + validation + obj *otg.BgpSrteColorSubTlv + marshaller marshalBgpSrteColorSubTlv + unMarshaller unMarshalBgpSrteColorSubTlv +} + +func NewBgpSrteColorSubTlv() BgpSrteColorSubTlv { + obj := bgpSrteColorSubTlv{obj: &otg.BgpSrteColorSubTlv{}} + obj.setDefault() + return &obj +} + +func (obj *bgpSrteColorSubTlv) msg() *otg.BgpSrteColorSubTlv { + return obj.obj +} + +func (obj *bgpSrteColorSubTlv) setMsg(msg *otg.BgpSrteColorSubTlv) BgpSrteColorSubTlv { + + proto.Merge(obj.obj, msg) + return obj +} + +type marshalbgpSrteColorSubTlv struct { + obj *bgpSrteColorSubTlv +} + +type marshalBgpSrteColorSubTlv interface { + // ToProto marshals BgpSrteColorSubTlv to protobuf object *otg.BgpSrteColorSubTlv + ToProto() (*otg.BgpSrteColorSubTlv, error) + // ToPbText marshals BgpSrteColorSubTlv to protobuf text + ToPbText() (string, error) + // ToYaml marshals BgpSrteColorSubTlv to YAML text + ToYaml() (string, error) + // ToJson marshals BgpSrteColorSubTlv to JSON text + ToJson() (string, error) +} + +type unMarshalbgpSrteColorSubTlv struct { + obj *bgpSrteColorSubTlv +} + +type unMarshalBgpSrteColorSubTlv interface { + // FromProto unmarshals BgpSrteColorSubTlv from protobuf object *otg.BgpSrteColorSubTlv + FromProto(msg *otg.BgpSrteColorSubTlv) (BgpSrteColorSubTlv, error) + // FromPbText unmarshals BgpSrteColorSubTlv from protobuf text + FromPbText(value string) error + // FromYaml unmarshals BgpSrteColorSubTlv from YAML text + FromYaml(value string) error + // FromJson unmarshals BgpSrteColorSubTlv from JSON text + FromJson(value string) error +} + +func (obj *bgpSrteColorSubTlv) Marshal() marshalBgpSrteColorSubTlv { + if obj.marshaller == nil { + obj.marshaller = &marshalbgpSrteColorSubTlv{obj: obj} + } + return obj.marshaller +} + +func (obj *bgpSrteColorSubTlv) Unmarshal() unMarshalBgpSrteColorSubTlv { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshalbgpSrteColorSubTlv{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshalbgpSrteColorSubTlv) ToProto() (*otg.BgpSrteColorSubTlv, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshalbgpSrteColorSubTlv) FromProto(msg *otg.BgpSrteColorSubTlv) (BgpSrteColorSubTlv, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshalbgpSrteColorSubTlv) ToPbText() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (m *unMarshalbgpSrteColorSubTlv) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), m.obj.msg()) + if retObj != nil { + return retObj + } + + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (m *marshalbgpSrteColorSubTlv) ToYaml() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalbgpSrteColorSubTlv) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (m *marshalbgpSrteColorSubTlv) ToJson() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalbgpSrteColorSubTlv) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := m.obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *bgpSrteColorSubTlv) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *bgpSrteColorSubTlv) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *bgpSrteColorSubTlv) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *bgpSrteColorSubTlv) Clone() (BgpSrteColorSubTlv, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewBgpSrteColorSubTlv() + data, err := proto.Marshal(obj.msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// BgpSrteColorSubTlv is configuration for the Policy Color attribute sub-TLV. The Color sub-TLV MAY be used as a way to "color" the corresponding Tunnel TLV. The Value field of the sub-TLV is eight octets long and consists of a Color Extended Community. First two octets of its Value field are 0x030b as type and subtype of extended community. Remaining six octets are are exposed to configure. +type BgpSrteColorSubTlv interface { + Validation + // msg marshals BgpSrteColorSubTlv to protobuf object *otg.BgpSrteColorSubTlv + // and doesn't set defaults + msg() *otg.BgpSrteColorSubTlv + // setMsg unmarshals BgpSrteColorSubTlv from protobuf object *otg.BgpSrteColorSubTlv + // and doesn't set defaults + setMsg(*otg.BgpSrteColorSubTlv) BgpSrteColorSubTlv + // provides marshal interface + Marshal() marshalBgpSrteColorSubTlv + // provides unmarshal interface + Unmarshal() unMarshalBgpSrteColorSubTlv + // validate validates BgpSrteColorSubTlv + validate() error + // A stringer function + String() string + // Clones the object + Clone() (BgpSrteColorSubTlv, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Color returns string, set in BgpSrteColorSubTlv. + Color() string + // SetColor assigns string provided by user to BgpSrteColorSubTlv + SetColor(value string) BgpSrteColorSubTlv + // HasColor checks if Color has been set in BgpSrteColorSubTlv + HasColor() bool +} + +// Six octet values. Example: 000000000064 for color value 100. +// Color returns a string +func (obj *bgpSrteColorSubTlv) Color() string { + + return *obj.obj.Color + +} + +// Six octet values. Example: 000000000064 for color value 100. +// Color returns a string +func (obj *bgpSrteColorSubTlv) HasColor() bool { + return obj.obj.Color != nil +} + +// Six octet values. Example: 000000000064 for color value 100. +// SetColor sets the string value in the BgpSrteColorSubTlv object +func (obj *bgpSrteColorSubTlv) SetColor(value string) BgpSrteColorSubTlv { + + obj.obj.Color = &value + return obj +} + +func (obj *bgpSrteColorSubTlv) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.Color != nil { + + err := obj.validateHex(obj.Color()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteColorSubTlv.Color")) + } + + } + +} + +func (obj *bgpSrteColorSubTlv) setDefault() { + +} + +// ***** BgpSrteBindingSubTlv ***** +type bgpSrteBindingSubTlv struct { + validation + obj *otg.BgpSrteBindingSubTlv + marshaller marshalBgpSrteBindingSubTlv + unMarshaller unMarshalBgpSrteBindingSubTlv +} + +func NewBgpSrteBindingSubTlv() BgpSrteBindingSubTlv { + obj := bgpSrteBindingSubTlv{obj: &otg.BgpSrteBindingSubTlv{}} + obj.setDefault() + return &obj +} + +func (obj *bgpSrteBindingSubTlv) msg() *otg.BgpSrteBindingSubTlv { + return obj.obj +} + +func (obj *bgpSrteBindingSubTlv) setMsg(msg *otg.BgpSrteBindingSubTlv) BgpSrteBindingSubTlv { + + proto.Merge(obj.obj, msg) + return obj +} + +type marshalbgpSrteBindingSubTlv struct { + obj *bgpSrteBindingSubTlv +} + +type marshalBgpSrteBindingSubTlv interface { + // ToProto marshals BgpSrteBindingSubTlv to protobuf object *otg.BgpSrteBindingSubTlv + ToProto() (*otg.BgpSrteBindingSubTlv, error) + // ToPbText marshals BgpSrteBindingSubTlv to protobuf text + ToPbText() (string, error) + // ToYaml marshals BgpSrteBindingSubTlv to YAML text + ToYaml() (string, error) + // ToJson marshals BgpSrteBindingSubTlv to JSON text + ToJson() (string, error) +} + +type unMarshalbgpSrteBindingSubTlv struct { + obj *bgpSrteBindingSubTlv +} + +type unMarshalBgpSrteBindingSubTlv interface { + // FromProto unmarshals BgpSrteBindingSubTlv from protobuf object *otg.BgpSrteBindingSubTlv + FromProto(msg *otg.BgpSrteBindingSubTlv) (BgpSrteBindingSubTlv, error) + // FromPbText unmarshals BgpSrteBindingSubTlv from protobuf text + FromPbText(value string) error + // FromYaml unmarshals BgpSrteBindingSubTlv from YAML text + FromYaml(value string) error + // FromJson unmarshals BgpSrteBindingSubTlv from JSON text + FromJson(value string) error +} + +func (obj *bgpSrteBindingSubTlv) Marshal() marshalBgpSrteBindingSubTlv { + if obj.marshaller == nil { + obj.marshaller = &marshalbgpSrteBindingSubTlv{obj: obj} + } + return obj.marshaller +} + +func (obj *bgpSrteBindingSubTlv) Unmarshal() unMarshalBgpSrteBindingSubTlv { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshalbgpSrteBindingSubTlv{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshalbgpSrteBindingSubTlv) ToProto() (*otg.BgpSrteBindingSubTlv, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshalbgpSrteBindingSubTlv) FromProto(msg *otg.BgpSrteBindingSubTlv) (BgpSrteBindingSubTlv, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshalbgpSrteBindingSubTlv) ToPbText() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (m *unMarshalbgpSrteBindingSubTlv) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), m.obj.msg()) + if retObj != nil { + return retObj + } + + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (m *marshalbgpSrteBindingSubTlv) ToYaml() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalbgpSrteBindingSubTlv) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (m *marshalbgpSrteBindingSubTlv) ToJson() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalbgpSrteBindingSubTlv) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := m.obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *bgpSrteBindingSubTlv) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *bgpSrteBindingSubTlv) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *bgpSrteBindingSubTlv) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *bgpSrteBindingSubTlv) Clone() (BgpSrteBindingSubTlv, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewBgpSrteBindingSubTlv() + data, err := proto.Marshal(obj.msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// BgpSrteBindingSubTlv is configuration for the binding SID sub-TLV. This is used to signal the binding SID related information of the SR Policy candidate path. +type BgpSrteBindingSubTlv interface { + Validation + // msg marshals BgpSrteBindingSubTlv to protobuf object *otg.BgpSrteBindingSubTlv + // and doesn't set defaults + msg() *otg.BgpSrteBindingSubTlv + // setMsg unmarshals BgpSrteBindingSubTlv from protobuf object *otg.BgpSrteBindingSubTlv + // and doesn't set defaults + setMsg(*otg.BgpSrteBindingSubTlv) BgpSrteBindingSubTlv + // provides marshal interface + Marshal() marshalBgpSrteBindingSubTlv + // provides unmarshal interface + Unmarshal() unMarshalBgpSrteBindingSubTlv + // validate validates BgpSrteBindingSubTlv + validate() error + // A stringer function + String() string + // Clones the object + Clone() (BgpSrteBindingSubTlv, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // BindingSidType returns BgpSrteBindingSubTlvBindingSidTypeEnum, set in BgpSrteBindingSubTlv + BindingSidType() BgpSrteBindingSubTlvBindingSidTypeEnum + // SetBindingSidType assigns BgpSrteBindingSubTlvBindingSidTypeEnum provided by user to BgpSrteBindingSubTlv + SetBindingSidType(value BgpSrteBindingSubTlvBindingSidTypeEnum) BgpSrteBindingSubTlv + // HasBindingSidType checks if BindingSidType has been set in BgpSrteBindingSubTlv + HasBindingSidType() bool + // FourOctetSid returns uint32, set in BgpSrteBindingSubTlv. + FourOctetSid() uint32 + // SetFourOctetSid assigns uint32 provided by user to BgpSrteBindingSubTlv + SetFourOctetSid(value uint32) BgpSrteBindingSubTlv + // HasFourOctetSid checks if FourOctetSid has been set in BgpSrteBindingSubTlv + HasFourOctetSid() bool + // Ipv6Sid returns string, set in BgpSrteBindingSubTlv. + Ipv6Sid() string + // SetIpv6Sid assigns string provided by user to BgpSrteBindingSubTlv + SetIpv6Sid(value string) BgpSrteBindingSubTlv + // HasIpv6Sid checks if Ipv6Sid has been set in BgpSrteBindingSubTlv + HasIpv6Sid() bool + // SFlag returns bool, set in BgpSrteBindingSubTlv. + SFlag() bool + // SetSFlag assigns bool provided by user to BgpSrteBindingSubTlv + SetSFlag(value bool) BgpSrteBindingSubTlv + // HasSFlag checks if SFlag has been set in BgpSrteBindingSubTlv + HasSFlag() bool + // IFlag returns bool, set in BgpSrteBindingSubTlv. + IFlag() bool + // SetIFlag assigns bool provided by user to BgpSrteBindingSubTlv + SetIFlag(value bool) BgpSrteBindingSubTlv + // HasIFlag checks if IFlag has been set in BgpSrteBindingSubTlv + HasIFlag() bool +} + +type BgpSrteBindingSubTlvBindingSidTypeEnum string + +// Enum of BindingSidType on BgpSrteBindingSubTlv +var BgpSrteBindingSubTlvBindingSidType = struct { + NO_BINDING BgpSrteBindingSubTlvBindingSidTypeEnum + FOUR_OCTET_SID BgpSrteBindingSubTlvBindingSidTypeEnum + IPV6_SID BgpSrteBindingSubTlvBindingSidTypeEnum +}{ + NO_BINDING: BgpSrteBindingSubTlvBindingSidTypeEnum("no_binding"), + FOUR_OCTET_SID: BgpSrteBindingSubTlvBindingSidTypeEnum("four_octet_sid"), + IPV6_SID: BgpSrteBindingSubTlvBindingSidTypeEnum("ipv6_sid"), +} + +func (obj *bgpSrteBindingSubTlv) BindingSidType() BgpSrteBindingSubTlvBindingSidTypeEnum { + return BgpSrteBindingSubTlvBindingSidTypeEnum(obj.obj.BindingSidType.Enum().String()) +} + +// Type of the binding SID. Supported types are "No Binding SID" or "Four Octets Sid" or "IPv6 SID". +// BindingSidType returns a string +func (obj *bgpSrteBindingSubTlv) HasBindingSidType() bool { + return obj.obj.BindingSidType != nil +} + +func (obj *bgpSrteBindingSubTlv) SetBindingSidType(value BgpSrteBindingSubTlvBindingSidTypeEnum) BgpSrteBindingSubTlv { + intValue, ok := otg.BgpSrteBindingSubTlv_BindingSidType_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on BgpSrteBindingSubTlvBindingSidTypeEnum", string(value))) + return obj + } + enumValue := otg.BgpSrteBindingSubTlv_BindingSidType_Enum(intValue) + obj.obj.BindingSidType = &enumValue + + return obj +} + +// Binding SID is encoded in 4 octets. +// FourOctetSid returns a uint32 +func (obj *bgpSrteBindingSubTlv) FourOctetSid() uint32 { + + return *obj.obj.FourOctetSid + +} + +// Binding SID is encoded in 4 octets. +// FourOctetSid returns a uint32 +func (obj *bgpSrteBindingSubTlv) HasFourOctetSid() bool { + return obj.obj.FourOctetSid != nil +} + +// Binding SID is encoded in 4 octets. +// SetFourOctetSid sets the uint32 value in the BgpSrteBindingSubTlv object +func (obj *bgpSrteBindingSubTlv) SetFourOctetSid(value uint32) BgpSrteBindingSubTlv { + + obj.obj.FourOctetSid = &value + return obj +} + +// IPv6 SID value. +// Ipv6Sid returns a string +func (obj *bgpSrteBindingSubTlv) Ipv6Sid() string { + + return *obj.obj.Ipv6Sid + +} + +// IPv6 SID value. +// Ipv6Sid returns a string +func (obj *bgpSrteBindingSubTlv) HasIpv6Sid() bool { + return obj.obj.Ipv6Sid != nil +} + +// IPv6 SID value. +// SetIpv6Sid sets the string value in the BgpSrteBindingSubTlv object +func (obj *bgpSrteBindingSubTlv) SetIpv6Sid(value string) BgpSrteBindingSubTlv { + + obj.obj.Ipv6Sid = &value + return obj +} + +// S-Flag encodes the "Specified-BSID-only" behavior. +// SFlag returns a bool +func (obj *bgpSrteBindingSubTlv) SFlag() bool { + + return *obj.obj.SFlag + +} + +// S-Flag encodes the "Specified-BSID-only" behavior. +// SFlag returns a bool +func (obj *bgpSrteBindingSubTlv) HasSFlag() bool { + return obj.obj.SFlag != nil +} + +// S-Flag encodes the "Specified-BSID-only" behavior. +// SetSFlag sets the bool value in the BgpSrteBindingSubTlv object +func (obj *bgpSrteBindingSubTlv) SetSFlag(value bool) BgpSrteBindingSubTlv { + + obj.obj.SFlag = &value + return obj +} + +// I-Flag encodes the "Drop Upon Invalid" behavior. +// IFlag returns a bool +func (obj *bgpSrteBindingSubTlv) IFlag() bool { + + return *obj.obj.IFlag + +} + +// I-Flag encodes the "Drop Upon Invalid" behavior. +// IFlag returns a bool +func (obj *bgpSrteBindingSubTlv) HasIFlag() bool { + return obj.obj.IFlag != nil +} + +// I-Flag encodes the "Drop Upon Invalid" behavior. +// SetIFlag sets the bool value in the BgpSrteBindingSubTlv object +func (obj *bgpSrteBindingSubTlv) SetIFlag(value bool) BgpSrteBindingSubTlv { + + obj.obj.IFlag = &value + return obj +} + +func (obj *bgpSrteBindingSubTlv) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.Ipv6Sid != nil { + + err := obj.validateIpv6(obj.Ipv6Sid()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteBindingSubTlv.Ipv6Sid")) + } + + } + +} + +func (obj *bgpSrteBindingSubTlv) setDefault() { + if obj.obj.BindingSidType == nil { + obj.SetBindingSidType(BgpSrteBindingSubTlvBindingSidType.NO_BINDING) + + } + if obj.obj.SFlag == nil { + obj.SetSFlag(false) + } + if obj.obj.IFlag == nil { + obj.SetIFlag(false) + } + +} + +// ***** BgpSrtePreferenceSubTlv ***** +type bgpSrtePreferenceSubTlv struct { + validation + obj *otg.BgpSrtePreferenceSubTlv + marshaller marshalBgpSrtePreferenceSubTlv + unMarshaller unMarshalBgpSrtePreferenceSubTlv +} + +func NewBgpSrtePreferenceSubTlv() BgpSrtePreferenceSubTlv { + obj := bgpSrtePreferenceSubTlv{obj: &otg.BgpSrtePreferenceSubTlv{}} + obj.setDefault() + return &obj +} + +func (obj *bgpSrtePreferenceSubTlv) msg() *otg.BgpSrtePreferenceSubTlv { + return obj.obj +} + +func (obj *bgpSrtePreferenceSubTlv) setMsg(msg *otg.BgpSrtePreferenceSubTlv) BgpSrtePreferenceSubTlv { + + proto.Merge(obj.obj, msg) + return obj +} + +type marshalbgpSrtePreferenceSubTlv struct { + obj *bgpSrtePreferenceSubTlv +} + +type marshalBgpSrtePreferenceSubTlv interface { + // ToProto marshals BgpSrtePreferenceSubTlv to protobuf object *otg.BgpSrtePreferenceSubTlv + ToProto() (*otg.BgpSrtePreferenceSubTlv, error) + // ToPbText marshals BgpSrtePreferenceSubTlv to protobuf text + ToPbText() (string, error) + // ToYaml marshals BgpSrtePreferenceSubTlv to YAML text + ToYaml() (string, error) + // ToJson marshals BgpSrtePreferenceSubTlv to JSON text + ToJson() (string, error) +} + +type unMarshalbgpSrtePreferenceSubTlv struct { + obj *bgpSrtePreferenceSubTlv +} + +type unMarshalBgpSrtePreferenceSubTlv interface { + // FromProto unmarshals BgpSrtePreferenceSubTlv from protobuf object *otg.BgpSrtePreferenceSubTlv + FromProto(msg *otg.BgpSrtePreferenceSubTlv) (BgpSrtePreferenceSubTlv, error) + // FromPbText unmarshals BgpSrtePreferenceSubTlv from protobuf text + FromPbText(value string) error + // FromYaml unmarshals BgpSrtePreferenceSubTlv from YAML text + FromYaml(value string) error + // FromJson unmarshals BgpSrtePreferenceSubTlv from JSON text + FromJson(value string) error +} + +func (obj *bgpSrtePreferenceSubTlv) Marshal() marshalBgpSrtePreferenceSubTlv { + if obj.marshaller == nil { + obj.marshaller = &marshalbgpSrtePreferenceSubTlv{obj: obj} + } + return obj.marshaller +} + +func (obj *bgpSrtePreferenceSubTlv) Unmarshal() unMarshalBgpSrtePreferenceSubTlv { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshalbgpSrtePreferenceSubTlv{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshalbgpSrtePreferenceSubTlv) ToProto() (*otg.BgpSrtePreferenceSubTlv, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshalbgpSrtePreferenceSubTlv) FromProto(msg *otg.BgpSrtePreferenceSubTlv) (BgpSrtePreferenceSubTlv, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshalbgpSrtePreferenceSubTlv) ToPbText() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (m *unMarshalbgpSrtePreferenceSubTlv) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), m.obj.msg()) + if retObj != nil { + return retObj + } + + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (m *marshalbgpSrtePreferenceSubTlv) ToYaml() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalbgpSrtePreferenceSubTlv) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (m *marshalbgpSrtePreferenceSubTlv) ToJson() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalbgpSrtePreferenceSubTlv) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := m.obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *bgpSrtePreferenceSubTlv) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *bgpSrtePreferenceSubTlv) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *bgpSrtePreferenceSubTlv) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *bgpSrtePreferenceSubTlv) Clone() (BgpSrtePreferenceSubTlv, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewBgpSrtePreferenceSubTlv() + data, err := proto.Marshal(obj.msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// BgpSrtePreferenceSubTlv is configuration for BGP preference sub TLV of the SR Policy candidate path. +type BgpSrtePreferenceSubTlv interface { + Validation + // msg marshals BgpSrtePreferenceSubTlv to protobuf object *otg.BgpSrtePreferenceSubTlv + // and doesn't set defaults + msg() *otg.BgpSrtePreferenceSubTlv + // setMsg unmarshals BgpSrtePreferenceSubTlv from protobuf object *otg.BgpSrtePreferenceSubTlv + // and doesn't set defaults + setMsg(*otg.BgpSrtePreferenceSubTlv) BgpSrtePreferenceSubTlv + // provides marshal interface + Marshal() marshalBgpSrtePreferenceSubTlv + // provides unmarshal interface + Unmarshal() unMarshalBgpSrtePreferenceSubTlv + // validate validates BgpSrtePreferenceSubTlv + validate() error + // A stringer function + String() string + // Clones the object + Clone() (BgpSrtePreferenceSubTlv, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Preference returns uint32, set in BgpSrtePreferenceSubTlv. + Preference() uint32 + // SetPreference assigns uint32 provided by user to BgpSrtePreferenceSubTlv + SetPreference(value uint32) BgpSrtePreferenceSubTlv + // HasPreference checks if Preference has been set in BgpSrtePreferenceSubTlv + HasPreference() bool +} + +// The preference value of the SR Policy candidate path. +// Preference returns a uint32 +func (obj *bgpSrtePreferenceSubTlv) Preference() uint32 { + + return *obj.obj.Preference + +} + +// The preference value of the SR Policy candidate path. +// Preference returns a uint32 +func (obj *bgpSrtePreferenceSubTlv) HasPreference() bool { + return obj.obj.Preference != nil +} + +// The preference value of the SR Policy candidate path. +// SetPreference sets the uint32 value in the BgpSrtePreferenceSubTlv object +func (obj *bgpSrtePreferenceSubTlv) SetPreference(value uint32) BgpSrtePreferenceSubTlv { + + obj.obj.Preference = &value + return obj +} + +func (obj *bgpSrtePreferenceSubTlv) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + +} + +func (obj *bgpSrtePreferenceSubTlv) setDefault() { + if obj.obj.Preference == nil { + obj.SetPreference(0) + } + +} + +// ***** BgpSrtePolicyPrioritySubTlv ***** +type bgpSrtePolicyPrioritySubTlv struct { + validation + obj *otg.BgpSrtePolicyPrioritySubTlv + marshaller marshalBgpSrtePolicyPrioritySubTlv + unMarshaller unMarshalBgpSrtePolicyPrioritySubTlv +} + +func NewBgpSrtePolicyPrioritySubTlv() BgpSrtePolicyPrioritySubTlv { + obj := bgpSrtePolicyPrioritySubTlv{obj: &otg.BgpSrtePolicyPrioritySubTlv{}} + obj.setDefault() + return &obj +} + +func (obj *bgpSrtePolicyPrioritySubTlv) msg() *otg.BgpSrtePolicyPrioritySubTlv { + return obj.obj +} + +func (obj *bgpSrtePolicyPrioritySubTlv) setMsg(msg *otg.BgpSrtePolicyPrioritySubTlv) BgpSrtePolicyPrioritySubTlv { + + proto.Merge(obj.obj, msg) + return obj +} + +type marshalbgpSrtePolicyPrioritySubTlv struct { + obj *bgpSrtePolicyPrioritySubTlv +} + +type marshalBgpSrtePolicyPrioritySubTlv interface { + // ToProto marshals BgpSrtePolicyPrioritySubTlv to protobuf object *otg.BgpSrtePolicyPrioritySubTlv + ToProto() (*otg.BgpSrtePolicyPrioritySubTlv, error) + // ToPbText marshals BgpSrtePolicyPrioritySubTlv to protobuf text + ToPbText() (string, error) + // ToYaml marshals BgpSrtePolicyPrioritySubTlv to YAML text + ToYaml() (string, error) + // ToJson marshals BgpSrtePolicyPrioritySubTlv to JSON text + ToJson() (string, error) +} + +type unMarshalbgpSrtePolicyPrioritySubTlv struct { + obj *bgpSrtePolicyPrioritySubTlv +} + +type unMarshalBgpSrtePolicyPrioritySubTlv interface { + // FromProto unmarshals BgpSrtePolicyPrioritySubTlv from protobuf object *otg.BgpSrtePolicyPrioritySubTlv + FromProto(msg *otg.BgpSrtePolicyPrioritySubTlv) (BgpSrtePolicyPrioritySubTlv, error) + // FromPbText unmarshals BgpSrtePolicyPrioritySubTlv from protobuf text + FromPbText(value string) error + // FromYaml unmarshals BgpSrtePolicyPrioritySubTlv from YAML text + FromYaml(value string) error + // FromJson unmarshals BgpSrtePolicyPrioritySubTlv from JSON text + FromJson(value string) error +} + +func (obj *bgpSrtePolicyPrioritySubTlv) Marshal() marshalBgpSrtePolicyPrioritySubTlv { + if obj.marshaller == nil { + obj.marshaller = &marshalbgpSrtePolicyPrioritySubTlv{obj: obj} + } + return obj.marshaller +} + +func (obj *bgpSrtePolicyPrioritySubTlv) Unmarshal() unMarshalBgpSrtePolicyPrioritySubTlv { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshalbgpSrtePolicyPrioritySubTlv{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshalbgpSrtePolicyPrioritySubTlv) ToProto() (*otg.BgpSrtePolicyPrioritySubTlv, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshalbgpSrtePolicyPrioritySubTlv) FromProto(msg *otg.BgpSrtePolicyPrioritySubTlv) (BgpSrtePolicyPrioritySubTlv, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshalbgpSrtePolicyPrioritySubTlv) ToPbText() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (m *unMarshalbgpSrtePolicyPrioritySubTlv) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), m.obj.msg()) + if retObj != nil { + return retObj + } + + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (m *marshalbgpSrtePolicyPrioritySubTlv) ToYaml() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalbgpSrtePolicyPrioritySubTlv) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (m *marshalbgpSrtePolicyPrioritySubTlv) ToJson() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalbgpSrtePolicyPrioritySubTlv) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := m.obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *bgpSrtePolicyPrioritySubTlv) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *bgpSrtePolicyPrioritySubTlv) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *bgpSrtePolicyPrioritySubTlv) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *bgpSrtePolicyPrioritySubTlv) Clone() (BgpSrtePolicyPrioritySubTlv, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewBgpSrtePolicyPrioritySubTlv() + data, err := proto.Marshal(obj.msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// BgpSrtePolicyPrioritySubTlv is configuration for the Policy Priority sub-TLV. The Policy Priority to indicate the order in which the SR policies are re-computed upon topological change. +type BgpSrtePolicyPrioritySubTlv interface { + Validation + // msg marshals BgpSrtePolicyPrioritySubTlv to protobuf object *otg.BgpSrtePolicyPrioritySubTlv + // and doesn't set defaults + msg() *otg.BgpSrtePolicyPrioritySubTlv + // setMsg unmarshals BgpSrtePolicyPrioritySubTlv from protobuf object *otg.BgpSrtePolicyPrioritySubTlv + // and doesn't set defaults + setMsg(*otg.BgpSrtePolicyPrioritySubTlv) BgpSrtePolicyPrioritySubTlv + // provides marshal interface + Marshal() marshalBgpSrtePolicyPrioritySubTlv + // provides unmarshal interface + Unmarshal() unMarshalBgpSrtePolicyPrioritySubTlv + // validate validates BgpSrtePolicyPrioritySubTlv + validate() error + // A stringer function + String() string + // Clones the object + Clone() (BgpSrtePolicyPrioritySubTlv, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // PolicyPriority returns uint32, set in BgpSrtePolicyPrioritySubTlv. + PolicyPriority() uint32 + // SetPolicyPriority assigns uint32 provided by user to BgpSrtePolicyPrioritySubTlv + SetPolicyPriority(value uint32) BgpSrtePolicyPrioritySubTlv + // HasPolicyPriority checks if PolicyPriority has been set in BgpSrtePolicyPrioritySubTlv + HasPolicyPriority() bool +} + +// One-octet Priority value. +// PolicyPriority returns a uint32 +func (obj *bgpSrtePolicyPrioritySubTlv) PolicyPriority() uint32 { + + return *obj.obj.PolicyPriority + +} + +// One-octet Priority value. +// PolicyPriority returns a uint32 +func (obj *bgpSrtePolicyPrioritySubTlv) HasPolicyPriority() bool { + return obj.obj.PolicyPriority != nil +} + +// One-octet Priority value. +// SetPolicyPriority sets the uint32 value in the BgpSrtePolicyPrioritySubTlv object +func (obj *bgpSrtePolicyPrioritySubTlv) SetPolicyPriority(value uint32) BgpSrtePolicyPrioritySubTlv { + + obj.obj.PolicyPriority = &value + return obj +} + +func (obj *bgpSrtePolicyPrioritySubTlv) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.PolicyPriority != nil { + + if *obj.obj.PolicyPriority > 255 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= BgpSrtePolicyPrioritySubTlv.PolicyPriority <= 255 but Got %d", *obj.obj.PolicyPriority)) + } + + } + +} + +func (obj *bgpSrtePolicyPrioritySubTlv) setDefault() { + +} + +// ***** BgpSrtePolicyNameSubTlv ***** +type bgpSrtePolicyNameSubTlv struct { + validation + obj *otg.BgpSrtePolicyNameSubTlv + marshaller marshalBgpSrtePolicyNameSubTlv + unMarshaller unMarshalBgpSrtePolicyNameSubTlv +} + +func NewBgpSrtePolicyNameSubTlv() BgpSrtePolicyNameSubTlv { + obj := bgpSrtePolicyNameSubTlv{obj: &otg.BgpSrtePolicyNameSubTlv{}} + obj.setDefault() + return &obj +} + +func (obj *bgpSrtePolicyNameSubTlv) msg() *otg.BgpSrtePolicyNameSubTlv { + return obj.obj +} + +func (obj *bgpSrtePolicyNameSubTlv) setMsg(msg *otg.BgpSrtePolicyNameSubTlv) BgpSrtePolicyNameSubTlv { + + proto.Merge(obj.obj, msg) + return obj +} + +type marshalbgpSrtePolicyNameSubTlv struct { + obj *bgpSrtePolicyNameSubTlv +} + +type marshalBgpSrtePolicyNameSubTlv interface { + // ToProto marshals BgpSrtePolicyNameSubTlv to protobuf object *otg.BgpSrtePolicyNameSubTlv + ToProto() (*otg.BgpSrtePolicyNameSubTlv, error) + // ToPbText marshals BgpSrtePolicyNameSubTlv to protobuf text + ToPbText() (string, error) + // ToYaml marshals BgpSrtePolicyNameSubTlv to YAML text + ToYaml() (string, error) + // ToJson marshals BgpSrtePolicyNameSubTlv to JSON text + ToJson() (string, error) +} + +type unMarshalbgpSrtePolicyNameSubTlv struct { + obj *bgpSrtePolicyNameSubTlv +} + +type unMarshalBgpSrtePolicyNameSubTlv interface { + // FromProto unmarshals BgpSrtePolicyNameSubTlv from protobuf object *otg.BgpSrtePolicyNameSubTlv + FromProto(msg *otg.BgpSrtePolicyNameSubTlv) (BgpSrtePolicyNameSubTlv, error) + // FromPbText unmarshals BgpSrtePolicyNameSubTlv from protobuf text + FromPbText(value string) error + // FromYaml unmarshals BgpSrtePolicyNameSubTlv from YAML text + FromYaml(value string) error + // FromJson unmarshals BgpSrtePolicyNameSubTlv from JSON text + FromJson(value string) error +} + +func (obj *bgpSrtePolicyNameSubTlv) Marshal() marshalBgpSrtePolicyNameSubTlv { + if obj.marshaller == nil { + obj.marshaller = &marshalbgpSrtePolicyNameSubTlv{obj: obj} + } + return obj.marshaller +} + +func (obj *bgpSrtePolicyNameSubTlv) Unmarshal() unMarshalBgpSrtePolicyNameSubTlv { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshalbgpSrtePolicyNameSubTlv{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshalbgpSrtePolicyNameSubTlv) ToProto() (*otg.BgpSrtePolicyNameSubTlv, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshalbgpSrtePolicyNameSubTlv) FromProto(msg *otg.BgpSrtePolicyNameSubTlv) (BgpSrtePolicyNameSubTlv, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshalbgpSrtePolicyNameSubTlv) ToPbText() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (m *unMarshalbgpSrtePolicyNameSubTlv) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), m.obj.msg()) + if retObj != nil { + return retObj + } + + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (m *marshalbgpSrtePolicyNameSubTlv) ToYaml() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalbgpSrtePolicyNameSubTlv) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (m *marshalbgpSrtePolicyNameSubTlv) ToJson() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalbgpSrtePolicyNameSubTlv) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := m.obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *bgpSrtePolicyNameSubTlv) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *bgpSrtePolicyNameSubTlv) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *bgpSrtePolicyNameSubTlv) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *bgpSrtePolicyNameSubTlv) Clone() (BgpSrtePolicyNameSubTlv, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewBgpSrtePolicyNameSubTlv() + data, err := proto.Marshal(obj.msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// BgpSrtePolicyNameSubTlv is configuration for the Policy Name sub-TLV. The Policy Name sub-TLV is used to attach a symbolic name to the SR Policy candidate path. +type BgpSrtePolicyNameSubTlv interface { + Validation + // msg marshals BgpSrtePolicyNameSubTlv to protobuf object *otg.BgpSrtePolicyNameSubTlv + // and doesn't set defaults + msg() *otg.BgpSrtePolicyNameSubTlv + // setMsg unmarshals BgpSrtePolicyNameSubTlv from protobuf object *otg.BgpSrtePolicyNameSubTlv + // and doesn't set defaults + setMsg(*otg.BgpSrtePolicyNameSubTlv) BgpSrtePolicyNameSubTlv + // provides marshal interface + Marshal() marshalBgpSrtePolicyNameSubTlv + // provides unmarshal interface + Unmarshal() unMarshalBgpSrtePolicyNameSubTlv + // validate validates BgpSrtePolicyNameSubTlv + validate() error + // A stringer function + String() string + // Clones the object + Clone() (BgpSrtePolicyNameSubTlv, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // PolicyName returns string, set in BgpSrtePolicyNameSubTlv. + PolicyName() string + // SetPolicyName assigns string provided by user to BgpSrtePolicyNameSubTlv + SetPolicyName(value string) BgpSrtePolicyNameSubTlv + // HasPolicyName checks if PolicyName has been set in BgpSrtePolicyNameSubTlv + HasPolicyName() bool +} + +// Symbolic name for the policy that should be a string of printable ASCII characters, without a NULL terminator. +// PolicyName returns a string +func (obj *bgpSrtePolicyNameSubTlv) PolicyName() string { + + return *obj.obj.PolicyName + +} + +// Symbolic name for the policy that should be a string of printable ASCII characters, without a NULL terminator. +// PolicyName returns a string +func (obj *bgpSrtePolicyNameSubTlv) HasPolicyName() bool { + return obj.obj.PolicyName != nil +} + +// Symbolic name for the policy that should be a string of printable ASCII characters, without a NULL terminator. +// SetPolicyName sets the string value in the BgpSrtePolicyNameSubTlv object +func (obj *bgpSrtePolicyNameSubTlv) SetPolicyName(value string) BgpSrtePolicyNameSubTlv { + + obj.obj.PolicyName = &value + return obj +} + +func (obj *bgpSrtePolicyNameSubTlv) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.PolicyName != nil { + + if len(*obj.obj.PolicyName) < 1 || len(*obj.obj.PolicyName) > 32 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf( + "1 <= length of BgpSrtePolicyNameSubTlv.PolicyName <= 32 but Got %d", + len(*obj.obj.PolicyName))) + } + + } + +} + +func (obj *bgpSrtePolicyNameSubTlv) setDefault() { + +} + +// ***** BgpSrteExplicitNullLabelPolicySubTlv ***** +type bgpSrteExplicitNullLabelPolicySubTlv struct { + validation + obj *otg.BgpSrteExplicitNullLabelPolicySubTlv + marshaller marshalBgpSrteExplicitNullLabelPolicySubTlv + unMarshaller unMarshalBgpSrteExplicitNullLabelPolicySubTlv +} + +func NewBgpSrteExplicitNullLabelPolicySubTlv() BgpSrteExplicitNullLabelPolicySubTlv { + obj := bgpSrteExplicitNullLabelPolicySubTlv{obj: &otg.BgpSrteExplicitNullLabelPolicySubTlv{}} + obj.setDefault() + return &obj +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) msg() *otg.BgpSrteExplicitNullLabelPolicySubTlv { + return obj.obj +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) setMsg(msg *otg.BgpSrteExplicitNullLabelPolicySubTlv) BgpSrteExplicitNullLabelPolicySubTlv { + + proto.Merge(obj.obj, msg) + return obj +} + +type marshalbgpSrteExplicitNullLabelPolicySubTlv struct { + obj *bgpSrteExplicitNullLabelPolicySubTlv +} + +type marshalBgpSrteExplicitNullLabelPolicySubTlv interface { + // ToProto marshals BgpSrteExplicitNullLabelPolicySubTlv to protobuf object *otg.BgpSrteExplicitNullLabelPolicySubTlv + ToProto() (*otg.BgpSrteExplicitNullLabelPolicySubTlv, error) + // ToPbText marshals BgpSrteExplicitNullLabelPolicySubTlv to protobuf text + ToPbText() (string, error) + // ToYaml marshals BgpSrteExplicitNullLabelPolicySubTlv to YAML text + ToYaml() (string, error) + // ToJson marshals BgpSrteExplicitNullLabelPolicySubTlv to JSON text + ToJson() (string, error) +} + +type unMarshalbgpSrteExplicitNullLabelPolicySubTlv struct { + obj *bgpSrteExplicitNullLabelPolicySubTlv +} + +type unMarshalBgpSrteExplicitNullLabelPolicySubTlv interface { + // FromProto unmarshals BgpSrteExplicitNullLabelPolicySubTlv from protobuf object *otg.BgpSrteExplicitNullLabelPolicySubTlv + FromProto(msg *otg.BgpSrteExplicitNullLabelPolicySubTlv) (BgpSrteExplicitNullLabelPolicySubTlv, error) + // FromPbText unmarshals BgpSrteExplicitNullLabelPolicySubTlv from protobuf text + FromPbText(value string) error + // FromYaml unmarshals BgpSrteExplicitNullLabelPolicySubTlv from YAML text + FromYaml(value string) error + // FromJson unmarshals BgpSrteExplicitNullLabelPolicySubTlv from JSON text + FromJson(value string) error +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) Marshal() marshalBgpSrteExplicitNullLabelPolicySubTlv { + if obj.marshaller == nil { + obj.marshaller = &marshalbgpSrteExplicitNullLabelPolicySubTlv{obj: obj} + } + return obj.marshaller +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) Unmarshal() unMarshalBgpSrteExplicitNullLabelPolicySubTlv { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshalbgpSrteExplicitNullLabelPolicySubTlv{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshalbgpSrteExplicitNullLabelPolicySubTlv) ToProto() (*otg.BgpSrteExplicitNullLabelPolicySubTlv, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshalbgpSrteExplicitNullLabelPolicySubTlv) FromProto(msg *otg.BgpSrteExplicitNullLabelPolicySubTlv) (BgpSrteExplicitNullLabelPolicySubTlv, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshalbgpSrteExplicitNullLabelPolicySubTlv) ToPbText() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (m *unMarshalbgpSrteExplicitNullLabelPolicySubTlv) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), m.obj.msg()) + if retObj != nil { + return retObj + } + + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (m *marshalbgpSrteExplicitNullLabelPolicySubTlv) ToYaml() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalbgpSrteExplicitNullLabelPolicySubTlv) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (m *marshalbgpSrteExplicitNullLabelPolicySubTlv) ToJson() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalbgpSrteExplicitNullLabelPolicySubTlv) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := m.obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) Clone() (BgpSrteExplicitNullLabelPolicySubTlv, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewBgpSrteExplicitNullLabelPolicySubTlv() + data, err := proto.Marshal(obj.msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// BgpSrteExplicitNullLabelPolicySubTlv is configuration for BGP explicit null label policy sub TLV settings. +type BgpSrteExplicitNullLabelPolicySubTlv interface { + Validation + // msg marshals BgpSrteExplicitNullLabelPolicySubTlv to protobuf object *otg.BgpSrteExplicitNullLabelPolicySubTlv + // and doesn't set defaults + msg() *otg.BgpSrteExplicitNullLabelPolicySubTlv + // setMsg unmarshals BgpSrteExplicitNullLabelPolicySubTlv from protobuf object *otg.BgpSrteExplicitNullLabelPolicySubTlv + // and doesn't set defaults + setMsg(*otg.BgpSrteExplicitNullLabelPolicySubTlv) BgpSrteExplicitNullLabelPolicySubTlv + // provides marshal interface + Marshal() marshalBgpSrteExplicitNullLabelPolicySubTlv + // provides unmarshal interface + Unmarshal() unMarshalBgpSrteExplicitNullLabelPolicySubTlv + // validate validates BgpSrteExplicitNullLabelPolicySubTlv + validate() error + // A stringer function + String() string + // Clones the object + Clone() (BgpSrteExplicitNullLabelPolicySubTlv, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // ExplicitNullLabelPolicy returns BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum, set in BgpSrteExplicitNullLabelPolicySubTlv + ExplicitNullLabelPolicy() BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum + // SetExplicitNullLabelPolicy assigns BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum provided by user to BgpSrteExplicitNullLabelPolicySubTlv + SetExplicitNullLabelPolicy(value BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum) BgpSrteExplicitNullLabelPolicySubTlv + // HasExplicitNullLabelPolicy checks if ExplicitNullLabelPolicy has been set in BgpSrteExplicitNullLabelPolicySubTlv + HasExplicitNullLabelPolicy() bool +} + +type BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum string + +// Enum of ExplicitNullLabelPolicy on BgpSrteExplicitNullLabelPolicySubTlv +var BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicy = struct { + RESERVED_ENLP BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum + PUSH_IPV4_ENLP BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum + PUSH_IPV6_ENLP BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum + PUSH_IPV4_IPV6_ENLP BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum + DO_NOT_PUSH_ENLP BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum +}{ + RESERVED_ENLP: BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum("reserved_enlp"), + PUSH_IPV4_ENLP: BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum("push_ipv4_enlp"), + PUSH_IPV6_ENLP: BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum("push_ipv6_enlp"), + PUSH_IPV4_IPV6_ENLP: BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum("push_ipv4_ipv6_enlp"), + DO_NOT_PUSH_ENLP: BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum("do_not_push_enlp"), +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) ExplicitNullLabelPolicy() BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum { + return BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum(obj.obj.ExplicitNullLabelPolicy.Enum().String()) +} + +// The value of the explicit null label policy +// ExplicitNullLabelPolicy returns a string +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) HasExplicitNullLabelPolicy() bool { + return obj.obj.ExplicitNullLabelPolicy != nil +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) SetExplicitNullLabelPolicy(value BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum) BgpSrteExplicitNullLabelPolicySubTlv { + intValue, ok := otg.BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum", string(value))) + return obj + } + enumValue := otg.BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum(intValue) + obj.obj.ExplicitNullLabelPolicy = &enumValue + + return obj +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + +} + +func (obj *bgpSrteExplicitNullLabelPolicySubTlv) setDefault() { + if obj.obj.ExplicitNullLabelPolicy == nil { + obj.SetExplicitNullLabelPolicy(BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicy.DO_NOT_PUSH_ENLP) + + } + +} + +// ***** BgpSrteSegmentList ***** +type bgpSrteSegmentList struct { + validation + obj *otg.BgpSrteSegmentList + marshaller marshalBgpSrteSegmentList + unMarshaller unMarshalBgpSrteSegmentList + segmentsHolder BgpSrteSegmentListBgpSrteSegmentIter +} + +func NewBgpSrteSegmentList() BgpSrteSegmentList { + obj := bgpSrteSegmentList{obj: &otg.BgpSrteSegmentList{}} + obj.setDefault() + return &obj +} + +func (obj *bgpSrteSegmentList) msg() *otg.BgpSrteSegmentList { + return obj.obj +} + +func (obj *bgpSrteSegmentList) setMsg(msg *otg.BgpSrteSegmentList) BgpSrteSegmentList { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +type marshalbgpSrteSegmentList struct { + obj *bgpSrteSegmentList +} + +type marshalBgpSrteSegmentList interface { + // ToProto marshals BgpSrteSegmentList to protobuf object *otg.BgpSrteSegmentList + ToProto() (*otg.BgpSrteSegmentList, error) + // ToPbText marshals BgpSrteSegmentList to protobuf text + ToPbText() (string, error) + // ToYaml marshals BgpSrteSegmentList to YAML text + ToYaml() (string, error) + // ToJson marshals BgpSrteSegmentList to JSON text + ToJson() (string, error) +} + +type unMarshalbgpSrteSegmentList struct { + obj *bgpSrteSegmentList +} + +type unMarshalBgpSrteSegmentList interface { + // FromProto unmarshals BgpSrteSegmentList from protobuf object *otg.BgpSrteSegmentList + FromProto(msg *otg.BgpSrteSegmentList) (BgpSrteSegmentList, error) + // FromPbText unmarshals BgpSrteSegmentList from protobuf text + FromPbText(value string) error + // FromYaml unmarshals BgpSrteSegmentList from YAML text + FromYaml(value string) error + // FromJson unmarshals BgpSrteSegmentList from JSON text + FromJson(value string) error +} + +func (obj *bgpSrteSegmentList) Marshal() marshalBgpSrteSegmentList { + if obj.marshaller == nil { + obj.marshaller = &marshalbgpSrteSegmentList{obj: obj} + } + return obj.marshaller +} + +func (obj *bgpSrteSegmentList) Unmarshal() unMarshalBgpSrteSegmentList { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshalbgpSrteSegmentList{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshalbgpSrteSegmentList) ToProto() (*otg.BgpSrteSegmentList, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshalbgpSrteSegmentList) FromProto(msg *otg.BgpSrteSegmentList) (BgpSrteSegmentList, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshalbgpSrteSegmentList) ToPbText() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (m *unMarshalbgpSrteSegmentList) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), m.obj.msg()) + if retObj != nil { + return retObj + } + m.obj.setNil() + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (m *marshalbgpSrteSegmentList) ToYaml() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalbgpSrteSegmentList) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + m.obj.setNil() + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (m *marshalbgpSrteSegmentList) ToJson() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalbgpSrteSegmentList) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + m.obj.setNil() + err := m.obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *bgpSrteSegmentList) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *bgpSrteSegmentList) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *bgpSrteSegmentList) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *bgpSrteSegmentList) Clone() (BgpSrteSegmentList, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewBgpSrteSegmentList() + data, err := proto.Marshal(obj.msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +func (obj *bgpSrteSegmentList) setNil() { + obj.segmentsHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// BgpSrteSegmentList is optional configuration for BGP SR TE Policy segment list. The Segment List sub-TLV encodes a single explicit path towards the Endpoint. +type BgpSrteSegmentList interface { + Validation + // msg marshals BgpSrteSegmentList to protobuf object *otg.BgpSrteSegmentList + // and doesn't set defaults + msg() *otg.BgpSrteSegmentList + // setMsg unmarshals BgpSrteSegmentList from protobuf object *otg.BgpSrteSegmentList + // and doesn't set defaults + setMsg(*otg.BgpSrteSegmentList) BgpSrteSegmentList + // provides marshal interface + Marshal() marshalBgpSrteSegmentList + // provides unmarshal interface + Unmarshal() unMarshalBgpSrteSegmentList + // validate validates BgpSrteSegmentList + validate() error + // A stringer function + String() string + // Clones the object + Clone() (BgpSrteSegmentList, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Weight returns uint32, set in BgpSrteSegmentList. + Weight() uint32 + // SetWeight assigns uint32 provided by user to BgpSrteSegmentList + SetWeight(value uint32) BgpSrteSegmentList + // HasWeight checks if Weight has been set in BgpSrteSegmentList + HasWeight() bool + // Segments returns BgpSrteSegmentListBgpSrteSegmentIterIter, set in BgpSrteSegmentList + Segments() BgpSrteSegmentListBgpSrteSegmentIter + // Name returns string, set in BgpSrteSegmentList. + Name() string + // SetName assigns string provided by user to BgpSrteSegmentList + SetName(value string) BgpSrteSegmentList + // Active returns bool, set in BgpSrteSegmentList. + Active() bool + // SetActive assigns bool provided by user to BgpSrteSegmentList + SetActive(value bool) BgpSrteSegmentList + // HasActive checks if Active has been set in BgpSrteSegmentList + HasActive() bool + setNil() +} + +// The Weight associated with a given path and the sub-TLV is optional. +// Weight returns a uint32 +func (obj *bgpSrteSegmentList) Weight() uint32 { + + return *obj.obj.Weight + +} + +// The Weight associated with a given path and the sub-TLV is optional. +// Weight returns a uint32 +func (obj *bgpSrteSegmentList) HasWeight() bool { + return obj.obj.Weight != nil +} + +// The Weight associated with a given path and the sub-TLV is optional. +// SetWeight sets the uint32 value in the BgpSrteSegmentList object +func (obj *bgpSrteSegmentList) SetWeight(value uint32) BgpSrteSegmentList { + + obj.obj.Weight = &value + return obj +} + +// description is TBD +// Segments returns a []BgpSrteSegment +func (obj *bgpSrteSegmentList) Segments() BgpSrteSegmentListBgpSrteSegmentIter { + if len(obj.obj.Segments) == 0 { + obj.obj.Segments = []*otg.BgpSrteSegment{} + } + if obj.segmentsHolder == nil { + obj.segmentsHolder = newBgpSrteSegmentListBgpSrteSegmentIter(&obj.obj.Segments).setMsg(obj) + } + return obj.segmentsHolder +} + +type bgpSrteSegmentListBgpSrteSegmentIter struct { + obj *bgpSrteSegmentList + bgpSrteSegmentSlice []BgpSrteSegment + fieldPtr *[]*otg.BgpSrteSegment +} + +func newBgpSrteSegmentListBgpSrteSegmentIter(ptr *[]*otg.BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter { + return &bgpSrteSegmentListBgpSrteSegmentIter{fieldPtr: ptr} +} + +type BgpSrteSegmentListBgpSrteSegmentIter interface { + setMsg(*bgpSrteSegmentList) BgpSrteSegmentListBgpSrteSegmentIter + Items() []BgpSrteSegment + Add() BgpSrteSegment + Append(items ...BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter + Set(index int, newObj BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter + Clear() BgpSrteSegmentListBgpSrteSegmentIter + clearHolderSlice() BgpSrteSegmentListBgpSrteSegmentIter + appendHolderSlice(item BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter +} + +func (obj *bgpSrteSegmentListBgpSrteSegmentIter) setMsg(msg *bgpSrteSegmentList) BgpSrteSegmentListBgpSrteSegmentIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&bgpSrteSegment{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *bgpSrteSegmentListBgpSrteSegmentIter) Items() []BgpSrteSegment { + return obj.bgpSrteSegmentSlice +} + +func (obj *bgpSrteSegmentListBgpSrteSegmentIter) Add() BgpSrteSegment { + newObj := &otg.BgpSrteSegment{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &bgpSrteSegment{obj: newObj} + newLibObj.setDefault() + obj.bgpSrteSegmentSlice = append(obj.bgpSrteSegmentSlice, newLibObj) + return newLibObj +} + +func (obj *bgpSrteSegmentListBgpSrteSegmentIter) Append(items ...BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter { + for _, item := range items { + newObj := item.msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.bgpSrteSegmentSlice = append(obj.bgpSrteSegmentSlice, item) + } + return obj +} + +func (obj *bgpSrteSegmentListBgpSrteSegmentIter) Set(index int, newObj BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter { + (*obj.fieldPtr)[index] = newObj.msg() + obj.bgpSrteSegmentSlice[index] = newObj + return obj +} +func (obj *bgpSrteSegmentListBgpSrteSegmentIter) Clear() BgpSrteSegmentListBgpSrteSegmentIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.BgpSrteSegment{} + obj.bgpSrteSegmentSlice = []BgpSrteSegment{} + } + return obj +} +func (obj *bgpSrteSegmentListBgpSrteSegmentIter) clearHolderSlice() BgpSrteSegmentListBgpSrteSegmentIter { + if len(obj.bgpSrteSegmentSlice) > 0 { + obj.bgpSrteSegmentSlice = []BgpSrteSegment{} + } + return obj +} +func (obj *bgpSrteSegmentListBgpSrteSegmentIter) appendHolderSlice(item BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter { + obj.bgpSrteSegmentSlice = append(obj.bgpSrteSegmentSlice, item) + return obj +} + +// Globally unique name of an object. It also serves as the primary key for arrays of objects. +// Name returns a string +func (obj *bgpSrteSegmentList) Name() string { + + return *obj.obj.Name + +} + +// Globally unique name of an object. It also serves as the primary key for arrays of objects. +// SetName sets the string value in the BgpSrteSegmentList object +func (obj *bgpSrteSegmentList) SetName(value string) BgpSrteSegmentList { + + obj.obj.Name = &value + return obj +} + +// If enabled means that this part of the configuration including any active 'children' nodes will be advertised to peer. If disabled, this means that though config is present, it is not taking any part of the test but can be activated at run-time to advertise just this part of the configuration to the peer. +// Active returns a bool +func (obj *bgpSrteSegmentList) Active() bool { + + return *obj.obj.Active + +} + +// If enabled means that this part of the configuration including any active 'children' nodes will be advertised to peer. If disabled, this means that though config is present, it is not taking any part of the test but can be activated at run-time to advertise just this part of the configuration to the peer. +// Active returns a bool +func (obj *bgpSrteSegmentList) HasActive() bool { + return obj.obj.Active != nil +} + +// If enabled means that this part of the configuration including any active 'children' nodes will be advertised to peer. If disabled, this means that though config is present, it is not taking any part of the test but can be activated at run-time to advertise just this part of the configuration to the peer. +// SetActive sets the bool value in the BgpSrteSegmentList object +func (obj *bgpSrteSegmentList) SetActive(value bool) BgpSrteSegmentList { + + obj.obj.Active = &value + return obj +} + +func (obj *bgpSrteSegmentList) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if len(obj.obj.Segments) != 0 { + + if set_default { + obj.Segments().clearHolderSlice() + for _, item := range obj.obj.Segments { + obj.Segments().appendHolderSlice(&bgpSrteSegment{obj: item}) + } + } + for _, item := range obj.Segments().Items() { + item.validateObj(vObj, set_default) + } + + } + + // Name is required + if obj.obj.Name == nil { + vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface BgpSrteSegmentList") + } +} + +func (obj *bgpSrteSegmentList) setDefault() { + if obj.obj.Weight == nil { + obj.SetWeight(0) + } + if obj.obj.Active == nil { + obj.SetActive(true) + } + +} + +// ***** BgpV6EviVxlan ***** +type bgpV6EviVxlan struct { + validation + obj *otg.BgpV6EviVxlan + marshaller marshalBgpV6EviVxlan + unMarshaller unMarshalBgpV6EviVxlan + broadcastDomainsHolder BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter + routeDistinguisherHolder BgpRouteDistinguisher + routeTargetExportHolder BgpV6EviVxlanBgpRouteTargetIter + routeTargetImportHolder BgpV6EviVxlanBgpRouteTargetIter + l3RouteTargetExportHolder BgpV6EviVxlanBgpRouteTargetIter + l3RouteTargetImportHolder BgpV6EviVxlanBgpRouteTargetIter + advancedHolder BgpRouteAdvanced + communitiesHolder BgpV6EviVxlanBgpCommunityIter + extCommunitiesHolder BgpV6EviVxlanBgpExtCommunityIter + asPathHolder BgpAsPath +} + +func NewBgpV6EviVxlan() BgpV6EviVxlan { + obj := bgpV6EviVxlan{obj: &otg.BgpV6EviVxlan{}} + obj.setDefault() + return &obj +} + +func (obj *bgpV6EviVxlan) msg() *otg.BgpV6EviVxlan { + return obj.obj +} + +func (obj *bgpV6EviVxlan) setMsg(msg *otg.BgpV6EviVxlan) BgpV6EviVxlan { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +type marshalbgpV6EviVxlan struct { + obj *bgpV6EviVxlan +} + +type marshalBgpV6EviVxlan interface { + // ToProto marshals BgpV6EviVxlan to protobuf object *otg.BgpV6EviVxlan + ToProto() (*otg.BgpV6EviVxlan, error) + // ToPbText marshals BgpV6EviVxlan to protobuf text + ToPbText() (string, error) + // ToYaml marshals BgpV6EviVxlan to YAML text + ToYaml() (string, error) + // ToJson marshals BgpV6EviVxlan to JSON text + ToJson() (string, error) +} + +type unMarshalbgpV6EviVxlan struct { + obj *bgpV6EviVxlan +} + +type unMarshalBgpV6EviVxlan interface { + // FromProto unmarshals BgpV6EviVxlan from protobuf object *otg.BgpV6EviVxlan + FromProto(msg *otg.BgpV6EviVxlan) (BgpV6EviVxlan, error) + // FromPbText unmarshals BgpV6EviVxlan from protobuf text + FromPbText(value string) error + // FromYaml unmarshals BgpV6EviVxlan from YAML text + FromYaml(value string) error + // FromJson unmarshals BgpV6EviVxlan from JSON text + FromJson(value string) error +} + +func (obj *bgpV6EviVxlan) Marshal() marshalBgpV6EviVxlan { + if obj.marshaller == nil { + obj.marshaller = &marshalbgpV6EviVxlan{obj: obj} + } + return obj.marshaller +} + +func (obj *bgpV6EviVxlan) Unmarshal() unMarshalBgpV6EviVxlan { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshalbgpV6EviVxlan{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshalbgpV6EviVxlan) ToProto() (*otg.BgpV6EviVxlan, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshalbgpV6EviVxlan) FromProto(msg *otg.BgpV6EviVxlan) (BgpV6EviVxlan, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshalbgpV6EviVxlan) ToPbText() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (m *unMarshalbgpV6EviVxlan) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), m.obj.msg()) + if retObj != nil { + return retObj + } + m.obj.setNil() + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (m *marshalbgpV6EviVxlan) ToYaml() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalbgpV6EviVxlan) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + m.obj.setNil() + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (m *marshalbgpV6EviVxlan) ToJson() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalbgpV6EviVxlan) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + m.obj.setNil() + err := m.obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *bgpV6EviVxlan) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *bgpV6EviVxlan) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *bgpV6EviVxlan) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *bgpV6EviVxlan) Clone() (BgpV6EviVxlan, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewBgpV6EviVxlan() + data, err := proto.Marshal(obj.msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +func (obj *bgpV6EviVxlan) setNil() { + obj.broadcastDomainsHolder = nil + obj.routeDistinguisherHolder = nil + obj.routeTargetExportHolder = nil + obj.routeTargetImportHolder = nil + obj.l3RouteTargetExportHolder = nil + obj.l3RouteTargetImportHolder = nil + obj.advancedHolder = nil + obj.communitiesHolder = nil + obj.extCommunitiesHolder = nil + obj.asPathHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// BgpV6EviVxlan is configuration for BGP EVPN EVI. Advertises following routes - +// +// # Type 3 - Inclusive Multicast Ethernet Tag Route +// +// Type 1 - Ethernet Auto-discovery Route (Per EVI) +// +// Type 1 - Ethernet Auto-discovery Route (Per ES) +type BgpV6EviVxlan interface { + Validation + // msg marshals BgpV6EviVxlan to protobuf object *otg.BgpV6EviVxlan + // and doesn't set defaults + msg() *otg.BgpV6EviVxlan + // setMsg unmarshals BgpV6EviVxlan from protobuf object *otg.BgpV6EviVxlan + // and doesn't set defaults + setMsg(*otg.BgpV6EviVxlan) BgpV6EviVxlan + // provides marshal interface + Marshal() marshalBgpV6EviVxlan + // provides unmarshal interface + Unmarshal() unMarshalBgpV6EviVxlan + // validate validates BgpV6EviVxlan + validate() error + // A stringer function + String() string + // Clones the object + Clone() (BgpV6EviVxlan, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // BroadcastDomains returns BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIterIter, set in BgpV6EviVxlan + BroadcastDomains() BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter + // ReplicationType returns BgpV6EviVxlanReplicationTypeEnum, set in BgpV6EviVxlan + ReplicationType() BgpV6EviVxlanReplicationTypeEnum + // SetReplicationType assigns BgpV6EviVxlanReplicationTypeEnum provided by user to BgpV6EviVxlan + SetReplicationType(value BgpV6EviVxlanReplicationTypeEnum) BgpV6EviVxlan + // HasReplicationType checks if ReplicationType has been set in BgpV6EviVxlan + HasReplicationType() bool + // PmsiLabel returns uint32, set in BgpV6EviVxlan. + PmsiLabel() uint32 + // SetPmsiLabel assigns uint32 provided by user to BgpV6EviVxlan + SetPmsiLabel(value uint32) BgpV6EviVxlan + // HasPmsiLabel checks if PmsiLabel has been set in BgpV6EviVxlan + HasPmsiLabel() bool + // AdLabel returns uint32, set in BgpV6EviVxlan. + AdLabel() uint32 + // SetAdLabel assigns uint32 provided by user to BgpV6EviVxlan + SetAdLabel(value uint32) BgpV6EviVxlan + // HasAdLabel checks if AdLabel has been set in BgpV6EviVxlan + HasAdLabel() bool + // RouteDistinguisher returns BgpRouteDistinguisher, set in BgpV6EviVxlan. + // BgpRouteDistinguisher is bGP Route Distinguisher. + RouteDistinguisher() BgpRouteDistinguisher + // SetRouteDistinguisher assigns BgpRouteDistinguisher provided by user to BgpV6EviVxlan. + // BgpRouteDistinguisher is bGP Route Distinguisher. + SetRouteDistinguisher(value BgpRouteDistinguisher) BgpV6EviVxlan + // HasRouteDistinguisher checks if RouteDistinguisher has been set in BgpV6EviVxlan + HasRouteDistinguisher() bool + // RouteTargetExport returns BgpV6EviVxlanBgpRouteTargetIterIter, set in BgpV6EviVxlan + RouteTargetExport() BgpV6EviVxlanBgpRouteTargetIter + // RouteTargetImport returns BgpV6EviVxlanBgpRouteTargetIterIter, set in BgpV6EviVxlan + RouteTargetImport() BgpV6EviVxlanBgpRouteTargetIter + // L3RouteTargetExport returns BgpV6EviVxlanBgpRouteTargetIterIter, set in BgpV6EviVxlan + L3RouteTargetExport() BgpV6EviVxlanBgpRouteTargetIter + // L3RouteTargetImport returns BgpV6EviVxlanBgpRouteTargetIterIter, set in BgpV6EviVxlan + L3RouteTargetImport() BgpV6EviVxlanBgpRouteTargetIter + // Advanced returns BgpRouteAdvanced, set in BgpV6EviVxlan. + // BgpRouteAdvanced is configuration for advanced BGP route range settings. + Advanced() BgpRouteAdvanced + // SetAdvanced assigns BgpRouteAdvanced provided by user to BgpV6EviVxlan. + // BgpRouteAdvanced is configuration for advanced BGP route range settings. + SetAdvanced(value BgpRouteAdvanced) BgpV6EviVxlan + // HasAdvanced checks if Advanced has been set in BgpV6EviVxlan + HasAdvanced() bool + // Communities returns BgpV6EviVxlanBgpCommunityIterIter, set in BgpV6EviVxlan + Communities() BgpV6EviVxlanBgpCommunityIter + // ExtCommunities returns BgpV6EviVxlanBgpExtCommunityIterIter, set in BgpV6EviVxlan + ExtCommunities() BgpV6EviVxlanBgpExtCommunityIter + // AsPath returns BgpAsPath, set in BgpV6EviVxlan. + // BgpAsPath is this attribute identifies the autonomous systems through which routing information carried in this UPDATE message has passed. This contains the configuration of how to include the Local AS in the AS path attribute of the MP REACH NLRI. It also contains optional configuration of additional AS Path Segments that can be included in the AS Path attribute. The AS Path consists of a Set or Sequence of Autonomous Systems (AS) numbers that a routing information passes through to reach the destination. + AsPath() BgpAsPath + // SetAsPath assigns BgpAsPath provided by user to BgpV6EviVxlan. + // BgpAsPath is this attribute identifies the autonomous systems through which routing information carried in this UPDATE message has passed. This contains the configuration of how to include the Local AS in the AS path attribute of the MP REACH NLRI. It also contains optional configuration of additional AS Path Segments that can be included in the AS Path attribute. The AS Path consists of a Set or Sequence of Autonomous Systems (AS) numbers that a routing information passes through to reach the destination. + SetAsPath(value BgpAsPath) BgpV6EviVxlan + // HasAsPath checks if AsPath has been set in BgpV6EviVxlan + HasAsPath() bool + setNil() +} + +// This contains the list of Broadcast Domains to be configured per EVI. +// BroadcastDomains returns a []BgpV6EviVxlanBroadcastDomain +func (obj *bgpV6EviVxlan) BroadcastDomains() BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { + if len(obj.obj.BroadcastDomains) == 0 { + obj.obj.BroadcastDomains = []*otg.BgpV6EviVxlanBroadcastDomain{} + } + if obj.broadcastDomainsHolder == nil { + obj.broadcastDomainsHolder = newBgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter(&obj.obj.BroadcastDomains).setMsg(obj) + } + return obj.broadcastDomainsHolder +} + +type bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter struct { + obj *bgpV6EviVxlan + bgpV6EviVxlanBroadcastDomainSlice []BgpV6EviVxlanBroadcastDomain + fieldPtr *[]*otg.BgpV6EviVxlanBroadcastDomain +} + +func newBgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter(ptr *[]*otg.BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { + return &bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter{fieldPtr: ptr} +} + +type BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter interface { + setMsg(*bgpV6EviVxlan) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter + Items() []BgpV6EviVxlanBroadcastDomain + Add() BgpV6EviVxlanBroadcastDomain + Append(items ...BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter + Set(index int, newObj BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter + Clear() BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter + clearHolderSlice() BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter + appendHolderSlice(item BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter +} + +func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) setMsg(msg *bgpV6EviVxlan) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&bgpV6EviVxlanBroadcastDomain{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) Items() []BgpV6EviVxlanBroadcastDomain { + return obj.bgpV6EviVxlanBroadcastDomainSlice +} + +func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) Add() BgpV6EviVxlanBroadcastDomain { + newObj := &otg.BgpV6EviVxlanBroadcastDomain{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &bgpV6EviVxlanBroadcastDomain{obj: newObj} + newLibObj.setDefault() + obj.bgpV6EviVxlanBroadcastDomainSlice = append(obj.bgpV6EviVxlanBroadcastDomainSlice, newLibObj) + return newLibObj +} + +func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) Append(items ...BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { + for _, item := range items { + newObj := item.msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.bgpV6EviVxlanBroadcastDomainSlice = append(obj.bgpV6EviVxlanBroadcastDomainSlice, item) + } + return obj +} + +func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) Set(index int, newObj BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { + (*obj.fieldPtr)[index] = newObj.msg() + obj.bgpV6EviVxlanBroadcastDomainSlice[index] = newObj + return obj +} +func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) Clear() BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.BgpV6EviVxlanBroadcastDomain{} + obj.bgpV6EviVxlanBroadcastDomainSlice = []BgpV6EviVxlanBroadcastDomain{} + } + return obj +} +func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) clearHolderSlice() BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { + if len(obj.bgpV6EviVxlanBroadcastDomainSlice) > 0 { + obj.bgpV6EviVxlanBroadcastDomainSlice = []BgpV6EviVxlanBroadcastDomain{} + } + return obj +} +func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) appendHolderSlice(item BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { + obj.bgpV6EviVxlanBroadcastDomainSlice = append(obj.bgpV6EviVxlanBroadcastDomainSlice, item) + return obj +} + +type BgpV6EviVxlanReplicationTypeEnum string + +// Enum of ReplicationType on BgpV6EviVxlan +var BgpV6EviVxlanReplicationType = struct { + INGRESS_REPLICATION BgpV6EviVxlanReplicationTypeEnum +}{ + INGRESS_REPLICATION: BgpV6EviVxlanReplicationTypeEnum("ingress_replication"), +} + +func (obj *bgpV6EviVxlan) ReplicationType() BgpV6EviVxlanReplicationTypeEnum { + return BgpV6EviVxlanReplicationTypeEnum(obj.obj.ReplicationType.Enum().String()) +} + +// This model only supports Ingress Replication +// ReplicationType returns a string +func (obj *bgpV6EviVxlan) HasReplicationType() bool { + return obj.obj.ReplicationType != nil +} + +func (obj *bgpV6EviVxlan) SetReplicationType(value BgpV6EviVxlanReplicationTypeEnum) BgpV6EviVxlan { + intValue, ok := otg.BgpV6EviVxlan_ReplicationType_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on BgpV6EviVxlanReplicationTypeEnum", string(value))) + return obj + } + enumValue := otg.BgpV6EviVxlan_ReplicationType_Enum(intValue) + obj.obj.ReplicationType = &enumValue + + return obj +} + +// Downstream assigned VNI to be carried as Part of P-Multicast Service Interface Tunnel attribute (PMSI Tunnel Attribute) in Type 3 Inclusive Multicast Ethernet Tag Route. +// PmsiLabel returns a uint32 +func (obj *bgpV6EviVxlan) PmsiLabel() uint32 { + + return *obj.obj.PmsiLabel + +} + +// Downstream assigned VNI to be carried as Part of P-Multicast Service Interface Tunnel attribute (PMSI Tunnel Attribute) in Type 3 Inclusive Multicast Ethernet Tag Route. +// PmsiLabel returns a uint32 +func (obj *bgpV6EviVxlan) HasPmsiLabel() bool { + return obj.obj.PmsiLabel != nil +} + +// Downstream assigned VNI to be carried as Part of P-Multicast Service Interface Tunnel attribute (PMSI Tunnel Attribute) in Type 3 Inclusive Multicast Ethernet Tag Route. +// SetPmsiLabel sets the uint32 value in the BgpV6EviVxlan object +func (obj *bgpV6EviVxlan) SetPmsiLabel(value uint32) BgpV6EviVxlan { + + obj.obj.PmsiLabel = &value + return obj +} + +// The Auto-discovery Route label (AD label) value, which gets advertised in the Ethernet Auto-discovery Route per +// AdLabel returns a uint32 +func (obj *bgpV6EviVxlan) AdLabel() uint32 { + + return *obj.obj.AdLabel + +} + +// The Auto-discovery Route label (AD label) value, which gets advertised in the Ethernet Auto-discovery Route per +// AdLabel returns a uint32 +func (obj *bgpV6EviVxlan) HasAdLabel() bool { + return obj.obj.AdLabel != nil +} + +// The Auto-discovery Route label (AD label) value, which gets advertised in the Ethernet Auto-discovery Route per +// SetAdLabel sets the uint32 value in the BgpV6EviVxlan object +func (obj *bgpV6EviVxlan) SetAdLabel(value uint32) BgpV6EviVxlan { + + obj.obj.AdLabel = &value + return obj +} + +// Colon separated Extended Community value of 6 Bytes - "AS number: Value" identifying an EVI. Example - for the as_2octet "60005:100". +// RouteDistinguisher returns a BgpRouteDistinguisher +func (obj *bgpV6EviVxlan) RouteDistinguisher() BgpRouteDistinguisher { + if obj.obj.RouteDistinguisher == nil { + obj.obj.RouteDistinguisher = NewBgpRouteDistinguisher().msg() + } + if obj.routeDistinguisherHolder == nil { + obj.routeDistinguisherHolder = &bgpRouteDistinguisher{obj: obj.obj.RouteDistinguisher} + } + return obj.routeDistinguisherHolder +} + +// Colon separated Extended Community value of 6 Bytes - "AS number: Value" identifying an EVI. Example - for the as_2octet "60005:100". +// RouteDistinguisher returns a BgpRouteDistinguisher +func (obj *bgpV6EviVxlan) HasRouteDistinguisher() bool { + return obj.obj.RouteDistinguisher != nil +} + +// Colon separated Extended Community value of 6 Bytes - "AS number: Value" identifying an EVI. Example - for the as_2octet "60005:100". +// SetRouteDistinguisher sets the BgpRouteDistinguisher value in the BgpV6EviVxlan object +func (obj *bgpV6EviVxlan) SetRouteDistinguisher(value BgpRouteDistinguisher) BgpV6EviVxlan { + + obj.routeDistinguisherHolder = nil + obj.obj.RouteDistinguisher = value.msg() + + return obj +} + +// List of Layer 2 Virtual Network Identifier (L2VNI) export targets associated with this EVI. +// RouteTargetExport returns a []BgpRouteTarget +func (obj *bgpV6EviVxlan) RouteTargetExport() BgpV6EviVxlanBgpRouteTargetIter { + if len(obj.obj.RouteTargetExport) == 0 { + obj.obj.RouteTargetExport = []*otg.BgpRouteTarget{} + } + if obj.routeTargetExportHolder == nil { + obj.routeTargetExportHolder = newBgpV6EviVxlanBgpRouteTargetIter(&obj.obj.RouteTargetExport).setMsg(obj) + } + return obj.routeTargetExportHolder +} + +type bgpV6EviVxlanBgpRouteTargetIter struct { + obj *bgpV6EviVxlan + bgpRouteTargetSlice []BgpRouteTarget + fieldPtr *[]*otg.BgpRouteTarget +} + +func newBgpV6EviVxlanBgpRouteTargetIter(ptr *[]*otg.BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter { + return &bgpV6EviVxlanBgpRouteTargetIter{fieldPtr: ptr} +} + +type BgpV6EviVxlanBgpRouteTargetIter interface { + setMsg(*bgpV6EviVxlan) BgpV6EviVxlanBgpRouteTargetIter + Items() []BgpRouteTarget + Add() BgpRouteTarget + Append(items ...BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter + Set(index int, newObj BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter + Clear() BgpV6EviVxlanBgpRouteTargetIter + clearHolderSlice() BgpV6EviVxlanBgpRouteTargetIter + appendHolderSlice(item BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter +} + +func (obj *bgpV6EviVxlanBgpRouteTargetIter) setMsg(msg *bgpV6EviVxlan) BgpV6EviVxlanBgpRouteTargetIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&bgpRouteTarget{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *bgpV6EviVxlanBgpRouteTargetIter) Items() []BgpRouteTarget { + return obj.bgpRouteTargetSlice +} + +func (obj *bgpV6EviVxlanBgpRouteTargetIter) Add() BgpRouteTarget { + newObj := &otg.BgpRouteTarget{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &bgpRouteTarget{obj: newObj} + newLibObj.setDefault() + obj.bgpRouteTargetSlice = append(obj.bgpRouteTargetSlice, newLibObj) + return newLibObj +} + +func (obj *bgpV6EviVxlanBgpRouteTargetIter) Append(items ...BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter { + for _, item := range items { + newObj := item.msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.bgpRouteTargetSlice = append(obj.bgpRouteTargetSlice, item) + } + return obj +} + +func (obj *bgpV6EviVxlanBgpRouteTargetIter) Set(index int, newObj BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter { + (*obj.fieldPtr)[index] = newObj.msg() + obj.bgpRouteTargetSlice[index] = newObj + return obj +} +func (obj *bgpV6EviVxlanBgpRouteTargetIter) Clear() BgpV6EviVxlanBgpRouteTargetIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.BgpRouteTarget{} + obj.bgpRouteTargetSlice = []BgpRouteTarget{} + } + return obj +} +func (obj *bgpV6EviVxlanBgpRouteTargetIter) clearHolderSlice() BgpV6EviVxlanBgpRouteTargetIter { + if len(obj.bgpRouteTargetSlice) > 0 { + obj.bgpRouteTargetSlice = []BgpRouteTarget{} + } + return obj +} +func (obj *bgpV6EviVxlanBgpRouteTargetIter) appendHolderSlice(item BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter { + obj.bgpRouteTargetSlice = append(obj.bgpRouteTargetSlice, item) + return obj +} + +// List of L2VNI import targets associated with this EVI. +// RouteTargetImport returns a []BgpRouteTarget +func (obj *bgpV6EviVxlan) RouteTargetImport() BgpV6EviVxlanBgpRouteTargetIter { + if len(obj.obj.RouteTargetImport) == 0 { + obj.obj.RouteTargetImport = []*otg.BgpRouteTarget{} + } + if obj.routeTargetImportHolder == nil { + obj.routeTargetImportHolder = newBgpV6EviVxlanBgpRouteTargetIter(&obj.obj.RouteTargetImport).setMsg(obj) + } + return obj.routeTargetImportHolder +} + +// List of Layer 3 Virtual Network Identifier (L3VNI) Export Route Targets. +// L3RouteTargetExport returns a []BgpRouteTarget +func (obj *bgpV6EviVxlan) L3RouteTargetExport() BgpV6EviVxlanBgpRouteTargetIter { + if len(obj.obj.L3RouteTargetExport) == 0 { + obj.obj.L3RouteTargetExport = []*otg.BgpRouteTarget{} + } + if obj.l3RouteTargetExportHolder == nil { + obj.l3RouteTargetExportHolder = newBgpV6EviVxlanBgpRouteTargetIter(&obj.obj.L3RouteTargetExport).setMsg(obj) + } + return obj.l3RouteTargetExportHolder +} + +// List of L3VNI Import Route Targets. +// L3RouteTargetImport returns a []BgpRouteTarget +func (obj *bgpV6EviVxlan) L3RouteTargetImport() BgpV6EviVxlanBgpRouteTargetIter { + if len(obj.obj.L3RouteTargetImport) == 0 { + obj.obj.L3RouteTargetImport = []*otg.BgpRouteTarget{} + } + if obj.l3RouteTargetImportHolder == nil { + obj.l3RouteTargetImportHolder = newBgpV6EviVxlanBgpRouteTargetIter(&obj.obj.L3RouteTargetImport).setMsg(obj) + } + return obj.l3RouteTargetImportHolder +} + +// description is TBD +// Advanced returns a BgpRouteAdvanced +func (obj *bgpV6EviVxlan) Advanced() BgpRouteAdvanced { + if obj.obj.Advanced == nil { + obj.obj.Advanced = NewBgpRouteAdvanced().msg() + } + if obj.advancedHolder == nil { + obj.advancedHolder = &bgpRouteAdvanced{obj: obj.obj.Advanced} + } + return obj.advancedHolder +} + +// description is TBD +// Advanced returns a BgpRouteAdvanced +func (obj *bgpV6EviVxlan) HasAdvanced() bool { + return obj.obj.Advanced != nil +} + +// description is TBD +// SetAdvanced sets the BgpRouteAdvanced value in the BgpV6EviVxlan object +func (obj *bgpV6EviVxlan) SetAdvanced(value BgpRouteAdvanced) BgpV6EviVxlan { + + obj.advancedHolder = nil + obj.obj.Advanced = value.msg() + + return obj +} + +// Optional community settings. +// Communities returns a []BgpCommunity +func (obj *bgpV6EviVxlan) Communities() BgpV6EviVxlanBgpCommunityIter { + if len(obj.obj.Communities) == 0 { + obj.obj.Communities = []*otg.BgpCommunity{} + } + if obj.communitiesHolder == nil { + obj.communitiesHolder = newBgpV6EviVxlanBgpCommunityIter(&obj.obj.Communities).setMsg(obj) + } + return obj.communitiesHolder +} + +type bgpV6EviVxlanBgpCommunityIter struct { + obj *bgpV6EviVxlan + bgpCommunitySlice []BgpCommunity + fieldPtr *[]*otg.BgpCommunity +} + +func newBgpV6EviVxlanBgpCommunityIter(ptr *[]*otg.BgpCommunity) BgpV6EviVxlanBgpCommunityIter { + return &bgpV6EviVxlanBgpCommunityIter{fieldPtr: ptr} +} + +type BgpV6EviVxlanBgpCommunityIter interface { + setMsg(*bgpV6EviVxlan) BgpV6EviVxlanBgpCommunityIter + Items() []BgpCommunity + Add() BgpCommunity + Append(items ...BgpCommunity) BgpV6EviVxlanBgpCommunityIter + Set(index int, newObj BgpCommunity) BgpV6EviVxlanBgpCommunityIter + Clear() BgpV6EviVxlanBgpCommunityIter + clearHolderSlice() BgpV6EviVxlanBgpCommunityIter + appendHolderSlice(item BgpCommunity) BgpV6EviVxlanBgpCommunityIter +} + +func (obj *bgpV6EviVxlanBgpCommunityIter) setMsg(msg *bgpV6EviVxlan) BgpV6EviVxlanBgpCommunityIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&bgpCommunity{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *bgpV6EviVxlanBgpCommunityIter) Items() []BgpCommunity { + return obj.bgpCommunitySlice +} + +func (obj *bgpV6EviVxlanBgpCommunityIter) Add() BgpCommunity { + newObj := &otg.BgpCommunity{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &bgpCommunity{obj: newObj} + newLibObj.setDefault() + obj.bgpCommunitySlice = append(obj.bgpCommunitySlice, newLibObj) + return newLibObj +} + +func (obj *bgpV6EviVxlanBgpCommunityIter) Append(items ...BgpCommunity) BgpV6EviVxlanBgpCommunityIter { + for _, item := range items { + newObj := item.msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.bgpCommunitySlice = append(obj.bgpCommunitySlice, item) + } + return obj +} + +func (obj *bgpV6EviVxlanBgpCommunityIter) Set(index int, newObj BgpCommunity) BgpV6EviVxlanBgpCommunityIter { + (*obj.fieldPtr)[index] = newObj.msg() + obj.bgpCommunitySlice[index] = newObj + return obj +} +func (obj *bgpV6EviVxlanBgpCommunityIter) Clear() BgpV6EviVxlanBgpCommunityIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.BgpCommunity{} + obj.bgpCommunitySlice = []BgpCommunity{} + } + return obj +} +func (obj *bgpV6EviVxlanBgpCommunityIter) clearHolderSlice() BgpV6EviVxlanBgpCommunityIter { + if len(obj.bgpCommunitySlice) > 0 { + obj.bgpCommunitySlice = []BgpCommunity{} + } + return obj +} +func (obj *bgpV6EviVxlanBgpCommunityIter) appendHolderSlice(item BgpCommunity) BgpV6EviVxlanBgpCommunityIter { + obj.bgpCommunitySlice = append(obj.bgpCommunitySlice, item) + return obj +} + +// Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two byte local administrator id. When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for administrator_ipv4_address is a four byte IPv4 address followed by a two byte local administrator id. When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from IANA's "ETHER TYPES" registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format. When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates occur for the same MAC address. +// ExtCommunities returns a []BgpExtCommunity +func (obj *bgpV6EviVxlan) ExtCommunities() BgpV6EviVxlanBgpExtCommunityIter { + if len(obj.obj.ExtCommunities) == 0 { + obj.obj.ExtCommunities = []*otg.BgpExtCommunity{} + } + if obj.extCommunitiesHolder == nil { + obj.extCommunitiesHolder = newBgpV6EviVxlanBgpExtCommunityIter(&obj.obj.ExtCommunities).setMsg(obj) + } + return obj.extCommunitiesHolder +} + +type bgpV6EviVxlanBgpExtCommunityIter struct { + obj *bgpV6EviVxlan + bgpExtCommunitySlice []BgpExtCommunity + fieldPtr *[]*otg.BgpExtCommunity +} + +func newBgpV6EviVxlanBgpExtCommunityIter(ptr *[]*otg.BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter { + return &bgpV6EviVxlanBgpExtCommunityIter{fieldPtr: ptr} +} + +type BgpV6EviVxlanBgpExtCommunityIter interface { + setMsg(*bgpV6EviVxlan) BgpV6EviVxlanBgpExtCommunityIter + Items() []BgpExtCommunity + Add() BgpExtCommunity + Append(items ...BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter + Set(index int, newObj BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter + Clear() BgpV6EviVxlanBgpExtCommunityIter + clearHolderSlice() BgpV6EviVxlanBgpExtCommunityIter + appendHolderSlice(item BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter +} + +func (obj *bgpV6EviVxlanBgpExtCommunityIter) setMsg(msg *bgpV6EviVxlan) BgpV6EviVxlanBgpExtCommunityIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&bgpExtCommunity{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *bgpV6EviVxlanBgpExtCommunityIter) Items() []BgpExtCommunity { + return obj.bgpExtCommunitySlice +} + +func (obj *bgpV6EviVxlanBgpExtCommunityIter) Add() BgpExtCommunity { + newObj := &otg.BgpExtCommunity{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &bgpExtCommunity{obj: newObj} + newLibObj.setDefault() + obj.bgpExtCommunitySlice = append(obj.bgpExtCommunitySlice, newLibObj) + return newLibObj +} + +func (obj *bgpV6EviVxlanBgpExtCommunityIter) Append(items ...BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter { + for _, item := range items { + newObj := item.msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.bgpExtCommunitySlice = append(obj.bgpExtCommunitySlice, item) + } + return obj +} + +func (obj *bgpV6EviVxlanBgpExtCommunityIter) Set(index int, newObj BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter { + (*obj.fieldPtr)[index] = newObj.msg() + obj.bgpExtCommunitySlice[index] = newObj + return obj +} +func (obj *bgpV6EviVxlanBgpExtCommunityIter) Clear() BgpV6EviVxlanBgpExtCommunityIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.BgpExtCommunity{} + obj.bgpExtCommunitySlice = []BgpExtCommunity{} + } + return obj +} +func (obj *bgpV6EviVxlanBgpExtCommunityIter) clearHolderSlice() BgpV6EviVxlanBgpExtCommunityIter { + if len(obj.bgpExtCommunitySlice) > 0 { + obj.bgpExtCommunitySlice = []BgpExtCommunity{} + } + return obj +} +func (obj *bgpV6EviVxlanBgpExtCommunityIter) appendHolderSlice(item BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter { + obj.bgpExtCommunitySlice = append(obj.bgpExtCommunitySlice, item) + return obj +} + +// Optional AS PATH settings. +// AsPath returns a BgpAsPath +func (obj *bgpV6EviVxlan) AsPath() BgpAsPath { + if obj.obj.AsPath == nil { + obj.obj.AsPath = NewBgpAsPath().msg() + } + if obj.asPathHolder == nil { + obj.asPathHolder = &bgpAsPath{obj: obj.obj.AsPath} + } + return obj.asPathHolder +} + +// Optional AS PATH settings. +// AsPath returns a BgpAsPath +func (obj *bgpV6EviVxlan) HasAsPath() bool { + return obj.obj.AsPath != nil +} + +// Optional AS PATH settings. +// SetAsPath sets the BgpAsPath value in the BgpV6EviVxlan object +func (obj *bgpV6EviVxlan) SetAsPath(value BgpAsPath) BgpV6EviVxlan { + + obj.asPathHolder = nil + obj.obj.AsPath = value.msg() + + return obj +} + +func (obj *bgpV6EviVxlan) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if len(obj.obj.BroadcastDomains) != 0 { + + if set_default { + obj.BroadcastDomains().clearHolderSlice() + for _, item := range obj.obj.BroadcastDomains { + obj.BroadcastDomains().appendHolderSlice(&bgpV6EviVxlanBroadcastDomain{obj: item}) + } + } + for _, item := range obj.BroadcastDomains().Items() { + item.validateObj(vObj, set_default) + } + + } + + if obj.obj.PmsiLabel != nil { + + if *obj.obj.PmsiLabel > 16777215 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= BgpV6EviVxlan.PmsiLabel <= 16777215 but Got %d", *obj.obj.PmsiLabel)) + } + + } + + if obj.obj.AdLabel != nil { + + if *obj.obj.AdLabel > 16777215 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= BgpV6EviVxlan.AdLabel <= 16777215 but Got %d", *obj.obj.AdLabel)) + } + + } + + if obj.obj.RouteDistinguisher != nil { + + obj.RouteDistinguisher().validateObj(vObj, set_default) + } + + if len(obj.obj.RouteTargetExport) != 0 { + + if set_default { + obj.RouteTargetExport().clearHolderSlice() + for _, item := range obj.obj.RouteTargetExport { + obj.RouteTargetExport().appendHolderSlice(&bgpRouteTarget{obj: item}) + } + } + for _, item := range obj.RouteTargetExport().Items() { + item.validateObj(vObj, set_default) + } + + } + + if len(obj.obj.RouteTargetImport) != 0 { + + if set_default { + obj.RouteTargetImport().clearHolderSlice() + for _, item := range obj.obj.RouteTargetImport { + obj.RouteTargetImport().appendHolderSlice(&bgpRouteTarget{obj: item}) + } + } + for _, item := range obj.RouteTargetImport().Items() { + item.validateObj(vObj, set_default) + } + + } + + if len(obj.obj.L3RouteTargetExport) != 0 { + + if set_default { + obj.L3RouteTargetExport().clearHolderSlice() + for _, item := range obj.obj.L3RouteTargetExport { + obj.L3RouteTargetExport().appendHolderSlice(&bgpRouteTarget{obj: item}) + } + } + for _, item := range obj.L3RouteTargetExport().Items() { + item.validateObj(vObj, set_default) + } + + } + + if len(obj.obj.L3RouteTargetImport) != 0 { + + if set_default { + obj.L3RouteTargetImport().clearHolderSlice() + for _, item := range obj.obj.L3RouteTargetImport { + obj.L3RouteTargetImport().appendHolderSlice(&bgpRouteTarget{obj: item}) + } + } + for _, item := range obj.L3RouteTargetImport().Items() { + item.validateObj(vObj, set_default) + } + + } + + if obj.obj.Advanced != nil { + + obj.Advanced().validateObj(vObj, set_default) + } + + if len(obj.obj.Communities) != 0 { + + if set_default { + obj.Communities().clearHolderSlice() + for _, item := range obj.obj.Communities { + obj.Communities().appendHolderSlice(&bgpCommunity{obj: item}) + } + } + for _, item := range obj.Communities().Items() { + item.validateObj(vObj, set_default) + } + + } + + if len(obj.obj.ExtCommunities) != 0 { + + if set_default { + obj.ExtCommunities().clearHolderSlice() + for _, item := range obj.obj.ExtCommunities { + obj.ExtCommunities().appendHolderSlice(&bgpExtCommunity{obj: item}) + } + } + for _, item := range obj.ExtCommunities().Items() { + item.validateObj(vObj, set_default) + } + + } + + if obj.obj.AsPath != nil { + + obj.AsPath().validateObj(vObj, set_default) + } + +} + +func (obj *bgpV6EviVxlan) setDefault() { + if obj.obj.ReplicationType == nil { + obj.SetReplicationType(BgpV6EviVxlanReplicationType.INGRESS_REPLICATION) + + } + if obj.obj.PmsiLabel == nil { + obj.SetPmsiLabel(16) + } + if obj.obj.AdLabel == nil { + obj.SetAdLabel(0) + } + +} + +// ***** VxlanTunnelDestinationIPModeUnicastArpSuppressionCache ***** +type vxlanTunnelDestinationIPModeUnicastArpSuppressionCache struct { + validation + obj *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + marshaller marshalVxlanTunnelDestinationIPModeUnicastArpSuppressionCache + unMarshaller unMarshalVxlanTunnelDestinationIPModeUnicastArpSuppressionCache +} + +func NewVxlanTunnelDestinationIPModeUnicastArpSuppressionCache() VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { + obj := vxlanTunnelDestinationIPModeUnicastArpSuppressionCache{obj: &otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache{}} + obj.setDefault() + return &obj +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) msg() *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { + return obj.obj +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) setMsg(msg *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { + + proto.Merge(obj.obj, msg) + return obj +} + +type marshalvxlanTunnelDestinationIPModeUnicastArpSuppressionCache struct { + obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache +} + +type marshalVxlanTunnelDestinationIPModeUnicastArpSuppressionCache interface { + // ToProto marshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache to protobuf object *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + ToProto() (*otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache, error) + // ToPbText marshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache to protobuf text + ToPbText() (string, error) + // ToYaml marshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache to YAML text + ToYaml() (string, error) + // ToJson marshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache to JSON text + ToJson() (string, error) +} + +type unMarshalvxlanTunnelDestinationIPModeUnicastArpSuppressionCache struct { + obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache +} + +type unMarshalVxlanTunnelDestinationIPModeUnicastArpSuppressionCache interface { + // FromProto unmarshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache from protobuf object *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + FromProto(msg *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) (VxlanTunnelDestinationIPModeUnicastArpSuppressionCache, error) + // FromPbText unmarshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache from protobuf text + FromPbText(value string) error + // FromYaml unmarshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache from YAML text + FromYaml(value string) error + // FromJson unmarshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache from JSON text + FromJson(value string) error +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) Marshal() marshalVxlanTunnelDestinationIPModeUnicastArpSuppressionCache { + if obj.marshaller == nil { + obj.marshaller = &marshalvxlanTunnelDestinationIPModeUnicastArpSuppressionCache{obj: obj} + } + return obj.marshaller +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) Unmarshal() unMarshalVxlanTunnelDestinationIPModeUnicastArpSuppressionCache { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshalvxlanTunnelDestinationIPModeUnicastArpSuppressionCache{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshalvxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ToProto() (*otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshalvxlanTunnelDestinationIPModeUnicastArpSuppressionCache) FromProto(msg *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) (VxlanTunnelDestinationIPModeUnicastArpSuppressionCache, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshalvxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ToPbText() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (m *unMarshalvxlanTunnelDestinationIPModeUnicastArpSuppressionCache) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), m.obj.msg()) + if retObj != nil { + return retObj + } + + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (m *marshalvxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ToYaml() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalvxlanTunnelDestinationIPModeUnicastArpSuppressionCache) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (m *marshalvxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ToJson() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalvxlanTunnelDestinationIPModeUnicastArpSuppressionCache) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := m.obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) Clone() (VxlanTunnelDestinationIPModeUnicastArpSuppressionCache, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewVxlanTunnelDestinationIPModeUnicastArpSuppressionCache() + data, err := proto.Marshal(obj.msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// VxlanTunnelDestinationIPModeUnicastArpSuppressionCache is each VTEP maintains an ARP suppression cache table for known IP hosts and their associated MAC addresses in the VNI segment. When an end host in the VNI sends an ARP request for another end-host IP address, its local VTEP intercepts the ARP request and checks for the ARP-resolved IP address in its ARP suppression cache table. If it finds a match, the local VTEP sends an ARP response on behalf of the remote end host. +type VxlanTunnelDestinationIPModeUnicastArpSuppressionCache interface { + Validation + // msg marshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache to protobuf object *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + // and doesn't set defaults + msg() *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + // setMsg unmarshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache from protobuf object *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + // and doesn't set defaults + setMsg(*otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + // provides marshal interface + Marshal() marshalVxlanTunnelDestinationIPModeUnicastArpSuppressionCache + // provides unmarshal interface + Unmarshal() unMarshalVxlanTunnelDestinationIPModeUnicastArpSuppressionCache + // validate validates VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + validate() error + // A stringer function + String() string + // Clones the object + Clone() (VxlanTunnelDestinationIPModeUnicastArpSuppressionCache, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // RemoteVmMac returns string, set in VxlanTunnelDestinationIPModeUnicastArpSuppressionCache. + RemoteVmMac() string + // SetRemoteVmMac assigns string provided by user to VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + SetRemoteVmMac(value string) VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + // HasRemoteVmMac checks if RemoteVmMac has been set in VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + HasRemoteVmMac() bool + // RemoteVmIpv4 returns string, set in VxlanTunnelDestinationIPModeUnicastArpSuppressionCache. + RemoteVmIpv4() string + // SetRemoteVmIpv4 assigns string provided by user to VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + SetRemoteVmIpv4(value string) VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + // HasRemoteVmIpv4 checks if RemoteVmIpv4 has been set in VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + HasRemoteVmIpv4() bool +} + +// Remote VM MAC address bound to Remote VM IPv4 address +// RemoteVmMac returns a string +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) RemoteVmMac() string { + + return *obj.obj.RemoteVmMac + +} + +// Remote VM MAC address bound to Remote VM IPv4 address +// RemoteVmMac returns a string +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) HasRemoteVmMac() bool { + return obj.obj.RemoteVmMac != nil +} + +// Remote VM MAC address bound to Remote VM IPv4 address +// SetRemoteVmMac sets the string value in the VxlanTunnelDestinationIPModeUnicastArpSuppressionCache object +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) SetRemoteVmMac(value string) VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { + + obj.obj.RemoteVmMac = &value + return obj +} + +// Remote VM IPv4 address +// RemoteVmIpv4 returns a string +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) RemoteVmIpv4() string { + + return *obj.obj.RemoteVmIpv4 + +} + +// Remote VM IPv4 address +// RemoteVmIpv4 returns a string +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) HasRemoteVmIpv4() bool { + return obj.obj.RemoteVmIpv4 != nil +} + +// Remote VM IPv4 address +// SetRemoteVmIpv4 sets the string value in the VxlanTunnelDestinationIPModeUnicastArpSuppressionCache object +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) SetRemoteVmIpv4(value string) VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { + + obj.obj.RemoteVmIpv4 = &value + return obj +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.RemoteVmMac != nil { + + err := obj.validateMac(obj.RemoteVmMac()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on VxlanTunnelDestinationIPModeUnicastArpSuppressionCache.RemoteVmMac")) + } + + } + + if obj.obj.RemoteVmIpv4 != nil { + + err := obj.validateIpv4(obj.RemoteVmIpv4()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on VxlanTunnelDestinationIPModeUnicastArpSuppressionCache.RemoteVmIpv4")) + } + + } + +} + +func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) setDefault() { + +} + +// ***** PatternFlowIpv4TosPrecedenceCounter ***** +type patternFlowIpv4TosPrecedenceCounter struct { + validation + obj *otg.PatternFlowIpv4TosPrecedenceCounter + marshaller marshalPatternFlowIpv4TosPrecedenceCounter + unMarshaller unMarshalPatternFlowIpv4TosPrecedenceCounter +} + +func NewPatternFlowIpv4TosPrecedenceCounter() PatternFlowIpv4TosPrecedenceCounter { + obj := patternFlowIpv4TosPrecedenceCounter{obj: &otg.PatternFlowIpv4TosPrecedenceCounter{}} + obj.setDefault() + return &obj +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) msg() *otg.PatternFlowIpv4TosPrecedenceCounter { + return obj.obj +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) setMsg(msg *otg.PatternFlowIpv4TosPrecedenceCounter) PatternFlowIpv4TosPrecedenceCounter { + + proto.Merge(obj.obj, msg) + return obj +} + +type marshalpatternFlowIpv4TosPrecedenceCounter struct { + obj *patternFlowIpv4TosPrecedenceCounter +} + +type marshalPatternFlowIpv4TosPrecedenceCounter interface { + // ToProto marshals PatternFlowIpv4TosPrecedenceCounter to protobuf object *otg.PatternFlowIpv4TosPrecedenceCounter + ToProto() (*otg.PatternFlowIpv4TosPrecedenceCounter, error) + // ToPbText marshals PatternFlowIpv4TosPrecedenceCounter to protobuf text + ToPbText() (string, error) + // ToYaml marshals PatternFlowIpv4TosPrecedenceCounter to YAML text + ToYaml() (string, error) + // ToJson marshals PatternFlowIpv4TosPrecedenceCounter to JSON text + ToJson() (string, error) +} + +type unMarshalpatternFlowIpv4TosPrecedenceCounter struct { + obj *patternFlowIpv4TosPrecedenceCounter +} + +type unMarshalPatternFlowIpv4TosPrecedenceCounter interface { + // FromProto unmarshals PatternFlowIpv4TosPrecedenceCounter from protobuf object *otg.PatternFlowIpv4TosPrecedenceCounter + FromProto(msg *otg.PatternFlowIpv4TosPrecedenceCounter) (PatternFlowIpv4TosPrecedenceCounter, error) + // FromPbText unmarshals PatternFlowIpv4TosPrecedenceCounter from protobuf text + FromPbText(value string) error + // FromYaml unmarshals PatternFlowIpv4TosPrecedenceCounter from YAML text + FromYaml(value string) error + // FromJson unmarshals PatternFlowIpv4TosPrecedenceCounter from JSON text + FromJson(value string) error +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) Marshal() marshalPatternFlowIpv4TosPrecedenceCounter { + if obj.marshaller == nil { + obj.marshaller = &marshalpatternFlowIpv4TosPrecedenceCounter{obj: obj} + } + return obj.marshaller +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) Unmarshal() unMarshalPatternFlowIpv4TosPrecedenceCounter { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshalpatternFlowIpv4TosPrecedenceCounter{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshalpatternFlowIpv4TosPrecedenceCounter) ToProto() (*otg.PatternFlowIpv4TosPrecedenceCounter, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshalpatternFlowIpv4TosPrecedenceCounter) FromProto(msg *otg.PatternFlowIpv4TosPrecedenceCounter) (PatternFlowIpv4TosPrecedenceCounter, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshalpatternFlowIpv4TosPrecedenceCounter) ToPbText() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (m *unMarshalpatternFlowIpv4TosPrecedenceCounter) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), m.obj.msg()) + if retObj != nil { + return retObj + } + + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (m *marshalpatternFlowIpv4TosPrecedenceCounter) ToYaml() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalpatternFlowIpv4TosPrecedenceCounter) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (m *marshalpatternFlowIpv4TosPrecedenceCounter) ToJson() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalpatternFlowIpv4TosPrecedenceCounter) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := m.obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) Clone() (PatternFlowIpv4TosPrecedenceCounter, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewPatternFlowIpv4TosPrecedenceCounter() + data, err := proto.Marshal(obj.msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// PatternFlowIpv4TosPrecedenceCounter is integer counter pattern +type PatternFlowIpv4TosPrecedenceCounter interface { + Validation + // msg marshals PatternFlowIpv4TosPrecedenceCounter to protobuf object *otg.PatternFlowIpv4TosPrecedenceCounter + // and doesn't set defaults + msg() *otg.PatternFlowIpv4TosPrecedenceCounter + // setMsg unmarshals PatternFlowIpv4TosPrecedenceCounter from protobuf object *otg.PatternFlowIpv4TosPrecedenceCounter + // and doesn't set defaults + setMsg(*otg.PatternFlowIpv4TosPrecedenceCounter) PatternFlowIpv4TosPrecedenceCounter + // provides marshal interface + Marshal() marshalPatternFlowIpv4TosPrecedenceCounter + // provides unmarshal interface + Unmarshal() unMarshalPatternFlowIpv4TosPrecedenceCounter + // validate validates PatternFlowIpv4TosPrecedenceCounter + validate() error + // A stringer function + String() string + // Clones the object + Clone() (PatternFlowIpv4TosPrecedenceCounter, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Start returns uint32, set in PatternFlowIpv4TosPrecedenceCounter. + Start() uint32 + // SetStart assigns uint32 provided by user to PatternFlowIpv4TosPrecedenceCounter + SetStart(value uint32) PatternFlowIpv4TosPrecedenceCounter + // HasStart checks if Start has been set in PatternFlowIpv4TosPrecedenceCounter + HasStart() bool + // Step returns uint32, set in PatternFlowIpv4TosPrecedenceCounter. + Step() uint32 + // SetStep assigns uint32 provided by user to PatternFlowIpv4TosPrecedenceCounter + SetStep(value uint32) PatternFlowIpv4TosPrecedenceCounter + // HasStep checks if Step has been set in PatternFlowIpv4TosPrecedenceCounter + HasStep() bool + // Count returns uint32, set in PatternFlowIpv4TosPrecedenceCounter. + Count() uint32 + // SetCount assigns uint32 provided by user to PatternFlowIpv4TosPrecedenceCounter + SetCount(value uint32) PatternFlowIpv4TosPrecedenceCounter + // HasCount checks if Count has been set in PatternFlowIpv4TosPrecedenceCounter + HasCount() bool +} + +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4TosPrecedenceCounter) Start() uint32 { + + return *obj.obj.Start + +} + +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4TosPrecedenceCounter) HasStart() bool { + return obj.obj.Start != nil +} + +// description is TBD +// SetStart sets the uint32 value in the PatternFlowIpv4TosPrecedenceCounter object +func (obj *patternFlowIpv4TosPrecedenceCounter) SetStart(value uint32) PatternFlowIpv4TosPrecedenceCounter { + + obj.obj.Start = &value + return obj +} + +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4TosPrecedenceCounter) Step() uint32 { + + return *obj.obj.Step + +} + +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4TosPrecedenceCounter) HasStep() bool { + return obj.obj.Step != nil +} + +// description is TBD +// SetStep sets the uint32 value in the PatternFlowIpv4TosPrecedenceCounter object +func (obj *patternFlowIpv4TosPrecedenceCounter) SetStep(value uint32) PatternFlowIpv4TosPrecedenceCounter { + + obj.obj.Step = &value + return obj +} + +// description is TBD +// Count returns a uint32 +func (obj *patternFlowIpv4TosPrecedenceCounter) Count() uint32 { + + return *obj.obj.Count + +} + +// description is TBD +// Count returns a uint32 +func (obj *patternFlowIpv4TosPrecedenceCounter) HasCount() bool { + return obj.obj.Count != nil +} + +// description is TBD +// SetCount sets the uint32 value in the PatternFlowIpv4TosPrecedenceCounter object +func (obj *patternFlowIpv4TosPrecedenceCounter) SetCount(value uint32) PatternFlowIpv4TosPrecedenceCounter { + + obj.obj.Count = &value + return obj +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.Start != nil { + + if *obj.obj.Start > 7 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosPrecedenceCounter.Start <= 7 but Got %d", *obj.obj.Start)) + } + + } + + if obj.obj.Step != nil { + + if *obj.obj.Step > 7 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosPrecedenceCounter.Step <= 7 but Got %d", *obj.obj.Step)) + } + + } + + if obj.obj.Count != nil { + + if *obj.obj.Count > 7 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosPrecedenceCounter.Count <= 7 but Got %d", *obj.obj.Count)) + } + + } + +} + +func (obj *patternFlowIpv4TosPrecedenceCounter) setDefault() { + if obj.obj.Start == nil { + obj.SetStart(0) + } + if obj.obj.Step == nil { + obj.SetStep(1) + } + if obj.obj.Count == nil { + obj.SetCount(1) + } + +} + +// ***** PatternFlowIpv4TosPrecedenceMetricTag ***** +type patternFlowIpv4TosPrecedenceMetricTag struct { + validation + obj *otg.PatternFlowIpv4TosPrecedenceMetricTag + marshaller marshalPatternFlowIpv4TosPrecedenceMetricTag + unMarshaller unMarshalPatternFlowIpv4TosPrecedenceMetricTag +} + +func NewPatternFlowIpv4TosPrecedenceMetricTag() PatternFlowIpv4TosPrecedenceMetricTag { + obj := patternFlowIpv4TosPrecedenceMetricTag{obj: &otg.PatternFlowIpv4TosPrecedenceMetricTag{}} + obj.setDefault() + return &obj +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) msg() *otg.PatternFlowIpv4TosPrecedenceMetricTag { + return obj.obj +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) setMsg(msg *otg.PatternFlowIpv4TosPrecedenceMetricTag) PatternFlowIpv4TosPrecedenceMetricTag { + + proto.Merge(obj.obj, msg) + return obj +} + +type marshalpatternFlowIpv4TosPrecedenceMetricTag struct { + obj *patternFlowIpv4TosPrecedenceMetricTag +} + +type marshalPatternFlowIpv4TosPrecedenceMetricTag interface { + // ToProto marshals PatternFlowIpv4TosPrecedenceMetricTag to protobuf object *otg.PatternFlowIpv4TosPrecedenceMetricTag + ToProto() (*otg.PatternFlowIpv4TosPrecedenceMetricTag, error) + // ToPbText marshals PatternFlowIpv4TosPrecedenceMetricTag to protobuf text + ToPbText() (string, error) + // ToYaml marshals PatternFlowIpv4TosPrecedenceMetricTag to YAML text + ToYaml() (string, error) + // ToJson marshals PatternFlowIpv4TosPrecedenceMetricTag to JSON text + ToJson() (string, error) +} + +type unMarshalpatternFlowIpv4TosPrecedenceMetricTag struct { + obj *patternFlowIpv4TosPrecedenceMetricTag +} + +type unMarshalPatternFlowIpv4TosPrecedenceMetricTag interface { + // FromProto unmarshals PatternFlowIpv4TosPrecedenceMetricTag from protobuf object *otg.PatternFlowIpv4TosPrecedenceMetricTag + FromProto(msg *otg.PatternFlowIpv4TosPrecedenceMetricTag) (PatternFlowIpv4TosPrecedenceMetricTag, error) + // FromPbText unmarshals PatternFlowIpv4TosPrecedenceMetricTag from protobuf text + FromPbText(value string) error + // FromYaml unmarshals PatternFlowIpv4TosPrecedenceMetricTag from YAML text + FromYaml(value string) error + // FromJson unmarshals PatternFlowIpv4TosPrecedenceMetricTag from JSON text + FromJson(value string) error +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) Marshal() marshalPatternFlowIpv4TosPrecedenceMetricTag { + if obj.marshaller == nil { + obj.marshaller = &marshalpatternFlowIpv4TosPrecedenceMetricTag{obj: obj} + } + return obj.marshaller +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) Unmarshal() unMarshalPatternFlowIpv4TosPrecedenceMetricTag { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshalpatternFlowIpv4TosPrecedenceMetricTag{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshalpatternFlowIpv4TosPrecedenceMetricTag) ToProto() (*otg.PatternFlowIpv4TosPrecedenceMetricTag, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshalpatternFlowIpv4TosPrecedenceMetricTag) FromProto(msg *otg.PatternFlowIpv4TosPrecedenceMetricTag) (PatternFlowIpv4TosPrecedenceMetricTag, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshalpatternFlowIpv4TosPrecedenceMetricTag) ToPbText() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (m *unMarshalpatternFlowIpv4TosPrecedenceMetricTag) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), m.obj.msg()) + if retObj != nil { + return retObj + } + + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (m *marshalpatternFlowIpv4TosPrecedenceMetricTag) ToYaml() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalpatternFlowIpv4TosPrecedenceMetricTag) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (m *marshalpatternFlowIpv4TosPrecedenceMetricTag) ToJson() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalpatternFlowIpv4TosPrecedenceMetricTag) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := m.obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) Clone() (PatternFlowIpv4TosPrecedenceMetricTag, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewPatternFlowIpv4TosPrecedenceMetricTag() + data, err := proto.Marshal(obj.msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// PatternFlowIpv4TosPrecedenceMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. +type PatternFlowIpv4TosPrecedenceMetricTag interface { + Validation + // msg marshals PatternFlowIpv4TosPrecedenceMetricTag to protobuf object *otg.PatternFlowIpv4TosPrecedenceMetricTag + // and doesn't set defaults + msg() *otg.PatternFlowIpv4TosPrecedenceMetricTag + // setMsg unmarshals PatternFlowIpv4TosPrecedenceMetricTag from protobuf object *otg.PatternFlowIpv4TosPrecedenceMetricTag + // and doesn't set defaults + setMsg(*otg.PatternFlowIpv4TosPrecedenceMetricTag) PatternFlowIpv4TosPrecedenceMetricTag + // provides marshal interface + Marshal() marshalPatternFlowIpv4TosPrecedenceMetricTag + // provides unmarshal interface + Unmarshal() unMarshalPatternFlowIpv4TosPrecedenceMetricTag + // validate validates PatternFlowIpv4TosPrecedenceMetricTag + validate() error + // A stringer function + String() string + // Clones the object + Clone() (PatternFlowIpv4TosPrecedenceMetricTag, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Name returns string, set in PatternFlowIpv4TosPrecedenceMetricTag. + Name() string + // SetName assigns string provided by user to PatternFlowIpv4TosPrecedenceMetricTag + SetName(value string) PatternFlowIpv4TosPrecedenceMetricTag + // Offset returns uint32, set in PatternFlowIpv4TosPrecedenceMetricTag. + Offset() uint32 + // SetOffset assigns uint32 provided by user to PatternFlowIpv4TosPrecedenceMetricTag + SetOffset(value uint32) PatternFlowIpv4TosPrecedenceMetricTag + // HasOffset checks if Offset has been set in PatternFlowIpv4TosPrecedenceMetricTag + HasOffset() bool + // Length returns uint32, set in PatternFlowIpv4TosPrecedenceMetricTag. + Length() uint32 + // SetLength assigns uint32 provided by user to PatternFlowIpv4TosPrecedenceMetricTag + SetLength(value uint32) PatternFlowIpv4TosPrecedenceMetricTag + // HasLength checks if Length has been set in PatternFlowIpv4TosPrecedenceMetricTag + HasLength() bool +} + +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field +// Name returns a string +func (obj *patternFlowIpv4TosPrecedenceMetricTag) Name() string { + + return *obj.obj.Name + +} + +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field +// SetName sets the string value in the PatternFlowIpv4TosPrecedenceMetricTag object +func (obj *patternFlowIpv4TosPrecedenceMetricTag) SetName(value string) PatternFlowIpv4TosPrecedenceMetricTag { + obj.obj.Name = &value return obj } -// description is TBD -// ColorSubtype returns a BgpExtendedCommunityTransitiveOpaqueTypeColor -func (obj *bgpExtendedCommunityTransitiveOpaqueType) ColorSubtype() BgpExtendedCommunityTransitiveOpaqueTypeColor { - if obj.obj.ColorSubtype == nil { - obj.setChoice(BgpExtendedCommunityTransitiveOpaqueTypeChoice.COLOR_SUBTYPE) +// Offset in bits relative to start of corresponding header field +// Offset returns a uint32 +func (obj *patternFlowIpv4TosPrecedenceMetricTag) Offset() uint32 { + + return *obj.obj.Offset + +} + +// Offset in bits relative to start of corresponding header field +// Offset returns a uint32 +func (obj *patternFlowIpv4TosPrecedenceMetricTag) HasOffset() bool { + return obj.obj.Offset != nil +} + +// Offset in bits relative to start of corresponding header field +// SetOffset sets the uint32 value in the PatternFlowIpv4TosPrecedenceMetricTag object +func (obj *patternFlowIpv4TosPrecedenceMetricTag) SetOffset(value uint32) PatternFlowIpv4TosPrecedenceMetricTag { + + obj.obj.Offset = &value + return obj +} + +// Number of bits to track for metrics starting from configured offset of corresponding header field +// Length returns a uint32 +func (obj *patternFlowIpv4TosPrecedenceMetricTag) Length() uint32 { + + return *obj.obj.Length + +} + +// Number of bits to track for metrics starting from configured offset of corresponding header field +// Length returns a uint32 +func (obj *patternFlowIpv4TosPrecedenceMetricTag) HasLength() bool { + return obj.obj.Length != nil +} + +// Number of bits to track for metrics starting from configured offset of corresponding header field +// SetLength sets the uint32 value in the PatternFlowIpv4TosPrecedenceMetricTag object +func (obj *patternFlowIpv4TosPrecedenceMetricTag) SetLength(value uint32) PatternFlowIpv4TosPrecedenceMetricTag { + + obj.obj.Length = &value + return obj +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() } - if obj.colorSubtypeHolder == nil { - obj.colorSubtypeHolder = &bgpExtendedCommunityTransitiveOpaqueTypeColor{obj: obj.obj.ColorSubtype} + + // Name is required + if obj.obj.Name == nil { + vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosPrecedenceMetricTag") } - return obj.colorSubtypeHolder + + if obj.obj.Offset != nil { + + if *obj.obj.Offset > 2 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosPrecedenceMetricTag.Offset <= 2 but Got %d", *obj.obj.Offset)) + } + + } + + if obj.obj.Length != nil { + + if *obj.obj.Length < 1 || *obj.obj.Length > 3 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("1 <= PatternFlowIpv4TosPrecedenceMetricTag.Length <= 3 but Got %d", *obj.obj.Length)) + } + + } + +} + +func (obj *patternFlowIpv4TosPrecedenceMetricTag) setDefault() { + if obj.obj.Offset == nil { + obj.SetOffset(0) + } + if obj.obj.Length == nil { + obj.SetLength(3) + } + +} + +// ***** PatternFlowIpv4TosDelayCounter ***** +type patternFlowIpv4TosDelayCounter struct { + validation + obj *otg.PatternFlowIpv4TosDelayCounter + marshaller marshalPatternFlowIpv4TosDelayCounter + unMarshaller unMarshalPatternFlowIpv4TosDelayCounter +} + +func NewPatternFlowIpv4TosDelayCounter() PatternFlowIpv4TosDelayCounter { + obj := patternFlowIpv4TosDelayCounter{obj: &otg.PatternFlowIpv4TosDelayCounter{}} + obj.setDefault() + return &obj +} + +func (obj *patternFlowIpv4TosDelayCounter) msg() *otg.PatternFlowIpv4TosDelayCounter { + return obj.obj +} + +func (obj *patternFlowIpv4TosDelayCounter) setMsg(msg *otg.PatternFlowIpv4TosDelayCounter) PatternFlowIpv4TosDelayCounter { + + proto.Merge(obj.obj, msg) + return obj +} + +type marshalpatternFlowIpv4TosDelayCounter struct { + obj *patternFlowIpv4TosDelayCounter +} + +type marshalPatternFlowIpv4TosDelayCounter interface { + // ToProto marshals PatternFlowIpv4TosDelayCounter to protobuf object *otg.PatternFlowIpv4TosDelayCounter + ToProto() (*otg.PatternFlowIpv4TosDelayCounter, error) + // ToPbText marshals PatternFlowIpv4TosDelayCounter to protobuf text + ToPbText() (string, error) + // ToYaml marshals PatternFlowIpv4TosDelayCounter to YAML text + ToYaml() (string, error) + // ToJson marshals PatternFlowIpv4TosDelayCounter to JSON text + ToJson() (string, error) +} + +type unMarshalpatternFlowIpv4TosDelayCounter struct { + obj *patternFlowIpv4TosDelayCounter +} + +type unMarshalPatternFlowIpv4TosDelayCounter interface { + // FromProto unmarshals PatternFlowIpv4TosDelayCounter from protobuf object *otg.PatternFlowIpv4TosDelayCounter + FromProto(msg *otg.PatternFlowIpv4TosDelayCounter) (PatternFlowIpv4TosDelayCounter, error) + // FromPbText unmarshals PatternFlowIpv4TosDelayCounter from protobuf text + FromPbText(value string) error + // FromYaml unmarshals PatternFlowIpv4TosDelayCounter from YAML text + FromYaml(value string) error + // FromJson unmarshals PatternFlowIpv4TosDelayCounter from JSON text + FromJson(value string) error +} + +func (obj *patternFlowIpv4TosDelayCounter) Marshal() marshalPatternFlowIpv4TosDelayCounter { + if obj.marshaller == nil { + obj.marshaller = &marshalpatternFlowIpv4TosDelayCounter{obj: obj} + } + return obj.marshaller +} + +func (obj *patternFlowIpv4TosDelayCounter) Unmarshal() unMarshalPatternFlowIpv4TosDelayCounter { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshalpatternFlowIpv4TosDelayCounter{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshalpatternFlowIpv4TosDelayCounter) ToProto() (*otg.PatternFlowIpv4TosDelayCounter, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshalpatternFlowIpv4TosDelayCounter) FromProto(msg *otg.PatternFlowIpv4TosDelayCounter) (PatternFlowIpv4TosDelayCounter, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshalpatternFlowIpv4TosDelayCounter) ToPbText() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil +} + +func (m *unMarshalpatternFlowIpv4TosDelayCounter) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), m.obj.msg()) + if retObj != nil { + return retObj + } + + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return retObj +} + +func (m *marshalpatternFlowIpv4TosDelayCounter) ToYaml() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalpatternFlowIpv4TosDelayCounter) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} + +func (m *marshalpatternFlowIpv4TosDelayCounter) ToJson() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(data), nil +} + +func (m *unMarshalpatternFlowIpv4TosDelayCounter) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + + err := m.obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} + +func (obj *patternFlowIpv4TosDelayCounter) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *patternFlowIpv4TosDelayCounter) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *patternFlowIpv4TosDelayCounter) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *patternFlowIpv4TosDelayCounter) Clone() (PatternFlowIpv4TosDelayCounter, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewPatternFlowIpv4TosDelayCounter() + data, err := proto.Marshal(obj.msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} + +// PatternFlowIpv4TosDelayCounter is integer counter pattern +type PatternFlowIpv4TosDelayCounter interface { + Validation + // msg marshals PatternFlowIpv4TosDelayCounter to protobuf object *otg.PatternFlowIpv4TosDelayCounter + // and doesn't set defaults + msg() *otg.PatternFlowIpv4TosDelayCounter + // setMsg unmarshals PatternFlowIpv4TosDelayCounter from protobuf object *otg.PatternFlowIpv4TosDelayCounter + // and doesn't set defaults + setMsg(*otg.PatternFlowIpv4TosDelayCounter) PatternFlowIpv4TosDelayCounter + // provides marshal interface + Marshal() marshalPatternFlowIpv4TosDelayCounter + // provides unmarshal interface + Unmarshal() unMarshalPatternFlowIpv4TosDelayCounter + // validate validates PatternFlowIpv4TosDelayCounter + validate() error + // A stringer function + String() string + // Clones the object + Clone() (PatternFlowIpv4TosDelayCounter, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Start returns uint32, set in PatternFlowIpv4TosDelayCounter. + Start() uint32 + // SetStart assigns uint32 provided by user to PatternFlowIpv4TosDelayCounter + SetStart(value uint32) PatternFlowIpv4TosDelayCounter + // HasStart checks if Start has been set in PatternFlowIpv4TosDelayCounter + HasStart() bool + // Step returns uint32, set in PatternFlowIpv4TosDelayCounter. + Step() uint32 + // SetStep assigns uint32 provided by user to PatternFlowIpv4TosDelayCounter + SetStep(value uint32) PatternFlowIpv4TosDelayCounter + // HasStep checks if Step has been set in PatternFlowIpv4TosDelayCounter + HasStep() bool + // Count returns uint32, set in PatternFlowIpv4TosDelayCounter. + Count() uint32 + // SetCount assigns uint32 provided by user to PatternFlowIpv4TosDelayCounter + SetCount(value uint32) PatternFlowIpv4TosDelayCounter + // HasCount checks if Count has been set in PatternFlowIpv4TosDelayCounter + HasCount() bool } // description is TBD -// ColorSubtype returns a BgpExtendedCommunityTransitiveOpaqueTypeColor -func (obj *bgpExtendedCommunityTransitiveOpaqueType) HasColorSubtype() bool { - return obj.obj.ColorSubtype != nil +// Start returns a uint32 +func (obj *patternFlowIpv4TosDelayCounter) Start() uint32 { + + return *obj.obj.Start + } // description is TBD -// SetColorSubtype sets the BgpExtendedCommunityTransitiveOpaqueTypeColor value in the BgpExtendedCommunityTransitiveOpaqueType object -func (obj *bgpExtendedCommunityTransitiveOpaqueType) SetColorSubtype(value BgpExtendedCommunityTransitiveOpaqueTypeColor) BgpExtendedCommunityTransitiveOpaqueType { - obj.setChoice(BgpExtendedCommunityTransitiveOpaqueTypeChoice.COLOR_SUBTYPE) - obj.colorSubtypeHolder = nil - obj.obj.ColorSubtype = value.msg() +// Start returns a uint32 +func (obj *patternFlowIpv4TosDelayCounter) HasStart() bool { + return obj.obj.Start != nil +} + +// description is TBD +// SetStart sets the uint32 value in the PatternFlowIpv4TosDelayCounter object +func (obj *patternFlowIpv4TosDelayCounter) SetStart(value uint32) PatternFlowIpv4TosDelayCounter { + obj.obj.Start = &value return obj } // description is TBD -// EncapsulationSubtype returns a BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation -func (obj *bgpExtendedCommunityTransitiveOpaqueType) EncapsulationSubtype() BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation { - if obj.obj.EncapsulationSubtype == nil { - obj.setChoice(BgpExtendedCommunityTransitiveOpaqueTypeChoice.ENCAPSULATION_SUBTYPE) - } - if obj.encapsulationSubtypeHolder == nil { - obj.encapsulationSubtypeHolder = &bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation{obj: obj.obj.EncapsulationSubtype} - } - return obj.encapsulationSubtypeHolder +// Step returns a uint32 +func (obj *patternFlowIpv4TosDelayCounter) Step() uint32 { + + return *obj.obj.Step + } // description is TBD -// EncapsulationSubtype returns a BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation -func (obj *bgpExtendedCommunityTransitiveOpaqueType) HasEncapsulationSubtype() bool { - return obj.obj.EncapsulationSubtype != nil +// Step returns a uint32 +func (obj *patternFlowIpv4TosDelayCounter) HasStep() bool { + return obj.obj.Step != nil } // description is TBD -// SetEncapsulationSubtype sets the BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation value in the BgpExtendedCommunityTransitiveOpaqueType object -func (obj *bgpExtendedCommunityTransitiveOpaqueType) SetEncapsulationSubtype(value BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) BgpExtendedCommunityTransitiveOpaqueType { - obj.setChoice(BgpExtendedCommunityTransitiveOpaqueTypeChoice.ENCAPSULATION_SUBTYPE) - obj.encapsulationSubtypeHolder = nil - obj.obj.EncapsulationSubtype = value.msg() +// SetStep sets the uint32 value in the PatternFlowIpv4TosDelayCounter object +func (obj *patternFlowIpv4TosDelayCounter) SetStep(value uint32) PatternFlowIpv4TosDelayCounter { + obj.obj.Step = &value return obj } -func (obj *bgpExtendedCommunityTransitiveOpaqueType) validateObj(vObj *validation, set_default bool) { +// description is TBD +// Count returns a uint32 +func (obj *patternFlowIpv4TosDelayCounter) Count() uint32 { + + return *obj.obj.Count + +} + +// description is TBD +// Count returns a uint32 +func (obj *patternFlowIpv4TosDelayCounter) HasCount() bool { + return obj.obj.Count != nil +} + +// description is TBD +// SetCount sets the uint32 value in the PatternFlowIpv4TosDelayCounter object +func (obj *patternFlowIpv4TosDelayCounter) SetCount(value uint32) PatternFlowIpv4TosDelayCounter { + + obj.obj.Count = &value + return obj +} + +func (obj *patternFlowIpv4TosDelayCounter) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.ColorSubtype != nil { + if obj.obj.Start != nil { + + if *obj.obj.Start > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosDelayCounter.Start <= 1 but Got %d", *obj.obj.Start)) + } - obj.ColorSubtype().validateObj(vObj, set_default) } - if obj.obj.EncapsulationSubtype != nil { + if obj.obj.Step != nil { + + if *obj.obj.Step > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosDelayCounter.Step <= 1 but Got %d", *obj.obj.Step)) + } - obj.EncapsulationSubtype().validateObj(vObj, set_default) } -} + if obj.obj.Count != nil { -func (obj *bgpExtendedCommunityTransitiveOpaqueType) setDefault() { - if obj.obj.Choice == nil { - obj.setChoice(BgpExtendedCommunityTransitiveOpaqueTypeChoice.COLOR_SUBTYPE) + if *obj.obj.Count > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosDelayCounter.Count <= 1 but Got %d", *obj.obj.Count)) + } } } -// ***** BgpExtendedCommunityTransitiveEvpnType ***** -type bgpExtendedCommunityTransitiveEvpnType struct { +func (obj *patternFlowIpv4TosDelayCounter) setDefault() { + if obj.obj.Start == nil { + obj.SetStart(0) + } + if obj.obj.Step == nil { + obj.SetStep(1) + } + if obj.obj.Count == nil { + obj.SetCount(1) + } + +} + +// ***** PatternFlowIpv4TosDelayMetricTag ***** +type patternFlowIpv4TosDelayMetricTag struct { validation - obj *otg.BgpExtendedCommunityTransitiveEvpnType - marshaller marshalBgpExtendedCommunityTransitiveEvpnType - unMarshaller unMarshalBgpExtendedCommunityTransitiveEvpnType - routerMacSubtypeHolder BgpExtendedCommunityTransitiveEvpnTypeRouterMac + obj *otg.PatternFlowIpv4TosDelayMetricTag + marshaller marshalPatternFlowIpv4TosDelayMetricTag + unMarshaller unMarshalPatternFlowIpv4TosDelayMetricTag } -func NewBgpExtendedCommunityTransitiveEvpnType() BgpExtendedCommunityTransitiveEvpnType { - obj := bgpExtendedCommunityTransitiveEvpnType{obj: &otg.BgpExtendedCommunityTransitiveEvpnType{}} +func NewPatternFlowIpv4TosDelayMetricTag() PatternFlowIpv4TosDelayMetricTag { + obj := patternFlowIpv4TosDelayMetricTag{obj: &otg.PatternFlowIpv4TosDelayMetricTag{}} obj.setDefault() return &obj } -func (obj *bgpExtendedCommunityTransitiveEvpnType) msg() *otg.BgpExtendedCommunityTransitiveEvpnType { +func (obj *patternFlowIpv4TosDelayMetricTag) msg() *otg.PatternFlowIpv4TosDelayMetricTag { return obj.obj } -func (obj *bgpExtendedCommunityTransitiveEvpnType) setMsg(msg *otg.BgpExtendedCommunityTransitiveEvpnType) BgpExtendedCommunityTransitiveEvpnType { - obj.setNil() +func (obj *patternFlowIpv4TosDelayMetricTag) setMsg(msg *otg.PatternFlowIpv4TosDelayMetricTag) PatternFlowIpv4TosDelayMetricTag { + proto.Merge(obj.obj, msg) return obj } -type marshalbgpExtendedCommunityTransitiveEvpnType struct { - obj *bgpExtendedCommunityTransitiveEvpnType +type marshalpatternFlowIpv4TosDelayMetricTag struct { + obj *patternFlowIpv4TosDelayMetricTag } -type marshalBgpExtendedCommunityTransitiveEvpnType interface { - // ToProto marshals BgpExtendedCommunityTransitiveEvpnType to protobuf object *otg.BgpExtendedCommunityTransitiveEvpnType - ToProto() (*otg.BgpExtendedCommunityTransitiveEvpnType, error) - // ToPbText marshals BgpExtendedCommunityTransitiveEvpnType to protobuf text +type marshalPatternFlowIpv4TosDelayMetricTag interface { + // ToProto marshals PatternFlowIpv4TosDelayMetricTag to protobuf object *otg.PatternFlowIpv4TosDelayMetricTag + ToProto() (*otg.PatternFlowIpv4TosDelayMetricTag, error) + // ToPbText marshals PatternFlowIpv4TosDelayMetricTag to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpExtendedCommunityTransitiveEvpnType to YAML text + // ToYaml marshals PatternFlowIpv4TosDelayMetricTag to YAML text ToYaml() (string, error) - // ToJson marshals BgpExtendedCommunityTransitiveEvpnType to JSON text + // ToJson marshals PatternFlowIpv4TosDelayMetricTag to JSON text ToJson() (string, error) } -type unMarshalbgpExtendedCommunityTransitiveEvpnType struct { - obj *bgpExtendedCommunityTransitiveEvpnType +type unMarshalpatternFlowIpv4TosDelayMetricTag struct { + obj *patternFlowIpv4TosDelayMetricTag } -type unMarshalBgpExtendedCommunityTransitiveEvpnType interface { - // FromProto unmarshals BgpExtendedCommunityTransitiveEvpnType from protobuf object *otg.BgpExtendedCommunityTransitiveEvpnType - FromProto(msg *otg.BgpExtendedCommunityTransitiveEvpnType) (BgpExtendedCommunityTransitiveEvpnType, error) - // FromPbText unmarshals BgpExtendedCommunityTransitiveEvpnType from protobuf text +type unMarshalPatternFlowIpv4TosDelayMetricTag interface { + // FromProto unmarshals PatternFlowIpv4TosDelayMetricTag from protobuf object *otg.PatternFlowIpv4TosDelayMetricTag + FromProto(msg *otg.PatternFlowIpv4TosDelayMetricTag) (PatternFlowIpv4TosDelayMetricTag, error) + // FromPbText unmarshals PatternFlowIpv4TosDelayMetricTag from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpExtendedCommunityTransitiveEvpnType from YAML text + // FromYaml unmarshals PatternFlowIpv4TosDelayMetricTag from YAML text FromYaml(value string) error - // FromJson unmarshals BgpExtendedCommunityTransitiveEvpnType from JSON text + // FromJson unmarshals PatternFlowIpv4TosDelayMetricTag from JSON text FromJson(value string) error } -func (obj *bgpExtendedCommunityTransitiveEvpnType) Marshal() marshalBgpExtendedCommunityTransitiveEvpnType { +func (obj *patternFlowIpv4TosDelayMetricTag) Marshal() marshalPatternFlowIpv4TosDelayMetricTag { if obj.marshaller == nil { - obj.marshaller = &marshalbgpExtendedCommunityTransitiveEvpnType{obj: obj} + obj.marshaller = &marshalpatternFlowIpv4TosDelayMetricTag{obj: obj} } return obj.marshaller } -func (obj *bgpExtendedCommunityTransitiveEvpnType) Unmarshal() unMarshalBgpExtendedCommunityTransitiveEvpnType { +func (obj *patternFlowIpv4TosDelayMetricTag) Unmarshal() unMarshalPatternFlowIpv4TosDelayMetricTag { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpExtendedCommunityTransitiveEvpnType{obj: obj} + obj.unMarshaller = &unMarshalpatternFlowIpv4TosDelayMetricTag{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpExtendedCommunityTransitiveEvpnType) ToProto() (*otg.BgpExtendedCommunityTransitiveEvpnType, error) { +func (m *marshalpatternFlowIpv4TosDelayMetricTag) ToProto() (*otg.PatternFlowIpv4TosDelayMetricTag, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -325339,7 +337670,7 @@ func (m *marshalbgpExtendedCommunityTransitiveEvpnType) ToProto() (*otg.BgpExten return m.obj.msg(), nil } -func (m *unMarshalbgpExtendedCommunityTransitiveEvpnType) FromProto(msg *otg.BgpExtendedCommunityTransitiveEvpnType) (BgpExtendedCommunityTransitiveEvpnType, error) { +func (m *unMarshalpatternFlowIpv4TosDelayMetricTag) FromProto(msg *otg.PatternFlowIpv4TosDelayMetricTag) (PatternFlowIpv4TosDelayMetricTag, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -325348,7 +337679,7 @@ func (m *unMarshalbgpExtendedCommunityTransitiveEvpnType) FromProto(msg *otg.Bgp return newObj, nil } -func (m *marshalbgpExtendedCommunityTransitiveEvpnType) ToPbText() (string, error) { +func (m *marshalpatternFlowIpv4TosDelayMetricTag) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -325360,12 +337691,12 @@ func (m *marshalbgpExtendedCommunityTransitiveEvpnType) ToPbText() (string, erro return string(protoMarshal), nil } -func (m *unMarshalbgpExtendedCommunityTransitiveEvpnType) FromPbText(value string) error { +func (m *unMarshalpatternFlowIpv4TosDelayMetricTag) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - m.obj.setNil() + vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -325373,7 +337704,7 @@ func (m *unMarshalbgpExtendedCommunityTransitiveEvpnType) FromPbText(value strin return retObj } -func (m *marshalbgpExtendedCommunityTransitiveEvpnType) ToYaml() (string, error) { +func (m *marshalpatternFlowIpv4TosDelayMetricTag) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -325394,7 +337725,7 @@ func (m *marshalbgpExtendedCommunityTransitiveEvpnType) ToYaml() (string, error) return string(data), nil } -func (m *unMarshalbgpExtendedCommunityTransitiveEvpnType) FromYaml(value string) error { +func (m *unMarshalpatternFlowIpv4TosDelayMetricTag) FromYaml(value string) error { if value == "" { value = "{}" } @@ -325411,7 +337742,7 @@ func (m *unMarshalbgpExtendedCommunityTransitiveEvpnType) FromYaml(value string) return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - m.obj.setNil() + vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -325419,7 +337750,7 @@ func (m *unMarshalbgpExtendedCommunityTransitiveEvpnType) FromYaml(value string) return nil } -func (m *marshalbgpExtendedCommunityTransitiveEvpnType) ToJson() (string, error) { +func (m *marshalpatternFlowIpv4TosDelayMetricTag) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -325437,7 +337768,7 @@ func (m *marshalbgpExtendedCommunityTransitiveEvpnType) ToJson() (string, error) return string(data), nil } -func (m *unMarshalbgpExtendedCommunityTransitiveEvpnType) FromJson(value string) error { +func (m *unMarshalpatternFlowIpv4TosDelayMetricTag) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -325450,7 +337781,7 @@ func (m *unMarshalbgpExtendedCommunityTransitiveEvpnType) FromJson(value string) return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - m.obj.setNil() + err := m.obj.validateToAndFrom() if err != nil { return err @@ -325458,19 +337789,19 @@ func (m *unMarshalbgpExtendedCommunityTransitiveEvpnType) FromJson(value string) return nil } -func (obj *bgpExtendedCommunityTransitiveEvpnType) validateToAndFrom() error { +func (obj *patternFlowIpv4TosDelayMetricTag) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpExtendedCommunityTransitiveEvpnType) validate() error { +func (obj *patternFlowIpv4TosDelayMetricTag) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpExtendedCommunityTransitiveEvpnType) String() string { +func (obj *patternFlowIpv4TosDelayMetricTag) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -325478,12 +337809,12 @@ func (obj *bgpExtendedCommunityTransitiveEvpnType) String() string { return str } -func (obj *bgpExtendedCommunityTransitiveEvpnType) Clone() (BgpExtendedCommunityTransitiveEvpnType, error) { +func (obj *patternFlowIpv4TosDelayMetricTag) Clone() (PatternFlowIpv4TosDelayMetricTag, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpExtendedCommunityTransitiveEvpnType() + newObj := NewPatternFlowIpv4TosDelayMetricTag() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -325495,208 +337826,217 @@ func (obj *bgpExtendedCommunityTransitiveEvpnType) Clone() (BgpExtendedCommunity return newObj, nil } -func (obj *bgpExtendedCommunityTransitiveEvpnType) setNil() { - obj.routerMacSubtypeHolder = nil - obj.validationErrors = nil - obj.warnings = nil - obj.constraints = make(map[string]map[string]Constraints) -} - -// BgpExtendedCommunityTransitiveEvpnType is the Transitive EVPN Extended Community is sent as type 0x06 . -type BgpExtendedCommunityTransitiveEvpnType interface { +// PatternFlowIpv4TosDelayMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. +type PatternFlowIpv4TosDelayMetricTag interface { Validation - // msg marshals BgpExtendedCommunityTransitiveEvpnType to protobuf object *otg.BgpExtendedCommunityTransitiveEvpnType + // msg marshals PatternFlowIpv4TosDelayMetricTag to protobuf object *otg.PatternFlowIpv4TosDelayMetricTag // and doesn't set defaults - msg() *otg.BgpExtendedCommunityTransitiveEvpnType - // setMsg unmarshals BgpExtendedCommunityTransitiveEvpnType from protobuf object *otg.BgpExtendedCommunityTransitiveEvpnType + msg() *otg.PatternFlowIpv4TosDelayMetricTag + // setMsg unmarshals PatternFlowIpv4TosDelayMetricTag from protobuf object *otg.PatternFlowIpv4TosDelayMetricTag // and doesn't set defaults - setMsg(*otg.BgpExtendedCommunityTransitiveEvpnType) BgpExtendedCommunityTransitiveEvpnType + setMsg(*otg.PatternFlowIpv4TosDelayMetricTag) PatternFlowIpv4TosDelayMetricTag // provides marshal interface - Marshal() marshalBgpExtendedCommunityTransitiveEvpnType + Marshal() marshalPatternFlowIpv4TosDelayMetricTag // provides unmarshal interface - Unmarshal() unMarshalBgpExtendedCommunityTransitiveEvpnType - // validate validates BgpExtendedCommunityTransitiveEvpnType + Unmarshal() unMarshalPatternFlowIpv4TosDelayMetricTag + // validate validates PatternFlowIpv4TosDelayMetricTag validate() error // A stringer function String() string // Clones the object - Clone() (BgpExtendedCommunityTransitiveEvpnType, error) + Clone() (PatternFlowIpv4TosDelayMetricTag, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Choice returns BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum, set in BgpExtendedCommunityTransitiveEvpnType - Choice() BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum - // setChoice assigns BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum provided by user to BgpExtendedCommunityTransitiveEvpnType - setChoice(value BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum) BgpExtendedCommunityTransitiveEvpnType - // HasChoice checks if Choice has been set in BgpExtendedCommunityTransitiveEvpnType - HasChoice() bool - // RouterMacSubtype returns BgpExtendedCommunityTransitiveEvpnTypeRouterMac, set in BgpExtendedCommunityTransitiveEvpnType. - // BgpExtendedCommunityTransitiveEvpnTypeRouterMac is the Router MAC EVPN Community is defined in RFC9135 and normally sent only for EVPN Type-2 Routes . It is sent with sub-type 0x03. - RouterMacSubtype() BgpExtendedCommunityTransitiveEvpnTypeRouterMac - // SetRouterMacSubtype assigns BgpExtendedCommunityTransitiveEvpnTypeRouterMac provided by user to BgpExtendedCommunityTransitiveEvpnType. - // BgpExtendedCommunityTransitiveEvpnTypeRouterMac is the Router MAC EVPN Community is defined in RFC9135 and normally sent only for EVPN Type-2 Routes . It is sent with sub-type 0x03. - SetRouterMacSubtype(value BgpExtendedCommunityTransitiveEvpnTypeRouterMac) BgpExtendedCommunityTransitiveEvpnType - // HasRouterMacSubtype checks if RouterMacSubtype has been set in BgpExtendedCommunityTransitiveEvpnType - HasRouterMacSubtype() bool - setNil() + // Name returns string, set in PatternFlowIpv4TosDelayMetricTag. + Name() string + // SetName assigns string provided by user to PatternFlowIpv4TosDelayMetricTag + SetName(value string) PatternFlowIpv4TosDelayMetricTag + // Offset returns uint32, set in PatternFlowIpv4TosDelayMetricTag. + Offset() uint32 + // SetOffset assigns uint32 provided by user to PatternFlowIpv4TosDelayMetricTag + SetOffset(value uint32) PatternFlowIpv4TosDelayMetricTag + // HasOffset checks if Offset has been set in PatternFlowIpv4TosDelayMetricTag + HasOffset() bool + // Length returns uint32, set in PatternFlowIpv4TosDelayMetricTag. + Length() uint32 + // SetLength assigns uint32 provided by user to PatternFlowIpv4TosDelayMetricTag + SetLength(value uint32) PatternFlowIpv4TosDelayMetricTag + // HasLength checks if Length has been set in PatternFlowIpv4TosDelayMetricTag + HasLength() bool } -type BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum string +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field +// Name returns a string +func (obj *patternFlowIpv4TosDelayMetricTag) Name() string { + + return *obj.obj.Name -// Enum of Choice on BgpExtendedCommunityTransitiveEvpnType -var BgpExtendedCommunityTransitiveEvpnTypeChoice = struct { - ROUTER_MAC_SUBTYPE BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum -}{ - ROUTER_MAC_SUBTYPE: BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum("router_mac_subtype"), } -func (obj *bgpExtendedCommunityTransitiveEvpnType) Choice() BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum { - return BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum(obj.obj.Choice.Enum().String()) +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field +// SetName sets the string value in the PatternFlowIpv4TosDelayMetricTag object +func (obj *patternFlowIpv4TosDelayMetricTag) SetName(value string) PatternFlowIpv4TosDelayMetricTag { + + obj.obj.Name = &value + return obj } -// description is TBD -// Choice returns a string -func (obj *bgpExtendedCommunityTransitiveEvpnType) HasChoice() bool { - return obj.obj.Choice != nil +// Offset in bits relative to start of corresponding header field +// Offset returns a uint32 +func (obj *patternFlowIpv4TosDelayMetricTag) Offset() uint32 { + + return *obj.obj.Offset + } -func (obj *bgpExtendedCommunityTransitiveEvpnType) setChoice(value BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum) BgpExtendedCommunityTransitiveEvpnType { - intValue, ok := otg.BgpExtendedCommunityTransitiveEvpnType_Choice_Enum_value[string(value)] - if !ok { - obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( - "%s is not a valid choice on BgpExtendedCommunityTransitiveEvpnTypeChoiceEnum", string(value))) - return obj - } - enumValue := otg.BgpExtendedCommunityTransitiveEvpnType_Choice_Enum(intValue) - obj.obj.Choice = &enumValue - obj.obj.RouterMacSubtype = nil - obj.routerMacSubtypeHolder = nil +// Offset in bits relative to start of corresponding header field +// Offset returns a uint32 +func (obj *patternFlowIpv4TosDelayMetricTag) HasOffset() bool { + return obj.obj.Offset != nil +} - if value == BgpExtendedCommunityTransitiveEvpnTypeChoice.ROUTER_MAC_SUBTYPE { - obj.obj.RouterMacSubtype = NewBgpExtendedCommunityTransitiveEvpnTypeRouterMac().msg() - } +// Offset in bits relative to start of corresponding header field +// SetOffset sets the uint32 value in the PatternFlowIpv4TosDelayMetricTag object +func (obj *patternFlowIpv4TosDelayMetricTag) SetOffset(value uint32) PatternFlowIpv4TosDelayMetricTag { + obj.obj.Offset = &value return obj } -// description is TBD -// RouterMacSubtype returns a BgpExtendedCommunityTransitiveEvpnTypeRouterMac -func (obj *bgpExtendedCommunityTransitiveEvpnType) RouterMacSubtype() BgpExtendedCommunityTransitiveEvpnTypeRouterMac { - if obj.obj.RouterMacSubtype == nil { - obj.setChoice(BgpExtendedCommunityTransitiveEvpnTypeChoice.ROUTER_MAC_SUBTYPE) - } - if obj.routerMacSubtypeHolder == nil { - obj.routerMacSubtypeHolder = &bgpExtendedCommunityTransitiveEvpnTypeRouterMac{obj: obj.obj.RouterMacSubtype} - } - return obj.routerMacSubtypeHolder +// Number of bits to track for metrics starting from configured offset of corresponding header field +// Length returns a uint32 +func (obj *patternFlowIpv4TosDelayMetricTag) Length() uint32 { + + return *obj.obj.Length + } -// description is TBD -// RouterMacSubtype returns a BgpExtendedCommunityTransitiveEvpnTypeRouterMac -func (obj *bgpExtendedCommunityTransitiveEvpnType) HasRouterMacSubtype() bool { - return obj.obj.RouterMacSubtype != nil +// Number of bits to track for metrics starting from configured offset of corresponding header field +// Length returns a uint32 +func (obj *patternFlowIpv4TosDelayMetricTag) HasLength() bool { + return obj.obj.Length != nil } -// description is TBD -// SetRouterMacSubtype sets the BgpExtendedCommunityTransitiveEvpnTypeRouterMac value in the BgpExtendedCommunityTransitiveEvpnType object -func (obj *bgpExtendedCommunityTransitiveEvpnType) SetRouterMacSubtype(value BgpExtendedCommunityTransitiveEvpnTypeRouterMac) BgpExtendedCommunityTransitiveEvpnType { - obj.setChoice(BgpExtendedCommunityTransitiveEvpnTypeChoice.ROUTER_MAC_SUBTYPE) - obj.routerMacSubtypeHolder = nil - obj.obj.RouterMacSubtype = value.msg() +// Number of bits to track for metrics starting from configured offset of corresponding header field +// SetLength sets the uint32 value in the PatternFlowIpv4TosDelayMetricTag object +func (obj *patternFlowIpv4TosDelayMetricTag) SetLength(value uint32) PatternFlowIpv4TosDelayMetricTag { + obj.obj.Length = &value return obj } -func (obj *bgpExtendedCommunityTransitiveEvpnType) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowIpv4TosDelayMetricTag) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.RouterMacSubtype != nil { + // Name is required + if obj.obj.Name == nil { + vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosDelayMetricTag") + } + + if obj.obj.Offset != nil { + + if *obj.obj.Offset > 0 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosDelayMetricTag.Offset <= 0 but Got %d", *obj.obj.Offset)) + } - obj.RouterMacSubtype().validateObj(vObj, set_default) } -} + if obj.obj.Length != nil { -func (obj *bgpExtendedCommunityTransitiveEvpnType) setDefault() { - if obj.obj.Choice == nil { - obj.setChoice(BgpExtendedCommunityTransitiveEvpnTypeChoice.ROUTER_MAC_SUBTYPE) + if *obj.obj.Length < 1 || *obj.obj.Length > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("1 <= PatternFlowIpv4TosDelayMetricTag.Length <= 1 but Got %d", *obj.obj.Length)) + } } } -// ***** BgpExtendedCommunityNonTransitive2OctetAsType ***** -type bgpExtendedCommunityNonTransitive2OctetAsType struct { +func (obj *patternFlowIpv4TosDelayMetricTag) setDefault() { + if obj.obj.Offset == nil { + obj.SetOffset(0) + } + if obj.obj.Length == nil { + obj.SetLength(1) + } + +} + +// ***** PatternFlowIpv4TosThroughputCounter ***** +type patternFlowIpv4TosThroughputCounter struct { validation - obj *otg.BgpExtendedCommunityNonTransitive2OctetAsType - marshaller marshalBgpExtendedCommunityNonTransitive2OctetAsType - unMarshaller unMarshalBgpExtendedCommunityNonTransitive2OctetAsType - linkBandwidthSubtypeHolder BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + obj *otg.PatternFlowIpv4TosThroughputCounter + marshaller marshalPatternFlowIpv4TosThroughputCounter + unMarshaller unMarshalPatternFlowIpv4TosThroughputCounter } -func NewBgpExtendedCommunityNonTransitive2OctetAsType() BgpExtendedCommunityNonTransitive2OctetAsType { - obj := bgpExtendedCommunityNonTransitive2OctetAsType{obj: &otg.BgpExtendedCommunityNonTransitive2OctetAsType{}} +func NewPatternFlowIpv4TosThroughputCounter() PatternFlowIpv4TosThroughputCounter { + obj := patternFlowIpv4TosThroughputCounter{obj: &otg.PatternFlowIpv4TosThroughputCounter{}} obj.setDefault() return &obj } -func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) msg() *otg.BgpExtendedCommunityNonTransitive2OctetAsType { +func (obj *patternFlowIpv4TosThroughputCounter) msg() *otg.PatternFlowIpv4TosThroughputCounter { return obj.obj } -func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) setMsg(msg *otg.BgpExtendedCommunityNonTransitive2OctetAsType) BgpExtendedCommunityNonTransitive2OctetAsType { - obj.setNil() +func (obj *patternFlowIpv4TosThroughputCounter) setMsg(msg *otg.PatternFlowIpv4TosThroughputCounter) PatternFlowIpv4TosThroughputCounter { + proto.Merge(obj.obj, msg) return obj } -type marshalbgpExtendedCommunityNonTransitive2OctetAsType struct { - obj *bgpExtendedCommunityNonTransitive2OctetAsType +type marshalpatternFlowIpv4TosThroughputCounter struct { + obj *patternFlowIpv4TosThroughputCounter } -type marshalBgpExtendedCommunityNonTransitive2OctetAsType interface { - // ToProto marshals BgpExtendedCommunityNonTransitive2OctetAsType to protobuf object *otg.BgpExtendedCommunityNonTransitive2OctetAsType - ToProto() (*otg.BgpExtendedCommunityNonTransitive2OctetAsType, error) - // ToPbText marshals BgpExtendedCommunityNonTransitive2OctetAsType to protobuf text +type marshalPatternFlowIpv4TosThroughputCounter interface { + // ToProto marshals PatternFlowIpv4TosThroughputCounter to protobuf object *otg.PatternFlowIpv4TosThroughputCounter + ToProto() (*otg.PatternFlowIpv4TosThroughputCounter, error) + // ToPbText marshals PatternFlowIpv4TosThroughputCounter to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpExtendedCommunityNonTransitive2OctetAsType to YAML text + // ToYaml marshals PatternFlowIpv4TosThroughputCounter to YAML text ToYaml() (string, error) - // ToJson marshals BgpExtendedCommunityNonTransitive2OctetAsType to JSON text + // ToJson marshals PatternFlowIpv4TosThroughputCounter to JSON text ToJson() (string, error) } -type unMarshalbgpExtendedCommunityNonTransitive2OctetAsType struct { - obj *bgpExtendedCommunityNonTransitive2OctetAsType +type unMarshalpatternFlowIpv4TosThroughputCounter struct { + obj *patternFlowIpv4TosThroughputCounter } -type unMarshalBgpExtendedCommunityNonTransitive2OctetAsType interface { - // FromProto unmarshals BgpExtendedCommunityNonTransitive2OctetAsType from protobuf object *otg.BgpExtendedCommunityNonTransitive2OctetAsType - FromProto(msg *otg.BgpExtendedCommunityNonTransitive2OctetAsType) (BgpExtendedCommunityNonTransitive2OctetAsType, error) - // FromPbText unmarshals BgpExtendedCommunityNonTransitive2OctetAsType from protobuf text +type unMarshalPatternFlowIpv4TosThroughputCounter interface { + // FromProto unmarshals PatternFlowIpv4TosThroughputCounter from protobuf object *otg.PatternFlowIpv4TosThroughputCounter + FromProto(msg *otg.PatternFlowIpv4TosThroughputCounter) (PatternFlowIpv4TosThroughputCounter, error) + // FromPbText unmarshals PatternFlowIpv4TosThroughputCounter from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpExtendedCommunityNonTransitive2OctetAsType from YAML text + // FromYaml unmarshals PatternFlowIpv4TosThroughputCounter from YAML text FromYaml(value string) error - // FromJson unmarshals BgpExtendedCommunityNonTransitive2OctetAsType from JSON text + // FromJson unmarshals PatternFlowIpv4TosThroughputCounter from JSON text FromJson(value string) error } -func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) Marshal() marshalBgpExtendedCommunityNonTransitive2OctetAsType { +func (obj *patternFlowIpv4TosThroughputCounter) Marshal() marshalPatternFlowIpv4TosThroughputCounter { if obj.marshaller == nil { - obj.marshaller = &marshalbgpExtendedCommunityNonTransitive2OctetAsType{obj: obj} + obj.marshaller = &marshalpatternFlowIpv4TosThroughputCounter{obj: obj} } return obj.marshaller } -func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) Unmarshal() unMarshalBgpExtendedCommunityNonTransitive2OctetAsType { +func (obj *patternFlowIpv4TosThroughputCounter) Unmarshal() unMarshalPatternFlowIpv4TosThroughputCounter { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpExtendedCommunityNonTransitive2OctetAsType{obj: obj} + obj.unMarshaller = &unMarshalpatternFlowIpv4TosThroughputCounter{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpExtendedCommunityNonTransitive2OctetAsType) ToProto() (*otg.BgpExtendedCommunityNonTransitive2OctetAsType, error) { +func (m *marshalpatternFlowIpv4TosThroughputCounter) ToProto() (*otg.PatternFlowIpv4TosThroughputCounter, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -325704,7 +338044,7 @@ func (m *marshalbgpExtendedCommunityNonTransitive2OctetAsType) ToProto() (*otg.B return m.obj.msg(), nil } -func (m *unMarshalbgpExtendedCommunityNonTransitive2OctetAsType) FromProto(msg *otg.BgpExtendedCommunityNonTransitive2OctetAsType) (BgpExtendedCommunityNonTransitive2OctetAsType, error) { +func (m *unMarshalpatternFlowIpv4TosThroughputCounter) FromProto(msg *otg.PatternFlowIpv4TosThroughputCounter) (PatternFlowIpv4TosThroughputCounter, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -325713,7 +338053,7 @@ func (m *unMarshalbgpExtendedCommunityNonTransitive2OctetAsType) FromProto(msg * return newObj, nil } -func (m *marshalbgpExtendedCommunityNonTransitive2OctetAsType) ToPbText() (string, error) { +func (m *marshalpatternFlowIpv4TosThroughputCounter) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -325725,12 +338065,12 @@ func (m *marshalbgpExtendedCommunityNonTransitive2OctetAsType) ToPbText() (strin return string(protoMarshal), nil } -func (m *unMarshalbgpExtendedCommunityNonTransitive2OctetAsType) FromPbText(value string) error { +func (m *unMarshalpatternFlowIpv4TosThroughputCounter) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - m.obj.setNil() + vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -325738,7 +338078,7 @@ func (m *unMarshalbgpExtendedCommunityNonTransitive2OctetAsType) FromPbText(valu return retObj } -func (m *marshalbgpExtendedCommunityNonTransitive2OctetAsType) ToYaml() (string, error) { +func (m *marshalpatternFlowIpv4TosThroughputCounter) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -325759,7 +338099,7 @@ func (m *marshalbgpExtendedCommunityNonTransitive2OctetAsType) ToYaml() (string, return string(data), nil } -func (m *unMarshalbgpExtendedCommunityNonTransitive2OctetAsType) FromYaml(value string) error { +func (m *unMarshalpatternFlowIpv4TosThroughputCounter) FromYaml(value string) error { if value == "" { value = "{}" } @@ -325776,7 +338116,7 @@ func (m *unMarshalbgpExtendedCommunityNonTransitive2OctetAsType) FromYaml(value return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - m.obj.setNil() + vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -325784,7 +338124,7 @@ func (m *unMarshalbgpExtendedCommunityNonTransitive2OctetAsType) FromYaml(value return nil } -func (m *marshalbgpExtendedCommunityNonTransitive2OctetAsType) ToJson() (string, error) { +func (m *marshalpatternFlowIpv4TosThroughputCounter) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -325802,7 +338142,7 @@ func (m *marshalbgpExtendedCommunityNonTransitive2OctetAsType) ToJson() (string, return string(data), nil } -func (m *unMarshalbgpExtendedCommunityNonTransitive2OctetAsType) FromJson(value string) error { +func (m *unMarshalpatternFlowIpv4TosThroughputCounter) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -325815,7 +338155,7 @@ func (m *unMarshalbgpExtendedCommunityNonTransitive2OctetAsType) FromJson(value return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - m.obj.setNil() + err := m.obj.validateToAndFrom() if err != nil { return err @@ -325823,19 +338163,19 @@ func (m *unMarshalbgpExtendedCommunityNonTransitive2OctetAsType) FromJson(value return nil } -func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) validateToAndFrom() error { +func (obj *patternFlowIpv4TosThroughputCounter) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) validate() error { +func (obj *patternFlowIpv4TosThroughputCounter) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) String() string { +func (obj *patternFlowIpv4TosThroughputCounter) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -325843,12 +338183,12 @@ func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) String() string { return str } -func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) Clone() (BgpExtendedCommunityNonTransitive2OctetAsType, error) { +func (obj *patternFlowIpv4TosThroughputCounter) Clone() (PatternFlowIpv4TosThroughputCounter, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpExtendedCommunityNonTransitive2OctetAsType() + newObj := NewPatternFlowIpv4TosThroughputCounter() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -325860,207 +338200,233 @@ func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) Clone() (BgpExtendedCo return newObj, nil } -func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) setNil() { - obj.linkBandwidthSubtypeHolder = nil - obj.validationErrors = nil - obj.warnings = nil - obj.constraints = make(map[string]map[string]Constraints) -} - -// BgpExtendedCommunityNonTransitive2OctetAsType is the Non-Transitive Two-Octet AS-Specific Extended Community is sent as type 0x40. -type BgpExtendedCommunityNonTransitive2OctetAsType interface { +// PatternFlowIpv4TosThroughputCounter is integer counter pattern +type PatternFlowIpv4TosThroughputCounter interface { Validation - // msg marshals BgpExtendedCommunityNonTransitive2OctetAsType to protobuf object *otg.BgpExtendedCommunityNonTransitive2OctetAsType + // msg marshals PatternFlowIpv4TosThroughputCounter to protobuf object *otg.PatternFlowIpv4TosThroughputCounter // and doesn't set defaults - msg() *otg.BgpExtendedCommunityNonTransitive2OctetAsType - // setMsg unmarshals BgpExtendedCommunityNonTransitive2OctetAsType from protobuf object *otg.BgpExtendedCommunityNonTransitive2OctetAsType + msg() *otg.PatternFlowIpv4TosThroughputCounter + // setMsg unmarshals PatternFlowIpv4TosThroughputCounter from protobuf object *otg.PatternFlowIpv4TosThroughputCounter // and doesn't set defaults - setMsg(*otg.BgpExtendedCommunityNonTransitive2OctetAsType) BgpExtendedCommunityNonTransitive2OctetAsType + setMsg(*otg.PatternFlowIpv4TosThroughputCounter) PatternFlowIpv4TosThroughputCounter // provides marshal interface - Marshal() marshalBgpExtendedCommunityNonTransitive2OctetAsType + Marshal() marshalPatternFlowIpv4TosThroughputCounter // provides unmarshal interface - Unmarshal() unMarshalBgpExtendedCommunityNonTransitive2OctetAsType - // validate validates BgpExtendedCommunityNonTransitive2OctetAsType + Unmarshal() unMarshalPatternFlowIpv4TosThroughputCounter + // validate validates PatternFlowIpv4TosThroughputCounter validate() error // A stringer function String() string // Clones the object - Clone() (BgpExtendedCommunityNonTransitive2OctetAsType, error) + Clone() (PatternFlowIpv4TosThroughputCounter, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Choice returns BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum, set in BgpExtendedCommunityNonTransitive2OctetAsType - Choice() BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum - // setChoice assigns BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum provided by user to BgpExtendedCommunityNonTransitive2OctetAsType - setChoice(value BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum) BgpExtendedCommunityNonTransitive2OctetAsType - // HasChoice checks if Choice has been set in BgpExtendedCommunityNonTransitive2OctetAsType - HasChoice() bool - // LinkBandwidthSubtype returns BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth, set in BgpExtendedCommunityNonTransitive2OctetAsType. - // BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth is the Link Bandwidth Extended Community attribute is defined in draft-ietf-idr-link-bandwidth. It is sent with sub-type as 0x04. - LinkBandwidthSubtype() BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth - // SetLinkBandwidthSubtype assigns BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth provided by user to BgpExtendedCommunityNonTransitive2OctetAsType. - // BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth is the Link Bandwidth Extended Community attribute is defined in draft-ietf-idr-link-bandwidth. It is sent with sub-type as 0x04. - SetLinkBandwidthSubtype(value BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) BgpExtendedCommunityNonTransitive2OctetAsType - // HasLinkBandwidthSubtype checks if LinkBandwidthSubtype has been set in BgpExtendedCommunityNonTransitive2OctetAsType - HasLinkBandwidthSubtype() bool - setNil() + // Start returns uint32, set in PatternFlowIpv4TosThroughputCounter. + Start() uint32 + // SetStart assigns uint32 provided by user to PatternFlowIpv4TosThroughputCounter + SetStart(value uint32) PatternFlowIpv4TosThroughputCounter + // HasStart checks if Start has been set in PatternFlowIpv4TosThroughputCounter + HasStart() bool + // Step returns uint32, set in PatternFlowIpv4TosThroughputCounter. + Step() uint32 + // SetStep assigns uint32 provided by user to PatternFlowIpv4TosThroughputCounter + SetStep(value uint32) PatternFlowIpv4TosThroughputCounter + // HasStep checks if Step has been set in PatternFlowIpv4TosThroughputCounter + HasStep() bool + // Count returns uint32, set in PatternFlowIpv4TosThroughputCounter. + Count() uint32 + // SetCount assigns uint32 provided by user to PatternFlowIpv4TosThroughputCounter + SetCount(value uint32) PatternFlowIpv4TosThroughputCounter + // HasCount checks if Count has been set in PatternFlowIpv4TosThroughputCounter + HasCount() bool } -type BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum string +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4TosThroughputCounter) Start() uint32 { + + return *obj.obj.Start -// Enum of Choice on BgpExtendedCommunityNonTransitive2OctetAsType -var BgpExtendedCommunityNonTransitive2OctetAsTypeChoice = struct { - LINK_BANDWIDTH_SUBTYPE BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum -}{ - LINK_BANDWIDTH_SUBTYPE: BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum("link_bandwidth_subtype"), } -func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) Choice() BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum { - return BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum(obj.obj.Choice.Enum().String()) +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4TosThroughputCounter) HasStart() bool { + return obj.obj.Start != nil } // description is TBD -// Choice returns a string -func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) HasChoice() bool { - return obj.obj.Choice != nil +// SetStart sets the uint32 value in the PatternFlowIpv4TosThroughputCounter object +func (obj *patternFlowIpv4TosThroughputCounter) SetStart(value uint32) PatternFlowIpv4TosThroughputCounter { + + obj.obj.Start = &value + return obj } -func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) setChoice(value BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum) BgpExtendedCommunityNonTransitive2OctetAsType { - intValue, ok := otg.BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum_value[string(value)] - if !ok { - obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( - "%s is not a valid choice on BgpExtendedCommunityNonTransitive2OctetAsTypeChoiceEnum", string(value))) - return obj - } - enumValue := otg.BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum(intValue) - obj.obj.Choice = &enumValue - obj.obj.LinkBandwidthSubtype = nil - obj.linkBandwidthSubtypeHolder = nil +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4TosThroughputCounter) Step() uint32 { - if value == BgpExtendedCommunityNonTransitive2OctetAsTypeChoice.LINK_BANDWIDTH_SUBTYPE { - obj.obj.LinkBandwidthSubtype = NewBgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth().msg() - } + return *obj.obj.Step + +} + +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4TosThroughputCounter) HasStep() bool { + return obj.obj.Step != nil +} + +// description is TBD +// SetStep sets the uint32 value in the PatternFlowIpv4TosThroughputCounter object +func (obj *patternFlowIpv4TosThroughputCounter) SetStep(value uint32) PatternFlowIpv4TosThroughputCounter { + + obj.obj.Step = &value + return obj +} + +// description is TBD +// Count returns a uint32 +func (obj *patternFlowIpv4TosThroughputCounter) Count() uint32 { - return obj -} + return *obj.obj.Count -// description is TBD -// LinkBandwidthSubtype returns a BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth -func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) LinkBandwidthSubtype() BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth { - if obj.obj.LinkBandwidthSubtype == nil { - obj.setChoice(BgpExtendedCommunityNonTransitive2OctetAsTypeChoice.LINK_BANDWIDTH_SUBTYPE) - } - if obj.linkBandwidthSubtypeHolder == nil { - obj.linkBandwidthSubtypeHolder = &bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth{obj: obj.obj.LinkBandwidthSubtype} - } - return obj.linkBandwidthSubtypeHolder } // description is TBD -// LinkBandwidthSubtype returns a BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth -func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) HasLinkBandwidthSubtype() bool { - return obj.obj.LinkBandwidthSubtype != nil +// Count returns a uint32 +func (obj *patternFlowIpv4TosThroughputCounter) HasCount() bool { + return obj.obj.Count != nil } // description is TBD -// SetLinkBandwidthSubtype sets the BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth value in the BgpExtendedCommunityNonTransitive2OctetAsType object -func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) SetLinkBandwidthSubtype(value BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) BgpExtendedCommunityNonTransitive2OctetAsType { - obj.setChoice(BgpExtendedCommunityNonTransitive2OctetAsTypeChoice.LINK_BANDWIDTH_SUBTYPE) - obj.linkBandwidthSubtypeHolder = nil - obj.obj.LinkBandwidthSubtype = value.msg() +// SetCount sets the uint32 value in the PatternFlowIpv4TosThroughputCounter object +func (obj *patternFlowIpv4TosThroughputCounter) SetCount(value uint32) PatternFlowIpv4TosThroughputCounter { + obj.obj.Count = &value return obj } -func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowIpv4TosThroughputCounter) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.LinkBandwidthSubtype != nil { + if obj.obj.Start != nil { + + if *obj.obj.Start > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosThroughputCounter.Start <= 1 but Got %d", *obj.obj.Start)) + } - obj.LinkBandwidthSubtype().validateObj(vObj, set_default) } -} + if obj.obj.Step != nil { -func (obj *bgpExtendedCommunityNonTransitive2OctetAsType) setDefault() { - if obj.obj.Choice == nil { - obj.setChoice(BgpExtendedCommunityNonTransitive2OctetAsTypeChoice.LINK_BANDWIDTH_SUBTYPE) + if *obj.obj.Step > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosThroughputCounter.Step <= 1 but Got %d", *obj.obj.Step)) + } + + } + + if obj.obj.Count != nil { + + if *obj.obj.Count > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosThroughputCounter.Count <= 1 but Got %d", *obj.obj.Count)) + } } } -// ***** BgpExtendedCommunityCustomType ***** -type bgpExtendedCommunityCustomType struct { +func (obj *patternFlowIpv4TosThroughputCounter) setDefault() { + if obj.obj.Start == nil { + obj.SetStart(0) + } + if obj.obj.Step == nil { + obj.SetStep(1) + } + if obj.obj.Count == nil { + obj.SetCount(1) + } + +} + +// ***** PatternFlowIpv4TosThroughputMetricTag ***** +type patternFlowIpv4TosThroughputMetricTag struct { validation - obj *otg.BgpExtendedCommunityCustomType - marshaller marshalBgpExtendedCommunityCustomType - unMarshaller unMarshalBgpExtendedCommunityCustomType + obj *otg.PatternFlowIpv4TosThroughputMetricTag + marshaller marshalPatternFlowIpv4TosThroughputMetricTag + unMarshaller unMarshalPatternFlowIpv4TosThroughputMetricTag } -func NewBgpExtendedCommunityCustomType() BgpExtendedCommunityCustomType { - obj := bgpExtendedCommunityCustomType{obj: &otg.BgpExtendedCommunityCustomType{}} +func NewPatternFlowIpv4TosThroughputMetricTag() PatternFlowIpv4TosThroughputMetricTag { + obj := patternFlowIpv4TosThroughputMetricTag{obj: &otg.PatternFlowIpv4TosThroughputMetricTag{}} obj.setDefault() return &obj } -func (obj *bgpExtendedCommunityCustomType) msg() *otg.BgpExtendedCommunityCustomType { +func (obj *patternFlowIpv4TosThroughputMetricTag) msg() *otg.PatternFlowIpv4TosThroughputMetricTag { return obj.obj } -func (obj *bgpExtendedCommunityCustomType) setMsg(msg *otg.BgpExtendedCommunityCustomType) BgpExtendedCommunityCustomType { +func (obj *patternFlowIpv4TosThroughputMetricTag) setMsg(msg *otg.PatternFlowIpv4TosThroughputMetricTag) PatternFlowIpv4TosThroughputMetricTag { proto.Merge(obj.obj, msg) return obj } -type marshalbgpExtendedCommunityCustomType struct { - obj *bgpExtendedCommunityCustomType +type marshalpatternFlowIpv4TosThroughputMetricTag struct { + obj *patternFlowIpv4TosThroughputMetricTag } -type marshalBgpExtendedCommunityCustomType interface { - // ToProto marshals BgpExtendedCommunityCustomType to protobuf object *otg.BgpExtendedCommunityCustomType - ToProto() (*otg.BgpExtendedCommunityCustomType, error) - // ToPbText marshals BgpExtendedCommunityCustomType to protobuf text +type marshalPatternFlowIpv4TosThroughputMetricTag interface { + // ToProto marshals PatternFlowIpv4TosThroughputMetricTag to protobuf object *otg.PatternFlowIpv4TosThroughputMetricTag + ToProto() (*otg.PatternFlowIpv4TosThroughputMetricTag, error) + // ToPbText marshals PatternFlowIpv4TosThroughputMetricTag to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpExtendedCommunityCustomType to YAML text + // ToYaml marshals PatternFlowIpv4TosThroughputMetricTag to YAML text ToYaml() (string, error) - // ToJson marshals BgpExtendedCommunityCustomType to JSON text + // ToJson marshals PatternFlowIpv4TosThroughputMetricTag to JSON text ToJson() (string, error) } -type unMarshalbgpExtendedCommunityCustomType struct { - obj *bgpExtendedCommunityCustomType +type unMarshalpatternFlowIpv4TosThroughputMetricTag struct { + obj *patternFlowIpv4TosThroughputMetricTag } -type unMarshalBgpExtendedCommunityCustomType interface { - // FromProto unmarshals BgpExtendedCommunityCustomType from protobuf object *otg.BgpExtendedCommunityCustomType - FromProto(msg *otg.BgpExtendedCommunityCustomType) (BgpExtendedCommunityCustomType, error) - // FromPbText unmarshals BgpExtendedCommunityCustomType from protobuf text +type unMarshalPatternFlowIpv4TosThroughputMetricTag interface { + // FromProto unmarshals PatternFlowIpv4TosThroughputMetricTag from protobuf object *otg.PatternFlowIpv4TosThroughputMetricTag + FromProto(msg *otg.PatternFlowIpv4TosThroughputMetricTag) (PatternFlowIpv4TosThroughputMetricTag, error) + // FromPbText unmarshals PatternFlowIpv4TosThroughputMetricTag from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpExtendedCommunityCustomType from YAML text + // FromYaml unmarshals PatternFlowIpv4TosThroughputMetricTag from YAML text FromYaml(value string) error - // FromJson unmarshals BgpExtendedCommunityCustomType from JSON text + // FromJson unmarshals PatternFlowIpv4TosThroughputMetricTag from JSON text FromJson(value string) error } -func (obj *bgpExtendedCommunityCustomType) Marshal() marshalBgpExtendedCommunityCustomType { +func (obj *patternFlowIpv4TosThroughputMetricTag) Marshal() marshalPatternFlowIpv4TosThroughputMetricTag { if obj.marshaller == nil { - obj.marshaller = &marshalbgpExtendedCommunityCustomType{obj: obj} + obj.marshaller = &marshalpatternFlowIpv4TosThroughputMetricTag{obj: obj} } return obj.marshaller } -func (obj *bgpExtendedCommunityCustomType) Unmarshal() unMarshalBgpExtendedCommunityCustomType { +func (obj *patternFlowIpv4TosThroughputMetricTag) Unmarshal() unMarshalPatternFlowIpv4TosThroughputMetricTag { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpExtendedCommunityCustomType{obj: obj} + obj.unMarshaller = &unMarshalpatternFlowIpv4TosThroughputMetricTag{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpExtendedCommunityCustomType) ToProto() (*otg.BgpExtendedCommunityCustomType, error) { +func (m *marshalpatternFlowIpv4TosThroughputMetricTag) ToProto() (*otg.PatternFlowIpv4TosThroughputMetricTag, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -326068,7 +338434,7 @@ func (m *marshalbgpExtendedCommunityCustomType) ToProto() (*otg.BgpExtendedCommu return m.obj.msg(), nil } -func (m *unMarshalbgpExtendedCommunityCustomType) FromProto(msg *otg.BgpExtendedCommunityCustomType) (BgpExtendedCommunityCustomType, error) { +func (m *unMarshalpatternFlowIpv4TosThroughputMetricTag) FromProto(msg *otg.PatternFlowIpv4TosThroughputMetricTag) (PatternFlowIpv4TosThroughputMetricTag, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -326077,7 +338443,7 @@ func (m *unMarshalbgpExtendedCommunityCustomType) FromProto(msg *otg.BgpExtended return newObj, nil } -func (m *marshalbgpExtendedCommunityCustomType) ToPbText() (string, error) { +func (m *marshalpatternFlowIpv4TosThroughputMetricTag) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -326089,7 +338455,7 @@ func (m *marshalbgpExtendedCommunityCustomType) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalbgpExtendedCommunityCustomType) FromPbText(value string) error { +func (m *unMarshalpatternFlowIpv4TosThroughputMetricTag) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj @@ -326102,7 +338468,7 @@ func (m *unMarshalbgpExtendedCommunityCustomType) FromPbText(value string) error return retObj } -func (m *marshalbgpExtendedCommunityCustomType) ToYaml() (string, error) { +func (m *marshalpatternFlowIpv4TosThroughputMetricTag) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -326123,7 +338489,7 @@ func (m *marshalbgpExtendedCommunityCustomType) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalbgpExtendedCommunityCustomType) FromYaml(value string) error { +func (m *unMarshalpatternFlowIpv4TosThroughputMetricTag) FromYaml(value string) error { if value == "" { value = "{}" } @@ -326148,7 +338514,7 @@ func (m *unMarshalbgpExtendedCommunityCustomType) FromYaml(value string) error { return nil } -func (m *marshalbgpExtendedCommunityCustomType) ToJson() (string, error) { +func (m *marshalpatternFlowIpv4TosThroughputMetricTag) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -326166,7 +338532,7 @@ func (m *marshalbgpExtendedCommunityCustomType) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalbgpExtendedCommunityCustomType) FromJson(value string) error { +func (m *unMarshalpatternFlowIpv4TosThroughputMetricTag) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -326187,19 +338553,19 @@ func (m *unMarshalbgpExtendedCommunityCustomType) FromJson(value string) error { return nil } -func (obj *bgpExtendedCommunityCustomType) validateToAndFrom() error { +func (obj *patternFlowIpv4TosThroughputMetricTag) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpExtendedCommunityCustomType) validate() error { +func (obj *patternFlowIpv4TosThroughputMetricTag) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpExtendedCommunityCustomType) String() string { +func (obj *patternFlowIpv4TosThroughputMetricTag) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -326207,12 +338573,12 @@ func (obj *bgpExtendedCommunityCustomType) String() string { return str } -func (obj *bgpExtendedCommunityCustomType) Clone() (BgpExtendedCommunityCustomType, error) { +func (obj *patternFlowIpv4TosThroughputMetricTag) Clone() (PatternFlowIpv4TosThroughputMetricTag, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpExtendedCommunityCustomType() + newObj := NewPatternFlowIpv4TosThroughputMetricTag() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -326224,239 +338590,217 @@ func (obj *bgpExtendedCommunityCustomType) Clone() (BgpExtendedCommunityCustomTy return newObj, nil } -// BgpExtendedCommunityCustomType is add a custom Extended Community with a combination of types , sub-types and values not explicitly specified above or not defined yet. -type BgpExtendedCommunityCustomType interface { +// PatternFlowIpv4TosThroughputMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. +type PatternFlowIpv4TosThroughputMetricTag interface { Validation - // msg marshals BgpExtendedCommunityCustomType to protobuf object *otg.BgpExtendedCommunityCustomType + // msg marshals PatternFlowIpv4TosThroughputMetricTag to protobuf object *otg.PatternFlowIpv4TosThroughputMetricTag // and doesn't set defaults - msg() *otg.BgpExtendedCommunityCustomType - // setMsg unmarshals BgpExtendedCommunityCustomType from protobuf object *otg.BgpExtendedCommunityCustomType + msg() *otg.PatternFlowIpv4TosThroughputMetricTag + // setMsg unmarshals PatternFlowIpv4TosThroughputMetricTag from protobuf object *otg.PatternFlowIpv4TosThroughputMetricTag // and doesn't set defaults - setMsg(*otg.BgpExtendedCommunityCustomType) BgpExtendedCommunityCustomType + setMsg(*otg.PatternFlowIpv4TosThroughputMetricTag) PatternFlowIpv4TosThroughputMetricTag // provides marshal interface - Marshal() marshalBgpExtendedCommunityCustomType + Marshal() marshalPatternFlowIpv4TosThroughputMetricTag // provides unmarshal interface - Unmarshal() unMarshalBgpExtendedCommunityCustomType - // validate validates BgpExtendedCommunityCustomType + Unmarshal() unMarshalPatternFlowIpv4TosThroughputMetricTag + // validate validates PatternFlowIpv4TosThroughputMetricTag validate() error // A stringer function String() string // Clones the object - Clone() (BgpExtendedCommunityCustomType, error) + Clone() (PatternFlowIpv4TosThroughputMetricTag, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // CommunityType returns string, set in BgpExtendedCommunityCustomType. - CommunityType() string - // SetCommunityType assigns string provided by user to BgpExtendedCommunityCustomType - SetCommunityType(value string) BgpExtendedCommunityCustomType - // HasCommunityType checks if CommunityType has been set in BgpExtendedCommunityCustomType - HasCommunityType() bool - // CommunitySubtype returns string, set in BgpExtendedCommunityCustomType. - CommunitySubtype() string - // SetCommunitySubtype assigns string provided by user to BgpExtendedCommunityCustomType - SetCommunitySubtype(value string) BgpExtendedCommunityCustomType - // HasCommunitySubtype checks if CommunitySubtype has been set in BgpExtendedCommunityCustomType - HasCommunitySubtype() bool - // Value returns string, set in BgpExtendedCommunityCustomType. - Value() string - // SetValue assigns string provided by user to BgpExtendedCommunityCustomType - SetValue(value string) BgpExtendedCommunityCustomType - // HasValue checks if Value has been set in BgpExtendedCommunityCustomType - HasValue() bool + // Name returns string, set in PatternFlowIpv4TosThroughputMetricTag. + Name() string + // SetName assigns string provided by user to PatternFlowIpv4TosThroughputMetricTag + SetName(value string) PatternFlowIpv4TosThroughputMetricTag + // Offset returns uint32, set in PatternFlowIpv4TosThroughputMetricTag. + Offset() uint32 + // SetOffset assigns uint32 provided by user to PatternFlowIpv4TosThroughputMetricTag + SetOffset(value uint32) PatternFlowIpv4TosThroughputMetricTag + // HasOffset checks if Offset has been set in PatternFlowIpv4TosThroughputMetricTag + HasOffset() bool + // Length returns uint32, set in PatternFlowIpv4TosThroughputMetricTag. + Length() uint32 + // SetLength assigns uint32 provided by user to PatternFlowIpv4TosThroughputMetricTag + SetLength(value uint32) PatternFlowIpv4TosThroughputMetricTag + // HasLength checks if Length has been set in PatternFlowIpv4TosThroughputMetricTag + HasLength() bool } -// The type to be set in the Extended Community attribute. Accepts hexadecimal input upto ff . -// CommunityType returns a string -func (obj *bgpExtendedCommunityCustomType) CommunityType() string { - - return *obj.obj.CommunityType +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field +// Name returns a string +func (obj *patternFlowIpv4TosThroughputMetricTag) Name() string { -} + return *obj.obj.Name -// The type to be set in the Extended Community attribute. Accepts hexadecimal input upto ff . -// CommunityType returns a string -func (obj *bgpExtendedCommunityCustomType) HasCommunityType() bool { - return obj.obj.CommunityType != nil } -// The type to be set in the Extended Community attribute. Accepts hexadecimal input upto ff . -// SetCommunityType sets the string value in the BgpExtendedCommunityCustomType object -func (obj *bgpExtendedCommunityCustomType) SetCommunityType(value string) BgpExtendedCommunityCustomType { +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field +// SetName sets the string value in the PatternFlowIpv4TosThroughputMetricTag object +func (obj *patternFlowIpv4TosThroughputMetricTag) SetName(value string) PatternFlowIpv4TosThroughputMetricTag { - obj.obj.CommunityType = &value + obj.obj.Name = &value return obj } -// The sub-type to be set in the Extended Community attribute. For certain types with no sub-type this byte can also be used as part of an extended value field. Accepts hexadecimal input upto ff. -// CommunitySubtype returns a string -func (obj *bgpExtendedCommunityCustomType) CommunitySubtype() string { +// Offset in bits relative to start of corresponding header field +// Offset returns a uint32 +func (obj *patternFlowIpv4TosThroughputMetricTag) Offset() uint32 { - return *obj.obj.CommunitySubtype + return *obj.obj.Offset } -// The sub-type to be set in the Extended Community attribute. For certain types with no sub-type this byte can also be used as part of an extended value field. Accepts hexadecimal input upto ff. -// CommunitySubtype returns a string -func (obj *bgpExtendedCommunityCustomType) HasCommunitySubtype() bool { - return obj.obj.CommunitySubtype != nil +// Offset in bits relative to start of corresponding header field +// Offset returns a uint32 +func (obj *patternFlowIpv4TosThroughputMetricTag) HasOffset() bool { + return obj.obj.Offset != nil } -// The sub-type to be set in the Extended Community attribute. For certain types with no sub-type this byte can also be used as part of an extended value field. Accepts hexadecimal input upto ff. -// SetCommunitySubtype sets the string value in the BgpExtendedCommunityCustomType object -func (obj *bgpExtendedCommunityCustomType) SetCommunitySubtype(value string) BgpExtendedCommunityCustomType { +// Offset in bits relative to start of corresponding header field +// SetOffset sets the uint32 value in the PatternFlowIpv4TosThroughputMetricTag object +func (obj *patternFlowIpv4TosThroughputMetricTag) SetOffset(value uint32) PatternFlowIpv4TosThroughputMetricTag { - obj.obj.CommunitySubtype = &value + obj.obj.Offset = &value return obj } -// 6 byte hex value to be carried in the last 6 bytes of the Extended Community. Accepts hexadecimal input upto ffffffffffff. -// Value returns a string -func (obj *bgpExtendedCommunityCustomType) Value() string { +// Number of bits to track for metrics starting from configured offset of corresponding header field +// Length returns a uint32 +func (obj *patternFlowIpv4TosThroughputMetricTag) Length() uint32 { - return *obj.obj.Value + return *obj.obj.Length } -// 6 byte hex value to be carried in the last 6 bytes of the Extended Community. Accepts hexadecimal input upto ffffffffffff. -// Value returns a string -func (obj *bgpExtendedCommunityCustomType) HasValue() bool { - return obj.obj.Value != nil +// Number of bits to track for metrics starting from configured offset of corresponding header field +// Length returns a uint32 +func (obj *patternFlowIpv4TosThroughputMetricTag) HasLength() bool { + return obj.obj.Length != nil } -// 6 byte hex value to be carried in the last 6 bytes of the Extended Community. Accepts hexadecimal input upto ffffffffffff. -// SetValue sets the string value in the BgpExtendedCommunityCustomType object -func (obj *bgpExtendedCommunityCustomType) SetValue(value string) BgpExtendedCommunityCustomType { +// Number of bits to track for metrics starting from configured offset of corresponding header field +// SetLength sets the uint32 value in the PatternFlowIpv4TosThroughputMetricTag object +func (obj *patternFlowIpv4TosThroughputMetricTag) SetLength(value uint32) PatternFlowIpv4TosThroughputMetricTag { - obj.obj.Value = &value + obj.obj.Length = &value return obj } -func (obj *bgpExtendedCommunityCustomType) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowIpv4TosThroughputMetricTag) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.CommunityType != nil { - - if len(*obj.obj.CommunityType) > 2 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf( - "None <= length of BgpExtendedCommunityCustomType.CommunityType <= 2 but Got %d", - len(*obj.obj.CommunityType))) - } - + // Name is required + if obj.obj.Name == nil { + vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosThroughputMetricTag") } - if obj.obj.CommunitySubtype != nil { + if obj.obj.Offset != nil { - if len(*obj.obj.CommunitySubtype) > 2 { + if *obj.obj.Offset > 0 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf( - "None <= length of BgpExtendedCommunityCustomType.CommunitySubtype <= 2 but Got %d", - len(*obj.obj.CommunitySubtype))) + fmt.Sprintf("0 <= PatternFlowIpv4TosThroughputMetricTag.Offset <= 0 but Got %d", *obj.obj.Offset)) } } - if obj.obj.Value != nil { + if obj.obj.Length != nil { - if len(*obj.obj.Value) > 12 { + if *obj.obj.Length < 1 || *obj.obj.Length > 1 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf( - "None <= length of BgpExtendedCommunityCustomType.Value <= 12 but Got %d", - len(*obj.obj.Value))) + fmt.Sprintf("1 <= PatternFlowIpv4TosThroughputMetricTag.Length <= 1 but Got %d", *obj.obj.Length)) } } } -func (obj *bgpExtendedCommunityCustomType) setDefault() { - if obj.obj.CommunityType == nil { - obj.SetCommunityType("00") - } - if obj.obj.CommunitySubtype == nil { - obj.SetCommunitySubtype("00") +func (obj *patternFlowIpv4TosThroughputMetricTag) setDefault() { + if obj.obj.Offset == nil { + obj.SetOffset(0) } - if obj.obj.Value == nil { - obj.SetValue("000000000000") + if obj.obj.Length == nil { + obj.SetLength(1) } } -// ***** BgpSrteRemoteEndpointSubTlv ***** -type bgpSrteRemoteEndpointSubTlv struct { +// ***** PatternFlowIpv4TosReliabilityCounter ***** +type patternFlowIpv4TosReliabilityCounter struct { validation - obj *otg.BgpSrteRemoteEndpointSubTlv - marshaller marshalBgpSrteRemoteEndpointSubTlv - unMarshaller unMarshalBgpSrteRemoteEndpointSubTlv + obj *otg.PatternFlowIpv4TosReliabilityCounter + marshaller marshalPatternFlowIpv4TosReliabilityCounter + unMarshaller unMarshalPatternFlowIpv4TosReliabilityCounter } -func NewBgpSrteRemoteEndpointSubTlv() BgpSrteRemoteEndpointSubTlv { - obj := bgpSrteRemoteEndpointSubTlv{obj: &otg.BgpSrteRemoteEndpointSubTlv{}} +func NewPatternFlowIpv4TosReliabilityCounter() PatternFlowIpv4TosReliabilityCounter { + obj := patternFlowIpv4TosReliabilityCounter{obj: &otg.PatternFlowIpv4TosReliabilityCounter{}} obj.setDefault() return &obj } -func (obj *bgpSrteRemoteEndpointSubTlv) msg() *otg.BgpSrteRemoteEndpointSubTlv { +func (obj *patternFlowIpv4TosReliabilityCounter) msg() *otg.PatternFlowIpv4TosReliabilityCounter { return obj.obj } -func (obj *bgpSrteRemoteEndpointSubTlv) setMsg(msg *otg.BgpSrteRemoteEndpointSubTlv) BgpSrteRemoteEndpointSubTlv { +func (obj *patternFlowIpv4TosReliabilityCounter) setMsg(msg *otg.PatternFlowIpv4TosReliabilityCounter) PatternFlowIpv4TosReliabilityCounter { proto.Merge(obj.obj, msg) return obj } -type marshalbgpSrteRemoteEndpointSubTlv struct { - obj *bgpSrteRemoteEndpointSubTlv +type marshalpatternFlowIpv4TosReliabilityCounter struct { + obj *patternFlowIpv4TosReliabilityCounter } -type marshalBgpSrteRemoteEndpointSubTlv interface { - // ToProto marshals BgpSrteRemoteEndpointSubTlv to protobuf object *otg.BgpSrteRemoteEndpointSubTlv - ToProto() (*otg.BgpSrteRemoteEndpointSubTlv, error) - // ToPbText marshals BgpSrteRemoteEndpointSubTlv to protobuf text +type marshalPatternFlowIpv4TosReliabilityCounter interface { + // ToProto marshals PatternFlowIpv4TosReliabilityCounter to protobuf object *otg.PatternFlowIpv4TosReliabilityCounter + ToProto() (*otg.PatternFlowIpv4TosReliabilityCounter, error) + // ToPbText marshals PatternFlowIpv4TosReliabilityCounter to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpSrteRemoteEndpointSubTlv to YAML text + // ToYaml marshals PatternFlowIpv4TosReliabilityCounter to YAML text ToYaml() (string, error) - // ToJson marshals BgpSrteRemoteEndpointSubTlv to JSON text + // ToJson marshals PatternFlowIpv4TosReliabilityCounter to JSON text ToJson() (string, error) } -type unMarshalbgpSrteRemoteEndpointSubTlv struct { - obj *bgpSrteRemoteEndpointSubTlv +type unMarshalpatternFlowIpv4TosReliabilityCounter struct { + obj *patternFlowIpv4TosReliabilityCounter } -type unMarshalBgpSrteRemoteEndpointSubTlv interface { - // FromProto unmarshals BgpSrteRemoteEndpointSubTlv from protobuf object *otg.BgpSrteRemoteEndpointSubTlv - FromProto(msg *otg.BgpSrteRemoteEndpointSubTlv) (BgpSrteRemoteEndpointSubTlv, error) - // FromPbText unmarshals BgpSrteRemoteEndpointSubTlv from protobuf text +type unMarshalPatternFlowIpv4TosReliabilityCounter interface { + // FromProto unmarshals PatternFlowIpv4TosReliabilityCounter from protobuf object *otg.PatternFlowIpv4TosReliabilityCounter + FromProto(msg *otg.PatternFlowIpv4TosReliabilityCounter) (PatternFlowIpv4TosReliabilityCounter, error) + // FromPbText unmarshals PatternFlowIpv4TosReliabilityCounter from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpSrteRemoteEndpointSubTlv from YAML text + // FromYaml unmarshals PatternFlowIpv4TosReliabilityCounter from YAML text FromYaml(value string) error - // FromJson unmarshals BgpSrteRemoteEndpointSubTlv from JSON text + // FromJson unmarshals PatternFlowIpv4TosReliabilityCounter from JSON text FromJson(value string) error } -func (obj *bgpSrteRemoteEndpointSubTlv) Marshal() marshalBgpSrteRemoteEndpointSubTlv { +func (obj *patternFlowIpv4TosReliabilityCounter) Marshal() marshalPatternFlowIpv4TosReliabilityCounter { if obj.marshaller == nil { - obj.marshaller = &marshalbgpSrteRemoteEndpointSubTlv{obj: obj} + obj.marshaller = &marshalpatternFlowIpv4TosReliabilityCounter{obj: obj} } return obj.marshaller } -func (obj *bgpSrteRemoteEndpointSubTlv) Unmarshal() unMarshalBgpSrteRemoteEndpointSubTlv { +func (obj *patternFlowIpv4TosReliabilityCounter) Unmarshal() unMarshalPatternFlowIpv4TosReliabilityCounter { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpSrteRemoteEndpointSubTlv{obj: obj} + obj.unMarshaller = &unMarshalpatternFlowIpv4TosReliabilityCounter{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpSrteRemoteEndpointSubTlv) ToProto() (*otg.BgpSrteRemoteEndpointSubTlv, error) { +func (m *marshalpatternFlowIpv4TosReliabilityCounter) ToProto() (*otg.PatternFlowIpv4TosReliabilityCounter, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -326464,7 +338808,7 @@ func (m *marshalbgpSrteRemoteEndpointSubTlv) ToProto() (*otg.BgpSrteRemoteEndpoi return m.obj.msg(), nil } -func (m *unMarshalbgpSrteRemoteEndpointSubTlv) FromProto(msg *otg.BgpSrteRemoteEndpointSubTlv) (BgpSrteRemoteEndpointSubTlv, error) { +func (m *unMarshalpatternFlowIpv4TosReliabilityCounter) FromProto(msg *otg.PatternFlowIpv4TosReliabilityCounter) (PatternFlowIpv4TosReliabilityCounter, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -326473,7 +338817,7 @@ func (m *unMarshalbgpSrteRemoteEndpointSubTlv) FromProto(msg *otg.BgpSrteRemoteE return newObj, nil } -func (m *marshalbgpSrteRemoteEndpointSubTlv) ToPbText() (string, error) { +func (m *marshalpatternFlowIpv4TosReliabilityCounter) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -326485,7 +338829,7 @@ func (m *marshalbgpSrteRemoteEndpointSubTlv) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalbgpSrteRemoteEndpointSubTlv) FromPbText(value string) error { +func (m *unMarshalpatternFlowIpv4TosReliabilityCounter) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj @@ -326498,7 +338842,7 @@ func (m *unMarshalbgpSrteRemoteEndpointSubTlv) FromPbText(value string) error { return retObj } -func (m *marshalbgpSrteRemoteEndpointSubTlv) ToYaml() (string, error) { +func (m *marshalpatternFlowIpv4TosReliabilityCounter) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -326519,7 +338863,7 @@ func (m *marshalbgpSrteRemoteEndpointSubTlv) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrteRemoteEndpointSubTlv) FromYaml(value string) error { +func (m *unMarshalpatternFlowIpv4TosReliabilityCounter) FromYaml(value string) error { if value == "" { value = "{}" } @@ -326544,7 +338888,7 @@ func (m *unMarshalbgpSrteRemoteEndpointSubTlv) FromYaml(value string) error { return nil } -func (m *marshalbgpSrteRemoteEndpointSubTlv) ToJson() (string, error) { +func (m *marshalpatternFlowIpv4TosReliabilityCounter) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -326562,7 +338906,7 @@ func (m *marshalbgpSrteRemoteEndpointSubTlv) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrteRemoteEndpointSubTlv) FromJson(value string) error { +func (m *unMarshalpatternFlowIpv4TosReliabilityCounter) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -326583,19 +338927,19 @@ func (m *unMarshalbgpSrteRemoteEndpointSubTlv) FromJson(value string) error { return nil } -func (obj *bgpSrteRemoteEndpointSubTlv) validateToAndFrom() error { +func (obj *patternFlowIpv4TosReliabilityCounter) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpSrteRemoteEndpointSubTlv) validate() error { +func (obj *patternFlowIpv4TosReliabilityCounter) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpSrteRemoteEndpointSubTlv) String() string { +func (obj *patternFlowIpv4TosReliabilityCounter) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -326603,12 +338947,12 @@ func (obj *bgpSrteRemoteEndpointSubTlv) String() string { return str } -func (obj *bgpSrteRemoteEndpointSubTlv) Clone() (BgpSrteRemoteEndpointSubTlv, error) { +func (obj *patternFlowIpv4TosReliabilityCounter) Clone() (PatternFlowIpv4TosReliabilityCounter, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpSrteRemoteEndpointSubTlv() + newObj := NewPatternFlowIpv4TosReliabilityCounter() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -326620,265 +338964,233 @@ func (obj *bgpSrteRemoteEndpointSubTlv) Clone() (BgpSrteRemoteEndpointSubTlv, er return newObj, nil } -// BgpSrteRemoteEndpointSubTlv is configuration for the BGP remote endpoint sub TLV. -type BgpSrteRemoteEndpointSubTlv interface { +// PatternFlowIpv4TosReliabilityCounter is integer counter pattern +type PatternFlowIpv4TosReliabilityCounter interface { Validation - // msg marshals BgpSrteRemoteEndpointSubTlv to protobuf object *otg.BgpSrteRemoteEndpointSubTlv + // msg marshals PatternFlowIpv4TosReliabilityCounter to protobuf object *otg.PatternFlowIpv4TosReliabilityCounter // and doesn't set defaults - msg() *otg.BgpSrteRemoteEndpointSubTlv - // setMsg unmarshals BgpSrteRemoteEndpointSubTlv from protobuf object *otg.BgpSrteRemoteEndpointSubTlv + msg() *otg.PatternFlowIpv4TosReliabilityCounter + // setMsg unmarshals PatternFlowIpv4TosReliabilityCounter from protobuf object *otg.PatternFlowIpv4TosReliabilityCounter // and doesn't set defaults - setMsg(*otg.BgpSrteRemoteEndpointSubTlv) BgpSrteRemoteEndpointSubTlv + setMsg(*otg.PatternFlowIpv4TosReliabilityCounter) PatternFlowIpv4TosReliabilityCounter // provides marshal interface - Marshal() marshalBgpSrteRemoteEndpointSubTlv + Marshal() marshalPatternFlowIpv4TosReliabilityCounter // provides unmarshal interface - Unmarshal() unMarshalBgpSrteRemoteEndpointSubTlv - // validate validates BgpSrteRemoteEndpointSubTlv + Unmarshal() unMarshalPatternFlowIpv4TosReliabilityCounter + // validate validates PatternFlowIpv4TosReliabilityCounter validate() error // A stringer function String() string // Clones the object - Clone() (BgpSrteRemoteEndpointSubTlv, error) + Clone() (PatternFlowIpv4TosReliabilityCounter, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // AsNumber returns uint32, set in BgpSrteRemoteEndpointSubTlv. - AsNumber() uint32 - // SetAsNumber assigns uint32 provided by user to BgpSrteRemoteEndpointSubTlv - SetAsNumber(value uint32) BgpSrteRemoteEndpointSubTlv - // HasAsNumber checks if AsNumber has been set in BgpSrteRemoteEndpointSubTlv - HasAsNumber() bool - // AddressFamily returns BgpSrteRemoteEndpointSubTlvAddressFamilyEnum, set in BgpSrteRemoteEndpointSubTlv - AddressFamily() BgpSrteRemoteEndpointSubTlvAddressFamilyEnum - // SetAddressFamily assigns BgpSrteRemoteEndpointSubTlvAddressFamilyEnum provided by user to BgpSrteRemoteEndpointSubTlv - SetAddressFamily(value BgpSrteRemoteEndpointSubTlvAddressFamilyEnum) BgpSrteRemoteEndpointSubTlv - // HasAddressFamily checks if AddressFamily has been set in BgpSrteRemoteEndpointSubTlv - HasAddressFamily() bool - // Ipv4Address returns string, set in BgpSrteRemoteEndpointSubTlv. - Ipv4Address() string - // SetIpv4Address assigns string provided by user to BgpSrteRemoteEndpointSubTlv - SetIpv4Address(value string) BgpSrteRemoteEndpointSubTlv - // HasIpv4Address checks if Ipv4Address has been set in BgpSrteRemoteEndpointSubTlv - HasIpv4Address() bool - // Ipv6Address returns string, set in BgpSrteRemoteEndpointSubTlv. - Ipv6Address() string - // SetIpv6Address assigns string provided by user to BgpSrteRemoteEndpointSubTlv - SetIpv6Address(value string) BgpSrteRemoteEndpointSubTlv - // HasIpv6Address checks if Ipv6Address has been set in BgpSrteRemoteEndpointSubTlv - HasIpv6Address() bool -} - -// Autonomous system (AS) number -// AsNumber returns a uint32 -func (obj *bgpSrteRemoteEndpointSubTlv) AsNumber() uint32 { - - return *obj.obj.AsNumber - -} - -// Autonomous system (AS) number -// AsNumber returns a uint32 -func (obj *bgpSrteRemoteEndpointSubTlv) HasAsNumber() bool { - return obj.obj.AsNumber != nil -} - -// Autonomous system (AS) number -// SetAsNumber sets the uint32 value in the BgpSrteRemoteEndpointSubTlv object -func (obj *bgpSrteRemoteEndpointSubTlv) SetAsNumber(value uint32) BgpSrteRemoteEndpointSubTlv { - - obj.obj.AsNumber = &value - return obj + // Start returns uint32, set in PatternFlowIpv4TosReliabilityCounter. + Start() uint32 + // SetStart assigns uint32 provided by user to PatternFlowIpv4TosReliabilityCounter + SetStart(value uint32) PatternFlowIpv4TosReliabilityCounter + // HasStart checks if Start has been set in PatternFlowIpv4TosReliabilityCounter + HasStart() bool + // Step returns uint32, set in PatternFlowIpv4TosReliabilityCounter. + Step() uint32 + // SetStep assigns uint32 provided by user to PatternFlowIpv4TosReliabilityCounter + SetStep(value uint32) PatternFlowIpv4TosReliabilityCounter + // HasStep checks if Step has been set in PatternFlowIpv4TosReliabilityCounter + HasStep() bool + // Count returns uint32, set in PatternFlowIpv4TosReliabilityCounter. + Count() uint32 + // SetCount assigns uint32 provided by user to PatternFlowIpv4TosReliabilityCounter + SetCount(value uint32) PatternFlowIpv4TosReliabilityCounter + // HasCount checks if Count has been set in PatternFlowIpv4TosReliabilityCounter + HasCount() bool } -type BgpSrteRemoteEndpointSubTlvAddressFamilyEnum string +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4TosReliabilityCounter) Start() uint32 { -// Enum of AddressFamily on BgpSrteRemoteEndpointSubTlv -var BgpSrteRemoteEndpointSubTlvAddressFamily = struct { - IPV4 BgpSrteRemoteEndpointSubTlvAddressFamilyEnum - IPV6 BgpSrteRemoteEndpointSubTlvAddressFamilyEnum -}{ - IPV4: BgpSrteRemoteEndpointSubTlvAddressFamilyEnum("ipv4"), - IPV6: BgpSrteRemoteEndpointSubTlvAddressFamilyEnum("ipv6"), -} + return *obj.obj.Start -func (obj *bgpSrteRemoteEndpointSubTlv) AddressFamily() BgpSrteRemoteEndpointSubTlvAddressFamilyEnum { - return BgpSrteRemoteEndpointSubTlvAddressFamilyEnum(obj.obj.AddressFamily.Enum().String()) } -// Determines the address type -// AddressFamily returns a string -func (obj *bgpSrteRemoteEndpointSubTlv) HasAddressFamily() bool { - return obj.obj.AddressFamily != nil +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4TosReliabilityCounter) HasStart() bool { + return obj.obj.Start != nil } -func (obj *bgpSrteRemoteEndpointSubTlv) SetAddressFamily(value BgpSrteRemoteEndpointSubTlvAddressFamilyEnum) BgpSrteRemoteEndpointSubTlv { - intValue, ok := otg.BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum_value[string(value)] - if !ok { - obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( - "%s is not a valid choice on BgpSrteRemoteEndpointSubTlvAddressFamilyEnum", string(value))) - return obj - } - enumValue := otg.BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum(intValue) - obj.obj.AddressFamily = &enumValue +// description is TBD +// SetStart sets the uint32 value in the PatternFlowIpv4TosReliabilityCounter object +func (obj *patternFlowIpv4TosReliabilityCounter) SetStart(value uint32) PatternFlowIpv4TosReliabilityCounter { + obj.obj.Start = &value return obj } -// The IPv4 address of the Remote Endpoint. -// Ipv4Address returns a string -func (obj *bgpSrteRemoteEndpointSubTlv) Ipv4Address() string { +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4TosReliabilityCounter) Step() uint32 { - return *obj.obj.Ipv4Address + return *obj.obj.Step } -// The IPv4 address of the Remote Endpoint. -// Ipv4Address returns a string -func (obj *bgpSrteRemoteEndpointSubTlv) HasIpv4Address() bool { - return obj.obj.Ipv4Address != nil +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4TosReliabilityCounter) HasStep() bool { + return obj.obj.Step != nil } -// The IPv4 address of the Remote Endpoint. -// SetIpv4Address sets the string value in the BgpSrteRemoteEndpointSubTlv object -func (obj *bgpSrteRemoteEndpointSubTlv) SetIpv4Address(value string) BgpSrteRemoteEndpointSubTlv { +// description is TBD +// SetStep sets the uint32 value in the PatternFlowIpv4TosReliabilityCounter object +func (obj *patternFlowIpv4TosReliabilityCounter) SetStep(value uint32) PatternFlowIpv4TosReliabilityCounter { - obj.obj.Ipv4Address = &value + obj.obj.Step = &value return obj } -// The IPv6 address of the Remote Endpoint. -// Ipv6Address returns a string -func (obj *bgpSrteRemoteEndpointSubTlv) Ipv6Address() string { +// description is TBD +// Count returns a uint32 +func (obj *patternFlowIpv4TosReliabilityCounter) Count() uint32 { - return *obj.obj.Ipv6Address + return *obj.obj.Count } -// The IPv6 address of the Remote Endpoint. -// Ipv6Address returns a string -func (obj *bgpSrteRemoteEndpointSubTlv) HasIpv6Address() bool { - return obj.obj.Ipv6Address != nil +// description is TBD +// Count returns a uint32 +func (obj *patternFlowIpv4TosReliabilityCounter) HasCount() bool { + return obj.obj.Count != nil } -// The IPv6 address of the Remote Endpoint. -// SetIpv6Address sets the string value in the BgpSrteRemoteEndpointSubTlv object -func (obj *bgpSrteRemoteEndpointSubTlv) SetIpv6Address(value string) BgpSrteRemoteEndpointSubTlv { +// description is TBD +// SetCount sets the uint32 value in the PatternFlowIpv4TosReliabilityCounter object +func (obj *patternFlowIpv4TosReliabilityCounter) SetCount(value uint32) PatternFlowIpv4TosReliabilityCounter { - obj.obj.Ipv6Address = &value + obj.obj.Count = &value return obj } -func (obj *bgpSrteRemoteEndpointSubTlv) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowIpv4TosReliabilityCounter) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Ipv4Address != nil { + if obj.obj.Start != nil { - err := obj.validateIpv4(obj.Ipv4Address()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteRemoteEndpointSubTlv.Ipv4Address")) + if *obj.obj.Start > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosReliabilityCounter.Start <= 1 but Got %d", *obj.obj.Start)) } } - if obj.obj.Ipv6Address != nil { + if obj.obj.Step != nil { - err := obj.validateIpv6(obj.Ipv6Address()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteRemoteEndpointSubTlv.Ipv6Address")) + if *obj.obj.Step > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosReliabilityCounter.Step <= 1 but Got %d", *obj.obj.Step)) } } -} + if obj.obj.Count != nil { + + if *obj.obj.Count > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosReliabilityCounter.Count <= 1 but Got %d", *obj.obj.Count)) + } -func (obj *bgpSrteRemoteEndpointSubTlv) setDefault() { - if obj.obj.AsNumber == nil { - obj.SetAsNumber(0) } - if obj.obj.AddressFamily == nil { - obj.SetAddressFamily(BgpSrteRemoteEndpointSubTlvAddressFamily.IPV4) +} + +func (obj *patternFlowIpv4TosReliabilityCounter) setDefault() { + if obj.obj.Start == nil { + obj.SetStart(0) } - if obj.obj.Ipv4Address == nil { - obj.SetIpv4Address("0.0.0.0") + if obj.obj.Step == nil { + obj.SetStep(1) } - if obj.obj.Ipv6Address == nil { - obj.SetIpv6Address("::0") + if obj.obj.Count == nil { + obj.SetCount(1) } } -// ***** BgpSrteColorSubTlv ***** -type bgpSrteColorSubTlv struct { +// ***** PatternFlowIpv4TosReliabilityMetricTag ***** +type patternFlowIpv4TosReliabilityMetricTag struct { validation - obj *otg.BgpSrteColorSubTlv - marshaller marshalBgpSrteColorSubTlv - unMarshaller unMarshalBgpSrteColorSubTlv + obj *otg.PatternFlowIpv4TosReliabilityMetricTag + marshaller marshalPatternFlowIpv4TosReliabilityMetricTag + unMarshaller unMarshalPatternFlowIpv4TosReliabilityMetricTag } -func NewBgpSrteColorSubTlv() BgpSrteColorSubTlv { - obj := bgpSrteColorSubTlv{obj: &otg.BgpSrteColorSubTlv{}} +func NewPatternFlowIpv4TosReliabilityMetricTag() PatternFlowIpv4TosReliabilityMetricTag { + obj := patternFlowIpv4TosReliabilityMetricTag{obj: &otg.PatternFlowIpv4TosReliabilityMetricTag{}} obj.setDefault() return &obj } -func (obj *bgpSrteColorSubTlv) msg() *otg.BgpSrteColorSubTlv { +func (obj *patternFlowIpv4TosReliabilityMetricTag) msg() *otg.PatternFlowIpv4TosReliabilityMetricTag { return obj.obj } -func (obj *bgpSrteColorSubTlv) setMsg(msg *otg.BgpSrteColorSubTlv) BgpSrteColorSubTlv { +func (obj *patternFlowIpv4TosReliabilityMetricTag) setMsg(msg *otg.PatternFlowIpv4TosReliabilityMetricTag) PatternFlowIpv4TosReliabilityMetricTag { proto.Merge(obj.obj, msg) return obj } -type marshalbgpSrteColorSubTlv struct { - obj *bgpSrteColorSubTlv +type marshalpatternFlowIpv4TosReliabilityMetricTag struct { + obj *patternFlowIpv4TosReliabilityMetricTag } -type marshalBgpSrteColorSubTlv interface { - // ToProto marshals BgpSrteColorSubTlv to protobuf object *otg.BgpSrteColorSubTlv - ToProto() (*otg.BgpSrteColorSubTlv, error) - // ToPbText marshals BgpSrteColorSubTlv to protobuf text +type marshalPatternFlowIpv4TosReliabilityMetricTag interface { + // ToProto marshals PatternFlowIpv4TosReliabilityMetricTag to protobuf object *otg.PatternFlowIpv4TosReliabilityMetricTag + ToProto() (*otg.PatternFlowIpv4TosReliabilityMetricTag, error) + // ToPbText marshals PatternFlowIpv4TosReliabilityMetricTag to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpSrteColorSubTlv to YAML text + // ToYaml marshals PatternFlowIpv4TosReliabilityMetricTag to YAML text ToYaml() (string, error) - // ToJson marshals BgpSrteColorSubTlv to JSON text + // ToJson marshals PatternFlowIpv4TosReliabilityMetricTag to JSON text ToJson() (string, error) } -type unMarshalbgpSrteColorSubTlv struct { - obj *bgpSrteColorSubTlv +type unMarshalpatternFlowIpv4TosReliabilityMetricTag struct { + obj *patternFlowIpv4TosReliabilityMetricTag } -type unMarshalBgpSrteColorSubTlv interface { - // FromProto unmarshals BgpSrteColorSubTlv from protobuf object *otg.BgpSrteColorSubTlv - FromProto(msg *otg.BgpSrteColorSubTlv) (BgpSrteColorSubTlv, error) - // FromPbText unmarshals BgpSrteColorSubTlv from protobuf text +type unMarshalPatternFlowIpv4TosReliabilityMetricTag interface { + // FromProto unmarshals PatternFlowIpv4TosReliabilityMetricTag from protobuf object *otg.PatternFlowIpv4TosReliabilityMetricTag + FromProto(msg *otg.PatternFlowIpv4TosReliabilityMetricTag) (PatternFlowIpv4TosReliabilityMetricTag, error) + // FromPbText unmarshals PatternFlowIpv4TosReliabilityMetricTag from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpSrteColorSubTlv from YAML text + // FromYaml unmarshals PatternFlowIpv4TosReliabilityMetricTag from YAML text FromYaml(value string) error - // FromJson unmarshals BgpSrteColorSubTlv from JSON text + // FromJson unmarshals PatternFlowIpv4TosReliabilityMetricTag from JSON text FromJson(value string) error } -func (obj *bgpSrteColorSubTlv) Marshal() marshalBgpSrteColorSubTlv { +func (obj *patternFlowIpv4TosReliabilityMetricTag) Marshal() marshalPatternFlowIpv4TosReliabilityMetricTag { if obj.marshaller == nil { - obj.marshaller = &marshalbgpSrteColorSubTlv{obj: obj} + obj.marshaller = &marshalpatternFlowIpv4TosReliabilityMetricTag{obj: obj} } return obj.marshaller } -func (obj *bgpSrteColorSubTlv) Unmarshal() unMarshalBgpSrteColorSubTlv { +func (obj *patternFlowIpv4TosReliabilityMetricTag) Unmarshal() unMarshalPatternFlowIpv4TosReliabilityMetricTag { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpSrteColorSubTlv{obj: obj} + obj.unMarshaller = &unMarshalpatternFlowIpv4TosReliabilityMetricTag{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpSrteColorSubTlv) ToProto() (*otg.BgpSrteColorSubTlv, error) { +func (m *marshalpatternFlowIpv4TosReliabilityMetricTag) ToProto() (*otg.PatternFlowIpv4TosReliabilityMetricTag, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -326886,7 +339198,7 @@ func (m *marshalbgpSrteColorSubTlv) ToProto() (*otg.BgpSrteColorSubTlv, error) { return m.obj.msg(), nil } -func (m *unMarshalbgpSrteColorSubTlv) FromProto(msg *otg.BgpSrteColorSubTlv) (BgpSrteColorSubTlv, error) { +func (m *unMarshalpatternFlowIpv4TosReliabilityMetricTag) FromProto(msg *otg.PatternFlowIpv4TosReliabilityMetricTag) (PatternFlowIpv4TosReliabilityMetricTag, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -326895,7 +339207,7 @@ func (m *unMarshalbgpSrteColorSubTlv) FromProto(msg *otg.BgpSrteColorSubTlv) (Bg return newObj, nil } -func (m *marshalbgpSrteColorSubTlv) ToPbText() (string, error) { +func (m *marshalpatternFlowIpv4TosReliabilityMetricTag) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -326907,7 +339219,7 @@ func (m *marshalbgpSrteColorSubTlv) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalbgpSrteColorSubTlv) FromPbText(value string) error { +func (m *unMarshalpatternFlowIpv4TosReliabilityMetricTag) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj @@ -326920,7 +339232,7 @@ func (m *unMarshalbgpSrteColorSubTlv) FromPbText(value string) error { return retObj } -func (m *marshalbgpSrteColorSubTlv) ToYaml() (string, error) { +func (m *marshalpatternFlowIpv4TosReliabilityMetricTag) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -326941,7 +339253,7 @@ func (m *marshalbgpSrteColorSubTlv) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrteColorSubTlv) FromYaml(value string) error { +func (m *unMarshalpatternFlowIpv4TosReliabilityMetricTag) FromYaml(value string) error { if value == "" { value = "{}" } @@ -326966,7 +339278,7 @@ func (m *unMarshalbgpSrteColorSubTlv) FromYaml(value string) error { return nil } -func (m *marshalbgpSrteColorSubTlv) ToJson() (string, error) { +func (m *marshalpatternFlowIpv4TosReliabilityMetricTag) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -326984,7 +339296,7 @@ func (m *marshalbgpSrteColorSubTlv) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrteColorSubTlv) FromJson(value string) error { +func (m *unMarshalpatternFlowIpv4TosReliabilityMetricTag) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -327005,19 +339317,19 @@ func (m *unMarshalbgpSrteColorSubTlv) FromJson(value string) error { return nil } -func (obj *bgpSrteColorSubTlv) validateToAndFrom() error { +func (obj *patternFlowIpv4TosReliabilityMetricTag) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpSrteColorSubTlv) validate() error { +func (obj *patternFlowIpv4TosReliabilityMetricTag) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpSrteColorSubTlv) String() string { +func (obj *patternFlowIpv4TosReliabilityMetricTag) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -327025,12 +339337,12 @@ func (obj *bgpSrteColorSubTlv) String() string { return str } -func (obj *bgpSrteColorSubTlv) Clone() (BgpSrteColorSubTlv, error) { +func (obj *patternFlowIpv4TosReliabilityMetricTag) Clone() (PatternFlowIpv4TosReliabilityMetricTag, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpSrteColorSubTlv() + newObj := NewPatternFlowIpv4TosReliabilityMetricTag() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -327042,147 +339354,217 @@ func (obj *bgpSrteColorSubTlv) Clone() (BgpSrteColorSubTlv, error) { return newObj, nil } -// BgpSrteColorSubTlv is configuration for the Policy Color attribute sub-TLV. The Color sub-TLV MAY be used as a way to "color" the corresponding Tunnel TLV. The Value field of the sub-TLV is eight octets long and consists of a Color Extended Community. First two octets of its Value field are 0x030b as type and subtype of extended community. Remaining six octets are are exposed to configure. -type BgpSrteColorSubTlv interface { +// PatternFlowIpv4TosReliabilityMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. +type PatternFlowIpv4TosReliabilityMetricTag interface { Validation - // msg marshals BgpSrteColorSubTlv to protobuf object *otg.BgpSrteColorSubTlv + // msg marshals PatternFlowIpv4TosReliabilityMetricTag to protobuf object *otg.PatternFlowIpv4TosReliabilityMetricTag // and doesn't set defaults - msg() *otg.BgpSrteColorSubTlv - // setMsg unmarshals BgpSrteColorSubTlv from protobuf object *otg.BgpSrteColorSubTlv + msg() *otg.PatternFlowIpv4TosReliabilityMetricTag + // setMsg unmarshals PatternFlowIpv4TosReliabilityMetricTag from protobuf object *otg.PatternFlowIpv4TosReliabilityMetricTag // and doesn't set defaults - setMsg(*otg.BgpSrteColorSubTlv) BgpSrteColorSubTlv + setMsg(*otg.PatternFlowIpv4TosReliabilityMetricTag) PatternFlowIpv4TosReliabilityMetricTag // provides marshal interface - Marshal() marshalBgpSrteColorSubTlv + Marshal() marshalPatternFlowIpv4TosReliabilityMetricTag // provides unmarshal interface - Unmarshal() unMarshalBgpSrteColorSubTlv - // validate validates BgpSrteColorSubTlv + Unmarshal() unMarshalPatternFlowIpv4TosReliabilityMetricTag + // validate validates PatternFlowIpv4TosReliabilityMetricTag validate() error // A stringer function String() string // Clones the object - Clone() (BgpSrteColorSubTlv, error) + Clone() (PatternFlowIpv4TosReliabilityMetricTag, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Color returns string, set in BgpSrteColorSubTlv. - Color() string - // SetColor assigns string provided by user to BgpSrteColorSubTlv - SetColor(value string) BgpSrteColorSubTlv - // HasColor checks if Color has been set in BgpSrteColorSubTlv - HasColor() bool + // Name returns string, set in PatternFlowIpv4TosReliabilityMetricTag. + Name() string + // SetName assigns string provided by user to PatternFlowIpv4TosReliabilityMetricTag + SetName(value string) PatternFlowIpv4TosReliabilityMetricTag + // Offset returns uint32, set in PatternFlowIpv4TosReliabilityMetricTag. + Offset() uint32 + // SetOffset assigns uint32 provided by user to PatternFlowIpv4TosReliabilityMetricTag + SetOffset(value uint32) PatternFlowIpv4TosReliabilityMetricTag + // HasOffset checks if Offset has been set in PatternFlowIpv4TosReliabilityMetricTag + HasOffset() bool + // Length returns uint32, set in PatternFlowIpv4TosReliabilityMetricTag. + Length() uint32 + // SetLength assigns uint32 provided by user to PatternFlowIpv4TosReliabilityMetricTag + SetLength(value uint32) PatternFlowIpv4TosReliabilityMetricTag + // HasLength checks if Length has been set in PatternFlowIpv4TosReliabilityMetricTag + HasLength() bool } -// Six octet values. Example: 000000000064 for color value 100. -// Color returns a string -func (obj *bgpSrteColorSubTlv) Color() string { +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field +// Name returns a string +func (obj *patternFlowIpv4TosReliabilityMetricTag) Name() string { - return *obj.obj.Color + return *obj.obj.Name } -// Six octet values. Example: 000000000064 for color value 100. -// Color returns a string -func (obj *bgpSrteColorSubTlv) HasColor() bool { - return obj.obj.Color != nil +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field +// SetName sets the string value in the PatternFlowIpv4TosReliabilityMetricTag object +func (obj *patternFlowIpv4TosReliabilityMetricTag) SetName(value string) PatternFlowIpv4TosReliabilityMetricTag { + + obj.obj.Name = &value + return obj } -// Six octet values. Example: 000000000064 for color value 100. -// SetColor sets the string value in the BgpSrteColorSubTlv object -func (obj *bgpSrteColorSubTlv) SetColor(value string) BgpSrteColorSubTlv { +// Offset in bits relative to start of corresponding header field +// Offset returns a uint32 +func (obj *patternFlowIpv4TosReliabilityMetricTag) Offset() uint32 { - obj.obj.Color = &value + return *obj.obj.Offset + +} + +// Offset in bits relative to start of corresponding header field +// Offset returns a uint32 +func (obj *patternFlowIpv4TosReliabilityMetricTag) HasOffset() bool { + return obj.obj.Offset != nil +} + +// Offset in bits relative to start of corresponding header field +// SetOffset sets the uint32 value in the PatternFlowIpv4TosReliabilityMetricTag object +func (obj *patternFlowIpv4TosReliabilityMetricTag) SetOffset(value uint32) PatternFlowIpv4TosReliabilityMetricTag { + + obj.obj.Offset = &value return obj } -func (obj *bgpSrteColorSubTlv) validateObj(vObj *validation, set_default bool) { +// Number of bits to track for metrics starting from configured offset of corresponding header field +// Length returns a uint32 +func (obj *patternFlowIpv4TosReliabilityMetricTag) Length() uint32 { + + return *obj.obj.Length + +} + +// Number of bits to track for metrics starting from configured offset of corresponding header field +// Length returns a uint32 +func (obj *patternFlowIpv4TosReliabilityMetricTag) HasLength() bool { + return obj.obj.Length != nil +} + +// Number of bits to track for metrics starting from configured offset of corresponding header field +// SetLength sets the uint32 value in the PatternFlowIpv4TosReliabilityMetricTag object +func (obj *patternFlowIpv4TosReliabilityMetricTag) SetLength(value uint32) PatternFlowIpv4TosReliabilityMetricTag { + + obj.obj.Length = &value + return obj +} + +func (obj *patternFlowIpv4TosReliabilityMetricTag) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Color != nil { + // Name is required + if obj.obj.Name == nil { + vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosReliabilityMetricTag") + } - err := obj.validateHex(obj.Color()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteColorSubTlv.Color")) + if obj.obj.Offset != nil { + + if *obj.obj.Offset > 0 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosReliabilityMetricTag.Offset <= 0 but Got %d", *obj.obj.Offset)) + } + + } + + if obj.obj.Length != nil { + + if *obj.obj.Length < 1 || *obj.obj.Length > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("1 <= PatternFlowIpv4TosReliabilityMetricTag.Length <= 1 but Got %d", *obj.obj.Length)) } } } -func (obj *bgpSrteColorSubTlv) setDefault() { +func (obj *patternFlowIpv4TosReliabilityMetricTag) setDefault() { + if obj.obj.Offset == nil { + obj.SetOffset(0) + } + if obj.obj.Length == nil { + obj.SetLength(1) + } } -// ***** BgpSrteBindingSubTlv ***** -type bgpSrteBindingSubTlv struct { +// ***** PatternFlowIpv4TosMonetaryCounter ***** +type patternFlowIpv4TosMonetaryCounter struct { validation - obj *otg.BgpSrteBindingSubTlv - marshaller marshalBgpSrteBindingSubTlv - unMarshaller unMarshalBgpSrteBindingSubTlv + obj *otg.PatternFlowIpv4TosMonetaryCounter + marshaller marshalPatternFlowIpv4TosMonetaryCounter + unMarshaller unMarshalPatternFlowIpv4TosMonetaryCounter } -func NewBgpSrteBindingSubTlv() BgpSrteBindingSubTlv { - obj := bgpSrteBindingSubTlv{obj: &otg.BgpSrteBindingSubTlv{}} +func NewPatternFlowIpv4TosMonetaryCounter() PatternFlowIpv4TosMonetaryCounter { + obj := patternFlowIpv4TosMonetaryCounter{obj: &otg.PatternFlowIpv4TosMonetaryCounter{}} obj.setDefault() return &obj } -func (obj *bgpSrteBindingSubTlv) msg() *otg.BgpSrteBindingSubTlv { +func (obj *patternFlowIpv4TosMonetaryCounter) msg() *otg.PatternFlowIpv4TosMonetaryCounter { return obj.obj } -func (obj *bgpSrteBindingSubTlv) setMsg(msg *otg.BgpSrteBindingSubTlv) BgpSrteBindingSubTlv { +func (obj *patternFlowIpv4TosMonetaryCounter) setMsg(msg *otg.PatternFlowIpv4TosMonetaryCounter) PatternFlowIpv4TosMonetaryCounter { proto.Merge(obj.obj, msg) return obj } -type marshalbgpSrteBindingSubTlv struct { - obj *bgpSrteBindingSubTlv +type marshalpatternFlowIpv4TosMonetaryCounter struct { + obj *patternFlowIpv4TosMonetaryCounter } -type marshalBgpSrteBindingSubTlv interface { - // ToProto marshals BgpSrteBindingSubTlv to protobuf object *otg.BgpSrteBindingSubTlv - ToProto() (*otg.BgpSrteBindingSubTlv, error) - // ToPbText marshals BgpSrteBindingSubTlv to protobuf text +type marshalPatternFlowIpv4TosMonetaryCounter interface { + // ToProto marshals PatternFlowIpv4TosMonetaryCounter to protobuf object *otg.PatternFlowIpv4TosMonetaryCounter + ToProto() (*otg.PatternFlowIpv4TosMonetaryCounter, error) + // ToPbText marshals PatternFlowIpv4TosMonetaryCounter to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpSrteBindingSubTlv to YAML text + // ToYaml marshals PatternFlowIpv4TosMonetaryCounter to YAML text ToYaml() (string, error) - // ToJson marshals BgpSrteBindingSubTlv to JSON text + // ToJson marshals PatternFlowIpv4TosMonetaryCounter to JSON text ToJson() (string, error) } -type unMarshalbgpSrteBindingSubTlv struct { - obj *bgpSrteBindingSubTlv +type unMarshalpatternFlowIpv4TosMonetaryCounter struct { + obj *patternFlowIpv4TosMonetaryCounter } -type unMarshalBgpSrteBindingSubTlv interface { - // FromProto unmarshals BgpSrteBindingSubTlv from protobuf object *otg.BgpSrteBindingSubTlv - FromProto(msg *otg.BgpSrteBindingSubTlv) (BgpSrteBindingSubTlv, error) - // FromPbText unmarshals BgpSrteBindingSubTlv from protobuf text +type unMarshalPatternFlowIpv4TosMonetaryCounter interface { + // FromProto unmarshals PatternFlowIpv4TosMonetaryCounter from protobuf object *otg.PatternFlowIpv4TosMonetaryCounter + FromProto(msg *otg.PatternFlowIpv4TosMonetaryCounter) (PatternFlowIpv4TosMonetaryCounter, error) + // FromPbText unmarshals PatternFlowIpv4TosMonetaryCounter from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpSrteBindingSubTlv from YAML text + // FromYaml unmarshals PatternFlowIpv4TosMonetaryCounter from YAML text FromYaml(value string) error - // FromJson unmarshals BgpSrteBindingSubTlv from JSON text + // FromJson unmarshals PatternFlowIpv4TosMonetaryCounter from JSON text FromJson(value string) error } -func (obj *bgpSrteBindingSubTlv) Marshal() marshalBgpSrteBindingSubTlv { +func (obj *patternFlowIpv4TosMonetaryCounter) Marshal() marshalPatternFlowIpv4TosMonetaryCounter { if obj.marshaller == nil { - obj.marshaller = &marshalbgpSrteBindingSubTlv{obj: obj} + obj.marshaller = &marshalpatternFlowIpv4TosMonetaryCounter{obj: obj} } return obj.marshaller } -func (obj *bgpSrteBindingSubTlv) Unmarshal() unMarshalBgpSrteBindingSubTlv { +func (obj *patternFlowIpv4TosMonetaryCounter) Unmarshal() unMarshalPatternFlowIpv4TosMonetaryCounter { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpSrteBindingSubTlv{obj: obj} + obj.unMarshaller = &unMarshalpatternFlowIpv4TosMonetaryCounter{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpSrteBindingSubTlv) ToProto() (*otg.BgpSrteBindingSubTlv, error) { +func (m *marshalpatternFlowIpv4TosMonetaryCounter) ToProto() (*otg.PatternFlowIpv4TosMonetaryCounter, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -327190,7 +339572,7 @@ func (m *marshalbgpSrteBindingSubTlv) ToProto() (*otg.BgpSrteBindingSubTlv, erro return m.obj.msg(), nil } -func (m *unMarshalbgpSrteBindingSubTlv) FromProto(msg *otg.BgpSrteBindingSubTlv) (BgpSrteBindingSubTlv, error) { +func (m *unMarshalpatternFlowIpv4TosMonetaryCounter) FromProto(msg *otg.PatternFlowIpv4TosMonetaryCounter) (PatternFlowIpv4TosMonetaryCounter, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -327199,7 +339581,7 @@ func (m *unMarshalbgpSrteBindingSubTlv) FromProto(msg *otg.BgpSrteBindingSubTlv) return newObj, nil } -func (m *marshalbgpSrteBindingSubTlv) ToPbText() (string, error) { +func (m *marshalpatternFlowIpv4TosMonetaryCounter) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -327211,7 +339593,7 @@ func (m *marshalbgpSrteBindingSubTlv) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalbgpSrteBindingSubTlv) FromPbText(value string) error { +func (m *unMarshalpatternFlowIpv4TosMonetaryCounter) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj @@ -327224,7 +339606,7 @@ func (m *unMarshalbgpSrteBindingSubTlv) FromPbText(value string) error { return retObj } -func (m *marshalbgpSrteBindingSubTlv) ToYaml() (string, error) { +func (m *marshalpatternFlowIpv4TosMonetaryCounter) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -327245,7 +339627,7 @@ func (m *marshalbgpSrteBindingSubTlv) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrteBindingSubTlv) FromYaml(value string) error { +func (m *unMarshalpatternFlowIpv4TosMonetaryCounter) FromYaml(value string) error { if value == "" { value = "{}" } @@ -327270,7 +339652,7 @@ func (m *unMarshalbgpSrteBindingSubTlv) FromYaml(value string) error { return nil } -func (m *marshalbgpSrteBindingSubTlv) ToJson() (string, error) { +func (m *marshalpatternFlowIpv4TosMonetaryCounter) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -327288,7 +339670,7 @@ func (m *marshalbgpSrteBindingSubTlv) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrteBindingSubTlv) FromJson(value string) error { +func (m *unMarshalpatternFlowIpv4TosMonetaryCounter) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -327309,320 +339691,270 @@ func (m *unMarshalbgpSrteBindingSubTlv) FromJson(value string) error { return nil } -func (obj *bgpSrteBindingSubTlv) validateToAndFrom() error { +func (obj *patternFlowIpv4TosMonetaryCounter) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpSrteBindingSubTlv) validate() error { +func (obj *patternFlowIpv4TosMonetaryCounter) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpSrteBindingSubTlv) String() string { +func (obj *patternFlowIpv4TosMonetaryCounter) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() } return str } - -func (obj *bgpSrteBindingSubTlv) Clone() (BgpSrteBindingSubTlv, error) { - vErr := obj.validate() - if vErr != nil { - return nil, vErr - } - newObj := NewBgpSrteBindingSubTlv() - data, err := proto.Marshal(obj.msg()) - if err != nil { - return nil, err - } - pbErr := proto.Unmarshal(data, newObj.msg()) - if pbErr != nil { - return nil, pbErr - } - return newObj, nil -} - -// BgpSrteBindingSubTlv is configuration for the binding SID sub-TLV. This is used to signal the binding SID related information of the SR Policy candidate path. -type BgpSrteBindingSubTlv interface { - Validation - // msg marshals BgpSrteBindingSubTlv to protobuf object *otg.BgpSrteBindingSubTlv - // and doesn't set defaults - msg() *otg.BgpSrteBindingSubTlv - // setMsg unmarshals BgpSrteBindingSubTlv from protobuf object *otg.BgpSrteBindingSubTlv - // and doesn't set defaults - setMsg(*otg.BgpSrteBindingSubTlv) BgpSrteBindingSubTlv - // provides marshal interface - Marshal() marshalBgpSrteBindingSubTlv - // provides unmarshal interface - Unmarshal() unMarshalBgpSrteBindingSubTlv - // validate validates BgpSrteBindingSubTlv - validate() error - // A stringer function - String() string - // Clones the object - Clone() (BgpSrteBindingSubTlv, error) - validateToAndFrom() error - validateObj(vObj *validation, set_default bool) - setDefault() - // BindingSidType returns BgpSrteBindingSubTlvBindingSidTypeEnum, set in BgpSrteBindingSubTlv - BindingSidType() BgpSrteBindingSubTlvBindingSidTypeEnum - // SetBindingSidType assigns BgpSrteBindingSubTlvBindingSidTypeEnum provided by user to BgpSrteBindingSubTlv - SetBindingSidType(value BgpSrteBindingSubTlvBindingSidTypeEnum) BgpSrteBindingSubTlv - // HasBindingSidType checks if BindingSidType has been set in BgpSrteBindingSubTlv - HasBindingSidType() bool - // FourOctetSid returns uint32, set in BgpSrteBindingSubTlv. - FourOctetSid() uint32 - // SetFourOctetSid assigns uint32 provided by user to BgpSrteBindingSubTlv - SetFourOctetSid(value uint32) BgpSrteBindingSubTlv - // HasFourOctetSid checks if FourOctetSid has been set in BgpSrteBindingSubTlv - HasFourOctetSid() bool - // Ipv6Sid returns string, set in BgpSrteBindingSubTlv. - Ipv6Sid() string - // SetIpv6Sid assigns string provided by user to BgpSrteBindingSubTlv - SetIpv6Sid(value string) BgpSrteBindingSubTlv - // HasIpv6Sid checks if Ipv6Sid has been set in BgpSrteBindingSubTlv - HasIpv6Sid() bool - // SFlag returns bool, set in BgpSrteBindingSubTlv. - SFlag() bool - // SetSFlag assigns bool provided by user to BgpSrteBindingSubTlv - SetSFlag(value bool) BgpSrteBindingSubTlv - // HasSFlag checks if SFlag has been set in BgpSrteBindingSubTlv - HasSFlag() bool - // IFlag returns bool, set in BgpSrteBindingSubTlv. - IFlag() bool - // SetIFlag assigns bool provided by user to BgpSrteBindingSubTlv - SetIFlag(value bool) BgpSrteBindingSubTlv - // HasIFlag checks if IFlag has been set in BgpSrteBindingSubTlv - HasIFlag() bool -} - -type BgpSrteBindingSubTlvBindingSidTypeEnum string - -// Enum of BindingSidType on BgpSrteBindingSubTlv -var BgpSrteBindingSubTlvBindingSidType = struct { - NO_BINDING BgpSrteBindingSubTlvBindingSidTypeEnum - FOUR_OCTET_SID BgpSrteBindingSubTlvBindingSidTypeEnum - IPV6_SID BgpSrteBindingSubTlvBindingSidTypeEnum -}{ - NO_BINDING: BgpSrteBindingSubTlvBindingSidTypeEnum("no_binding"), - FOUR_OCTET_SID: BgpSrteBindingSubTlvBindingSidTypeEnum("four_octet_sid"), - IPV6_SID: BgpSrteBindingSubTlvBindingSidTypeEnum("ipv6_sid"), -} - -func (obj *bgpSrteBindingSubTlv) BindingSidType() BgpSrteBindingSubTlvBindingSidTypeEnum { - return BgpSrteBindingSubTlvBindingSidTypeEnum(obj.obj.BindingSidType.Enum().String()) -} - -// Type of the binding SID. Supported types are "No Binding SID" or "Four Octets Sid" or "IPv6 SID". -// BindingSidType returns a string -func (obj *bgpSrteBindingSubTlv) HasBindingSidType() bool { - return obj.obj.BindingSidType != nil -} - -func (obj *bgpSrteBindingSubTlv) SetBindingSidType(value BgpSrteBindingSubTlvBindingSidTypeEnum) BgpSrteBindingSubTlv { - intValue, ok := otg.BgpSrteBindingSubTlv_BindingSidType_Enum_value[string(value)] - if !ok { - obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( - "%s is not a valid choice on BgpSrteBindingSubTlvBindingSidTypeEnum", string(value))) - return obj + +func (obj *patternFlowIpv4TosMonetaryCounter) Clone() (PatternFlowIpv4TosMonetaryCounter, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr } - enumValue := otg.BgpSrteBindingSubTlv_BindingSidType_Enum(intValue) - obj.obj.BindingSidType = &enumValue + newObj := NewPatternFlowIpv4TosMonetaryCounter() + data, err := proto.Marshal(obj.msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} - return obj +// PatternFlowIpv4TosMonetaryCounter is integer counter pattern +type PatternFlowIpv4TosMonetaryCounter interface { + Validation + // msg marshals PatternFlowIpv4TosMonetaryCounter to protobuf object *otg.PatternFlowIpv4TosMonetaryCounter + // and doesn't set defaults + msg() *otg.PatternFlowIpv4TosMonetaryCounter + // setMsg unmarshals PatternFlowIpv4TosMonetaryCounter from protobuf object *otg.PatternFlowIpv4TosMonetaryCounter + // and doesn't set defaults + setMsg(*otg.PatternFlowIpv4TosMonetaryCounter) PatternFlowIpv4TosMonetaryCounter + // provides marshal interface + Marshal() marshalPatternFlowIpv4TosMonetaryCounter + // provides unmarshal interface + Unmarshal() unMarshalPatternFlowIpv4TosMonetaryCounter + // validate validates PatternFlowIpv4TosMonetaryCounter + validate() error + // A stringer function + String() string + // Clones the object + Clone() (PatternFlowIpv4TosMonetaryCounter, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Start returns uint32, set in PatternFlowIpv4TosMonetaryCounter. + Start() uint32 + // SetStart assigns uint32 provided by user to PatternFlowIpv4TosMonetaryCounter + SetStart(value uint32) PatternFlowIpv4TosMonetaryCounter + // HasStart checks if Start has been set in PatternFlowIpv4TosMonetaryCounter + HasStart() bool + // Step returns uint32, set in PatternFlowIpv4TosMonetaryCounter. + Step() uint32 + // SetStep assigns uint32 provided by user to PatternFlowIpv4TosMonetaryCounter + SetStep(value uint32) PatternFlowIpv4TosMonetaryCounter + // HasStep checks if Step has been set in PatternFlowIpv4TosMonetaryCounter + HasStep() bool + // Count returns uint32, set in PatternFlowIpv4TosMonetaryCounter. + Count() uint32 + // SetCount assigns uint32 provided by user to PatternFlowIpv4TosMonetaryCounter + SetCount(value uint32) PatternFlowIpv4TosMonetaryCounter + // HasCount checks if Count has been set in PatternFlowIpv4TosMonetaryCounter + HasCount() bool } -// Binding SID is encoded in 4 octets. -// FourOctetSid returns a uint32 -func (obj *bgpSrteBindingSubTlv) FourOctetSid() uint32 { +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4TosMonetaryCounter) Start() uint32 { - return *obj.obj.FourOctetSid + return *obj.obj.Start } -// Binding SID is encoded in 4 octets. -// FourOctetSid returns a uint32 -func (obj *bgpSrteBindingSubTlv) HasFourOctetSid() bool { - return obj.obj.FourOctetSid != nil +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4TosMonetaryCounter) HasStart() bool { + return obj.obj.Start != nil } -// Binding SID is encoded in 4 octets. -// SetFourOctetSid sets the uint32 value in the BgpSrteBindingSubTlv object -func (obj *bgpSrteBindingSubTlv) SetFourOctetSid(value uint32) BgpSrteBindingSubTlv { +// description is TBD +// SetStart sets the uint32 value in the PatternFlowIpv4TosMonetaryCounter object +func (obj *patternFlowIpv4TosMonetaryCounter) SetStart(value uint32) PatternFlowIpv4TosMonetaryCounter { - obj.obj.FourOctetSid = &value + obj.obj.Start = &value return obj } -// IPv6 SID value. -// Ipv6Sid returns a string -func (obj *bgpSrteBindingSubTlv) Ipv6Sid() string { +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4TosMonetaryCounter) Step() uint32 { - return *obj.obj.Ipv6Sid + return *obj.obj.Step } -// IPv6 SID value. -// Ipv6Sid returns a string -func (obj *bgpSrteBindingSubTlv) HasIpv6Sid() bool { - return obj.obj.Ipv6Sid != nil +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4TosMonetaryCounter) HasStep() bool { + return obj.obj.Step != nil } -// IPv6 SID value. -// SetIpv6Sid sets the string value in the BgpSrteBindingSubTlv object -func (obj *bgpSrteBindingSubTlv) SetIpv6Sid(value string) BgpSrteBindingSubTlv { +// description is TBD +// SetStep sets the uint32 value in the PatternFlowIpv4TosMonetaryCounter object +func (obj *patternFlowIpv4TosMonetaryCounter) SetStep(value uint32) PatternFlowIpv4TosMonetaryCounter { - obj.obj.Ipv6Sid = &value + obj.obj.Step = &value return obj } -// S-Flag encodes the "Specified-BSID-only" behavior. -// SFlag returns a bool -func (obj *bgpSrteBindingSubTlv) SFlag() bool { +// description is TBD +// Count returns a uint32 +func (obj *patternFlowIpv4TosMonetaryCounter) Count() uint32 { - return *obj.obj.SFlag + return *obj.obj.Count } -// S-Flag encodes the "Specified-BSID-only" behavior. -// SFlag returns a bool -func (obj *bgpSrteBindingSubTlv) HasSFlag() bool { - return obj.obj.SFlag != nil +// description is TBD +// Count returns a uint32 +func (obj *patternFlowIpv4TosMonetaryCounter) HasCount() bool { + return obj.obj.Count != nil } -// S-Flag encodes the "Specified-BSID-only" behavior. -// SetSFlag sets the bool value in the BgpSrteBindingSubTlv object -func (obj *bgpSrteBindingSubTlv) SetSFlag(value bool) BgpSrteBindingSubTlv { +// description is TBD +// SetCount sets the uint32 value in the PatternFlowIpv4TosMonetaryCounter object +func (obj *patternFlowIpv4TosMonetaryCounter) SetCount(value uint32) PatternFlowIpv4TosMonetaryCounter { - obj.obj.SFlag = &value + obj.obj.Count = &value return obj } -// I-Flag encodes the "Drop Upon Invalid" behavior. -// IFlag returns a bool -func (obj *bgpSrteBindingSubTlv) IFlag() bool { +func (obj *patternFlowIpv4TosMonetaryCounter) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } - return *obj.obj.IFlag + if obj.obj.Start != nil { -} + if *obj.obj.Start > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosMonetaryCounter.Start <= 1 but Got %d", *obj.obj.Start)) + } -// I-Flag encodes the "Drop Upon Invalid" behavior. -// IFlag returns a bool -func (obj *bgpSrteBindingSubTlv) HasIFlag() bool { - return obj.obj.IFlag != nil -} + } -// I-Flag encodes the "Drop Upon Invalid" behavior. -// SetIFlag sets the bool value in the BgpSrteBindingSubTlv object -func (obj *bgpSrteBindingSubTlv) SetIFlag(value bool) BgpSrteBindingSubTlv { + if obj.obj.Step != nil { - obj.obj.IFlag = &value - return obj -} + if *obj.obj.Step > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosMonetaryCounter.Step <= 1 but Got %d", *obj.obj.Step)) + } -func (obj *bgpSrteBindingSubTlv) validateObj(vObj *validation, set_default bool) { - if set_default { - obj.setDefault() } - if obj.obj.Ipv6Sid != nil { + if obj.obj.Count != nil { - err := obj.validateIpv6(obj.Ipv6Sid()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteBindingSubTlv.Ipv6Sid")) + if *obj.obj.Count > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosMonetaryCounter.Count <= 1 but Got %d", *obj.obj.Count)) } } } -func (obj *bgpSrteBindingSubTlv) setDefault() { - if obj.obj.BindingSidType == nil { - obj.SetBindingSidType(BgpSrteBindingSubTlvBindingSidType.NO_BINDING) - +func (obj *patternFlowIpv4TosMonetaryCounter) setDefault() { + if obj.obj.Start == nil { + obj.SetStart(0) } - if obj.obj.SFlag == nil { - obj.SetSFlag(false) + if obj.obj.Step == nil { + obj.SetStep(1) } - if obj.obj.IFlag == nil { - obj.SetIFlag(false) + if obj.obj.Count == nil { + obj.SetCount(1) } } -// ***** BgpSrtePreferenceSubTlv ***** -type bgpSrtePreferenceSubTlv struct { +// ***** PatternFlowIpv4TosMonetaryMetricTag ***** +type patternFlowIpv4TosMonetaryMetricTag struct { validation - obj *otg.BgpSrtePreferenceSubTlv - marshaller marshalBgpSrtePreferenceSubTlv - unMarshaller unMarshalBgpSrtePreferenceSubTlv + obj *otg.PatternFlowIpv4TosMonetaryMetricTag + marshaller marshalPatternFlowIpv4TosMonetaryMetricTag + unMarshaller unMarshalPatternFlowIpv4TosMonetaryMetricTag } -func NewBgpSrtePreferenceSubTlv() BgpSrtePreferenceSubTlv { - obj := bgpSrtePreferenceSubTlv{obj: &otg.BgpSrtePreferenceSubTlv{}} +func NewPatternFlowIpv4TosMonetaryMetricTag() PatternFlowIpv4TosMonetaryMetricTag { + obj := patternFlowIpv4TosMonetaryMetricTag{obj: &otg.PatternFlowIpv4TosMonetaryMetricTag{}} obj.setDefault() return &obj } -func (obj *bgpSrtePreferenceSubTlv) msg() *otg.BgpSrtePreferenceSubTlv { +func (obj *patternFlowIpv4TosMonetaryMetricTag) msg() *otg.PatternFlowIpv4TosMonetaryMetricTag { return obj.obj } -func (obj *bgpSrtePreferenceSubTlv) setMsg(msg *otg.BgpSrtePreferenceSubTlv) BgpSrtePreferenceSubTlv { +func (obj *patternFlowIpv4TosMonetaryMetricTag) setMsg(msg *otg.PatternFlowIpv4TosMonetaryMetricTag) PatternFlowIpv4TosMonetaryMetricTag { proto.Merge(obj.obj, msg) return obj } -type marshalbgpSrtePreferenceSubTlv struct { - obj *bgpSrtePreferenceSubTlv +type marshalpatternFlowIpv4TosMonetaryMetricTag struct { + obj *patternFlowIpv4TosMonetaryMetricTag } -type marshalBgpSrtePreferenceSubTlv interface { - // ToProto marshals BgpSrtePreferenceSubTlv to protobuf object *otg.BgpSrtePreferenceSubTlv - ToProto() (*otg.BgpSrtePreferenceSubTlv, error) - // ToPbText marshals BgpSrtePreferenceSubTlv to protobuf text +type marshalPatternFlowIpv4TosMonetaryMetricTag interface { + // ToProto marshals PatternFlowIpv4TosMonetaryMetricTag to protobuf object *otg.PatternFlowIpv4TosMonetaryMetricTag + ToProto() (*otg.PatternFlowIpv4TosMonetaryMetricTag, error) + // ToPbText marshals PatternFlowIpv4TosMonetaryMetricTag to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpSrtePreferenceSubTlv to YAML text + // ToYaml marshals PatternFlowIpv4TosMonetaryMetricTag to YAML text ToYaml() (string, error) - // ToJson marshals BgpSrtePreferenceSubTlv to JSON text + // ToJson marshals PatternFlowIpv4TosMonetaryMetricTag to JSON text ToJson() (string, error) } -type unMarshalbgpSrtePreferenceSubTlv struct { - obj *bgpSrtePreferenceSubTlv +type unMarshalpatternFlowIpv4TosMonetaryMetricTag struct { + obj *patternFlowIpv4TosMonetaryMetricTag } -type unMarshalBgpSrtePreferenceSubTlv interface { - // FromProto unmarshals BgpSrtePreferenceSubTlv from protobuf object *otg.BgpSrtePreferenceSubTlv - FromProto(msg *otg.BgpSrtePreferenceSubTlv) (BgpSrtePreferenceSubTlv, error) - // FromPbText unmarshals BgpSrtePreferenceSubTlv from protobuf text +type unMarshalPatternFlowIpv4TosMonetaryMetricTag interface { + // FromProto unmarshals PatternFlowIpv4TosMonetaryMetricTag from protobuf object *otg.PatternFlowIpv4TosMonetaryMetricTag + FromProto(msg *otg.PatternFlowIpv4TosMonetaryMetricTag) (PatternFlowIpv4TosMonetaryMetricTag, error) + // FromPbText unmarshals PatternFlowIpv4TosMonetaryMetricTag from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpSrtePreferenceSubTlv from YAML text + // FromYaml unmarshals PatternFlowIpv4TosMonetaryMetricTag from YAML text FromYaml(value string) error - // FromJson unmarshals BgpSrtePreferenceSubTlv from JSON text + // FromJson unmarshals PatternFlowIpv4TosMonetaryMetricTag from JSON text FromJson(value string) error } -func (obj *bgpSrtePreferenceSubTlv) Marshal() marshalBgpSrtePreferenceSubTlv { +func (obj *patternFlowIpv4TosMonetaryMetricTag) Marshal() marshalPatternFlowIpv4TosMonetaryMetricTag { if obj.marshaller == nil { - obj.marshaller = &marshalbgpSrtePreferenceSubTlv{obj: obj} + obj.marshaller = &marshalpatternFlowIpv4TosMonetaryMetricTag{obj: obj} } return obj.marshaller } -func (obj *bgpSrtePreferenceSubTlv) Unmarshal() unMarshalBgpSrtePreferenceSubTlv { +func (obj *patternFlowIpv4TosMonetaryMetricTag) Unmarshal() unMarshalPatternFlowIpv4TosMonetaryMetricTag { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpSrtePreferenceSubTlv{obj: obj} + obj.unMarshaller = &unMarshalpatternFlowIpv4TosMonetaryMetricTag{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpSrtePreferenceSubTlv) ToProto() (*otg.BgpSrtePreferenceSubTlv, error) { +func (m *marshalpatternFlowIpv4TosMonetaryMetricTag) ToProto() (*otg.PatternFlowIpv4TosMonetaryMetricTag, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -327630,7 +339962,7 @@ func (m *marshalbgpSrtePreferenceSubTlv) ToProto() (*otg.BgpSrtePreferenceSubTlv return m.obj.msg(), nil } -func (m *unMarshalbgpSrtePreferenceSubTlv) FromProto(msg *otg.BgpSrtePreferenceSubTlv) (BgpSrtePreferenceSubTlv, error) { +func (m *unMarshalpatternFlowIpv4TosMonetaryMetricTag) FromProto(msg *otg.PatternFlowIpv4TosMonetaryMetricTag) (PatternFlowIpv4TosMonetaryMetricTag, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -327639,7 +339971,7 @@ func (m *unMarshalbgpSrtePreferenceSubTlv) FromProto(msg *otg.BgpSrtePreferenceS return newObj, nil } -func (m *marshalbgpSrtePreferenceSubTlv) ToPbText() (string, error) { +func (m *marshalpatternFlowIpv4TosMonetaryMetricTag) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -327651,7 +339983,7 @@ func (m *marshalbgpSrtePreferenceSubTlv) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalbgpSrtePreferenceSubTlv) FromPbText(value string) error { +func (m *unMarshalpatternFlowIpv4TosMonetaryMetricTag) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj @@ -327664,7 +339996,7 @@ func (m *unMarshalbgpSrtePreferenceSubTlv) FromPbText(value string) error { return retObj } -func (m *marshalbgpSrtePreferenceSubTlv) ToYaml() (string, error) { +func (m *marshalpatternFlowIpv4TosMonetaryMetricTag) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -327685,7 +340017,7 @@ func (m *marshalbgpSrtePreferenceSubTlv) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrtePreferenceSubTlv) FromYaml(value string) error { +func (m *unMarshalpatternFlowIpv4TosMonetaryMetricTag) FromYaml(value string) error { if value == "" { value = "{}" } @@ -327710,7 +340042,7 @@ func (m *unMarshalbgpSrtePreferenceSubTlv) FromYaml(value string) error { return nil } -func (m *marshalbgpSrtePreferenceSubTlv) ToJson() (string, error) { +func (m *marshalpatternFlowIpv4TosMonetaryMetricTag) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -327728,7 +340060,7 @@ func (m *marshalbgpSrtePreferenceSubTlv) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrtePreferenceSubTlv) FromJson(value string) error { +func (m *unMarshalpatternFlowIpv4TosMonetaryMetricTag) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -327749,19 +340081,19 @@ func (m *unMarshalbgpSrtePreferenceSubTlv) FromJson(value string) error { return nil } -func (obj *bgpSrtePreferenceSubTlv) validateToAndFrom() error { +func (obj *patternFlowIpv4TosMonetaryMetricTag) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpSrtePreferenceSubTlv) validate() error { +func (obj *patternFlowIpv4TosMonetaryMetricTag) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpSrtePreferenceSubTlv) String() string { +func (obj *patternFlowIpv4TosMonetaryMetricTag) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -327769,12 +340101,12 @@ func (obj *bgpSrtePreferenceSubTlv) String() string { return str } -func (obj *bgpSrtePreferenceSubTlv) Clone() (BgpSrtePreferenceSubTlv, error) { +func (obj *patternFlowIpv4TosMonetaryMetricTag) Clone() (PatternFlowIpv4TosMonetaryMetricTag, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpSrtePreferenceSubTlv() + newObj := NewPatternFlowIpv4TosMonetaryMetricTag() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -327786,141 +340118,217 @@ func (obj *bgpSrtePreferenceSubTlv) Clone() (BgpSrtePreferenceSubTlv, error) { return newObj, nil } -// BgpSrtePreferenceSubTlv is configuration for BGP preference sub TLV of the SR Policy candidate path. -type BgpSrtePreferenceSubTlv interface { +// PatternFlowIpv4TosMonetaryMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. +type PatternFlowIpv4TosMonetaryMetricTag interface { Validation - // msg marshals BgpSrtePreferenceSubTlv to protobuf object *otg.BgpSrtePreferenceSubTlv + // msg marshals PatternFlowIpv4TosMonetaryMetricTag to protobuf object *otg.PatternFlowIpv4TosMonetaryMetricTag // and doesn't set defaults - msg() *otg.BgpSrtePreferenceSubTlv - // setMsg unmarshals BgpSrtePreferenceSubTlv from protobuf object *otg.BgpSrtePreferenceSubTlv + msg() *otg.PatternFlowIpv4TosMonetaryMetricTag + // setMsg unmarshals PatternFlowIpv4TosMonetaryMetricTag from protobuf object *otg.PatternFlowIpv4TosMonetaryMetricTag // and doesn't set defaults - setMsg(*otg.BgpSrtePreferenceSubTlv) BgpSrtePreferenceSubTlv + setMsg(*otg.PatternFlowIpv4TosMonetaryMetricTag) PatternFlowIpv4TosMonetaryMetricTag // provides marshal interface - Marshal() marshalBgpSrtePreferenceSubTlv + Marshal() marshalPatternFlowIpv4TosMonetaryMetricTag // provides unmarshal interface - Unmarshal() unMarshalBgpSrtePreferenceSubTlv - // validate validates BgpSrtePreferenceSubTlv + Unmarshal() unMarshalPatternFlowIpv4TosMonetaryMetricTag + // validate validates PatternFlowIpv4TosMonetaryMetricTag validate() error // A stringer function String() string // Clones the object - Clone() (BgpSrtePreferenceSubTlv, error) + Clone() (PatternFlowIpv4TosMonetaryMetricTag, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Preference returns uint32, set in BgpSrtePreferenceSubTlv. - Preference() uint32 - // SetPreference assigns uint32 provided by user to BgpSrtePreferenceSubTlv - SetPreference(value uint32) BgpSrtePreferenceSubTlv - // HasPreference checks if Preference has been set in BgpSrtePreferenceSubTlv - HasPreference() bool + // Name returns string, set in PatternFlowIpv4TosMonetaryMetricTag. + Name() string + // SetName assigns string provided by user to PatternFlowIpv4TosMonetaryMetricTag + SetName(value string) PatternFlowIpv4TosMonetaryMetricTag + // Offset returns uint32, set in PatternFlowIpv4TosMonetaryMetricTag. + Offset() uint32 + // SetOffset assigns uint32 provided by user to PatternFlowIpv4TosMonetaryMetricTag + SetOffset(value uint32) PatternFlowIpv4TosMonetaryMetricTag + // HasOffset checks if Offset has been set in PatternFlowIpv4TosMonetaryMetricTag + HasOffset() bool + // Length returns uint32, set in PatternFlowIpv4TosMonetaryMetricTag. + Length() uint32 + // SetLength assigns uint32 provided by user to PatternFlowIpv4TosMonetaryMetricTag + SetLength(value uint32) PatternFlowIpv4TosMonetaryMetricTag + // HasLength checks if Length has been set in PatternFlowIpv4TosMonetaryMetricTag + HasLength() bool } -// The preference value of the SR Policy candidate path. -// Preference returns a uint32 -func (obj *bgpSrtePreferenceSubTlv) Preference() uint32 { +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field +// Name returns a string +func (obj *patternFlowIpv4TosMonetaryMetricTag) Name() string { - return *obj.obj.Preference + return *obj.obj.Name } -// The preference value of the SR Policy candidate path. -// Preference returns a uint32 -func (obj *bgpSrtePreferenceSubTlv) HasPreference() bool { - return obj.obj.Preference != nil +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field +// SetName sets the string value in the PatternFlowIpv4TosMonetaryMetricTag object +func (obj *patternFlowIpv4TosMonetaryMetricTag) SetName(value string) PatternFlowIpv4TosMonetaryMetricTag { + + obj.obj.Name = &value + return obj } -// The preference value of the SR Policy candidate path. -// SetPreference sets the uint32 value in the BgpSrtePreferenceSubTlv object -func (obj *bgpSrtePreferenceSubTlv) SetPreference(value uint32) BgpSrtePreferenceSubTlv { +// Offset in bits relative to start of corresponding header field +// Offset returns a uint32 +func (obj *patternFlowIpv4TosMonetaryMetricTag) Offset() uint32 { - obj.obj.Preference = &value + return *obj.obj.Offset + +} + +// Offset in bits relative to start of corresponding header field +// Offset returns a uint32 +func (obj *patternFlowIpv4TosMonetaryMetricTag) HasOffset() bool { + return obj.obj.Offset != nil +} + +// Offset in bits relative to start of corresponding header field +// SetOffset sets the uint32 value in the PatternFlowIpv4TosMonetaryMetricTag object +func (obj *patternFlowIpv4TosMonetaryMetricTag) SetOffset(value uint32) PatternFlowIpv4TosMonetaryMetricTag { + + obj.obj.Offset = &value return obj } -func (obj *bgpSrtePreferenceSubTlv) validateObj(vObj *validation, set_default bool) { +// Number of bits to track for metrics starting from configured offset of corresponding header field +// Length returns a uint32 +func (obj *patternFlowIpv4TosMonetaryMetricTag) Length() uint32 { + + return *obj.obj.Length + +} + +// Number of bits to track for metrics starting from configured offset of corresponding header field +// Length returns a uint32 +func (obj *patternFlowIpv4TosMonetaryMetricTag) HasLength() bool { + return obj.obj.Length != nil +} + +// Number of bits to track for metrics starting from configured offset of corresponding header field +// SetLength sets the uint32 value in the PatternFlowIpv4TosMonetaryMetricTag object +func (obj *patternFlowIpv4TosMonetaryMetricTag) SetLength(value uint32) PatternFlowIpv4TosMonetaryMetricTag { + + obj.obj.Length = &value + return obj +} + +func (obj *patternFlowIpv4TosMonetaryMetricTag) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } + // Name is required + if obj.obj.Name == nil { + vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosMonetaryMetricTag") + } + + if obj.obj.Offset != nil { + + if *obj.obj.Offset > 0 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosMonetaryMetricTag.Offset <= 0 but Got %d", *obj.obj.Offset)) + } + + } + + if obj.obj.Length != nil { + + if *obj.obj.Length < 1 || *obj.obj.Length > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("1 <= PatternFlowIpv4TosMonetaryMetricTag.Length <= 1 but Got %d", *obj.obj.Length)) + } + + } + } -func (obj *bgpSrtePreferenceSubTlv) setDefault() { - if obj.obj.Preference == nil { - obj.SetPreference(0) +func (obj *patternFlowIpv4TosMonetaryMetricTag) setDefault() { + if obj.obj.Offset == nil { + obj.SetOffset(0) + } + if obj.obj.Length == nil { + obj.SetLength(1) } } -// ***** BgpSrtePolicyPrioritySubTlv ***** -type bgpSrtePolicyPrioritySubTlv struct { +// ***** PatternFlowIpv4TosUnusedCounter ***** +type patternFlowIpv4TosUnusedCounter struct { validation - obj *otg.BgpSrtePolicyPrioritySubTlv - marshaller marshalBgpSrtePolicyPrioritySubTlv - unMarshaller unMarshalBgpSrtePolicyPrioritySubTlv + obj *otg.PatternFlowIpv4TosUnusedCounter + marshaller marshalPatternFlowIpv4TosUnusedCounter + unMarshaller unMarshalPatternFlowIpv4TosUnusedCounter } -func NewBgpSrtePolicyPrioritySubTlv() BgpSrtePolicyPrioritySubTlv { - obj := bgpSrtePolicyPrioritySubTlv{obj: &otg.BgpSrtePolicyPrioritySubTlv{}} +func NewPatternFlowIpv4TosUnusedCounter() PatternFlowIpv4TosUnusedCounter { + obj := patternFlowIpv4TosUnusedCounter{obj: &otg.PatternFlowIpv4TosUnusedCounter{}} obj.setDefault() return &obj } -func (obj *bgpSrtePolicyPrioritySubTlv) msg() *otg.BgpSrtePolicyPrioritySubTlv { +func (obj *patternFlowIpv4TosUnusedCounter) msg() *otg.PatternFlowIpv4TosUnusedCounter { return obj.obj } -func (obj *bgpSrtePolicyPrioritySubTlv) setMsg(msg *otg.BgpSrtePolicyPrioritySubTlv) BgpSrtePolicyPrioritySubTlv { +func (obj *patternFlowIpv4TosUnusedCounter) setMsg(msg *otg.PatternFlowIpv4TosUnusedCounter) PatternFlowIpv4TosUnusedCounter { proto.Merge(obj.obj, msg) return obj } -type marshalbgpSrtePolicyPrioritySubTlv struct { - obj *bgpSrtePolicyPrioritySubTlv +type marshalpatternFlowIpv4TosUnusedCounter struct { + obj *patternFlowIpv4TosUnusedCounter } -type marshalBgpSrtePolicyPrioritySubTlv interface { - // ToProto marshals BgpSrtePolicyPrioritySubTlv to protobuf object *otg.BgpSrtePolicyPrioritySubTlv - ToProto() (*otg.BgpSrtePolicyPrioritySubTlv, error) - // ToPbText marshals BgpSrtePolicyPrioritySubTlv to protobuf text +type marshalPatternFlowIpv4TosUnusedCounter interface { + // ToProto marshals PatternFlowIpv4TosUnusedCounter to protobuf object *otg.PatternFlowIpv4TosUnusedCounter + ToProto() (*otg.PatternFlowIpv4TosUnusedCounter, error) + // ToPbText marshals PatternFlowIpv4TosUnusedCounter to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpSrtePolicyPrioritySubTlv to YAML text + // ToYaml marshals PatternFlowIpv4TosUnusedCounter to YAML text ToYaml() (string, error) - // ToJson marshals BgpSrtePolicyPrioritySubTlv to JSON text + // ToJson marshals PatternFlowIpv4TosUnusedCounter to JSON text ToJson() (string, error) } -type unMarshalbgpSrtePolicyPrioritySubTlv struct { - obj *bgpSrtePolicyPrioritySubTlv +type unMarshalpatternFlowIpv4TosUnusedCounter struct { + obj *patternFlowIpv4TosUnusedCounter } -type unMarshalBgpSrtePolicyPrioritySubTlv interface { - // FromProto unmarshals BgpSrtePolicyPrioritySubTlv from protobuf object *otg.BgpSrtePolicyPrioritySubTlv - FromProto(msg *otg.BgpSrtePolicyPrioritySubTlv) (BgpSrtePolicyPrioritySubTlv, error) - // FromPbText unmarshals BgpSrtePolicyPrioritySubTlv from protobuf text +type unMarshalPatternFlowIpv4TosUnusedCounter interface { + // FromProto unmarshals PatternFlowIpv4TosUnusedCounter from protobuf object *otg.PatternFlowIpv4TosUnusedCounter + FromProto(msg *otg.PatternFlowIpv4TosUnusedCounter) (PatternFlowIpv4TosUnusedCounter, error) + // FromPbText unmarshals PatternFlowIpv4TosUnusedCounter from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpSrtePolicyPrioritySubTlv from YAML text + // FromYaml unmarshals PatternFlowIpv4TosUnusedCounter from YAML text FromYaml(value string) error - // FromJson unmarshals BgpSrtePolicyPrioritySubTlv from JSON text + // FromJson unmarshals PatternFlowIpv4TosUnusedCounter from JSON text FromJson(value string) error } -func (obj *bgpSrtePolicyPrioritySubTlv) Marshal() marshalBgpSrtePolicyPrioritySubTlv { +func (obj *patternFlowIpv4TosUnusedCounter) Marshal() marshalPatternFlowIpv4TosUnusedCounter { if obj.marshaller == nil { - obj.marshaller = &marshalbgpSrtePolicyPrioritySubTlv{obj: obj} + obj.marshaller = &marshalpatternFlowIpv4TosUnusedCounter{obj: obj} } return obj.marshaller } -func (obj *bgpSrtePolicyPrioritySubTlv) Unmarshal() unMarshalBgpSrtePolicyPrioritySubTlv { +func (obj *patternFlowIpv4TosUnusedCounter) Unmarshal() unMarshalPatternFlowIpv4TosUnusedCounter { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpSrtePolicyPrioritySubTlv{obj: obj} + obj.unMarshaller = &unMarshalpatternFlowIpv4TosUnusedCounter{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpSrtePolicyPrioritySubTlv) ToProto() (*otg.BgpSrtePolicyPrioritySubTlv, error) { +func (m *marshalpatternFlowIpv4TosUnusedCounter) ToProto() (*otg.PatternFlowIpv4TosUnusedCounter, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -327928,7 +340336,7 @@ func (m *marshalbgpSrtePolicyPrioritySubTlv) ToProto() (*otg.BgpSrtePolicyPriori return m.obj.msg(), nil } -func (m *unMarshalbgpSrtePolicyPrioritySubTlv) FromProto(msg *otg.BgpSrtePolicyPrioritySubTlv) (BgpSrtePolicyPrioritySubTlv, error) { +func (m *unMarshalpatternFlowIpv4TosUnusedCounter) FromProto(msg *otg.PatternFlowIpv4TosUnusedCounter) (PatternFlowIpv4TosUnusedCounter, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -327937,7 +340345,7 @@ func (m *unMarshalbgpSrtePolicyPrioritySubTlv) FromProto(msg *otg.BgpSrtePolicyP return newObj, nil } -func (m *marshalbgpSrtePolicyPrioritySubTlv) ToPbText() (string, error) { +func (m *marshalpatternFlowIpv4TosUnusedCounter) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -327949,7 +340357,7 @@ func (m *marshalbgpSrtePolicyPrioritySubTlv) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalbgpSrtePolicyPrioritySubTlv) FromPbText(value string) error { +func (m *unMarshalpatternFlowIpv4TosUnusedCounter) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj @@ -327962,7 +340370,7 @@ func (m *unMarshalbgpSrtePolicyPrioritySubTlv) FromPbText(value string) error { return retObj } -func (m *marshalbgpSrtePolicyPrioritySubTlv) ToYaml() (string, error) { +func (m *marshalpatternFlowIpv4TosUnusedCounter) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -327983,7 +340391,7 @@ func (m *marshalbgpSrtePolicyPrioritySubTlv) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrtePolicyPrioritySubTlv) FromYaml(value string) error { +func (m *unMarshalpatternFlowIpv4TosUnusedCounter) FromYaml(value string) error { if value == "" { value = "{}" } @@ -328008,7 +340416,7 @@ func (m *unMarshalbgpSrtePolicyPrioritySubTlv) FromYaml(value string) error { return nil } -func (m *marshalbgpSrtePolicyPrioritySubTlv) ToJson() (string, error) { +func (m *marshalpatternFlowIpv4TosUnusedCounter) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -328026,7 +340434,7 @@ func (m *marshalbgpSrtePolicyPrioritySubTlv) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrtePolicyPrioritySubTlv) FromJson(value string) error { +func (m *unMarshalpatternFlowIpv4TosUnusedCounter) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -328047,19 +340455,19 @@ func (m *unMarshalbgpSrtePolicyPrioritySubTlv) FromJson(value string) error { return nil } -func (obj *bgpSrtePolicyPrioritySubTlv) validateToAndFrom() error { +func (obj *patternFlowIpv4TosUnusedCounter) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpSrtePolicyPrioritySubTlv) validate() error { +func (obj *patternFlowIpv4TosUnusedCounter) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpSrtePolicyPrioritySubTlv) String() string { +func (obj *patternFlowIpv4TosUnusedCounter) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -328067,12 +340475,12 @@ func (obj *bgpSrtePolicyPrioritySubTlv) String() string { return str } -func (obj *bgpSrtePolicyPrioritySubTlv) Clone() (BgpSrtePolicyPrioritySubTlv, error) { +func (obj *patternFlowIpv4TosUnusedCounter) Clone() (PatternFlowIpv4TosUnusedCounter, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpSrtePolicyPrioritySubTlv() + newObj := NewPatternFlowIpv4TosUnusedCounter() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -328084,148 +340492,233 @@ func (obj *bgpSrtePolicyPrioritySubTlv) Clone() (BgpSrtePolicyPrioritySubTlv, er return newObj, nil } -// BgpSrtePolicyPrioritySubTlv is configuration for the Policy Priority sub-TLV. The Policy Priority to indicate the order in which the SR policies are re-computed upon topological change. -type BgpSrtePolicyPrioritySubTlv interface { +// PatternFlowIpv4TosUnusedCounter is integer counter pattern +type PatternFlowIpv4TosUnusedCounter interface { Validation - // msg marshals BgpSrtePolicyPrioritySubTlv to protobuf object *otg.BgpSrtePolicyPrioritySubTlv + // msg marshals PatternFlowIpv4TosUnusedCounter to protobuf object *otg.PatternFlowIpv4TosUnusedCounter // and doesn't set defaults - msg() *otg.BgpSrtePolicyPrioritySubTlv - // setMsg unmarshals BgpSrtePolicyPrioritySubTlv from protobuf object *otg.BgpSrtePolicyPrioritySubTlv + msg() *otg.PatternFlowIpv4TosUnusedCounter + // setMsg unmarshals PatternFlowIpv4TosUnusedCounter from protobuf object *otg.PatternFlowIpv4TosUnusedCounter // and doesn't set defaults - setMsg(*otg.BgpSrtePolicyPrioritySubTlv) BgpSrtePolicyPrioritySubTlv + setMsg(*otg.PatternFlowIpv4TosUnusedCounter) PatternFlowIpv4TosUnusedCounter // provides marshal interface - Marshal() marshalBgpSrtePolicyPrioritySubTlv + Marshal() marshalPatternFlowIpv4TosUnusedCounter // provides unmarshal interface - Unmarshal() unMarshalBgpSrtePolicyPrioritySubTlv - // validate validates BgpSrtePolicyPrioritySubTlv + Unmarshal() unMarshalPatternFlowIpv4TosUnusedCounter + // validate validates PatternFlowIpv4TosUnusedCounter validate() error // A stringer function String() string // Clones the object - Clone() (BgpSrtePolicyPrioritySubTlv, error) + Clone() (PatternFlowIpv4TosUnusedCounter, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // PolicyPriority returns uint32, set in BgpSrtePolicyPrioritySubTlv. - PolicyPriority() uint32 - // SetPolicyPriority assigns uint32 provided by user to BgpSrtePolicyPrioritySubTlv - SetPolicyPriority(value uint32) BgpSrtePolicyPrioritySubTlv - // HasPolicyPriority checks if PolicyPriority has been set in BgpSrtePolicyPrioritySubTlv - HasPolicyPriority() bool + // Start returns uint32, set in PatternFlowIpv4TosUnusedCounter. + Start() uint32 + // SetStart assigns uint32 provided by user to PatternFlowIpv4TosUnusedCounter + SetStart(value uint32) PatternFlowIpv4TosUnusedCounter + // HasStart checks if Start has been set in PatternFlowIpv4TosUnusedCounter + HasStart() bool + // Step returns uint32, set in PatternFlowIpv4TosUnusedCounter. + Step() uint32 + // SetStep assigns uint32 provided by user to PatternFlowIpv4TosUnusedCounter + SetStep(value uint32) PatternFlowIpv4TosUnusedCounter + // HasStep checks if Step has been set in PatternFlowIpv4TosUnusedCounter + HasStep() bool + // Count returns uint32, set in PatternFlowIpv4TosUnusedCounter. + Count() uint32 + // SetCount assigns uint32 provided by user to PatternFlowIpv4TosUnusedCounter + SetCount(value uint32) PatternFlowIpv4TosUnusedCounter + // HasCount checks if Count has been set in PatternFlowIpv4TosUnusedCounter + HasCount() bool } -// One-octet Priority value. -// PolicyPriority returns a uint32 -func (obj *bgpSrtePolicyPrioritySubTlv) PolicyPriority() uint32 { +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4TosUnusedCounter) Start() uint32 { - return *obj.obj.PolicyPriority + return *obj.obj.Start } -// One-octet Priority value. -// PolicyPriority returns a uint32 -func (obj *bgpSrtePolicyPrioritySubTlv) HasPolicyPriority() bool { - return obj.obj.PolicyPriority != nil +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4TosUnusedCounter) HasStart() bool { + return obj.obj.Start != nil } -// One-octet Priority value. -// SetPolicyPriority sets the uint32 value in the BgpSrtePolicyPrioritySubTlv object -func (obj *bgpSrtePolicyPrioritySubTlv) SetPolicyPriority(value uint32) BgpSrtePolicyPrioritySubTlv { +// description is TBD +// SetStart sets the uint32 value in the PatternFlowIpv4TosUnusedCounter object +func (obj *patternFlowIpv4TosUnusedCounter) SetStart(value uint32) PatternFlowIpv4TosUnusedCounter { - obj.obj.PolicyPriority = &value + obj.obj.Start = &value return obj } -func (obj *bgpSrtePolicyPrioritySubTlv) validateObj(vObj *validation, set_default bool) { +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4TosUnusedCounter) Step() uint32 { + + return *obj.obj.Step + +} + +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4TosUnusedCounter) HasStep() bool { + return obj.obj.Step != nil +} + +// description is TBD +// SetStep sets the uint32 value in the PatternFlowIpv4TosUnusedCounter object +func (obj *patternFlowIpv4TosUnusedCounter) SetStep(value uint32) PatternFlowIpv4TosUnusedCounter { + + obj.obj.Step = &value + return obj +} + +// description is TBD +// Count returns a uint32 +func (obj *patternFlowIpv4TosUnusedCounter) Count() uint32 { + + return *obj.obj.Count + +} + +// description is TBD +// Count returns a uint32 +func (obj *patternFlowIpv4TosUnusedCounter) HasCount() bool { + return obj.obj.Count != nil +} + +// description is TBD +// SetCount sets the uint32 value in the PatternFlowIpv4TosUnusedCounter object +func (obj *patternFlowIpv4TosUnusedCounter) SetCount(value uint32) PatternFlowIpv4TosUnusedCounter { + + obj.obj.Count = &value + return obj +} + +func (obj *patternFlowIpv4TosUnusedCounter) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.PolicyPriority != nil { + if obj.obj.Start != nil { - if *obj.obj.PolicyPriority > 255 { + if *obj.obj.Start > 1 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= BgpSrtePolicyPrioritySubTlv.PolicyPriority <= 255 but Got %d", *obj.obj.PolicyPriority)) + fmt.Sprintf("0 <= PatternFlowIpv4TosUnusedCounter.Start <= 1 but Got %d", *obj.obj.Start)) + } + + } + + if obj.obj.Step != nil { + + if *obj.obj.Step > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosUnusedCounter.Step <= 1 but Got %d", *obj.obj.Step)) + } + + } + + if obj.obj.Count != nil { + + if *obj.obj.Count > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4TosUnusedCounter.Count <= 1 but Got %d", *obj.obj.Count)) } } } -func (obj *bgpSrtePolicyPrioritySubTlv) setDefault() { +func (obj *patternFlowIpv4TosUnusedCounter) setDefault() { + if obj.obj.Start == nil { + obj.SetStart(0) + } + if obj.obj.Step == nil { + obj.SetStep(1) + } + if obj.obj.Count == nil { + obj.SetCount(1) + } } -// ***** BgpSrtePolicyNameSubTlv ***** -type bgpSrtePolicyNameSubTlv struct { +// ***** PatternFlowIpv4TosUnusedMetricTag ***** +type patternFlowIpv4TosUnusedMetricTag struct { validation - obj *otg.BgpSrtePolicyNameSubTlv - marshaller marshalBgpSrtePolicyNameSubTlv - unMarshaller unMarshalBgpSrtePolicyNameSubTlv + obj *otg.PatternFlowIpv4TosUnusedMetricTag + marshaller marshalPatternFlowIpv4TosUnusedMetricTag + unMarshaller unMarshalPatternFlowIpv4TosUnusedMetricTag } -func NewBgpSrtePolicyNameSubTlv() BgpSrtePolicyNameSubTlv { - obj := bgpSrtePolicyNameSubTlv{obj: &otg.BgpSrtePolicyNameSubTlv{}} +func NewPatternFlowIpv4TosUnusedMetricTag() PatternFlowIpv4TosUnusedMetricTag { + obj := patternFlowIpv4TosUnusedMetricTag{obj: &otg.PatternFlowIpv4TosUnusedMetricTag{}} obj.setDefault() return &obj } -func (obj *bgpSrtePolicyNameSubTlv) msg() *otg.BgpSrtePolicyNameSubTlv { +func (obj *patternFlowIpv4TosUnusedMetricTag) msg() *otg.PatternFlowIpv4TosUnusedMetricTag { return obj.obj } -func (obj *bgpSrtePolicyNameSubTlv) setMsg(msg *otg.BgpSrtePolicyNameSubTlv) BgpSrtePolicyNameSubTlv { +func (obj *patternFlowIpv4TosUnusedMetricTag) setMsg(msg *otg.PatternFlowIpv4TosUnusedMetricTag) PatternFlowIpv4TosUnusedMetricTag { proto.Merge(obj.obj, msg) return obj } -type marshalbgpSrtePolicyNameSubTlv struct { - obj *bgpSrtePolicyNameSubTlv +type marshalpatternFlowIpv4TosUnusedMetricTag struct { + obj *patternFlowIpv4TosUnusedMetricTag } -type marshalBgpSrtePolicyNameSubTlv interface { - // ToProto marshals BgpSrtePolicyNameSubTlv to protobuf object *otg.BgpSrtePolicyNameSubTlv - ToProto() (*otg.BgpSrtePolicyNameSubTlv, error) - // ToPbText marshals BgpSrtePolicyNameSubTlv to protobuf text +type marshalPatternFlowIpv4TosUnusedMetricTag interface { + // ToProto marshals PatternFlowIpv4TosUnusedMetricTag to protobuf object *otg.PatternFlowIpv4TosUnusedMetricTag + ToProto() (*otg.PatternFlowIpv4TosUnusedMetricTag, error) + // ToPbText marshals PatternFlowIpv4TosUnusedMetricTag to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpSrtePolicyNameSubTlv to YAML text + // ToYaml marshals PatternFlowIpv4TosUnusedMetricTag to YAML text ToYaml() (string, error) - // ToJson marshals BgpSrtePolicyNameSubTlv to JSON text + // ToJson marshals PatternFlowIpv4TosUnusedMetricTag to JSON text ToJson() (string, error) } -type unMarshalbgpSrtePolicyNameSubTlv struct { - obj *bgpSrtePolicyNameSubTlv +type unMarshalpatternFlowIpv4TosUnusedMetricTag struct { + obj *patternFlowIpv4TosUnusedMetricTag } -type unMarshalBgpSrtePolicyNameSubTlv interface { - // FromProto unmarshals BgpSrtePolicyNameSubTlv from protobuf object *otg.BgpSrtePolicyNameSubTlv - FromProto(msg *otg.BgpSrtePolicyNameSubTlv) (BgpSrtePolicyNameSubTlv, error) - // FromPbText unmarshals BgpSrtePolicyNameSubTlv from protobuf text +type unMarshalPatternFlowIpv4TosUnusedMetricTag interface { + // FromProto unmarshals PatternFlowIpv4TosUnusedMetricTag from protobuf object *otg.PatternFlowIpv4TosUnusedMetricTag + FromProto(msg *otg.PatternFlowIpv4TosUnusedMetricTag) (PatternFlowIpv4TosUnusedMetricTag, error) + // FromPbText unmarshals PatternFlowIpv4TosUnusedMetricTag from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpSrtePolicyNameSubTlv from YAML text + // FromYaml unmarshals PatternFlowIpv4TosUnusedMetricTag from YAML text FromYaml(value string) error - // FromJson unmarshals BgpSrtePolicyNameSubTlv from JSON text + // FromJson unmarshals PatternFlowIpv4TosUnusedMetricTag from JSON text FromJson(value string) error } -func (obj *bgpSrtePolicyNameSubTlv) Marshal() marshalBgpSrtePolicyNameSubTlv { +func (obj *patternFlowIpv4TosUnusedMetricTag) Marshal() marshalPatternFlowIpv4TosUnusedMetricTag { if obj.marshaller == nil { - obj.marshaller = &marshalbgpSrtePolicyNameSubTlv{obj: obj} + obj.marshaller = &marshalpatternFlowIpv4TosUnusedMetricTag{obj: obj} } return obj.marshaller } -func (obj *bgpSrtePolicyNameSubTlv) Unmarshal() unMarshalBgpSrtePolicyNameSubTlv { +func (obj *patternFlowIpv4TosUnusedMetricTag) Unmarshal() unMarshalPatternFlowIpv4TosUnusedMetricTag { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpSrtePolicyNameSubTlv{obj: obj} + obj.unMarshaller = &unMarshalpatternFlowIpv4TosUnusedMetricTag{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpSrtePolicyNameSubTlv) ToProto() (*otg.BgpSrtePolicyNameSubTlv, error) { +func (m *marshalpatternFlowIpv4TosUnusedMetricTag) ToProto() (*otg.PatternFlowIpv4TosUnusedMetricTag, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -328233,7 +340726,7 @@ func (m *marshalbgpSrtePolicyNameSubTlv) ToProto() (*otg.BgpSrtePolicyNameSubTlv return m.obj.msg(), nil } -func (m *unMarshalbgpSrtePolicyNameSubTlv) FromProto(msg *otg.BgpSrtePolicyNameSubTlv) (BgpSrtePolicyNameSubTlv, error) { +func (m *unMarshalpatternFlowIpv4TosUnusedMetricTag) FromProto(msg *otg.PatternFlowIpv4TosUnusedMetricTag) (PatternFlowIpv4TosUnusedMetricTag, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -328242,7 +340735,7 @@ func (m *unMarshalbgpSrtePolicyNameSubTlv) FromProto(msg *otg.BgpSrtePolicyNameS return newObj, nil } -func (m *marshalbgpSrtePolicyNameSubTlv) ToPbText() (string, error) { +func (m *marshalpatternFlowIpv4TosUnusedMetricTag) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -328254,7 +340747,7 @@ func (m *marshalbgpSrtePolicyNameSubTlv) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalbgpSrtePolicyNameSubTlv) FromPbText(value string) error { +func (m *unMarshalpatternFlowIpv4TosUnusedMetricTag) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj @@ -328267,7 +340760,7 @@ func (m *unMarshalbgpSrtePolicyNameSubTlv) FromPbText(value string) error { return retObj } -func (m *marshalbgpSrtePolicyNameSubTlv) ToYaml() (string, error) { +func (m *marshalpatternFlowIpv4TosUnusedMetricTag) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -328288,7 +340781,7 @@ func (m *marshalbgpSrtePolicyNameSubTlv) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrtePolicyNameSubTlv) FromYaml(value string) error { +func (m *unMarshalpatternFlowIpv4TosUnusedMetricTag) FromYaml(value string) error { if value == "" { value = "{}" } @@ -328313,7 +340806,7 @@ func (m *unMarshalbgpSrtePolicyNameSubTlv) FromYaml(value string) error { return nil } -func (m *marshalbgpSrtePolicyNameSubTlv) ToJson() (string, error) { +func (m *marshalpatternFlowIpv4TosUnusedMetricTag) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -328331,7 +340824,7 @@ func (m *marshalbgpSrtePolicyNameSubTlv) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrtePolicyNameSubTlv) FromJson(value string) error { +func (m *unMarshalpatternFlowIpv4TosUnusedMetricTag) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -328352,19 +340845,19 @@ func (m *unMarshalbgpSrtePolicyNameSubTlv) FromJson(value string) error { return nil } -func (obj *bgpSrtePolicyNameSubTlv) validateToAndFrom() error { +func (obj *patternFlowIpv4TosUnusedMetricTag) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpSrtePolicyNameSubTlv) validate() error { +func (obj *patternFlowIpv4TosUnusedMetricTag) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpSrtePolicyNameSubTlv) String() string { +func (obj *patternFlowIpv4TosUnusedMetricTag) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -328372,12 +340865,12 @@ func (obj *bgpSrtePolicyNameSubTlv) String() string { return str } -func (obj *bgpSrtePolicyNameSubTlv) Clone() (BgpSrtePolicyNameSubTlv, error) { +func (obj *patternFlowIpv4TosUnusedMetricTag) Clone() (PatternFlowIpv4TosUnusedMetricTag, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpSrtePolicyNameSubTlv() + newObj := NewPatternFlowIpv4TosUnusedMetricTag() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -328389,150 +340882,217 @@ func (obj *bgpSrtePolicyNameSubTlv) Clone() (BgpSrtePolicyNameSubTlv, error) { return newObj, nil } -// BgpSrtePolicyNameSubTlv is configuration for the Policy Name sub-TLV. The Policy Name sub-TLV is used to attach a symbolic name to the SR Policy candidate path. -type BgpSrtePolicyNameSubTlv interface { +// PatternFlowIpv4TosUnusedMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. +type PatternFlowIpv4TosUnusedMetricTag interface { Validation - // msg marshals BgpSrtePolicyNameSubTlv to protobuf object *otg.BgpSrtePolicyNameSubTlv + // msg marshals PatternFlowIpv4TosUnusedMetricTag to protobuf object *otg.PatternFlowIpv4TosUnusedMetricTag // and doesn't set defaults - msg() *otg.BgpSrtePolicyNameSubTlv - // setMsg unmarshals BgpSrtePolicyNameSubTlv from protobuf object *otg.BgpSrtePolicyNameSubTlv + msg() *otg.PatternFlowIpv4TosUnusedMetricTag + // setMsg unmarshals PatternFlowIpv4TosUnusedMetricTag from protobuf object *otg.PatternFlowIpv4TosUnusedMetricTag // and doesn't set defaults - setMsg(*otg.BgpSrtePolicyNameSubTlv) BgpSrtePolicyNameSubTlv + setMsg(*otg.PatternFlowIpv4TosUnusedMetricTag) PatternFlowIpv4TosUnusedMetricTag // provides marshal interface - Marshal() marshalBgpSrtePolicyNameSubTlv + Marshal() marshalPatternFlowIpv4TosUnusedMetricTag // provides unmarshal interface - Unmarshal() unMarshalBgpSrtePolicyNameSubTlv - // validate validates BgpSrtePolicyNameSubTlv + Unmarshal() unMarshalPatternFlowIpv4TosUnusedMetricTag + // validate validates PatternFlowIpv4TosUnusedMetricTag validate() error // A stringer function String() string // Clones the object - Clone() (BgpSrtePolicyNameSubTlv, error) + Clone() (PatternFlowIpv4TosUnusedMetricTag, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // PolicyName returns string, set in BgpSrtePolicyNameSubTlv. - PolicyName() string - // SetPolicyName assigns string provided by user to BgpSrtePolicyNameSubTlv - SetPolicyName(value string) BgpSrtePolicyNameSubTlv - // HasPolicyName checks if PolicyName has been set in BgpSrtePolicyNameSubTlv - HasPolicyName() bool + // Name returns string, set in PatternFlowIpv4TosUnusedMetricTag. + Name() string + // SetName assigns string provided by user to PatternFlowIpv4TosUnusedMetricTag + SetName(value string) PatternFlowIpv4TosUnusedMetricTag + // Offset returns uint32, set in PatternFlowIpv4TosUnusedMetricTag. + Offset() uint32 + // SetOffset assigns uint32 provided by user to PatternFlowIpv4TosUnusedMetricTag + SetOffset(value uint32) PatternFlowIpv4TosUnusedMetricTag + // HasOffset checks if Offset has been set in PatternFlowIpv4TosUnusedMetricTag + HasOffset() bool + // Length returns uint32, set in PatternFlowIpv4TosUnusedMetricTag. + Length() uint32 + // SetLength assigns uint32 provided by user to PatternFlowIpv4TosUnusedMetricTag + SetLength(value uint32) PatternFlowIpv4TosUnusedMetricTag + // HasLength checks if Length has been set in PatternFlowIpv4TosUnusedMetricTag + HasLength() bool } -// Symbolic name for the policy that should be a string of printable ASCII characters, without a NULL terminator. -// PolicyName returns a string -func (obj *bgpSrtePolicyNameSubTlv) PolicyName() string { +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field +// Name returns a string +func (obj *patternFlowIpv4TosUnusedMetricTag) Name() string { - return *obj.obj.PolicyName + return *obj.obj.Name } -// Symbolic name for the policy that should be a string of printable ASCII characters, without a NULL terminator. -// PolicyName returns a string -func (obj *bgpSrtePolicyNameSubTlv) HasPolicyName() bool { - return obj.obj.PolicyName != nil +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field +// SetName sets the string value in the PatternFlowIpv4TosUnusedMetricTag object +func (obj *patternFlowIpv4TosUnusedMetricTag) SetName(value string) PatternFlowIpv4TosUnusedMetricTag { + + obj.obj.Name = &value + return obj } -// Symbolic name for the policy that should be a string of printable ASCII characters, without a NULL terminator. -// SetPolicyName sets the string value in the BgpSrtePolicyNameSubTlv object -func (obj *bgpSrtePolicyNameSubTlv) SetPolicyName(value string) BgpSrtePolicyNameSubTlv { +// Offset in bits relative to start of corresponding header field +// Offset returns a uint32 +func (obj *patternFlowIpv4TosUnusedMetricTag) Offset() uint32 { - obj.obj.PolicyName = &value + return *obj.obj.Offset + +} + +// Offset in bits relative to start of corresponding header field +// Offset returns a uint32 +func (obj *patternFlowIpv4TosUnusedMetricTag) HasOffset() bool { + return obj.obj.Offset != nil +} + +// Offset in bits relative to start of corresponding header field +// SetOffset sets the uint32 value in the PatternFlowIpv4TosUnusedMetricTag object +func (obj *patternFlowIpv4TosUnusedMetricTag) SetOffset(value uint32) PatternFlowIpv4TosUnusedMetricTag { + + obj.obj.Offset = &value return obj } -func (obj *bgpSrtePolicyNameSubTlv) validateObj(vObj *validation, set_default bool) { +// Number of bits to track for metrics starting from configured offset of corresponding header field +// Length returns a uint32 +func (obj *patternFlowIpv4TosUnusedMetricTag) Length() uint32 { + + return *obj.obj.Length + +} + +// Number of bits to track for metrics starting from configured offset of corresponding header field +// Length returns a uint32 +func (obj *patternFlowIpv4TosUnusedMetricTag) HasLength() bool { + return obj.obj.Length != nil +} + +// Number of bits to track for metrics starting from configured offset of corresponding header field +// SetLength sets the uint32 value in the PatternFlowIpv4TosUnusedMetricTag object +func (obj *patternFlowIpv4TosUnusedMetricTag) SetLength(value uint32) PatternFlowIpv4TosUnusedMetricTag { + + obj.obj.Length = &value + return obj +} + +func (obj *patternFlowIpv4TosUnusedMetricTag) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.PolicyName != nil { + // Name is required + if obj.obj.Name == nil { + vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosUnusedMetricTag") + } - if len(*obj.obj.PolicyName) < 1 || len(*obj.obj.PolicyName) > 32 { + if obj.obj.Offset != nil { + + if *obj.obj.Offset > 0 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf( - "1 <= length of BgpSrtePolicyNameSubTlv.PolicyName <= 32 but Got %d", - len(*obj.obj.PolicyName))) + fmt.Sprintf("0 <= PatternFlowIpv4TosUnusedMetricTag.Offset <= 0 but Got %d", *obj.obj.Offset)) + } + + } + + if obj.obj.Length != nil { + + if *obj.obj.Length < 1 || *obj.obj.Length > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("1 <= PatternFlowIpv4TosUnusedMetricTag.Length <= 1 but Got %d", *obj.obj.Length)) } } } -func (obj *bgpSrtePolicyNameSubTlv) setDefault() { +func (obj *patternFlowIpv4TosUnusedMetricTag) setDefault() { + if obj.obj.Offset == nil { + obj.SetOffset(0) + } + if obj.obj.Length == nil { + obj.SetLength(1) + } } -// ***** BgpSrteExplicitNullLabelPolicySubTlv ***** -type bgpSrteExplicitNullLabelPolicySubTlv struct { +// ***** PatternFlowIpv4DscpPhbCounter ***** +type patternFlowIpv4DscpPhbCounter struct { validation - obj *otg.BgpSrteExplicitNullLabelPolicySubTlv - marshaller marshalBgpSrteExplicitNullLabelPolicySubTlv - unMarshaller unMarshalBgpSrteExplicitNullLabelPolicySubTlv + obj *otg.PatternFlowIpv4DscpPhbCounter + marshaller marshalPatternFlowIpv4DscpPhbCounter + unMarshaller unMarshalPatternFlowIpv4DscpPhbCounter } -func NewBgpSrteExplicitNullLabelPolicySubTlv() BgpSrteExplicitNullLabelPolicySubTlv { - obj := bgpSrteExplicitNullLabelPolicySubTlv{obj: &otg.BgpSrteExplicitNullLabelPolicySubTlv{}} +func NewPatternFlowIpv4DscpPhbCounter() PatternFlowIpv4DscpPhbCounter { + obj := patternFlowIpv4DscpPhbCounter{obj: &otg.PatternFlowIpv4DscpPhbCounter{}} obj.setDefault() return &obj } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) msg() *otg.BgpSrteExplicitNullLabelPolicySubTlv { +func (obj *patternFlowIpv4DscpPhbCounter) msg() *otg.PatternFlowIpv4DscpPhbCounter { return obj.obj } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) setMsg(msg *otg.BgpSrteExplicitNullLabelPolicySubTlv) BgpSrteExplicitNullLabelPolicySubTlv { +func (obj *patternFlowIpv4DscpPhbCounter) setMsg(msg *otg.PatternFlowIpv4DscpPhbCounter) PatternFlowIpv4DscpPhbCounter { proto.Merge(obj.obj, msg) return obj } -type marshalbgpSrteExplicitNullLabelPolicySubTlv struct { - obj *bgpSrteExplicitNullLabelPolicySubTlv +type marshalpatternFlowIpv4DscpPhbCounter struct { + obj *patternFlowIpv4DscpPhbCounter } -type marshalBgpSrteExplicitNullLabelPolicySubTlv interface { - // ToProto marshals BgpSrteExplicitNullLabelPolicySubTlv to protobuf object *otg.BgpSrteExplicitNullLabelPolicySubTlv - ToProto() (*otg.BgpSrteExplicitNullLabelPolicySubTlv, error) - // ToPbText marshals BgpSrteExplicitNullLabelPolicySubTlv to protobuf text +type marshalPatternFlowIpv4DscpPhbCounter interface { + // ToProto marshals PatternFlowIpv4DscpPhbCounter to protobuf object *otg.PatternFlowIpv4DscpPhbCounter + ToProto() (*otg.PatternFlowIpv4DscpPhbCounter, error) + // ToPbText marshals PatternFlowIpv4DscpPhbCounter to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpSrteExplicitNullLabelPolicySubTlv to YAML text + // ToYaml marshals PatternFlowIpv4DscpPhbCounter to YAML text ToYaml() (string, error) - // ToJson marshals BgpSrteExplicitNullLabelPolicySubTlv to JSON text + // ToJson marshals PatternFlowIpv4DscpPhbCounter to JSON text ToJson() (string, error) } -type unMarshalbgpSrteExplicitNullLabelPolicySubTlv struct { - obj *bgpSrteExplicitNullLabelPolicySubTlv +type unMarshalpatternFlowIpv4DscpPhbCounter struct { + obj *patternFlowIpv4DscpPhbCounter } -type unMarshalBgpSrteExplicitNullLabelPolicySubTlv interface { - // FromProto unmarshals BgpSrteExplicitNullLabelPolicySubTlv from protobuf object *otg.BgpSrteExplicitNullLabelPolicySubTlv - FromProto(msg *otg.BgpSrteExplicitNullLabelPolicySubTlv) (BgpSrteExplicitNullLabelPolicySubTlv, error) - // FromPbText unmarshals BgpSrteExplicitNullLabelPolicySubTlv from protobuf text +type unMarshalPatternFlowIpv4DscpPhbCounter interface { + // FromProto unmarshals PatternFlowIpv4DscpPhbCounter from protobuf object *otg.PatternFlowIpv4DscpPhbCounter + FromProto(msg *otg.PatternFlowIpv4DscpPhbCounter) (PatternFlowIpv4DscpPhbCounter, error) + // FromPbText unmarshals PatternFlowIpv4DscpPhbCounter from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpSrteExplicitNullLabelPolicySubTlv from YAML text + // FromYaml unmarshals PatternFlowIpv4DscpPhbCounter from YAML text FromYaml(value string) error - // FromJson unmarshals BgpSrteExplicitNullLabelPolicySubTlv from JSON text + // FromJson unmarshals PatternFlowIpv4DscpPhbCounter from JSON text FromJson(value string) error } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) Marshal() marshalBgpSrteExplicitNullLabelPolicySubTlv { +func (obj *patternFlowIpv4DscpPhbCounter) Marshal() marshalPatternFlowIpv4DscpPhbCounter { if obj.marshaller == nil { - obj.marshaller = &marshalbgpSrteExplicitNullLabelPolicySubTlv{obj: obj} + obj.marshaller = &marshalpatternFlowIpv4DscpPhbCounter{obj: obj} } return obj.marshaller } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) Unmarshal() unMarshalBgpSrteExplicitNullLabelPolicySubTlv { +func (obj *patternFlowIpv4DscpPhbCounter) Unmarshal() unMarshalPatternFlowIpv4DscpPhbCounter { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpSrteExplicitNullLabelPolicySubTlv{obj: obj} + obj.unMarshaller = &unMarshalpatternFlowIpv4DscpPhbCounter{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpSrteExplicitNullLabelPolicySubTlv) ToProto() (*otg.BgpSrteExplicitNullLabelPolicySubTlv, error) { +func (m *marshalpatternFlowIpv4DscpPhbCounter) ToProto() (*otg.PatternFlowIpv4DscpPhbCounter, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -328540,7 +341100,7 @@ func (m *marshalbgpSrteExplicitNullLabelPolicySubTlv) ToProto() (*otg.BgpSrteExp return m.obj.msg(), nil } -func (m *unMarshalbgpSrteExplicitNullLabelPolicySubTlv) FromProto(msg *otg.BgpSrteExplicitNullLabelPolicySubTlv) (BgpSrteExplicitNullLabelPolicySubTlv, error) { +func (m *unMarshalpatternFlowIpv4DscpPhbCounter) FromProto(msg *otg.PatternFlowIpv4DscpPhbCounter) (PatternFlowIpv4DscpPhbCounter, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -328549,7 +341109,7 @@ func (m *unMarshalbgpSrteExplicitNullLabelPolicySubTlv) FromProto(msg *otg.BgpSr return newObj, nil } -func (m *marshalbgpSrteExplicitNullLabelPolicySubTlv) ToPbText() (string, error) { +func (m *marshalpatternFlowIpv4DscpPhbCounter) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -328561,7 +341121,7 @@ func (m *marshalbgpSrteExplicitNullLabelPolicySubTlv) ToPbText() (string, error) return string(protoMarshal), nil } -func (m *unMarshalbgpSrteExplicitNullLabelPolicySubTlv) FromPbText(value string) error { +func (m *unMarshalpatternFlowIpv4DscpPhbCounter) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj @@ -328574,7 +341134,7 @@ func (m *unMarshalbgpSrteExplicitNullLabelPolicySubTlv) FromPbText(value string) return retObj } -func (m *marshalbgpSrteExplicitNullLabelPolicySubTlv) ToYaml() (string, error) { +func (m *marshalpatternFlowIpv4DscpPhbCounter) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -328595,7 +341155,7 @@ func (m *marshalbgpSrteExplicitNullLabelPolicySubTlv) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrteExplicitNullLabelPolicySubTlv) FromYaml(value string) error { +func (m *unMarshalpatternFlowIpv4DscpPhbCounter) FromYaml(value string) error { if value == "" { value = "{}" } @@ -328620,7 +341180,7 @@ func (m *unMarshalbgpSrteExplicitNullLabelPolicySubTlv) FromYaml(value string) e return nil } -func (m *marshalbgpSrteExplicitNullLabelPolicySubTlv) ToJson() (string, error) { +func (m *marshalpatternFlowIpv4DscpPhbCounter) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -328638,7 +341198,7 @@ func (m *marshalbgpSrteExplicitNullLabelPolicySubTlv) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrteExplicitNullLabelPolicySubTlv) FromJson(value string) error { +func (m *unMarshalpatternFlowIpv4DscpPhbCounter) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -328659,19 +341219,19 @@ func (m *unMarshalbgpSrteExplicitNullLabelPolicySubTlv) FromJson(value string) e return nil } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) validateToAndFrom() error { +func (obj *patternFlowIpv4DscpPhbCounter) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) validate() error { +func (obj *patternFlowIpv4DscpPhbCounter) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) String() string { +func (obj *patternFlowIpv4DscpPhbCounter) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -328679,12 +341239,12 @@ func (obj *bgpSrteExplicitNullLabelPolicySubTlv) String() string { return str } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) Clone() (BgpSrteExplicitNullLabelPolicySubTlv, error) { +func (obj *patternFlowIpv4DscpPhbCounter) Clone() (PatternFlowIpv4DscpPhbCounter, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpSrteExplicitNullLabelPolicySubTlv() + newObj := NewPatternFlowIpv4DscpPhbCounter() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -328696,161 +341256,233 @@ func (obj *bgpSrteExplicitNullLabelPolicySubTlv) Clone() (BgpSrteExplicitNullLab return newObj, nil } -// BgpSrteExplicitNullLabelPolicySubTlv is configuration for BGP explicit null label policy sub TLV settings. -type BgpSrteExplicitNullLabelPolicySubTlv interface { - Validation - // msg marshals BgpSrteExplicitNullLabelPolicySubTlv to protobuf object *otg.BgpSrteExplicitNullLabelPolicySubTlv - // and doesn't set defaults - msg() *otg.BgpSrteExplicitNullLabelPolicySubTlv - // setMsg unmarshals BgpSrteExplicitNullLabelPolicySubTlv from protobuf object *otg.BgpSrteExplicitNullLabelPolicySubTlv - // and doesn't set defaults - setMsg(*otg.BgpSrteExplicitNullLabelPolicySubTlv) BgpSrteExplicitNullLabelPolicySubTlv - // provides marshal interface - Marshal() marshalBgpSrteExplicitNullLabelPolicySubTlv - // provides unmarshal interface - Unmarshal() unMarshalBgpSrteExplicitNullLabelPolicySubTlv - // validate validates BgpSrteExplicitNullLabelPolicySubTlv - validate() error - // A stringer function - String() string - // Clones the object - Clone() (BgpSrteExplicitNullLabelPolicySubTlv, error) - validateToAndFrom() error - validateObj(vObj *validation, set_default bool) - setDefault() - // ExplicitNullLabelPolicy returns BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum, set in BgpSrteExplicitNullLabelPolicySubTlv - ExplicitNullLabelPolicy() BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum - // SetExplicitNullLabelPolicy assigns BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum provided by user to BgpSrteExplicitNullLabelPolicySubTlv - SetExplicitNullLabelPolicy(value BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum) BgpSrteExplicitNullLabelPolicySubTlv - // HasExplicitNullLabelPolicy checks if ExplicitNullLabelPolicy has been set in BgpSrteExplicitNullLabelPolicySubTlv - HasExplicitNullLabelPolicy() bool +// PatternFlowIpv4DscpPhbCounter is integer counter pattern +type PatternFlowIpv4DscpPhbCounter interface { + Validation + // msg marshals PatternFlowIpv4DscpPhbCounter to protobuf object *otg.PatternFlowIpv4DscpPhbCounter + // and doesn't set defaults + msg() *otg.PatternFlowIpv4DscpPhbCounter + // setMsg unmarshals PatternFlowIpv4DscpPhbCounter from protobuf object *otg.PatternFlowIpv4DscpPhbCounter + // and doesn't set defaults + setMsg(*otg.PatternFlowIpv4DscpPhbCounter) PatternFlowIpv4DscpPhbCounter + // provides marshal interface + Marshal() marshalPatternFlowIpv4DscpPhbCounter + // provides unmarshal interface + Unmarshal() unMarshalPatternFlowIpv4DscpPhbCounter + // validate validates PatternFlowIpv4DscpPhbCounter + validate() error + // A stringer function + String() string + // Clones the object + Clone() (PatternFlowIpv4DscpPhbCounter, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Start returns uint32, set in PatternFlowIpv4DscpPhbCounter. + Start() uint32 + // SetStart assigns uint32 provided by user to PatternFlowIpv4DscpPhbCounter + SetStart(value uint32) PatternFlowIpv4DscpPhbCounter + // HasStart checks if Start has been set in PatternFlowIpv4DscpPhbCounter + HasStart() bool + // Step returns uint32, set in PatternFlowIpv4DscpPhbCounter. + Step() uint32 + // SetStep assigns uint32 provided by user to PatternFlowIpv4DscpPhbCounter + SetStep(value uint32) PatternFlowIpv4DscpPhbCounter + // HasStep checks if Step has been set in PatternFlowIpv4DscpPhbCounter + HasStep() bool + // Count returns uint32, set in PatternFlowIpv4DscpPhbCounter. + Count() uint32 + // SetCount assigns uint32 provided by user to PatternFlowIpv4DscpPhbCounter + SetCount(value uint32) PatternFlowIpv4DscpPhbCounter + // HasCount checks if Count has been set in PatternFlowIpv4DscpPhbCounter + HasCount() bool +} + +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4DscpPhbCounter) Start() uint32 { + + return *obj.obj.Start + +} + +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4DscpPhbCounter) HasStart() bool { + return obj.obj.Start != nil +} + +// description is TBD +// SetStart sets the uint32 value in the PatternFlowIpv4DscpPhbCounter object +func (obj *patternFlowIpv4DscpPhbCounter) SetStart(value uint32) PatternFlowIpv4DscpPhbCounter { + + obj.obj.Start = &value + return obj +} + +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4DscpPhbCounter) Step() uint32 { + + return *obj.obj.Step + +} + +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4DscpPhbCounter) HasStep() bool { + return obj.obj.Step != nil } -type BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum string +// description is TBD +// SetStep sets the uint32 value in the PatternFlowIpv4DscpPhbCounter object +func (obj *patternFlowIpv4DscpPhbCounter) SetStep(value uint32) PatternFlowIpv4DscpPhbCounter { -// Enum of ExplicitNullLabelPolicy on BgpSrteExplicitNullLabelPolicySubTlv -var BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicy = struct { - RESERVED_ENLP BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum - PUSH_IPV4_ENLP BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum - PUSH_IPV6_ENLP BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum - PUSH_IPV4_IPV6_ENLP BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum - DO_NOT_PUSH_ENLP BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum -}{ - RESERVED_ENLP: BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum("reserved_enlp"), - PUSH_IPV4_ENLP: BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum("push_ipv4_enlp"), - PUSH_IPV6_ENLP: BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum("push_ipv6_enlp"), - PUSH_IPV4_IPV6_ENLP: BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum("push_ipv4_ipv6_enlp"), - DO_NOT_PUSH_ENLP: BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum("do_not_push_enlp"), + obj.obj.Step = &value + return obj } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) ExplicitNullLabelPolicy() BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum { - return BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum(obj.obj.ExplicitNullLabelPolicy.Enum().String()) +// description is TBD +// Count returns a uint32 +func (obj *patternFlowIpv4DscpPhbCounter) Count() uint32 { + + return *obj.obj.Count + } -// The value of the explicit null label policy -// ExplicitNullLabelPolicy returns a string -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) HasExplicitNullLabelPolicy() bool { - return obj.obj.ExplicitNullLabelPolicy != nil +// description is TBD +// Count returns a uint32 +func (obj *patternFlowIpv4DscpPhbCounter) HasCount() bool { + return obj.obj.Count != nil } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) SetExplicitNullLabelPolicy(value BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum) BgpSrteExplicitNullLabelPolicySubTlv { - intValue, ok := otg.BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum_value[string(value)] - if !ok { - obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( - "%s is not a valid choice on BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicyEnum", string(value))) - return obj - } - enumValue := otg.BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum(intValue) - obj.obj.ExplicitNullLabelPolicy = &enumValue +// description is TBD +// SetCount sets the uint32 value in the PatternFlowIpv4DscpPhbCounter object +func (obj *patternFlowIpv4DscpPhbCounter) SetCount(value uint32) PatternFlowIpv4DscpPhbCounter { + obj.obj.Count = &value return obj } -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowIpv4DscpPhbCounter) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } -} + if obj.obj.Start != nil { -func (obj *bgpSrteExplicitNullLabelPolicySubTlv) setDefault() { - if obj.obj.ExplicitNullLabelPolicy == nil { - obj.SetExplicitNullLabelPolicy(BgpSrteExplicitNullLabelPolicySubTlvExplicitNullLabelPolicy.DO_NOT_PUSH_ENLP) + if *obj.obj.Start > 63 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4DscpPhbCounter.Start <= 63 but Got %d", *obj.obj.Start)) + } + + } + + if obj.obj.Step != nil { + + if *obj.obj.Step > 63 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4DscpPhbCounter.Step <= 63 but Got %d", *obj.obj.Step)) + } + + } + + if obj.obj.Count != nil { + + if *obj.obj.Count > 63 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4DscpPhbCounter.Count <= 63 but Got %d", *obj.obj.Count)) + } } } -// ***** BgpSrteSegmentList ***** -type bgpSrteSegmentList struct { +func (obj *patternFlowIpv4DscpPhbCounter) setDefault() { + if obj.obj.Start == nil { + obj.SetStart(0) + } + if obj.obj.Step == nil { + obj.SetStep(1) + } + if obj.obj.Count == nil { + obj.SetCount(1) + } + +} + +// ***** PatternFlowIpv4DscpPhbMetricTag ***** +type patternFlowIpv4DscpPhbMetricTag struct { validation - obj *otg.BgpSrteSegmentList - marshaller marshalBgpSrteSegmentList - unMarshaller unMarshalBgpSrteSegmentList - segmentsHolder BgpSrteSegmentListBgpSrteSegmentIter + obj *otg.PatternFlowIpv4DscpPhbMetricTag + marshaller marshalPatternFlowIpv4DscpPhbMetricTag + unMarshaller unMarshalPatternFlowIpv4DscpPhbMetricTag } -func NewBgpSrteSegmentList() BgpSrteSegmentList { - obj := bgpSrteSegmentList{obj: &otg.BgpSrteSegmentList{}} +func NewPatternFlowIpv4DscpPhbMetricTag() PatternFlowIpv4DscpPhbMetricTag { + obj := patternFlowIpv4DscpPhbMetricTag{obj: &otg.PatternFlowIpv4DscpPhbMetricTag{}} obj.setDefault() return &obj } -func (obj *bgpSrteSegmentList) msg() *otg.BgpSrteSegmentList { +func (obj *patternFlowIpv4DscpPhbMetricTag) msg() *otg.PatternFlowIpv4DscpPhbMetricTag { return obj.obj } -func (obj *bgpSrteSegmentList) setMsg(msg *otg.BgpSrteSegmentList) BgpSrteSegmentList { - obj.setNil() +func (obj *patternFlowIpv4DscpPhbMetricTag) setMsg(msg *otg.PatternFlowIpv4DscpPhbMetricTag) PatternFlowIpv4DscpPhbMetricTag { + proto.Merge(obj.obj, msg) return obj } -type marshalbgpSrteSegmentList struct { - obj *bgpSrteSegmentList +type marshalpatternFlowIpv4DscpPhbMetricTag struct { + obj *patternFlowIpv4DscpPhbMetricTag } -type marshalBgpSrteSegmentList interface { - // ToProto marshals BgpSrteSegmentList to protobuf object *otg.BgpSrteSegmentList - ToProto() (*otg.BgpSrteSegmentList, error) - // ToPbText marshals BgpSrteSegmentList to protobuf text +type marshalPatternFlowIpv4DscpPhbMetricTag interface { + // ToProto marshals PatternFlowIpv4DscpPhbMetricTag to protobuf object *otg.PatternFlowIpv4DscpPhbMetricTag + ToProto() (*otg.PatternFlowIpv4DscpPhbMetricTag, error) + // ToPbText marshals PatternFlowIpv4DscpPhbMetricTag to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpSrteSegmentList to YAML text + // ToYaml marshals PatternFlowIpv4DscpPhbMetricTag to YAML text ToYaml() (string, error) - // ToJson marshals BgpSrteSegmentList to JSON text + // ToJson marshals PatternFlowIpv4DscpPhbMetricTag to JSON text ToJson() (string, error) } -type unMarshalbgpSrteSegmentList struct { - obj *bgpSrteSegmentList +type unMarshalpatternFlowIpv4DscpPhbMetricTag struct { + obj *patternFlowIpv4DscpPhbMetricTag } -type unMarshalBgpSrteSegmentList interface { - // FromProto unmarshals BgpSrteSegmentList from protobuf object *otg.BgpSrteSegmentList - FromProto(msg *otg.BgpSrteSegmentList) (BgpSrteSegmentList, error) - // FromPbText unmarshals BgpSrteSegmentList from protobuf text +type unMarshalPatternFlowIpv4DscpPhbMetricTag interface { + // FromProto unmarshals PatternFlowIpv4DscpPhbMetricTag from protobuf object *otg.PatternFlowIpv4DscpPhbMetricTag + FromProto(msg *otg.PatternFlowIpv4DscpPhbMetricTag) (PatternFlowIpv4DscpPhbMetricTag, error) + // FromPbText unmarshals PatternFlowIpv4DscpPhbMetricTag from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpSrteSegmentList from YAML text + // FromYaml unmarshals PatternFlowIpv4DscpPhbMetricTag from YAML text FromYaml(value string) error - // FromJson unmarshals BgpSrteSegmentList from JSON text + // FromJson unmarshals PatternFlowIpv4DscpPhbMetricTag from JSON text FromJson(value string) error } -func (obj *bgpSrteSegmentList) Marshal() marshalBgpSrteSegmentList { +func (obj *patternFlowIpv4DscpPhbMetricTag) Marshal() marshalPatternFlowIpv4DscpPhbMetricTag { if obj.marshaller == nil { - obj.marshaller = &marshalbgpSrteSegmentList{obj: obj} + obj.marshaller = &marshalpatternFlowIpv4DscpPhbMetricTag{obj: obj} } return obj.marshaller } -func (obj *bgpSrteSegmentList) Unmarshal() unMarshalBgpSrteSegmentList { +func (obj *patternFlowIpv4DscpPhbMetricTag) Unmarshal() unMarshalPatternFlowIpv4DscpPhbMetricTag { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpSrteSegmentList{obj: obj} + obj.unMarshaller = &unMarshalpatternFlowIpv4DscpPhbMetricTag{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpSrteSegmentList) ToProto() (*otg.BgpSrteSegmentList, error) { +func (m *marshalpatternFlowIpv4DscpPhbMetricTag) ToProto() (*otg.PatternFlowIpv4DscpPhbMetricTag, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -328858,7 +341490,7 @@ func (m *marshalbgpSrteSegmentList) ToProto() (*otg.BgpSrteSegmentList, error) { return m.obj.msg(), nil } -func (m *unMarshalbgpSrteSegmentList) FromProto(msg *otg.BgpSrteSegmentList) (BgpSrteSegmentList, error) { +func (m *unMarshalpatternFlowIpv4DscpPhbMetricTag) FromProto(msg *otg.PatternFlowIpv4DscpPhbMetricTag) (PatternFlowIpv4DscpPhbMetricTag, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -328867,7 +341499,7 @@ func (m *unMarshalbgpSrteSegmentList) FromProto(msg *otg.BgpSrteSegmentList) (Bg return newObj, nil } -func (m *marshalbgpSrteSegmentList) ToPbText() (string, error) { +func (m *marshalpatternFlowIpv4DscpPhbMetricTag) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -328879,12 +341511,12 @@ func (m *marshalbgpSrteSegmentList) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalbgpSrteSegmentList) FromPbText(value string) error { +func (m *unMarshalpatternFlowIpv4DscpPhbMetricTag) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - m.obj.setNil() + vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -328892,7 +341524,7 @@ func (m *unMarshalbgpSrteSegmentList) FromPbText(value string) error { return retObj } -func (m *marshalbgpSrteSegmentList) ToYaml() (string, error) { +func (m *marshalpatternFlowIpv4DscpPhbMetricTag) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -328913,7 +341545,7 @@ func (m *marshalbgpSrteSegmentList) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrteSegmentList) FromYaml(value string) error { +func (m *unMarshalpatternFlowIpv4DscpPhbMetricTag) FromYaml(value string) error { if value == "" { value = "{}" } @@ -328930,7 +341562,7 @@ func (m *unMarshalbgpSrteSegmentList) FromYaml(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - m.obj.setNil() + vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -328938,7 +341570,7 @@ func (m *unMarshalbgpSrteSegmentList) FromYaml(value string) error { return nil } -func (m *marshalbgpSrteSegmentList) ToJson() (string, error) { +func (m *marshalpatternFlowIpv4DscpPhbMetricTag) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -328956,7 +341588,7 @@ func (m *marshalbgpSrteSegmentList) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrteSegmentList) FromJson(value string) error { +func (m *unMarshalpatternFlowIpv4DscpPhbMetricTag) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -328969,7 +341601,7 @@ func (m *unMarshalbgpSrteSegmentList) FromJson(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - m.obj.setNil() + err := m.obj.validateToAndFrom() if err != nil { return err @@ -328977,19 +341609,19 @@ func (m *unMarshalbgpSrteSegmentList) FromJson(value string) error { return nil } -func (obj *bgpSrteSegmentList) validateToAndFrom() error { +func (obj *patternFlowIpv4DscpPhbMetricTag) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpSrteSegmentList) validate() error { +func (obj *patternFlowIpv4DscpPhbMetricTag) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpSrteSegmentList) String() string { +func (obj *patternFlowIpv4DscpPhbMetricTag) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -328997,12 +341629,12 @@ func (obj *bgpSrteSegmentList) String() string { return str } -func (obj *bgpSrteSegmentList) Clone() (BgpSrteSegmentList, error) { +func (obj *patternFlowIpv4DscpPhbMetricTag) Clone() (PatternFlowIpv4DscpPhbMetricTag, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpSrteSegmentList() + newObj := NewPatternFlowIpv4DscpPhbMetricTag() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -329014,317 +341646,217 @@ func (obj *bgpSrteSegmentList) Clone() (BgpSrteSegmentList, error) { return newObj, nil } -func (obj *bgpSrteSegmentList) setNil() { - obj.segmentsHolder = nil - obj.validationErrors = nil - obj.warnings = nil - obj.constraints = make(map[string]map[string]Constraints) -} - -// BgpSrteSegmentList is optional configuration for BGP SR TE Policy segment list. The Segment List sub-TLV encodes a single explicit path towards the Endpoint. -type BgpSrteSegmentList interface { +// PatternFlowIpv4DscpPhbMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. +type PatternFlowIpv4DscpPhbMetricTag interface { Validation - // msg marshals BgpSrteSegmentList to protobuf object *otg.BgpSrteSegmentList + // msg marshals PatternFlowIpv4DscpPhbMetricTag to protobuf object *otg.PatternFlowIpv4DscpPhbMetricTag // and doesn't set defaults - msg() *otg.BgpSrteSegmentList - // setMsg unmarshals BgpSrteSegmentList from protobuf object *otg.BgpSrteSegmentList + msg() *otg.PatternFlowIpv4DscpPhbMetricTag + // setMsg unmarshals PatternFlowIpv4DscpPhbMetricTag from protobuf object *otg.PatternFlowIpv4DscpPhbMetricTag // and doesn't set defaults - setMsg(*otg.BgpSrteSegmentList) BgpSrteSegmentList + setMsg(*otg.PatternFlowIpv4DscpPhbMetricTag) PatternFlowIpv4DscpPhbMetricTag // provides marshal interface - Marshal() marshalBgpSrteSegmentList + Marshal() marshalPatternFlowIpv4DscpPhbMetricTag // provides unmarshal interface - Unmarshal() unMarshalBgpSrteSegmentList - // validate validates BgpSrteSegmentList + Unmarshal() unMarshalPatternFlowIpv4DscpPhbMetricTag + // validate validates PatternFlowIpv4DscpPhbMetricTag validate() error // A stringer function String() string // Clones the object - Clone() (BgpSrteSegmentList, error) + Clone() (PatternFlowIpv4DscpPhbMetricTag, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Weight returns uint32, set in BgpSrteSegmentList. - Weight() uint32 - // SetWeight assigns uint32 provided by user to BgpSrteSegmentList - SetWeight(value uint32) BgpSrteSegmentList - // HasWeight checks if Weight has been set in BgpSrteSegmentList - HasWeight() bool - // Segments returns BgpSrteSegmentListBgpSrteSegmentIterIter, set in BgpSrteSegmentList - Segments() BgpSrteSegmentListBgpSrteSegmentIter - // Name returns string, set in BgpSrteSegmentList. + // Name returns string, set in PatternFlowIpv4DscpPhbMetricTag. Name() string - // SetName assigns string provided by user to BgpSrteSegmentList - SetName(value string) BgpSrteSegmentList - // Active returns bool, set in BgpSrteSegmentList. - Active() bool - // SetActive assigns bool provided by user to BgpSrteSegmentList - SetActive(value bool) BgpSrteSegmentList - // HasActive checks if Active has been set in BgpSrteSegmentList - HasActive() bool - setNil() -} - -// The Weight associated with a given path and the sub-TLV is optional. -// Weight returns a uint32 -func (obj *bgpSrteSegmentList) Weight() uint32 { - - return *obj.obj.Weight - -} - -// The Weight associated with a given path and the sub-TLV is optional. -// Weight returns a uint32 -func (obj *bgpSrteSegmentList) HasWeight() bool { - return obj.obj.Weight != nil -} - -// The Weight associated with a given path and the sub-TLV is optional. -// SetWeight sets the uint32 value in the BgpSrteSegmentList object -func (obj *bgpSrteSegmentList) SetWeight(value uint32) BgpSrteSegmentList { - - obj.obj.Weight = &value - return obj + // SetName assigns string provided by user to PatternFlowIpv4DscpPhbMetricTag + SetName(value string) PatternFlowIpv4DscpPhbMetricTag + // Offset returns uint32, set in PatternFlowIpv4DscpPhbMetricTag. + Offset() uint32 + // SetOffset assigns uint32 provided by user to PatternFlowIpv4DscpPhbMetricTag + SetOffset(value uint32) PatternFlowIpv4DscpPhbMetricTag + // HasOffset checks if Offset has been set in PatternFlowIpv4DscpPhbMetricTag + HasOffset() bool + // Length returns uint32, set in PatternFlowIpv4DscpPhbMetricTag. + Length() uint32 + // SetLength assigns uint32 provided by user to PatternFlowIpv4DscpPhbMetricTag + SetLength(value uint32) PatternFlowIpv4DscpPhbMetricTag + // HasLength checks if Length has been set in PatternFlowIpv4DscpPhbMetricTag + HasLength() bool } -// description is TBD -// Segments returns a []BgpSrteSegment -func (obj *bgpSrteSegmentList) Segments() BgpSrteSegmentListBgpSrteSegmentIter { - if len(obj.obj.Segments) == 0 { - obj.obj.Segments = []*otg.BgpSrteSegment{} - } - if obj.segmentsHolder == nil { - obj.segmentsHolder = newBgpSrteSegmentListBgpSrteSegmentIter(&obj.obj.Segments).setMsg(obj) - } - return obj.segmentsHolder -} +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field +// Name returns a string +func (obj *patternFlowIpv4DscpPhbMetricTag) Name() string { -type bgpSrteSegmentListBgpSrteSegmentIter struct { - obj *bgpSrteSegmentList - bgpSrteSegmentSlice []BgpSrteSegment - fieldPtr *[]*otg.BgpSrteSegment -} + return *obj.obj.Name -func newBgpSrteSegmentListBgpSrteSegmentIter(ptr *[]*otg.BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter { - return &bgpSrteSegmentListBgpSrteSegmentIter{fieldPtr: ptr} } -type BgpSrteSegmentListBgpSrteSegmentIter interface { - setMsg(*bgpSrteSegmentList) BgpSrteSegmentListBgpSrteSegmentIter - Items() []BgpSrteSegment - Add() BgpSrteSegment - Append(items ...BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter - Set(index int, newObj BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter - Clear() BgpSrteSegmentListBgpSrteSegmentIter - clearHolderSlice() BgpSrteSegmentListBgpSrteSegmentIter - appendHolderSlice(item BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter -} +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field +// SetName sets the string value in the PatternFlowIpv4DscpPhbMetricTag object +func (obj *patternFlowIpv4DscpPhbMetricTag) SetName(value string) PatternFlowIpv4DscpPhbMetricTag { -func (obj *bgpSrteSegmentListBgpSrteSegmentIter) setMsg(msg *bgpSrteSegmentList) BgpSrteSegmentListBgpSrteSegmentIter { - obj.clearHolderSlice() - for _, val := range *obj.fieldPtr { - obj.appendHolderSlice(&bgpSrteSegment{obj: val}) - } - obj.obj = msg + obj.obj.Name = &value return obj } -func (obj *bgpSrteSegmentListBgpSrteSegmentIter) Items() []BgpSrteSegment { - return obj.bgpSrteSegmentSlice -} - -func (obj *bgpSrteSegmentListBgpSrteSegmentIter) Add() BgpSrteSegment { - newObj := &otg.BgpSrteSegment{} - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - newLibObj := &bgpSrteSegment{obj: newObj} - newLibObj.setDefault() - obj.bgpSrteSegmentSlice = append(obj.bgpSrteSegmentSlice, newLibObj) - return newLibObj -} +// Offset in bits relative to start of corresponding header field +// Offset returns a uint32 +func (obj *patternFlowIpv4DscpPhbMetricTag) Offset() uint32 { -func (obj *bgpSrteSegmentListBgpSrteSegmentIter) Append(items ...BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter { - for _, item := range items { - newObj := item.msg() - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - obj.bgpSrteSegmentSlice = append(obj.bgpSrteSegmentSlice, item) - } - return obj -} + return *obj.obj.Offset -func (obj *bgpSrteSegmentListBgpSrteSegmentIter) Set(index int, newObj BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter { - (*obj.fieldPtr)[index] = newObj.msg() - obj.bgpSrteSegmentSlice[index] = newObj - return obj -} -func (obj *bgpSrteSegmentListBgpSrteSegmentIter) Clear() BgpSrteSegmentListBgpSrteSegmentIter { - if len(*obj.fieldPtr) > 0 { - *obj.fieldPtr = []*otg.BgpSrteSegment{} - obj.bgpSrteSegmentSlice = []BgpSrteSegment{} - } - return obj -} -func (obj *bgpSrteSegmentListBgpSrteSegmentIter) clearHolderSlice() BgpSrteSegmentListBgpSrteSegmentIter { - if len(obj.bgpSrteSegmentSlice) > 0 { - obj.bgpSrteSegmentSlice = []BgpSrteSegment{} - } - return obj -} -func (obj *bgpSrteSegmentListBgpSrteSegmentIter) appendHolderSlice(item BgpSrteSegment) BgpSrteSegmentListBgpSrteSegmentIter { - obj.bgpSrteSegmentSlice = append(obj.bgpSrteSegmentSlice, item) - return obj } -// Globally unique name of an object. It also serves as the primary key for arrays of objects. -// Name returns a string -func (obj *bgpSrteSegmentList) Name() string { - - return *obj.obj.Name - +// Offset in bits relative to start of corresponding header field +// Offset returns a uint32 +func (obj *patternFlowIpv4DscpPhbMetricTag) HasOffset() bool { + return obj.obj.Offset != nil } -// Globally unique name of an object. It also serves as the primary key for arrays of objects. -// SetName sets the string value in the BgpSrteSegmentList object -func (obj *bgpSrteSegmentList) SetName(value string) BgpSrteSegmentList { +// Offset in bits relative to start of corresponding header field +// SetOffset sets the uint32 value in the PatternFlowIpv4DscpPhbMetricTag object +func (obj *patternFlowIpv4DscpPhbMetricTag) SetOffset(value uint32) PatternFlowIpv4DscpPhbMetricTag { - obj.obj.Name = &value + obj.obj.Offset = &value return obj } -// If enabled means that this part of the configuration including any active 'children' nodes will be advertised to peer. If disabled, this means that though config is present, it is not taking any part of the test but can be activated at run-time to advertise just this part of the configuration to the peer. -// Active returns a bool -func (obj *bgpSrteSegmentList) Active() bool { +// Number of bits to track for metrics starting from configured offset of corresponding header field +// Length returns a uint32 +func (obj *patternFlowIpv4DscpPhbMetricTag) Length() uint32 { - return *obj.obj.Active + return *obj.obj.Length } -// If enabled means that this part of the configuration including any active 'children' nodes will be advertised to peer. If disabled, this means that though config is present, it is not taking any part of the test but can be activated at run-time to advertise just this part of the configuration to the peer. -// Active returns a bool -func (obj *bgpSrteSegmentList) HasActive() bool { - return obj.obj.Active != nil +// Number of bits to track for metrics starting from configured offset of corresponding header field +// Length returns a uint32 +func (obj *patternFlowIpv4DscpPhbMetricTag) HasLength() bool { + return obj.obj.Length != nil } -// If enabled means that this part of the configuration including any active 'children' nodes will be advertised to peer. If disabled, this means that though config is present, it is not taking any part of the test but can be activated at run-time to advertise just this part of the configuration to the peer. -// SetActive sets the bool value in the BgpSrteSegmentList object -func (obj *bgpSrteSegmentList) SetActive(value bool) BgpSrteSegmentList { +// Number of bits to track for metrics starting from configured offset of corresponding header field +// SetLength sets the uint32 value in the PatternFlowIpv4DscpPhbMetricTag object +func (obj *patternFlowIpv4DscpPhbMetricTag) SetLength(value uint32) PatternFlowIpv4DscpPhbMetricTag { - obj.obj.Active = &value + obj.obj.Length = &value return obj } -func (obj *bgpSrteSegmentList) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowIpv4DscpPhbMetricTag) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if len(obj.obj.Segments) != 0 { + // Name is required + if obj.obj.Name == nil { + vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4DscpPhbMetricTag") + } - if set_default { - obj.Segments().clearHolderSlice() - for _, item := range obj.obj.Segments { - obj.Segments().appendHolderSlice(&bgpSrteSegment{obj: item}) - } - } - for _, item := range obj.Segments().Items() { - item.validateObj(vObj, set_default) + if obj.obj.Offset != nil { + + if *obj.obj.Offset > 5 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4DscpPhbMetricTag.Offset <= 5 but Got %d", *obj.obj.Offset)) } } - // Name is required - if obj.obj.Name == nil { - vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface BgpSrteSegmentList") + if obj.obj.Length != nil { + + if *obj.obj.Length < 1 || *obj.obj.Length > 6 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("1 <= PatternFlowIpv4DscpPhbMetricTag.Length <= 6 but Got %d", *obj.obj.Length)) + } + } + } -func (obj *bgpSrteSegmentList) setDefault() { - if obj.obj.Weight == nil { - obj.SetWeight(0) +func (obj *patternFlowIpv4DscpPhbMetricTag) setDefault() { + if obj.obj.Offset == nil { + obj.SetOffset(0) } - if obj.obj.Active == nil { - obj.SetActive(true) + if obj.obj.Length == nil { + obj.SetLength(6) } } -// ***** BgpV6EviVxlan ***** -type bgpV6EviVxlan struct { +// ***** PatternFlowIpv4DscpEcnCounter ***** +type patternFlowIpv4DscpEcnCounter struct { validation - obj *otg.BgpV6EviVxlan - marshaller marshalBgpV6EviVxlan - unMarshaller unMarshalBgpV6EviVxlan - broadcastDomainsHolder BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter - routeDistinguisherHolder BgpRouteDistinguisher - routeTargetExportHolder BgpV6EviVxlanBgpRouteTargetIter - routeTargetImportHolder BgpV6EviVxlanBgpRouteTargetIter - l3RouteTargetExportHolder BgpV6EviVxlanBgpRouteTargetIter - l3RouteTargetImportHolder BgpV6EviVxlanBgpRouteTargetIter - advancedHolder BgpRouteAdvanced - communitiesHolder BgpV6EviVxlanBgpCommunityIter - extCommunitiesHolder BgpV6EviVxlanBgpExtCommunityIter - asPathHolder BgpAsPath + obj *otg.PatternFlowIpv4DscpEcnCounter + marshaller marshalPatternFlowIpv4DscpEcnCounter + unMarshaller unMarshalPatternFlowIpv4DscpEcnCounter } -func NewBgpV6EviVxlan() BgpV6EviVxlan { - obj := bgpV6EviVxlan{obj: &otg.BgpV6EviVxlan{}} +func NewPatternFlowIpv4DscpEcnCounter() PatternFlowIpv4DscpEcnCounter { + obj := patternFlowIpv4DscpEcnCounter{obj: &otg.PatternFlowIpv4DscpEcnCounter{}} obj.setDefault() return &obj } -func (obj *bgpV6EviVxlan) msg() *otg.BgpV6EviVxlan { +func (obj *patternFlowIpv4DscpEcnCounter) msg() *otg.PatternFlowIpv4DscpEcnCounter { return obj.obj } -func (obj *bgpV6EviVxlan) setMsg(msg *otg.BgpV6EviVxlan) BgpV6EviVxlan { - obj.setNil() +func (obj *patternFlowIpv4DscpEcnCounter) setMsg(msg *otg.PatternFlowIpv4DscpEcnCounter) PatternFlowIpv4DscpEcnCounter { + proto.Merge(obj.obj, msg) return obj } -type marshalbgpV6EviVxlan struct { - obj *bgpV6EviVxlan +type marshalpatternFlowIpv4DscpEcnCounter struct { + obj *patternFlowIpv4DscpEcnCounter } -type marshalBgpV6EviVxlan interface { - // ToProto marshals BgpV6EviVxlan to protobuf object *otg.BgpV6EviVxlan - ToProto() (*otg.BgpV6EviVxlan, error) - // ToPbText marshals BgpV6EviVxlan to protobuf text +type marshalPatternFlowIpv4DscpEcnCounter interface { + // ToProto marshals PatternFlowIpv4DscpEcnCounter to protobuf object *otg.PatternFlowIpv4DscpEcnCounter + ToProto() (*otg.PatternFlowIpv4DscpEcnCounter, error) + // ToPbText marshals PatternFlowIpv4DscpEcnCounter to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpV6EviVxlan to YAML text + // ToYaml marshals PatternFlowIpv4DscpEcnCounter to YAML text ToYaml() (string, error) - // ToJson marshals BgpV6EviVxlan to JSON text + // ToJson marshals PatternFlowIpv4DscpEcnCounter to JSON text ToJson() (string, error) } -type unMarshalbgpV6EviVxlan struct { - obj *bgpV6EviVxlan +type unMarshalpatternFlowIpv4DscpEcnCounter struct { + obj *patternFlowIpv4DscpEcnCounter } -type unMarshalBgpV6EviVxlan interface { - // FromProto unmarshals BgpV6EviVxlan from protobuf object *otg.BgpV6EviVxlan - FromProto(msg *otg.BgpV6EviVxlan) (BgpV6EviVxlan, error) - // FromPbText unmarshals BgpV6EviVxlan from protobuf text +type unMarshalPatternFlowIpv4DscpEcnCounter interface { + // FromProto unmarshals PatternFlowIpv4DscpEcnCounter from protobuf object *otg.PatternFlowIpv4DscpEcnCounter + FromProto(msg *otg.PatternFlowIpv4DscpEcnCounter) (PatternFlowIpv4DscpEcnCounter, error) + // FromPbText unmarshals PatternFlowIpv4DscpEcnCounter from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpV6EviVxlan from YAML text + // FromYaml unmarshals PatternFlowIpv4DscpEcnCounter from YAML text FromYaml(value string) error - // FromJson unmarshals BgpV6EviVxlan from JSON text + // FromJson unmarshals PatternFlowIpv4DscpEcnCounter from JSON text FromJson(value string) error } -func (obj *bgpV6EviVxlan) Marshal() marshalBgpV6EviVxlan { +func (obj *patternFlowIpv4DscpEcnCounter) Marshal() marshalPatternFlowIpv4DscpEcnCounter { if obj.marshaller == nil { - obj.marshaller = &marshalbgpV6EviVxlan{obj: obj} + obj.marshaller = &marshalpatternFlowIpv4DscpEcnCounter{obj: obj} } return obj.marshaller } -func (obj *bgpV6EviVxlan) Unmarshal() unMarshalBgpV6EviVxlan { +func (obj *patternFlowIpv4DscpEcnCounter) Unmarshal() unMarshalPatternFlowIpv4DscpEcnCounter { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpV6EviVxlan{obj: obj} + obj.unMarshaller = &unMarshalpatternFlowIpv4DscpEcnCounter{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpV6EviVxlan) ToProto() (*otg.BgpV6EviVxlan, error) { +func (m *marshalpatternFlowIpv4DscpEcnCounter) ToProto() (*otg.PatternFlowIpv4DscpEcnCounter, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -329332,7 +341864,7 @@ func (m *marshalbgpV6EviVxlan) ToProto() (*otg.BgpV6EviVxlan, error) { return m.obj.msg(), nil } -func (m *unMarshalbgpV6EviVxlan) FromProto(msg *otg.BgpV6EviVxlan) (BgpV6EviVxlan, error) { +func (m *unMarshalpatternFlowIpv4DscpEcnCounter) FromProto(msg *otg.PatternFlowIpv4DscpEcnCounter) (PatternFlowIpv4DscpEcnCounter, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -329341,7 +341873,7 @@ func (m *unMarshalbgpV6EviVxlan) FromProto(msg *otg.BgpV6EviVxlan) (BgpV6EviVxla return newObj, nil } -func (m *marshalbgpV6EviVxlan) ToPbText() (string, error) { +func (m *marshalpatternFlowIpv4DscpEcnCounter) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -329353,12 +341885,12 @@ func (m *marshalbgpV6EviVxlan) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalbgpV6EviVxlan) FromPbText(value string) error { +func (m *unMarshalpatternFlowIpv4DscpEcnCounter) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - m.obj.setNil() + vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -329366,7 +341898,7 @@ func (m *unMarshalbgpV6EviVxlan) FromPbText(value string) error { return retObj } -func (m *marshalbgpV6EviVxlan) ToYaml() (string, error) { +func (m *marshalpatternFlowIpv4DscpEcnCounter) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -329387,7 +341919,7 @@ func (m *marshalbgpV6EviVxlan) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalbgpV6EviVxlan) FromYaml(value string) error { +func (m *unMarshalpatternFlowIpv4DscpEcnCounter) FromYaml(value string) error { if value == "" { value = "{}" } @@ -329404,7 +341936,7 @@ func (m *unMarshalbgpV6EviVxlan) FromYaml(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - m.obj.setNil() + vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -329412,7 +341944,7 @@ func (m *unMarshalbgpV6EviVxlan) FromYaml(value string) error { return nil } -func (m *marshalbgpV6EviVxlan) ToJson() (string, error) { +func (m *marshalpatternFlowIpv4DscpEcnCounter) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -329430,7 +341962,7 @@ func (m *marshalbgpV6EviVxlan) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalbgpV6EviVxlan) FromJson(value string) error { +func (m *unMarshalpatternFlowIpv4DscpEcnCounter) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -329443,7 +341975,7 @@ func (m *unMarshalbgpV6EviVxlan) FromJson(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - m.obj.setNil() + err := m.obj.validateToAndFrom() if err != nil { return err @@ -329451,19 +341983,19 @@ func (m *unMarshalbgpV6EviVxlan) FromJson(value string) error { return nil } -func (obj *bgpV6EviVxlan) validateToAndFrom() error { +func (obj *patternFlowIpv4DscpEcnCounter) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpV6EviVxlan) validate() error { +func (obj *patternFlowIpv4DscpEcnCounter) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpV6EviVxlan) String() string { +func (obj *patternFlowIpv4DscpEcnCounter) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -329471,12 +342003,12 @@ func (obj *bgpV6EviVxlan) String() string { return str } -func (obj *bgpV6EviVxlan) Clone() (BgpV6EviVxlan, error) { +func (obj *patternFlowIpv4DscpEcnCounter) Clone() (PatternFlowIpv4DscpEcnCounter, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpV6EviVxlan() + newObj := NewPatternFlowIpv4DscpEcnCounter() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -329488,876 +342020,609 @@ func (obj *bgpV6EviVxlan) Clone() (BgpV6EviVxlan, error) { return newObj, nil } -func (obj *bgpV6EviVxlan) setNil() { - obj.broadcastDomainsHolder = nil - obj.routeDistinguisherHolder = nil - obj.routeTargetExportHolder = nil - obj.routeTargetImportHolder = nil - obj.l3RouteTargetExportHolder = nil - obj.l3RouteTargetImportHolder = nil - obj.advancedHolder = nil - obj.communitiesHolder = nil - obj.extCommunitiesHolder = nil - obj.asPathHolder = nil - obj.validationErrors = nil - obj.warnings = nil - obj.constraints = make(map[string]map[string]Constraints) -} - -// BgpV6EviVxlan is configuration for BGP EVPN EVI. Advertises following routes - -// -// # Type 3 - Inclusive Multicast Ethernet Tag Route -// -// Type 1 - Ethernet Auto-discovery Route (Per EVI) -// -// Type 1 - Ethernet Auto-discovery Route (Per ES) -type BgpV6EviVxlan interface { +// PatternFlowIpv4DscpEcnCounter is integer counter pattern +type PatternFlowIpv4DscpEcnCounter interface { Validation - // msg marshals BgpV6EviVxlan to protobuf object *otg.BgpV6EviVxlan + // msg marshals PatternFlowIpv4DscpEcnCounter to protobuf object *otg.PatternFlowIpv4DscpEcnCounter // and doesn't set defaults - msg() *otg.BgpV6EviVxlan - // setMsg unmarshals BgpV6EviVxlan from protobuf object *otg.BgpV6EviVxlan + msg() *otg.PatternFlowIpv4DscpEcnCounter + // setMsg unmarshals PatternFlowIpv4DscpEcnCounter from protobuf object *otg.PatternFlowIpv4DscpEcnCounter // and doesn't set defaults - setMsg(*otg.BgpV6EviVxlan) BgpV6EviVxlan + setMsg(*otg.PatternFlowIpv4DscpEcnCounter) PatternFlowIpv4DscpEcnCounter // provides marshal interface - Marshal() marshalBgpV6EviVxlan + Marshal() marshalPatternFlowIpv4DscpEcnCounter // provides unmarshal interface - Unmarshal() unMarshalBgpV6EviVxlan - // validate validates BgpV6EviVxlan + Unmarshal() unMarshalPatternFlowIpv4DscpEcnCounter + // validate validates PatternFlowIpv4DscpEcnCounter validate() error // A stringer function String() string // Clones the object - Clone() (BgpV6EviVxlan, error) + Clone() (PatternFlowIpv4DscpEcnCounter, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // BroadcastDomains returns BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIterIter, set in BgpV6EviVxlan - BroadcastDomains() BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter - // ReplicationType returns BgpV6EviVxlanReplicationTypeEnum, set in BgpV6EviVxlan - ReplicationType() BgpV6EviVxlanReplicationTypeEnum - // SetReplicationType assigns BgpV6EviVxlanReplicationTypeEnum provided by user to BgpV6EviVxlan - SetReplicationType(value BgpV6EviVxlanReplicationTypeEnum) BgpV6EviVxlan - // HasReplicationType checks if ReplicationType has been set in BgpV6EviVxlan - HasReplicationType() bool - // PmsiLabel returns uint32, set in BgpV6EviVxlan. - PmsiLabel() uint32 - // SetPmsiLabel assigns uint32 provided by user to BgpV6EviVxlan - SetPmsiLabel(value uint32) BgpV6EviVxlan - // HasPmsiLabel checks if PmsiLabel has been set in BgpV6EviVxlan - HasPmsiLabel() bool - // AdLabel returns uint32, set in BgpV6EviVxlan. - AdLabel() uint32 - // SetAdLabel assigns uint32 provided by user to BgpV6EviVxlan - SetAdLabel(value uint32) BgpV6EviVxlan - // HasAdLabel checks if AdLabel has been set in BgpV6EviVxlan - HasAdLabel() bool - // RouteDistinguisher returns BgpRouteDistinguisher, set in BgpV6EviVxlan. - // BgpRouteDistinguisher is bGP Route Distinguisher. - RouteDistinguisher() BgpRouteDistinguisher - // SetRouteDistinguisher assigns BgpRouteDistinguisher provided by user to BgpV6EviVxlan. - // BgpRouteDistinguisher is bGP Route Distinguisher. - SetRouteDistinguisher(value BgpRouteDistinguisher) BgpV6EviVxlan - // HasRouteDistinguisher checks if RouteDistinguisher has been set in BgpV6EviVxlan - HasRouteDistinguisher() bool - // RouteTargetExport returns BgpV6EviVxlanBgpRouteTargetIterIter, set in BgpV6EviVxlan - RouteTargetExport() BgpV6EviVxlanBgpRouteTargetIter - // RouteTargetImport returns BgpV6EviVxlanBgpRouteTargetIterIter, set in BgpV6EviVxlan - RouteTargetImport() BgpV6EviVxlanBgpRouteTargetIter - // L3RouteTargetExport returns BgpV6EviVxlanBgpRouteTargetIterIter, set in BgpV6EviVxlan - L3RouteTargetExport() BgpV6EviVxlanBgpRouteTargetIter - // L3RouteTargetImport returns BgpV6EviVxlanBgpRouteTargetIterIter, set in BgpV6EviVxlan - L3RouteTargetImport() BgpV6EviVxlanBgpRouteTargetIter - // Advanced returns BgpRouteAdvanced, set in BgpV6EviVxlan. - // BgpRouteAdvanced is configuration for advanced BGP route range settings. - Advanced() BgpRouteAdvanced - // SetAdvanced assigns BgpRouteAdvanced provided by user to BgpV6EviVxlan. - // BgpRouteAdvanced is configuration for advanced BGP route range settings. - SetAdvanced(value BgpRouteAdvanced) BgpV6EviVxlan - // HasAdvanced checks if Advanced has been set in BgpV6EviVxlan - HasAdvanced() bool - // Communities returns BgpV6EviVxlanBgpCommunityIterIter, set in BgpV6EviVxlan - Communities() BgpV6EviVxlanBgpCommunityIter - // ExtCommunities returns BgpV6EviVxlanBgpExtCommunityIterIter, set in BgpV6EviVxlan - ExtCommunities() BgpV6EviVxlanBgpExtCommunityIter - // AsPath returns BgpAsPath, set in BgpV6EviVxlan. - // BgpAsPath is this attribute identifies the autonomous systems through which routing information carried in this UPDATE message has passed. This contains the configuration of how to include the Local AS in the AS path attribute of the MP REACH NLRI. It also contains optional configuration of additional AS Path Segments that can be included in the AS Path attribute. The AS Path consists of a Set or Sequence of Autonomous Systems (AS) numbers that a routing information passes through to reach the destination. - AsPath() BgpAsPath - // SetAsPath assigns BgpAsPath provided by user to BgpV6EviVxlan. - // BgpAsPath is this attribute identifies the autonomous systems through which routing information carried in this UPDATE message has passed. This contains the configuration of how to include the Local AS in the AS path attribute of the MP REACH NLRI. It also contains optional configuration of additional AS Path Segments that can be included in the AS Path attribute. The AS Path consists of a Set or Sequence of Autonomous Systems (AS) numbers that a routing information passes through to reach the destination. - SetAsPath(value BgpAsPath) BgpV6EviVxlan - // HasAsPath checks if AsPath has been set in BgpV6EviVxlan - HasAsPath() bool - setNil() -} - -// This contains the list of Broadcast Domains to be configured per EVI. -// BroadcastDomains returns a []BgpV6EviVxlanBroadcastDomain -func (obj *bgpV6EviVxlan) BroadcastDomains() BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { - if len(obj.obj.BroadcastDomains) == 0 { - obj.obj.BroadcastDomains = []*otg.BgpV6EviVxlanBroadcastDomain{} - } - if obj.broadcastDomainsHolder == nil { - obj.broadcastDomainsHolder = newBgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter(&obj.obj.BroadcastDomains).setMsg(obj) - } - return obj.broadcastDomainsHolder -} - -type bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter struct { - obj *bgpV6EviVxlan - bgpV6EviVxlanBroadcastDomainSlice []BgpV6EviVxlanBroadcastDomain - fieldPtr *[]*otg.BgpV6EviVxlanBroadcastDomain -} - -func newBgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter(ptr *[]*otg.BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { - return &bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter{fieldPtr: ptr} -} - -type BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter interface { - setMsg(*bgpV6EviVxlan) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter - Items() []BgpV6EviVxlanBroadcastDomain - Add() BgpV6EviVxlanBroadcastDomain - Append(items ...BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter - Set(index int, newObj BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter - Clear() BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter - clearHolderSlice() BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter - appendHolderSlice(item BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter -} - -func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) setMsg(msg *bgpV6EviVxlan) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { - obj.clearHolderSlice() - for _, val := range *obj.fieldPtr { - obj.appendHolderSlice(&bgpV6EviVxlanBroadcastDomain{obj: val}) - } - obj.obj = msg - return obj -} - -func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) Items() []BgpV6EviVxlanBroadcastDomain { - return obj.bgpV6EviVxlanBroadcastDomainSlice -} - -func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) Add() BgpV6EviVxlanBroadcastDomain { - newObj := &otg.BgpV6EviVxlanBroadcastDomain{} - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - newLibObj := &bgpV6EviVxlanBroadcastDomain{obj: newObj} - newLibObj.setDefault() - obj.bgpV6EviVxlanBroadcastDomainSlice = append(obj.bgpV6EviVxlanBroadcastDomainSlice, newLibObj) - return newLibObj -} - -func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) Append(items ...BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { - for _, item := range items { - newObj := item.msg() - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - obj.bgpV6EviVxlanBroadcastDomainSlice = append(obj.bgpV6EviVxlanBroadcastDomainSlice, item) - } - return obj -} - -func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) Set(index int, newObj BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { - (*obj.fieldPtr)[index] = newObj.msg() - obj.bgpV6EviVxlanBroadcastDomainSlice[index] = newObj - return obj -} -func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) Clear() BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { - if len(*obj.fieldPtr) > 0 { - *obj.fieldPtr = []*otg.BgpV6EviVxlanBroadcastDomain{} - obj.bgpV6EviVxlanBroadcastDomainSlice = []BgpV6EviVxlanBroadcastDomain{} - } - return obj -} -func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) clearHolderSlice() BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { - if len(obj.bgpV6EviVxlanBroadcastDomainSlice) > 0 { - obj.bgpV6EviVxlanBroadcastDomainSlice = []BgpV6EviVxlanBroadcastDomain{} - } - return obj -} -func (obj *bgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter) appendHolderSlice(item BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBgpV6EviVxlanBroadcastDomainIter { - obj.bgpV6EviVxlanBroadcastDomainSlice = append(obj.bgpV6EviVxlanBroadcastDomainSlice, item) - return obj -} - -type BgpV6EviVxlanReplicationTypeEnum string - -// Enum of ReplicationType on BgpV6EviVxlan -var BgpV6EviVxlanReplicationType = struct { - INGRESS_REPLICATION BgpV6EviVxlanReplicationTypeEnum -}{ - INGRESS_REPLICATION: BgpV6EviVxlanReplicationTypeEnum("ingress_replication"), -} - -func (obj *bgpV6EviVxlan) ReplicationType() BgpV6EviVxlanReplicationTypeEnum { - return BgpV6EviVxlanReplicationTypeEnum(obj.obj.ReplicationType.Enum().String()) -} - -// This model only supports Ingress Replication -// ReplicationType returns a string -func (obj *bgpV6EviVxlan) HasReplicationType() bool { - return obj.obj.ReplicationType != nil -} - -func (obj *bgpV6EviVxlan) SetReplicationType(value BgpV6EviVxlanReplicationTypeEnum) BgpV6EviVxlan { - intValue, ok := otg.BgpV6EviVxlan_ReplicationType_Enum_value[string(value)] - if !ok { - obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( - "%s is not a valid choice on BgpV6EviVxlanReplicationTypeEnum", string(value))) - return obj - } - enumValue := otg.BgpV6EviVxlan_ReplicationType_Enum(intValue) - obj.obj.ReplicationType = &enumValue - - return obj -} - -// Downstream assigned VNI to be carried as Part of P-Multicast Service Interface Tunnel attribute (PMSI Tunnel Attribute) in Type 3 Inclusive Multicast Ethernet Tag Route. -// PmsiLabel returns a uint32 -func (obj *bgpV6EviVxlan) PmsiLabel() uint32 { - - return *obj.obj.PmsiLabel - -} - -// Downstream assigned VNI to be carried as Part of P-Multicast Service Interface Tunnel attribute (PMSI Tunnel Attribute) in Type 3 Inclusive Multicast Ethernet Tag Route. -// PmsiLabel returns a uint32 -func (obj *bgpV6EviVxlan) HasPmsiLabel() bool { - return obj.obj.PmsiLabel != nil -} - -// Downstream assigned VNI to be carried as Part of P-Multicast Service Interface Tunnel attribute (PMSI Tunnel Attribute) in Type 3 Inclusive Multicast Ethernet Tag Route. -// SetPmsiLabel sets the uint32 value in the BgpV6EviVxlan object -func (obj *bgpV6EviVxlan) SetPmsiLabel(value uint32) BgpV6EviVxlan { - - obj.obj.PmsiLabel = &value - return obj -} - -// The Auto-discovery Route label (AD label) value, which gets advertised in the Ethernet Auto-discovery Route per -// AdLabel returns a uint32 -func (obj *bgpV6EviVxlan) AdLabel() uint32 { - - return *obj.obj.AdLabel - -} - -// The Auto-discovery Route label (AD label) value, which gets advertised in the Ethernet Auto-discovery Route per -// AdLabel returns a uint32 -func (obj *bgpV6EviVxlan) HasAdLabel() bool { - return obj.obj.AdLabel != nil + // Start returns uint32, set in PatternFlowIpv4DscpEcnCounter. + Start() uint32 + // SetStart assigns uint32 provided by user to PatternFlowIpv4DscpEcnCounter + SetStart(value uint32) PatternFlowIpv4DscpEcnCounter + // HasStart checks if Start has been set in PatternFlowIpv4DscpEcnCounter + HasStart() bool + // Step returns uint32, set in PatternFlowIpv4DscpEcnCounter. + Step() uint32 + // SetStep assigns uint32 provided by user to PatternFlowIpv4DscpEcnCounter + SetStep(value uint32) PatternFlowIpv4DscpEcnCounter + // HasStep checks if Step has been set in PatternFlowIpv4DscpEcnCounter + HasStep() bool + // Count returns uint32, set in PatternFlowIpv4DscpEcnCounter. + Count() uint32 + // SetCount assigns uint32 provided by user to PatternFlowIpv4DscpEcnCounter + SetCount(value uint32) PatternFlowIpv4DscpEcnCounter + // HasCount checks if Count has been set in PatternFlowIpv4DscpEcnCounter + HasCount() bool } -// The Auto-discovery Route label (AD label) value, which gets advertised in the Ethernet Auto-discovery Route per -// SetAdLabel sets the uint32 value in the BgpV6EviVxlan object -func (obj *bgpV6EviVxlan) SetAdLabel(value uint32) BgpV6EviVxlan { +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4DscpEcnCounter) Start() uint32 { - obj.obj.AdLabel = &value - return obj -} + return *obj.obj.Start -// Colon separated Extended Community value of 6 Bytes - "AS number: Value" identifying an EVI. Example - for the as_2octet "60005:100". -// RouteDistinguisher returns a BgpRouteDistinguisher -func (obj *bgpV6EviVxlan) RouteDistinguisher() BgpRouteDistinguisher { - if obj.obj.RouteDistinguisher == nil { - obj.obj.RouteDistinguisher = NewBgpRouteDistinguisher().msg() - } - if obj.routeDistinguisherHolder == nil { - obj.routeDistinguisherHolder = &bgpRouteDistinguisher{obj: obj.obj.RouteDistinguisher} - } - return obj.routeDistinguisherHolder } -// Colon separated Extended Community value of 6 Bytes - "AS number: Value" identifying an EVI. Example - for the as_2octet "60005:100". -// RouteDistinguisher returns a BgpRouteDistinguisher -func (obj *bgpV6EviVxlan) HasRouteDistinguisher() bool { - return obj.obj.RouteDistinguisher != nil +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4DscpEcnCounter) HasStart() bool { + return obj.obj.Start != nil } -// Colon separated Extended Community value of 6 Bytes - "AS number: Value" identifying an EVI. Example - for the as_2octet "60005:100". -// SetRouteDistinguisher sets the BgpRouteDistinguisher value in the BgpV6EviVxlan object -func (obj *bgpV6EviVxlan) SetRouteDistinguisher(value BgpRouteDistinguisher) BgpV6EviVxlan { - - obj.routeDistinguisherHolder = nil - obj.obj.RouteDistinguisher = value.msg() +// description is TBD +// SetStart sets the uint32 value in the PatternFlowIpv4DscpEcnCounter object +func (obj *patternFlowIpv4DscpEcnCounter) SetStart(value uint32) PatternFlowIpv4DscpEcnCounter { + obj.obj.Start = &value return obj } -// List of Layer 2 Virtual Network Identifier (L2VNI) export targets associated with this EVI. -// RouteTargetExport returns a []BgpRouteTarget -func (obj *bgpV6EviVxlan) RouteTargetExport() BgpV6EviVxlanBgpRouteTargetIter { - if len(obj.obj.RouteTargetExport) == 0 { - obj.obj.RouteTargetExport = []*otg.BgpRouteTarget{} - } - if obj.routeTargetExportHolder == nil { - obj.routeTargetExportHolder = newBgpV6EviVxlanBgpRouteTargetIter(&obj.obj.RouteTargetExport).setMsg(obj) - } - return obj.routeTargetExportHolder -} - -type bgpV6EviVxlanBgpRouteTargetIter struct { - obj *bgpV6EviVxlan - bgpRouteTargetSlice []BgpRouteTarget - fieldPtr *[]*otg.BgpRouteTarget -} - -func newBgpV6EviVxlanBgpRouteTargetIter(ptr *[]*otg.BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter { - return &bgpV6EviVxlanBgpRouteTargetIter{fieldPtr: ptr} -} - -type BgpV6EviVxlanBgpRouteTargetIter interface { - setMsg(*bgpV6EviVxlan) BgpV6EviVxlanBgpRouteTargetIter - Items() []BgpRouteTarget - Add() BgpRouteTarget - Append(items ...BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter - Set(index int, newObj BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter - Clear() BgpV6EviVxlanBgpRouteTargetIter - clearHolderSlice() BgpV6EviVxlanBgpRouteTargetIter - appendHolderSlice(item BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter -} +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4DscpEcnCounter) Step() uint32 { -func (obj *bgpV6EviVxlanBgpRouteTargetIter) setMsg(msg *bgpV6EviVxlan) BgpV6EviVxlanBgpRouteTargetIter { - obj.clearHolderSlice() - for _, val := range *obj.fieldPtr { - obj.appendHolderSlice(&bgpRouteTarget{obj: val}) - } - obj.obj = msg - return obj -} + return *obj.obj.Step -func (obj *bgpV6EviVxlanBgpRouteTargetIter) Items() []BgpRouteTarget { - return obj.bgpRouteTargetSlice } -func (obj *bgpV6EviVxlanBgpRouteTargetIter) Add() BgpRouteTarget { - newObj := &otg.BgpRouteTarget{} - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - newLibObj := &bgpRouteTarget{obj: newObj} - newLibObj.setDefault() - obj.bgpRouteTargetSlice = append(obj.bgpRouteTargetSlice, newLibObj) - return newLibObj +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4DscpEcnCounter) HasStep() bool { + return obj.obj.Step != nil } -func (obj *bgpV6EviVxlanBgpRouteTargetIter) Append(items ...BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter { - for _, item := range items { - newObj := item.msg() - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - obj.bgpRouteTargetSlice = append(obj.bgpRouteTargetSlice, item) - } - return obj -} +// description is TBD +// SetStep sets the uint32 value in the PatternFlowIpv4DscpEcnCounter object +func (obj *patternFlowIpv4DscpEcnCounter) SetStep(value uint32) PatternFlowIpv4DscpEcnCounter { -func (obj *bgpV6EviVxlanBgpRouteTargetIter) Set(index int, newObj BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter { - (*obj.fieldPtr)[index] = newObj.msg() - obj.bgpRouteTargetSlice[index] = newObj - return obj -} -func (obj *bgpV6EviVxlanBgpRouteTargetIter) Clear() BgpV6EviVxlanBgpRouteTargetIter { - if len(*obj.fieldPtr) > 0 { - *obj.fieldPtr = []*otg.BgpRouteTarget{} - obj.bgpRouteTargetSlice = []BgpRouteTarget{} - } - return obj -} -func (obj *bgpV6EviVxlanBgpRouteTargetIter) clearHolderSlice() BgpV6EviVxlanBgpRouteTargetIter { - if len(obj.bgpRouteTargetSlice) > 0 { - obj.bgpRouteTargetSlice = []BgpRouteTarget{} - } - return obj -} -func (obj *bgpV6EviVxlanBgpRouteTargetIter) appendHolderSlice(item BgpRouteTarget) BgpV6EviVxlanBgpRouteTargetIter { - obj.bgpRouteTargetSlice = append(obj.bgpRouteTargetSlice, item) + obj.obj.Step = &value return obj } -// List of L2VNI import targets associated with this EVI. -// RouteTargetImport returns a []BgpRouteTarget -func (obj *bgpV6EviVxlan) RouteTargetImport() BgpV6EviVxlanBgpRouteTargetIter { - if len(obj.obj.RouteTargetImport) == 0 { - obj.obj.RouteTargetImport = []*otg.BgpRouteTarget{} - } - if obj.routeTargetImportHolder == nil { - obj.routeTargetImportHolder = newBgpV6EviVxlanBgpRouteTargetIter(&obj.obj.RouteTargetImport).setMsg(obj) - } - return obj.routeTargetImportHolder -} - -// List of Layer 3 Virtual Network Identifier (L3VNI) Export Route Targets. -// L3RouteTargetExport returns a []BgpRouteTarget -func (obj *bgpV6EviVxlan) L3RouteTargetExport() BgpV6EviVxlanBgpRouteTargetIter { - if len(obj.obj.L3RouteTargetExport) == 0 { - obj.obj.L3RouteTargetExport = []*otg.BgpRouteTarget{} - } - if obj.l3RouteTargetExportHolder == nil { - obj.l3RouteTargetExportHolder = newBgpV6EviVxlanBgpRouteTargetIter(&obj.obj.L3RouteTargetExport).setMsg(obj) - } - return obj.l3RouteTargetExportHolder -} - -// List of L3VNI Import Route Targets. -// L3RouteTargetImport returns a []BgpRouteTarget -func (obj *bgpV6EviVxlan) L3RouteTargetImport() BgpV6EviVxlanBgpRouteTargetIter { - if len(obj.obj.L3RouteTargetImport) == 0 { - obj.obj.L3RouteTargetImport = []*otg.BgpRouteTarget{} - } - if obj.l3RouteTargetImportHolder == nil { - obj.l3RouteTargetImportHolder = newBgpV6EviVxlanBgpRouteTargetIter(&obj.obj.L3RouteTargetImport).setMsg(obj) - } - return obj.l3RouteTargetImportHolder -} - // description is TBD -// Advanced returns a BgpRouteAdvanced -func (obj *bgpV6EviVxlan) Advanced() BgpRouteAdvanced { - if obj.obj.Advanced == nil { - obj.obj.Advanced = NewBgpRouteAdvanced().msg() - } - if obj.advancedHolder == nil { - obj.advancedHolder = &bgpRouteAdvanced{obj: obj.obj.Advanced} - } - return obj.advancedHolder +// Count returns a uint32 +func (obj *patternFlowIpv4DscpEcnCounter) Count() uint32 { + + return *obj.obj.Count + } // description is TBD -// Advanced returns a BgpRouteAdvanced -func (obj *bgpV6EviVxlan) HasAdvanced() bool { - return obj.obj.Advanced != nil +// Count returns a uint32 +func (obj *patternFlowIpv4DscpEcnCounter) HasCount() bool { + return obj.obj.Count != nil } // description is TBD -// SetAdvanced sets the BgpRouteAdvanced value in the BgpV6EviVxlan object -func (obj *bgpV6EviVxlan) SetAdvanced(value BgpRouteAdvanced) BgpV6EviVxlan { - - obj.advancedHolder = nil - obj.obj.Advanced = value.msg() +// SetCount sets the uint32 value in the PatternFlowIpv4DscpEcnCounter object +func (obj *patternFlowIpv4DscpEcnCounter) SetCount(value uint32) PatternFlowIpv4DscpEcnCounter { + obj.obj.Count = &value return obj } -// Optional community settings. -// Communities returns a []BgpCommunity -func (obj *bgpV6EviVxlan) Communities() BgpV6EviVxlanBgpCommunityIter { - if len(obj.obj.Communities) == 0 { - obj.obj.Communities = []*otg.BgpCommunity{} - } - if obj.communitiesHolder == nil { - obj.communitiesHolder = newBgpV6EviVxlanBgpCommunityIter(&obj.obj.Communities).setMsg(obj) +func (obj *patternFlowIpv4DscpEcnCounter) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() } - return obj.communitiesHolder -} -type bgpV6EviVxlanBgpCommunityIter struct { - obj *bgpV6EviVxlan - bgpCommunitySlice []BgpCommunity - fieldPtr *[]*otg.BgpCommunity -} + if obj.obj.Start != nil { -func newBgpV6EviVxlanBgpCommunityIter(ptr *[]*otg.BgpCommunity) BgpV6EviVxlanBgpCommunityIter { - return &bgpV6EviVxlanBgpCommunityIter{fieldPtr: ptr} -} + if *obj.obj.Start > 3 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4DscpEcnCounter.Start <= 3 but Got %d", *obj.obj.Start)) + } -type BgpV6EviVxlanBgpCommunityIter interface { - setMsg(*bgpV6EviVxlan) BgpV6EviVxlanBgpCommunityIter - Items() []BgpCommunity - Add() BgpCommunity - Append(items ...BgpCommunity) BgpV6EviVxlanBgpCommunityIter - Set(index int, newObj BgpCommunity) BgpV6EviVxlanBgpCommunityIter - Clear() BgpV6EviVxlanBgpCommunityIter - clearHolderSlice() BgpV6EviVxlanBgpCommunityIter - appendHolderSlice(item BgpCommunity) BgpV6EviVxlanBgpCommunityIter -} + } + + if obj.obj.Step != nil { + + if *obj.obj.Step > 3 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4DscpEcnCounter.Step <= 3 but Got %d", *obj.obj.Step)) + } -func (obj *bgpV6EviVxlanBgpCommunityIter) setMsg(msg *bgpV6EviVxlan) BgpV6EviVxlanBgpCommunityIter { - obj.clearHolderSlice() - for _, val := range *obj.fieldPtr { - obj.appendHolderSlice(&bgpCommunity{obj: val}) } - obj.obj = msg - return obj -} -func (obj *bgpV6EviVxlanBgpCommunityIter) Items() []BgpCommunity { - return obj.bgpCommunitySlice -} + if obj.obj.Count != nil { -func (obj *bgpV6EviVxlanBgpCommunityIter) Add() BgpCommunity { - newObj := &otg.BgpCommunity{} - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - newLibObj := &bgpCommunity{obj: newObj} - newLibObj.setDefault() - obj.bgpCommunitySlice = append(obj.bgpCommunitySlice, newLibObj) - return newLibObj -} + if *obj.obj.Count > 3 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4DscpEcnCounter.Count <= 3 but Got %d", *obj.obj.Count)) + } -func (obj *bgpV6EviVxlanBgpCommunityIter) Append(items ...BgpCommunity) BgpV6EviVxlanBgpCommunityIter { - for _, item := range items { - newObj := item.msg() - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - obj.bgpCommunitySlice = append(obj.bgpCommunitySlice, item) } - return obj -} -func (obj *bgpV6EviVxlanBgpCommunityIter) Set(index int, newObj BgpCommunity) BgpV6EviVxlanBgpCommunityIter { - (*obj.fieldPtr)[index] = newObj.msg() - obj.bgpCommunitySlice[index] = newObj - return obj } -func (obj *bgpV6EviVxlanBgpCommunityIter) Clear() BgpV6EviVxlanBgpCommunityIter { - if len(*obj.fieldPtr) > 0 { - *obj.fieldPtr = []*otg.BgpCommunity{} - obj.bgpCommunitySlice = []BgpCommunity{} + +func (obj *patternFlowIpv4DscpEcnCounter) setDefault() { + if obj.obj.Start == nil { + obj.SetStart(0) } - return obj -} -func (obj *bgpV6EviVxlanBgpCommunityIter) clearHolderSlice() BgpV6EviVxlanBgpCommunityIter { - if len(obj.bgpCommunitySlice) > 0 { - obj.bgpCommunitySlice = []BgpCommunity{} + if obj.obj.Step == nil { + obj.SetStep(1) } - return obj + if obj.obj.Count == nil { + obj.SetCount(1) + } + } -func (obj *bgpV6EviVxlanBgpCommunityIter) appendHolderSlice(item BgpCommunity) BgpV6EviVxlanBgpCommunityIter { - obj.bgpCommunitySlice = append(obj.bgpCommunitySlice, item) - return obj + +// ***** PatternFlowIpv4DscpEcnMetricTag ***** +type patternFlowIpv4DscpEcnMetricTag struct { + validation + obj *otg.PatternFlowIpv4DscpEcnMetricTag + marshaller marshalPatternFlowIpv4DscpEcnMetricTag + unMarshaller unMarshalPatternFlowIpv4DscpEcnMetricTag } -// Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two byte local administrator id. When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for administrator_ipv4_address is a four byte IPv4 address followed by a two byte local administrator id. When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from IANA's "ETHER TYPES" registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format. When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates occur for the same MAC address. -// ExtCommunities returns a []BgpExtCommunity -func (obj *bgpV6EviVxlan) ExtCommunities() BgpV6EviVxlanBgpExtCommunityIter { - if len(obj.obj.ExtCommunities) == 0 { - obj.obj.ExtCommunities = []*otg.BgpExtCommunity{} - } - if obj.extCommunitiesHolder == nil { - obj.extCommunitiesHolder = newBgpV6EviVxlanBgpExtCommunityIter(&obj.obj.ExtCommunities).setMsg(obj) - } - return obj.extCommunitiesHolder +func NewPatternFlowIpv4DscpEcnMetricTag() PatternFlowIpv4DscpEcnMetricTag { + obj := patternFlowIpv4DscpEcnMetricTag{obj: &otg.PatternFlowIpv4DscpEcnMetricTag{}} + obj.setDefault() + return &obj } -type bgpV6EviVxlanBgpExtCommunityIter struct { - obj *bgpV6EviVxlan - bgpExtCommunitySlice []BgpExtCommunity - fieldPtr *[]*otg.BgpExtCommunity +func (obj *patternFlowIpv4DscpEcnMetricTag) msg() *otg.PatternFlowIpv4DscpEcnMetricTag { + return obj.obj } -func newBgpV6EviVxlanBgpExtCommunityIter(ptr *[]*otg.BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter { - return &bgpV6EviVxlanBgpExtCommunityIter{fieldPtr: ptr} +func (obj *patternFlowIpv4DscpEcnMetricTag) setMsg(msg *otg.PatternFlowIpv4DscpEcnMetricTag) PatternFlowIpv4DscpEcnMetricTag { + + proto.Merge(obj.obj, msg) + return obj } -type BgpV6EviVxlanBgpExtCommunityIter interface { - setMsg(*bgpV6EviVxlan) BgpV6EviVxlanBgpExtCommunityIter - Items() []BgpExtCommunity - Add() BgpExtCommunity - Append(items ...BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter - Set(index int, newObj BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter - Clear() BgpV6EviVxlanBgpExtCommunityIter - clearHolderSlice() BgpV6EviVxlanBgpExtCommunityIter - appendHolderSlice(item BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter +type marshalpatternFlowIpv4DscpEcnMetricTag struct { + obj *patternFlowIpv4DscpEcnMetricTag } -func (obj *bgpV6EviVxlanBgpExtCommunityIter) setMsg(msg *bgpV6EviVxlan) BgpV6EviVxlanBgpExtCommunityIter { - obj.clearHolderSlice() - for _, val := range *obj.fieldPtr { - obj.appendHolderSlice(&bgpExtCommunity{obj: val}) - } - obj.obj = msg - return obj +type marshalPatternFlowIpv4DscpEcnMetricTag interface { + // ToProto marshals PatternFlowIpv4DscpEcnMetricTag to protobuf object *otg.PatternFlowIpv4DscpEcnMetricTag + ToProto() (*otg.PatternFlowIpv4DscpEcnMetricTag, error) + // ToPbText marshals PatternFlowIpv4DscpEcnMetricTag to protobuf text + ToPbText() (string, error) + // ToYaml marshals PatternFlowIpv4DscpEcnMetricTag to YAML text + ToYaml() (string, error) + // ToJson marshals PatternFlowIpv4DscpEcnMetricTag to JSON text + ToJson() (string, error) } -func (obj *bgpV6EviVxlanBgpExtCommunityIter) Items() []BgpExtCommunity { - return obj.bgpExtCommunitySlice +type unMarshalpatternFlowIpv4DscpEcnMetricTag struct { + obj *patternFlowIpv4DscpEcnMetricTag } -func (obj *bgpV6EviVxlanBgpExtCommunityIter) Add() BgpExtCommunity { - newObj := &otg.BgpExtCommunity{} - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - newLibObj := &bgpExtCommunity{obj: newObj} - newLibObj.setDefault() - obj.bgpExtCommunitySlice = append(obj.bgpExtCommunitySlice, newLibObj) - return newLibObj +type unMarshalPatternFlowIpv4DscpEcnMetricTag interface { + // FromProto unmarshals PatternFlowIpv4DscpEcnMetricTag from protobuf object *otg.PatternFlowIpv4DscpEcnMetricTag + FromProto(msg *otg.PatternFlowIpv4DscpEcnMetricTag) (PatternFlowIpv4DscpEcnMetricTag, error) + // FromPbText unmarshals PatternFlowIpv4DscpEcnMetricTag from protobuf text + FromPbText(value string) error + // FromYaml unmarshals PatternFlowIpv4DscpEcnMetricTag from YAML text + FromYaml(value string) error + // FromJson unmarshals PatternFlowIpv4DscpEcnMetricTag from JSON text + FromJson(value string) error } -func (obj *bgpV6EviVxlanBgpExtCommunityIter) Append(items ...BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter { - for _, item := range items { - newObj := item.msg() - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - obj.bgpExtCommunitySlice = append(obj.bgpExtCommunitySlice, item) +func (obj *patternFlowIpv4DscpEcnMetricTag) Marshal() marshalPatternFlowIpv4DscpEcnMetricTag { + if obj.marshaller == nil { + obj.marshaller = &marshalpatternFlowIpv4DscpEcnMetricTag{obj: obj} } - return obj + return obj.marshaller } -func (obj *bgpV6EviVxlanBgpExtCommunityIter) Set(index int, newObj BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter { - (*obj.fieldPtr)[index] = newObj.msg() - obj.bgpExtCommunitySlice[index] = newObj - return obj +func (obj *patternFlowIpv4DscpEcnMetricTag) Unmarshal() unMarshalPatternFlowIpv4DscpEcnMetricTag { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshalpatternFlowIpv4DscpEcnMetricTag{obj: obj} + } + return obj.unMarshaller } -func (obj *bgpV6EviVxlanBgpExtCommunityIter) Clear() BgpV6EviVxlanBgpExtCommunityIter { - if len(*obj.fieldPtr) > 0 { - *obj.fieldPtr = []*otg.BgpExtCommunity{} - obj.bgpExtCommunitySlice = []BgpExtCommunity{} + +func (m *marshalpatternFlowIpv4DscpEcnMetricTag) ToProto() (*otg.PatternFlowIpv4DscpEcnMetricTag, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err } - return obj + return m.obj.msg(), nil } -func (obj *bgpV6EviVxlanBgpExtCommunityIter) clearHolderSlice() BgpV6EviVxlanBgpExtCommunityIter { - if len(obj.bgpExtCommunitySlice) > 0 { - obj.bgpExtCommunitySlice = []BgpExtCommunity{} + +func (m *unMarshalpatternFlowIpv4DscpEcnMetricTag) FromProto(msg *otg.PatternFlowIpv4DscpEcnMetricTag) (PatternFlowIpv4DscpEcnMetricTag, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err } - return obj + return newObj, nil } -func (obj *bgpV6EviVxlanBgpExtCommunityIter) appendHolderSlice(item BgpExtCommunity) BgpV6EviVxlanBgpExtCommunityIter { - obj.bgpExtCommunitySlice = append(obj.bgpExtCommunitySlice, item) - return obj + +func (m *marshalpatternFlowIpv4DscpEcnMetricTag) ToPbText() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + protoMarshal, err := proto.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(protoMarshal), nil } -// Optional AS PATH settings. -// AsPath returns a BgpAsPath -func (obj *bgpV6EviVxlan) AsPath() BgpAsPath { - if obj.obj.AsPath == nil { - obj.obj.AsPath = NewBgpAsPath().msg() +func (m *unMarshalpatternFlowIpv4DscpEcnMetricTag) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), m.obj.msg()) + if retObj != nil { + return retObj } - if obj.asPathHolder == nil { - obj.asPathHolder = &bgpAsPath{obj: obj.obj.AsPath} + + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr } - return obj.asPathHolder + return retObj } -// Optional AS PATH settings. -// AsPath returns a BgpAsPath -func (obj *bgpV6EviVxlan) HasAsPath() bool { - return obj.obj.AsPath != nil +func (m *marshalpatternFlowIpv4DscpEcnMetricTag) ToYaml() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil } -// Optional AS PATH settings. -// SetAsPath sets the BgpAsPath value in the BgpV6EviVxlan object -func (obj *bgpV6EviVxlan) SetAsPath(value BgpAsPath) BgpV6EviVxlan { +func (m *unMarshalpatternFlowIpv4DscpEcnMetricTag) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } - obj.asPathHolder = nil - obj.obj.AsPath = value.msg() + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil +} - return obj +func (m *marshalpatternFlowIpv4DscpEcnMetricTag) ToJson() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(data), nil } -func (obj *bgpV6EviVxlan) validateObj(vObj *validation, set_default bool) { - if set_default { - obj.setDefault() +func (m *unMarshalpatternFlowIpv4DscpEcnMetricTag) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) } - if len(obj.obj.BroadcastDomains) != 0 { + err := m.obj.validateToAndFrom() + if err != nil { + return err + } + return nil +} - if set_default { - obj.BroadcastDomains().clearHolderSlice() - for _, item := range obj.obj.BroadcastDomains { - obj.BroadcastDomains().appendHolderSlice(&bgpV6EviVxlanBroadcastDomain{obj: item}) - } - } - for _, item := range obj.BroadcastDomains().Items() { - item.validateObj(vObj, set_default) - } +func (obj *patternFlowIpv4DscpEcnMetricTag) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} +func (obj *patternFlowIpv4DscpEcnMetricTag) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *patternFlowIpv4DscpEcnMetricTag) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() } + return str +} - if obj.obj.PmsiLabel != nil { +func (obj *patternFlowIpv4DscpEcnMetricTag) Clone() (PatternFlowIpv4DscpEcnMetricTag, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewPatternFlowIpv4DscpEcnMetricTag() + data, err := proto.Marshal(obj.msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil +} - if *obj.obj.PmsiLabel > 16777215 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= BgpV6EviVxlan.PmsiLabel <= 16777215 but Got %d", *obj.obj.PmsiLabel)) - } +// PatternFlowIpv4DscpEcnMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. +type PatternFlowIpv4DscpEcnMetricTag interface { + Validation + // msg marshals PatternFlowIpv4DscpEcnMetricTag to protobuf object *otg.PatternFlowIpv4DscpEcnMetricTag + // and doesn't set defaults + msg() *otg.PatternFlowIpv4DscpEcnMetricTag + // setMsg unmarshals PatternFlowIpv4DscpEcnMetricTag from protobuf object *otg.PatternFlowIpv4DscpEcnMetricTag + // and doesn't set defaults + setMsg(*otg.PatternFlowIpv4DscpEcnMetricTag) PatternFlowIpv4DscpEcnMetricTag + // provides marshal interface + Marshal() marshalPatternFlowIpv4DscpEcnMetricTag + // provides unmarshal interface + Unmarshal() unMarshalPatternFlowIpv4DscpEcnMetricTag + // validate validates PatternFlowIpv4DscpEcnMetricTag + validate() error + // A stringer function + String() string + // Clones the object + Clone() (PatternFlowIpv4DscpEcnMetricTag, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Name returns string, set in PatternFlowIpv4DscpEcnMetricTag. + Name() string + // SetName assigns string provided by user to PatternFlowIpv4DscpEcnMetricTag + SetName(value string) PatternFlowIpv4DscpEcnMetricTag + // Offset returns uint32, set in PatternFlowIpv4DscpEcnMetricTag. + Offset() uint32 + // SetOffset assigns uint32 provided by user to PatternFlowIpv4DscpEcnMetricTag + SetOffset(value uint32) PatternFlowIpv4DscpEcnMetricTag + // HasOffset checks if Offset has been set in PatternFlowIpv4DscpEcnMetricTag + HasOffset() bool + // Length returns uint32, set in PatternFlowIpv4DscpEcnMetricTag. + Length() uint32 + // SetLength assigns uint32 provided by user to PatternFlowIpv4DscpEcnMetricTag + SetLength(value uint32) PatternFlowIpv4DscpEcnMetricTag + // HasLength checks if Length has been set in PatternFlowIpv4DscpEcnMetricTag + HasLength() bool +} - } +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field +// Name returns a string +func (obj *patternFlowIpv4DscpEcnMetricTag) Name() string { - if obj.obj.AdLabel != nil { + return *obj.obj.Name - if *obj.obj.AdLabel > 16777215 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= BgpV6EviVxlan.AdLabel <= 16777215 but Got %d", *obj.obj.AdLabel)) - } +} - } +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field +// SetName sets the string value in the PatternFlowIpv4DscpEcnMetricTag object +func (obj *patternFlowIpv4DscpEcnMetricTag) SetName(value string) PatternFlowIpv4DscpEcnMetricTag { - if obj.obj.RouteDistinguisher != nil { + obj.obj.Name = &value + return obj +} - obj.RouteDistinguisher().validateObj(vObj, set_default) - } +// Offset in bits relative to start of corresponding header field +// Offset returns a uint32 +func (obj *patternFlowIpv4DscpEcnMetricTag) Offset() uint32 { - if len(obj.obj.RouteTargetExport) != 0 { + return *obj.obj.Offset - if set_default { - obj.RouteTargetExport().clearHolderSlice() - for _, item := range obj.obj.RouteTargetExport { - obj.RouteTargetExport().appendHolderSlice(&bgpRouteTarget{obj: item}) - } - } - for _, item := range obj.RouteTargetExport().Items() { - item.validateObj(vObj, set_default) - } +} - } +// Offset in bits relative to start of corresponding header field +// Offset returns a uint32 +func (obj *patternFlowIpv4DscpEcnMetricTag) HasOffset() bool { + return obj.obj.Offset != nil +} - if len(obj.obj.RouteTargetImport) != 0 { +// Offset in bits relative to start of corresponding header field +// SetOffset sets the uint32 value in the PatternFlowIpv4DscpEcnMetricTag object +func (obj *patternFlowIpv4DscpEcnMetricTag) SetOffset(value uint32) PatternFlowIpv4DscpEcnMetricTag { - if set_default { - obj.RouteTargetImport().clearHolderSlice() - for _, item := range obj.obj.RouteTargetImport { - obj.RouteTargetImport().appendHolderSlice(&bgpRouteTarget{obj: item}) - } - } - for _, item := range obj.RouteTargetImport().Items() { - item.validateObj(vObj, set_default) - } + obj.obj.Offset = &value + return obj +} - } +// Number of bits to track for metrics starting from configured offset of corresponding header field +// Length returns a uint32 +func (obj *patternFlowIpv4DscpEcnMetricTag) Length() uint32 { - if len(obj.obj.L3RouteTargetExport) != 0 { + return *obj.obj.Length - if set_default { - obj.L3RouteTargetExport().clearHolderSlice() - for _, item := range obj.obj.L3RouteTargetExport { - obj.L3RouteTargetExport().appendHolderSlice(&bgpRouteTarget{obj: item}) - } - } - for _, item := range obj.L3RouteTargetExport().Items() { - item.validateObj(vObj, set_default) - } +} - } +// Number of bits to track for metrics starting from configured offset of corresponding header field +// Length returns a uint32 +func (obj *patternFlowIpv4DscpEcnMetricTag) HasLength() bool { + return obj.obj.Length != nil +} - if len(obj.obj.L3RouteTargetImport) != 0 { +// Number of bits to track for metrics starting from configured offset of corresponding header field +// SetLength sets the uint32 value in the PatternFlowIpv4DscpEcnMetricTag object +func (obj *patternFlowIpv4DscpEcnMetricTag) SetLength(value uint32) PatternFlowIpv4DscpEcnMetricTag { - if set_default { - obj.L3RouteTargetImport().clearHolderSlice() - for _, item := range obj.obj.L3RouteTargetImport { - obj.L3RouteTargetImport().appendHolderSlice(&bgpRouteTarget{obj: item}) - } - } - for _, item := range obj.L3RouteTargetImport().Items() { - item.validateObj(vObj, set_default) - } + obj.obj.Length = &value + return obj +} +func (obj *patternFlowIpv4DscpEcnMetricTag) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() } - if obj.obj.Advanced != nil { - - obj.Advanced().validateObj(vObj, set_default) + // Name is required + if obj.obj.Name == nil { + vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4DscpEcnMetricTag") } - if len(obj.obj.Communities) != 0 { + if obj.obj.Offset != nil { - if set_default { - obj.Communities().clearHolderSlice() - for _, item := range obj.obj.Communities { - obj.Communities().appendHolderSlice(&bgpCommunity{obj: item}) - } - } - for _, item := range obj.Communities().Items() { - item.validateObj(vObj, set_default) + if *obj.obj.Offset > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4DscpEcnMetricTag.Offset <= 1 but Got %d", *obj.obj.Offset)) } } - if len(obj.obj.ExtCommunities) != 0 { + if obj.obj.Length != nil { - if set_default { - obj.ExtCommunities().clearHolderSlice() - for _, item := range obj.obj.ExtCommunities { - obj.ExtCommunities().appendHolderSlice(&bgpExtCommunity{obj: item}) - } - } - for _, item := range obj.ExtCommunities().Items() { - item.validateObj(vObj, set_default) + if *obj.obj.Length < 1 || *obj.obj.Length > 2 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("1 <= PatternFlowIpv4DscpEcnMetricTag.Length <= 2 but Got %d", *obj.obj.Length)) } } - if obj.obj.AsPath != nil { - - obj.AsPath().validateObj(vObj, set_default) - } - } -func (obj *bgpV6EviVxlan) setDefault() { - if obj.obj.ReplicationType == nil { - obj.SetReplicationType(BgpV6EviVxlanReplicationType.INGRESS_REPLICATION) - - } - if obj.obj.PmsiLabel == nil { - obj.SetPmsiLabel(16) +func (obj *patternFlowIpv4DscpEcnMetricTag) setDefault() { + if obj.obj.Offset == nil { + obj.SetOffset(0) } - if obj.obj.AdLabel == nil { - obj.SetAdLabel(0) + if obj.obj.Length == nil { + obj.SetLength(2) } } -// ***** VxlanTunnelDestinationIPModeUnicastArpSuppressionCache ***** -type vxlanTunnelDestinationIPModeUnicastArpSuppressionCache struct { +// ***** PatternFlowIpv4OptionsCustomTypeCopiedFlag ***** +type patternFlowIpv4OptionsCustomTypeCopiedFlag struct { validation - obj *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - marshaller marshalVxlanTunnelDestinationIPModeUnicastArpSuppressionCache - unMarshaller unMarshalVxlanTunnelDestinationIPModeUnicastArpSuppressionCache + obj *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag + marshaller marshalPatternFlowIpv4OptionsCustomTypeCopiedFlag + unMarshaller unMarshalPatternFlowIpv4OptionsCustomTypeCopiedFlag + incrementHolder PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter + decrementHolder PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter } -func NewVxlanTunnelDestinationIPModeUnicastArpSuppressionCache() VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { - obj := vxlanTunnelDestinationIPModeUnicastArpSuppressionCache{obj: &otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache{}} +func NewPatternFlowIpv4OptionsCustomTypeCopiedFlag() PatternFlowIpv4OptionsCustomTypeCopiedFlag { + obj := patternFlowIpv4OptionsCustomTypeCopiedFlag{obj: &otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag{}} obj.setDefault() return &obj } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) msg() *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) msg() *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag { return obj.obj } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) setMsg(msg *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { - +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) setMsg(msg *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag) PatternFlowIpv4OptionsCustomTypeCopiedFlag { + obj.setNil() proto.Merge(obj.obj, msg) return obj } -type marshalvxlanTunnelDestinationIPModeUnicastArpSuppressionCache struct { - obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache +type marshalpatternFlowIpv4OptionsCustomTypeCopiedFlag struct { + obj *patternFlowIpv4OptionsCustomTypeCopiedFlag } -type marshalVxlanTunnelDestinationIPModeUnicastArpSuppressionCache interface { - // ToProto marshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache to protobuf object *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - ToProto() (*otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache, error) - // ToPbText marshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache to protobuf text +type marshalPatternFlowIpv4OptionsCustomTypeCopiedFlag interface { + // ToProto marshals PatternFlowIpv4OptionsCustomTypeCopiedFlag to protobuf object *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag + ToProto() (*otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag, error) + // ToPbText marshals PatternFlowIpv4OptionsCustomTypeCopiedFlag to protobuf text ToPbText() (string, error) - // ToYaml marshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache to YAML text + // ToYaml marshals PatternFlowIpv4OptionsCustomTypeCopiedFlag to YAML text ToYaml() (string, error) - // ToJson marshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache to JSON text + // ToJson marshals PatternFlowIpv4OptionsCustomTypeCopiedFlag to JSON text ToJson() (string, error) } -type unMarshalvxlanTunnelDestinationIPModeUnicastArpSuppressionCache struct { - obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache +type unMarshalpatternFlowIpv4OptionsCustomTypeCopiedFlag struct { + obj *patternFlowIpv4OptionsCustomTypeCopiedFlag } -type unMarshalVxlanTunnelDestinationIPModeUnicastArpSuppressionCache interface { - // FromProto unmarshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache from protobuf object *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - FromProto(msg *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) (VxlanTunnelDestinationIPModeUnicastArpSuppressionCache, error) - // FromPbText unmarshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache from protobuf text +type unMarshalPatternFlowIpv4OptionsCustomTypeCopiedFlag interface { + // FromProto unmarshals PatternFlowIpv4OptionsCustomTypeCopiedFlag from protobuf object *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag + FromProto(msg *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag) (PatternFlowIpv4OptionsCustomTypeCopiedFlag, error) + // FromPbText unmarshals PatternFlowIpv4OptionsCustomTypeCopiedFlag from protobuf text FromPbText(value string) error - // FromYaml unmarshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache from YAML text + // FromYaml unmarshals PatternFlowIpv4OptionsCustomTypeCopiedFlag from YAML text FromYaml(value string) error - // FromJson unmarshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache from JSON text + // FromJson unmarshals PatternFlowIpv4OptionsCustomTypeCopiedFlag from JSON text FromJson(value string) error } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) Marshal() marshalVxlanTunnelDestinationIPModeUnicastArpSuppressionCache { +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) Marshal() marshalPatternFlowIpv4OptionsCustomTypeCopiedFlag { if obj.marshaller == nil { - obj.marshaller = &marshalvxlanTunnelDestinationIPModeUnicastArpSuppressionCache{obj: obj} + obj.marshaller = &marshalpatternFlowIpv4OptionsCustomTypeCopiedFlag{obj: obj} } return obj.marshaller } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) Unmarshal() unMarshalVxlanTunnelDestinationIPModeUnicastArpSuppressionCache { +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) Unmarshal() unMarshalPatternFlowIpv4OptionsCustomTypeCopiedFlag { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalvxlanTunnelDestinationIPModeUnicastArpSuppressionCache{obj: obj} + obj.unMarshaller = &unMarshalpatternFlowIpv4OptionsCustomTypeCopiedFlag{obj: obj} } return obj.unMarshaller } -func (m *marshalvxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ToProto() (*otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache, error) { +func (m *marshalpatternFlowIpv4OptionsCustomTypeCopiedFlag) ToProto() (*otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -330365,7 +342630,7 @@ func (m *marshalvxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ToProto( return m.obj.msg(), nil } -func (m *unMarshalvxlanTunnelDestinationIPModeUnicastArpSuppressionCache) FromProto(msg *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) (VxlanTunnelDestinationIPModeUnicastArpSuppressionCache, error) { +func (m *unMarshalpatternFlowIpv4OptionsCustomTypeCopiedFlag) FromProto(msg *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag) (PatternFlowIpv4OptionsCustomTypeCopiedFlag, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -330374,7 +342639,7 @@ func (m *unMarshalvxlanTunnelDestinationIPModeUnicastArpSuppressionCache) FromPr return newObj, nil } -func (m *marshalvxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ToPbText() (string, error) { +func (m *marshalpatternFlowIpv4OptionsCustomTypeCopiedFlag) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -330386,12 +342651,12 @@ func (m *marshalvxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ToPbText return string(protoMarshal), nil } -func (m *unMarshalvxlanTunnelDestinationIPModeUnicastArpSuppressionCache) FromPbText(value string) error { +func (m *unMarshalpatternFlowIpv4OptionsCustomTypeCopiedFlag) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -330399,7 +342664,7 @@ func (m *unMarshalvxlanTunnelDestinationIPModeUnicastArpSuppressionCache) FromPb return retObj } -func (m *marshalvxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ToYaml() (string, error) { +func (m *marshalpatternFlowIpv4OptionsCustomTypeCopiedFlag) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -330420,7 +342685,7 @@ func (m *marshalvxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ToYaml() return string(data), nil } -func (m *unMarshalvxlanTunnelDestinationIPModeUnicastArpSuppressionCache) FromYaml(value string) error { +func (m *unMarshalpatternFlowIpv4OptionsCustomTypeCopiedFlag) FromYaml(value string) error { if value == "" { value = "{}" } @@ -330437,7 +342702,7 @@ func (m *unMarshalvxlanTunnelDestinationIPModeUnicastArpSuppressionCache) FromYa return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -330445,7 +342710,7 @@ func (m *unMarshalvxlanTunnelDestinationIPModeUnicastArpSuppressionCache) FromYa return nil } -func (m *marshalvxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ToJson() (string, error) { +func (m *marshalpatternFlowIpv4OptionsCustomTypeCopiedFlag) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -330463,7 +342728,7 @@ func (m *marshalvxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ToJson() return string(data), nil } -func (m *unMarshalvxlanTunnelDestinationIPModeUnicastArpSuppressionCache) FromJson(value string) error { +func (m *unMarshalpatternFlowIpv4OptionsCustomTypeCopiedFlag) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -330476,7 +342741,7 @@ func (m *unMarshalvxlanTunnelDestinationIPModeUnicastArpSuppressionCache) FromJs return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() err := m.obj.validateToAndFrom() if err != nil { return err @@ -330484,19 +342749,19 @@ func (m *unMarshalvxlanTunnelDestinationIPModeUnicastArpSuppressionCache) FromJs return nil } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) validateToAndFrom() error { +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) validate() error { +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) String() string { +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -330504,12 +342769,12 @@ func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) String() stri return str } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) Clone() (VxlanTunnelDestinationIPModeUnicastArpSuppressionCache, error) { +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) Clone() (PatternFlowIpv4OptionsCustomTypeCopiedFlag, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewVxlanTunnelDestinationIPModeUnicastArpSuppressionCache() + newObj := NewPatternFlowIpv4OptionsCustomTypeCopiedFlag() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -330521,184 +342786,355 @@ func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) Clone() (Vxla return newObj, nil } -// VxlanTunnelDestinationIPModeUnicastArpSuppressionCache is each VTEP maintains an ARP suppression cache table for known IP hosts and their associated MAC addresses in the VNI segment. When an end host in the VNI sends an ARP request for another end-host IP address, its local VTEP intercepts the ARP request and checks for the ARP-resolved IP address in its ARP suppression cache table. If it finds a match, the local VTEP sends an ARP response on behalf of the remote end host. -type VxlanTunnelDestinationIPModeUnicastArpSuppressionCache interface { +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) setNil() { + obj.incrementHolder = nil + obj.decrementHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// PatternFlowIpv4OptionsCustomTypeCopiedFlag is this flag indicates this option is copied to all fragments on fragmentations. +type PatternFlowIpv4OptionsCustomTypeCopiedFlag interface { Validation - // msg marshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache to protobuf object *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + // msg marshals PatternFlowIpv4OptionsCustomTypeCopiedFlag to protobuf object *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag // and doesn't set defaults - msg() *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - // setMsg unmarshals VxlanTunnelDestinationIPModeUnicastArpSuppressionCache from protobuf object *otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + msg() *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag + // setMsg unmarshals PatternFlowIpv4OptionsCustomTypeCopiedFlag from protobuf object *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag // and doesn't set defaults - setMsg(*otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + setMsg(*otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag) PatternFlowIpv4OptionsCustomTypeCopiedFlag // provides marshal interface - Marshal() marshalVxlanTunnelDestinationIPModeUnicastArpSuppressionCache + Marshal() marshalPatternFlowIpv4OptionsCustomTypeCopiedFlag // provides unmarshal interface - Unmarshal() unMarshalVxlanTunnelDestinationIPModeUnicastArpSuppressionCache - // validate validates VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + Unmarshal() unMarshalPatternFlowIpv4OptionsCustomTypeCopiedFlag + // validate validates PatternFlowIpv4OptionsCustomTypeCopiedFlag validate() error // A stringer function String() string // Clones the object - Clone() (VxlanTunnelDestinationIPModeUnicastArpSuppressionCache, error) + Clone() (PatternFlowIpv4OptionsCustomTypeCopiedFlag, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // RemoteVmMac returns string, set in VxlanTunnelDestinationIPModeUnicastArpSuppressionCache. - RemoteVmMac() string - // SetRemoteVmMac assigns string provided by user to VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - SetRemoteVmMac(value string) VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - // HasRemoteVmMac checks if RemoteVmMac has been set in VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - HasRemoteVmMac() bool - // RemoteVmIpv4 returns string, set in VxlanTunnelDestinationIPModeUnicastArpSuppressionCache. - RemoteVmIpv4() string - // SetRemoteVmIpv4 assigns string provided by user to VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - SetRemoteVmIpv4(value string) VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - // HasRemoteVmIpv4 checks if RemoteVmIpv4 has been set in VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - HasRemoteVmIpv4() bool + // Choice returns PatternFlowIpv4OptionsCustomTypeCopiedFlagChoiceEnum, set in PatternFlowIpv4OptionsCustomTypeCopiedFlag + Choice() PatternFlowIpv4OptionsCustomTypeCopiedFlagChoiceEnum + // setChoice assigns PatternFlowIpv4OptionsCustomTypeCopiedFlagChoiceEnum provided by user to PatternFlowIpv4OptionsCustomTypeCopiedFlag + setChoice(value PatternFlowIpv4OptionsCustomTypeCopiedFlagChoiceEnum) PatternFlowIpv4OptionsCustomTypeCopiedFlag + // HasChoice checks if Choice has been set in PatternFlowIpv4OptionsCustomTypeCopiedFlag + HasChoice() bool + // Value returns uint32, set in PatternFlowIpv4OptionsCustomTypeCopiedFlag. + Value() uint32 + // SetValue assigns uint32 provided by user to PatternFlowIpv4OptionsCustomTypeCopiedFlag + SetValue(value uint32) PatternFlowIpv4OptionsCustomTypeCopiedFlag + // HasValue checks if Value has been set in PatternFlowIpv4OptionsCustomTypeCopiedFlag + HasValue() bool + // Values returns []uint32, set in PatternFlowIpv4OptionsCustomTypeCopiedFlag. + Values() []uint32 + // SetValues assigns []uint32 provided by user to PatternFlowIpv4OptionsCustomTypeCopiedFlag + SetValues(value []uint32) PatternFlowIpv4OptionsCustomTypeCopiedFlag + // Increment returns PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter, set in PatternFlowIpv4OptionsCustomTypeCopiedFlag. + // PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter is integer counter pattern + Increment() PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter + // SetIncrement assigns PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter provided by user to PatternFlowIpv4OptionsCustomTypeCopiedFlag. + // PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter is integer counter pattern + SetIncrement(value PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) PatternFlowIpv4OptionsCustomTypeCopiedFlag + // HasIncrement checks if Increment has been set in PatternFlowIpv4OptionsCustomTypeCopiedFlag + HasIncrement() bool + // Decrement returns PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter, set in PatternFlowIpv4OptionsCustomTypeCopiedFlag. + // PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter is integer counter pattern + Decrement() PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter + // SetDecrement assigns PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter provided by user to PatternFlowIpv4OptionsCustomTypeCopiedFlag. + // PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter is integer counter pattern + SetDecrement(value PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) PatternFlowIpv4OptionsCustomTypeCopiedFlag + // HasDecrement checks if Decrement has been set in PatternFlowIpv4OptionsCustomTypeCopiedFlag + HasDecrement() bool + setNil() } -// Remote VM MAC address bound to Remote VM IPv4 address -// RemoteVmMac returns a string -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) RemoteVmMac() string { +type PatternFlowIpv4OptionsCustomTypeCopiedFlagChoiceEnum string - return *obj.obj.RemoteVmMac +// Enum of Choice on PatternFlowIpv4OptionsCustomTypeCopiedFlag +var PatternFlowIpv4OptionsCustomTypeCopiedFlagChoice = struct { + VALUE PatternFlowIpv4OptionsCustomTypeCopiedFlagChoiceEnum + VALUES PatternFlowIpv4OptionsCustomTypeCopiedFlagChoiceEnum + INCREMENT PatternFlowIpv4OptionsCustomTypeCopiedFlagChoiceEnum + DECREMENT PatternFlowIpv4OptionsCustomTypeCopiedFlagChoiceEnum +}{ + VALUE: PatternFlowIpv4OptionsCustomTypeCopiedFlagChoiceEnum("value"), + VALUES: PatternFlowIpv4OptionsCustomTypeCopiedFlagChoiceEnum("values"), + INCREMENT: PatternFlowIpv4OptionsCustomTypeCopiedFlagChoiceEnum("increment"), + DECREMENT: PatternFlowIpv4OptionsCustomTypeCopiedFlagChoiceEnum("decrement"), +} +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) Choice() PatternFlowIpv4OptionsCustomTypeCopiedFlagChoiceEnum { + return PatternFlowIpv4OptionsCustomTypeCopiedFlagChoiceEnum(obj.obj.Choice.Enum().String()) } -// Remote VM MAC address bound to Remote VM IPv4 address -// RemoteVmMac returns a string -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) HasRemoteVmMac() bool { - return obj.obj.RemoteVmMac != nil +// description is TBD +// Choice returns a string +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) HasChoice() bool { + return obj.obj.Choice != nil } -// Remote VM MAC address bound to Remote VM IPv4 address -// SetRemoteVmMac sets the string value in the VxlanTunnelDestinationIPModeUnicastArpSuppressionCache object -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) SetRemoteVmMac(value string) VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) setChoice(value PatternFlowIpv4OptionsCustomTypeCopiedFlagChoiceEnum) PatternFlowIpv4OptionsCustomTypeCopiedFlag { + intValue, ok := otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on PatternFlowIpv4OptionsCustomTypeCopiedFlagChoiceEnum", string(value))) + return obj + } + enumValue := otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.Decrement = nil + obj.decrementHolder = nil + obj.obj.Increment = nil + obj.incrementHolder = nil + obj.obj.Values = nil + obj.obj.Value = nil + + if value == PatternFlowIpv4OptionsCustomTypeCopiedFlagChoice.VALUE { + defaultValue := uint32(0) + obj.obj.Value = &defaultValue + } + + if value == PatternFlowIpv4OptionsCustomTypeCopiedFlagChoice.VALUES { + defaultValue := []uint32{0} + obj.obj.Values = defaultValue + } + + if value == PatternFlowIpv4OptionsCustomTypeCopiedFlagChoice.INCREMENT { + obj.obj.Increment = NewPatternFlowIpv4OptionsCustomTypeCopiedFlagCounter().msg() + } + + if value == PatternFlowIpv4OptionsCustomTypeCopiedFlagChoice.DECREMENT { + obj.obj.Decrement = NewPatternFlowIpv4OptionsCustomTypeCopiedFlagCounter().msg() + } - obj.obj.RemoteVmMac = &value return obj } -// Remote VM IPv4 address -// RemoteVmIpv4 returns a string -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) RemoteVmIpv4() string { +// description is TBD +// Value returns a uint32 +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) Value() uint32 { - return *obj.obj.RemoteVmIpv4 + if obj.obj.Value == nil { + obj.setChoice(PatternFlowIpv4OptionsCustomTypeCopiedFlagChoice.VALUE) + } + + return *obj.obj.Value } -// Remote VM IPv4 address -// RemoteVmIpv4 returns a string -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) HasRemoteVmIpv4() bool { - return obj.obj.RemoteVmIpv4 != nil +// description is TBD +// Value returns a uint32 +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) HasValue() bool { + return obj.obj.Value != nil } -// Remote VM IPv4 address -// SetRemoteVmIpv4 sets the string value in the VxlanTunnelDestinationIPModeUnicastArpSuppressionCache object -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) SetRemoteVmIpv4(value string) VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { +// description is TBD +// SetValue sets the uint32 value in the PatternFlowIpv4OptionsCustomTypeCopiedFlag object +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) SetValue(value uint32) PatternFlowIpv4OptionsCustomTypeCopiedFlag { + obj.setChoice(PatternFlowIpv4OptionsCustomTypeCopiedFlagChoice.VALUE) + obj.obj.Value = &value + return obj +} + +// description is TBD +// Values returns a []uint32 +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) Values() []uint32 { + if obj.obj.Values == nil { + obj.SetValues([]uint32{0}) + } + return obj.obj.Values +} + +// description is TBD +// SetValues sets the []uint32 value in the PatternFlowIpv4OptionsCustomTypeCopiedFlag object +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) SetValues(value []uint32) PatternFlowIpv4OptionsCustomTypeCopiedFlag { + obj.setChoice(PatternFlowIpv4OptionsCustomTypeCopiedFlagChoice.VALUES) + if obj.obj.Values == nil { + obj.obj.Values = make([]uint32, 0) + } + obj.obj.Values = value - obj.obj.RemoteVmIpv4 = &value return obj } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) validateObj(vObj *validation, set_default bool) { +// description is TBD +// Increment returns a PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) Increment() PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter { + if obj.obj.Increment == nil { + obj.setChoice(PatternFlowIpv4OptionsCustomTypeCopiedFlagChoice.INCREMENT) + } + if obj.incrementHolder == nil { + obj.incrementHolder = &patternFlowIpv4OptionsCustomTypeCopiedFlagCounter{obj: obj.obj.Increment} + } + return obj.incrementHolder +} + +// description is TBD +// Increment returns a PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) HasIncrement() bool { + return obj.obj.Increment != nil +} + +// description is TBD +// SetIncrement sets the PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter value in the PatternFlowIpv4OptionsCustomTypeCopiedFlag object +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) SetIncrement(value PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) PatternFlowIpv4OptionsCustomTypeCopiedFlag { + obj.setChoice(PatternFlowIpv4OptionsCustomTypeCopiedFlagChoice.INCREMENT) + obj.incrementHolder = nil + obj.obj.Increment = value.msg() + + return obj +} + +// description is TBD +// Decrement returns a PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) Decrement() PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter { + if obj.obj.Decrement == nil { + obj.setChoice(PatternFlowIpv4OptionsCustomTypeCopiedFlagChoice.DECREMENT) + } + if obj.decrementHolder == nil { + obj.decrementHolder = &patternFlowIpv4OptionsCustomTypeCopiedFlagCounter{obj: obj.obj.Decrement} + } + return obj.decrementHolder +} + +// description is TBD +// Decrement returns a PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) HasDecrement() bool { + return obj.obj.Decrement != nil +} + +// description is TBD +// SetDecrement sets the PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter value in the PatternFlowIpv4OptionsCustomTypeCopiedFlag object +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) SetDecrement(value PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) PatternFlowIpv4OptionsCustomTypeCopiedFlag { + obj.setChoice(PatternFlowIpv4OptionsCustomTypeCopiedFlagChoice.DECREMENT) + obj.decrementHolder = nil + obj.obj.Decrement = value.msg() + + return obj +} + +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.RemoteVmMac != nil { + if obj.obj.Value != nil { - err := obj.validateMac(obj.RemoteVmMac()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on VxlanTunnelDestinationIPModeUnicastArpSuppressionCache.RemoteVmMac")) + if *obj.obj.Value > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4OptionsCustomTypeCopiedFlag.Value <= 1 but Got %d", *obj.obj.Value)) } } - if obj.obj.RemoteVmIpv4 != nil { + if obj.obj.Values != nil { + + for _, item := range obj.obj.Values { + if item > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("min(uint32) <= PatternFlowIpv4OptionsCustomTypeCopiedFlag.Values <= 1 but Got %d", item)) + } - err := obj.validateIpv4(obj.RemoteVmIpv4()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on VxlanTunnelDestinationIPModeUnicastArpSuppressionCache.RemoteVmIpv4")) } } + if obj.obj.Increment != nil { + + obj.Increment().validateObj(vObj, set_default) + } + + if obj.obj.Decrement != nil { + + obj.Decrement().validateObj(vObj, set_default) + } + } -func (obj *vxlanTunnelDestinationIPModeUnicastArpSuppressionCache) setDefault() { +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) setDefault() { + if obj.obj.Choice == nil { + obj.setChoice(PatternFlowIpv4OptionsCustomTypeCopiedFlagChoice.VALUE) + + } } -// ***** PatternFlowIpv4TosPrecedenceCounter ***** -type patternFlowIpv4TosPrecedenceCounter struct { +// ***** PatternFlowIpv4OptionsCustomTypeOptionClass ***** +type patternFlowIpv4OptionsCustomTypeOptionClass struct { validation - obj *otg.PatternFlowIpv4TosPrecedenceCounter - marshaller marshalPatternFlowIpv4TosPrecedenceCounter - unMarshaller unMarshalPatternFlowIpv4TosPrecedenceCounter + obj *otg.PatternFlowIpv4OptionsCustomTypeOptionClass + marshaller marshalPatternFlowIpv4OptionsCustomTypeOptionClass + unMarshaller unMarshalPatternFlowIpv4OptionsCustomTypeOptionClass + incrementHolder PatternFlowIpv4OptionsCustomTypeOptionClassCounter + decrementHolder PatternFlowIpv4OptionsCustomTypeOptionClassCounter } -func NewPatternFlowIpv4TosPrecedenceCounter() PatternFlowIpv4TosPrecedenceCounter { - obj := patternFlowIpv4TosPrecedenceCounter{obj: &otg.PatternFlowIpv4TosPrecedenceCounter{}} +func NewPatternFlowIpv4OptionsCustomTypeOptionClass() PatternFlowIpv4OptionsCustomTypeOptionClass { + obj := patternFlowIpv4OptionsCustomTypeOptionClass{obj: &otg.PatternFlowIpv4OptionsCustomTypeOptionClass{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4TosPrecedenceCounter) msg() *otg.PatternFlowIpv4TosPrecedenceCounter { +func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) msg() *otg.PatternFlowIpv4OptionsCustomTypeOptionClass { return obj.obj } -func (obj *patternFlowIpv4TosPrecedenceCounter) setMsg(msg *otg.PatternFlowIpv4TosPrecedenceCounter) PatternFlowIpv4TosPrecedenceCounter { - +func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) setMsg(msg *otg.PatternFlowIpv4OptionsCustomTypeOptionClass) PatternFlowIpv4OptionsCustomTypeOptionClass { + obj.setNil() proto.Merge(obj.obj, msg) return obj } -type marshalpatternFlowIpv4TosPrecedenceCounter struct { - obj *patternFlowIpv4TosPrecedenceCounter +type marshalpatternFlowIpv4OptionsCustomTypeOptionClass struct { + obj *patternFlowIpv4OptionsCustomTypeOptionClass } -type marshalPatternFlowIpv4TosPrecedenceCounter interface { - // ToProto marshals PatternFlowIpv4TosPrecedenceCounter to protobuf object *otg.PatternFlowIpv4TosPrecedenceCounter - ToProto() (*otg.PatternFlowIpv4TosPrecedenceCounter, error) - // ToPbText marshals PatternFlowIpv4TosPrecedenceCounter to protobuf text +type marshalPatternFlowIpv4OptionsCustomTypeOptionClass interface { + // ToProto marshals PatternFlowIpv4OptionsCustomTypeOptionClass to protobuf object *otg.PatternFlowIpv4OptionsCustomTypeOptionClass + ToProto() (*otg.PatternFlowIpv4OptionsCustomTypeOptionClass, error) + // ToPbText marshals PatternFlowIpv4OptionsCustomTypeOptionClass to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4TosPrecedenceCounter to YAML text + // ToYaml marshals PatternFlowIpv4OptionsCustomTypeOptionClass to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4TosPrecedenceCounter to JSON text + // ToJson marshals PatternFlowIpv4OptionsCustomTypeOptionClass to JSON text ToJson() (string, error) } -type unMarshalpatternFlowIpv4TosPrecedenceCounter struct { - obj *patternFlowIpv4TosPrecedenceCounter +type unMarshalpatternFlowIpv4OptionsCustomTypeOptionClass struct { + obj *patternFlowIpv4OptionsCustomTypeOptionClass } - -type unMarshalPatternFlowIpv4TosPrecedenceCounter interface { - // FromProto unmarshals PatternFlowIpv4TosPrecedenceCounter from protobuf object *otg.PatternFlowIpv4TosPrecedenceCounter - FromProto(msg *otg.PatternFlowIpv4TosPrecedenceCounter) (PatternFlowIpv4TosPrecedenceCounter, error) - // FromPbText unmarshals PatternFlowIpv4TosPrecedenceCounter from protobuf text + +type unMarshalPatternFlowIpv4OptionsCustomTypeOptionClass interface { + // FromProto unmarshals PatternFlowIpv4OptionsCustomTypeOptionClass from protobuf object *otg.PatternFlowIpv4OptionsCustomTypeOptionClass + FromProto(msg *otg.PatternFlowIpv4OptionsCustomTypeOptionClass) (PatternFlowIpv4OptionsCustomTypeOptionClass, error) + // FromPbText unmarshals PatternFlowIpv4OptionsCustomTypeOptionClass from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4TosPrecedenceCounter from YAML text + // FromYaml unmarshals PatternFlowIpv4OptionsCustomTypeOptionClass from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4TosPrecedenceCounter from JSON text + // FromJson unmarshals PatternFlowIpv4OptionsCustomTypeOptionClass from JSON text FromJson(value string) error } -func (obj *patternFlowIpv4TosPrecedenceCounter) Marshal() marshalPatternFlowIpv4TosPrecedenceCounter { +func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) Marshal() marshalPatternFlowIpv4OptionsCustomTypeOptionClass { if obj.marshaller == nil { - obj.marshaller = &marshalpatternFlowIpv4TosPrecedenceCounter{obj: obj} + obj.marshaller = &marshalpatternFlowIpv4OptionsCustomTypeOptionClass{obj: obj} } return obj.marshaller } -func (obj *patternFlowIpv4TosPrecedenceCounter) Unmarshal() unMarshalPatternFlowIpv4TosPrecedenceCounter { +func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) Unmarshal() unMarshalPatternFlowIpv4OptionsCustomTypeOptionClass { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalpatternFlowIpv4TosPrecedenceCounter{obj: obj} + obj.unMarshaller = &unMarshalpatternFlowIpv4OptionsCustomTypeOptionClass{obj: obj} } return obj.unMarshaller } -func (m *marshalpatternFlowIpv4TosPrecedenceCounter) ToProto() (*otg.PatternFlowIpv4TosPrecedenceCounter, error) { +func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionClass) ToProto() (*otg.PatternFlowIpv4OptionsCustomTypeOptionClass, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -330706,7 +343142,7 @@ func (m *marshalpatternFlowIpv4TosPrecedenceCounter) ToProto() (*otg.PatternFlow return m.obj.msg(), nil } -func (m *unMarshalpatternFlowIpv4TosPrecedenceCounter) FromProto(msg *otg.PatternFlowIpv4TosPrecedenceCounter) (PatternFlowIpv4TosPrecedenceCounter, error) { +func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionClass) FromProto(msg *otg.PatternFlowIpv4OptionsCustomTypeOptionClass) (PatternFlowIpv4OptionsCustomTypeOptionClass, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -330715,7 +343151,7 @@ func (m *unMarshalpatternFlowIpv4TosPrecedenceCounter) FromProto(msg *otg.Patter return newObj, nil } -func (m *marshalpatternFlowIpv4TosPrecedenceCounter) ToPbText() (string, error) { +func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionClass) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -330727,12 +343163,12 @@ func (m *marshalpatternFlowIpv4TosPrecedenceCounter) ToPbText() (string, error) return string(protoMarshal), nil } -func (m *unMarshalpatternFlowIpv4TosPrecedenceCounter) FromPbText(value string) error { +func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionClass) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -330740,7 +343176,7 @@ func (m *unMarshalpatternFlowIpv4TosPrecedenceCounter) FromPbText(value string) return retObj } -func (m *marshalpatternFlowIpv4TosPrecedenceCounter) ToYaml() (string, error) { +func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionClass) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -330761,7 +343197,7 @@ func (m *marshalpatternFlowIpv4TosPrecedenceCounter) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalpatternFlowIpv4TosPrecedenceCounter) FromYaml(value string) error { +func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionClass) FromYaml(value string) error { if value == "" { value = "{}" } @@ -330778,7 +343214,7 @@ func (m *unMarshalpatternFlowIpv4TosPrecedenceCounter) FromYaml(value string) er return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -330786,7 +343222,7 @@ func (m *unMarshalpatternFlowIpv4TosPrecedenceCounter) FromYaml(value string) er return nil } -func (m *marshalpatternFlowIpv4TosPrecedenceCounter) ToJson() (string, error) { +func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionClass) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -330804,7 +343240,7 @@ func (m *marshalpatternFlowIpv4TosPrecedenceCounter) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalpatternFlowIpv4TosPrecedenceCounter) FromJson(value string) error { +func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionClass) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -330817,7 +343253,7 @@ func (m *unMarshalpatternFlowIpv4TosPrecedenceCounter) FromJson(value string) er return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() err := m.obj.validateToAndFrom() if err != nil { return err @@ -330825,19 +343261,19 @@ func (m *unMarshalpatternFlowIpv4TosPrecedenceCounter) FromJson(value string) er return nil } -func (obj *patternFlowIpv4TosPrecedenceCounter) validateToAndFrom() error { +func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4TosPrecedenceCounter) validate() error { +func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4TosPrecedenceCounter) String() string { +func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -330845,12 +343281,12 @@ func (obj *patternFlowIpv4TosPrecedenceCounter) String() string { return str } -func (obj *patternFlowIpv4TosPrecedenceCounter) Clone() (PatternFlowIpv4TosPrecedenceCounter, error) { +func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) Clone() (PatternFlowIpv4OptionsCustomTypeOptionClass, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4TosPrecedenceCounter() + newObj := NewPatternFlowIpv4OptionsCustomTypeOptionClass() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -330862,233 +343298,355 @@ func (obj *patternFlowIpv4TosPrecedenceCounter) Clone() (PatternFlowIpv4TosPrece return newObj, nil } -// PatternFlowIpv4TosPrecedenceCounter is integer counter pattern -type PatternFlowIpv4TosPrecedenceCounter interface { +func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) setNil() { + obj.incrementHolder = nil + obj.decrementHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// PatternFlowIpv4OptionsCustomTypeOptionClass is option class [Ref:https://www.iana.org/assignments/ip-parameters/ip-parameters.xhtml#ip-parameters-1]. +type PatternFlowIpv4OptionsCustomTypeOptionClass interface { Validation - // msg marshals PatternFlowIpv4TosPrecedenceCounter to protobuf object *otg.PatternFlowIpv4TosPrecedenceCounter + // msg marshals PatternFlowIpv4OptionsCustomTypeOptionClass to protobuf object *otg.PatternFlowIpv4OptionsCustomTypeOptionClass // and doesn't set defaults - msg() *otg.PatternFlowIpv4TosPrecedenceCounter - // setMsg unmarshals PatternFlowIpv4TosPrecedenceCounter from protobuf object *otg.PatternFlowIpv4TosPrecedenceCounter + msg() *otg.PatternFlowIpv4OptionsCustomTypeOptionClass + // setMsg unmarshals PatternFlowIpv4OptionsCustomTypeOptionClass from protobuf object *otg.PatternFlowIpv4OptionsCustomTypeOptionClass // and doesn't set defaults - setMsg(*otg.PatternFlowIpv4TosPrecedenceCounter) PatternFlowIpv4TosPrecedenceCounter + setMsg(*otg.PatternFlowIpv4OptionsCustomTypeOptionClass) PatternFlowIpv4OptionsCustomTypeOptionClass // provides marshal interface - Marshal() marshalPatternFlowIpv4TosPrecedenceCounter + Marshal() marshalPatternFlowIpv4OptionsCustomTypeOptionClass // provides unmarshal interface - Unmarshal() unMarshalPatternFlowIpv4TosPrecedenceCounter - // validate validates PatternFlowIpv4TosPrecedenceCounter + Unmarshal() unMarshalPatternFlowIpv4OptionsCustomTypeOptionClass + // validate validates PatternFlowIpv4OptionsCustomTypeOptionClass validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4TosPrecedenceCounter, error) + Clone() (PatternFlowIpv4OptionsCustomTypeOptionClass, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Start returns uint32, set in PatternFlowIpv4TosPrecedenceCounter. - Start() uint32 - // SetStart assigns uint32 provided by user to PatternFlowIpv4TosPrecedenceCounter - SetStart(value uint32) PatternFlowIpv4TosPrecedenceCounter - // HasStart checks if Start has been set in PatternFlowIpv4TosPrecedenceCounter - HasStart() bool - // Step returns uint32, set in PatternFlowIpv4TosPrecedenceCounter. - Step() uint32 - // SetStep assigns uint32 provided by user to PatternFlowIpv4TosPrecedenceCounter - SetStep(value uint32) PatternFlowIpv4TosPrecedenceCounter - // HasStep checks if Step has been set in PatternFlowIpv4TosPrecedenceCounter - HasStep() bool - // Count returns uint32, set in PatternFlowIpv4TosPrecedenceCounter. - Count() uint32 - // SetCount assigns uint32 provided by user to PatternFlowIpv4TosPrecedenceCounter - SetCount(value uint32) PatternFlowIpv4TosPrecedenceCounter - // HasCount checks if Count has been set in PatternFlowIpv4TosPrecedenceCounter - HasCount() bool + // Choice returns PatternFlowIpv4OptionsCustomTypeOptionClassChoiceEnum, set in PatternFlowIpv4OptionsCustomTypeOptionClass + Choice() PatternFlowIpv4OptionsCustomTypeOptionClassChoiceEnum + // setChoice assigns PatternFlowIpv4OptionsCustomTypeOptionClassChoiceEnum provided by user to PatternFlowIpv4OptionsCustomTypeOptionClass + setChoice(value PatternFlowIpv4OptionsCustomTypeOptionClassChoiceEnum) PatternFlowIpv4OptionsCustomTypeOptionClass + // HasChoice checks if Choice has been set in PatternFlowIpv4OptionsCustomTypeOptionClass + HasChoice() bool + // Value returns uint32, set in PatternFlowIpv4OptionsCustomTypeOptionClass. + Value() uint32 + // SetValue assigns uint32 provided by user to PatternFlowIpv4OptionsCustomTypeOptionClass + SetValue(value uint32) PatternFlowIpv4OptionsCustomTypeOptionClass + // HasValue checks if Value has been set in PatternFlowIpv4OptionsCustomTypeOptionClass + HasValue() bool + // Values returns []uint32, set in PatternFlowIpv4OptionsCustomTypeOptionClass. + Values() []uint32 + // SetValues assigns []uint32 provided by user to PatternFlowIpv4OptionsCustomTypeOptionClass + SetValues(value []uint32) PatternFlowIpv4OptionsCustomTypeOptionClass + // Increment returns PatternFlowIpv4OptionsCustomTypeOptionClassCounter, set in PatternFlowIpv4OptionsCustomTypeOptionClass. + // PatternFlowIpv4OptionsCustomTypeOptionClassCounter is integer counter pattern + Increment() PatternFlowIpv4OptionsCustomTypeOptionClassCounter + // SetIncrement assigns PatternFlowIpv4OptionsCustomTypeOptionClassCounter provided by user to PatternFlowIpv4OptionsCustomTypeOptionClass. + // PatternFlowIpv4OptionsCustomTypeOptionClassCounter is integer counter pattern + SetIncrement(value PatternFlowIpv4OptionsCustomTypeOptionClassCounter) PatternFlowIpv4OptionsCustomTypeOptionClass + // HasIncrement checks if Increment has been set in PatternFlowIpv4OptionsCustomTypeOptionClass + HasIncrement() bool + // Decrement returns PatternFlowIpv4OptionsCustomTypeOptionClassCounter, set in PatternFlowIpv4OptionsCustomTypeOptionClass. + // PatternFlowIpv4OptionsCustomTypeOptionClassCounter is integer counter pattern + Decrement() PatternFlowIpv4OptionsCustomTypeOptionClassCounter + // SetDecrement assigns PatternFlowIpv4OptionsCustomTypeOptionClassCounter provided by user to PatternFlowIpv4OptionsCustomTypeOptionClass. + // PatternFlowIpv4OptionsCustomTypeOptionClassCounter is integer counter pattern + SetDecrement(value PatternFlowIpv4OptionsCustomTypeOptionClassCounter) PatternFlowIpv4OptionsCustomTypeOptionClass + // HasDecrement checks if Decrement has been set in PatternFlowIpv4OptionsCustomTypeOptionClass + HasDecrement() bool + setNil() } -// description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4TosPrecedenceCounter) Start() uint32 { +type PatternFlowIpv4OptionsCustomTypeOptionClassChoiceEnum string - return *obj.obj.Start +// Enum of Choice on PatternFlowIpv4OptionsCustomTypeOptionClass +var PatternFlowIpv4OptionsCustomTypeOptionClassChoice = struct { + VALUE PatternFlowIpv4OptionsCustomTypeOptionClassChoiceEnum + VALUES PatternFlowIpv4OptionsCustomTypeOptionClassChoiceEnum + INCREMENT PatternFlowIpv4OptionsCustomTypeOptionClassChoiceEnum + DECREMENT PatternFlowIpv4OptionsCustomTypeOptionClassChoiceEnum +}{ + VALUE: PatternFlowIpv4OptionsCustomTypeOptionClassChoiceEnum("value"), + VALUES: PatternFlowIpv4OptionsCustomTypeOptionClassChoiceEnum("values"), + INCREMENT: PatternFlowIpv4OptionsCustomTypeOptionClassChoiceEnum("increment"), + DECREMENT: PatternFlowIpv4OptionsCustomTypeOptionClassChoiceEnum("decrement"), +} +func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) Choice() PatternFlowIpv4OptionsCustomTypeOptionClassChoiceEnum { + return PatternFlowIpv4OptionsCustomTypeOptionClassChoiceEnum(obj.obj.Choice.Enum().String()) } // description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4TosPrecedenceCounter) HasStart() bool { - return obj.obj.Start != nil +// Choice returns a string +func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) HasChoice() bool { + return obj.obj.Choice != nil } -// description is TBD -// SetStart sets the uint32 value in the PatternFlowIpv4TosPrecedenceCounter object -func (obj *patternFlowIpv4TosPrecedenceCounter) SetStart(value uint32) PatternFlowIpv4TosPrecedenceCounter { +func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) setChoice(value PatternFlowIpv4OptionsCustomTypeOptionClassChoiceEnum) PatternFlowIpv4OptionsCustomTypeOptionClass { + intValue, ok := otg.PatternFlowIpv4OptionsCustomTypeOptionClass_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on PatternFlowIpv4OptionsCustomTypeOptionClassChoiceEnum", string(value))) + return obj + } + enumValue := otg.PatternFlowIpv4OptionsCustomTypeOptionClass_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.Decrement = nil + obj.decrementHolder = nil + obj.obj.Increment = nil + obj.incrementHolder = nil + obj.obj.Values = nil + obj.obj.Value = nil + + if value == PatternFlowIpv4OptionsCustomTypeOptionClassChoice.VALUE { + defaultValue := uint32(0) + obj.obj.Value = &defaultValue + } + + if value == PatternFlowIpv4OptionsCustomTypeOptionClassChoice.VALUES { + defaultValue := []uint32{0} + obj.obj.Values = defaultValue + } + + if value == PatternFlowIpv4OptionsCustomTypeOptionClassChoice.INCREMENT { + obj.obj.Increment = NewPatternFlowIpv4OptionsCustomTypeOptionClassCounter().msg() + } + + if value == PatternFlowIpv4OptionsCustomTypeOptionClassChoice.DECREMENT { + obj.obj.Decrement = NewPatternFlowIpv4OptionsCustomTypeOptionClassCounter().msg() + } - obj.obj.Start = &value return obj } // description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4TosPrecedenceCounter) Step() uint32 { +// Value returns a uint32 +func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) Value() uint32 { - return *obj.obj.Step + if obj.obj.Value == nil { + obj.setChoice(PatternFlowIpv4OptionsCustomTypeOptionClassChoice.VALUE) + } + + return *obj.obj.Value } // description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4TosPrecedenceCounter) HasStep() bool { - return obj.obj.Step != nil +// Value returns a uint32 +func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) HasValue() bool { + return obj.obj.Value != nil } // description is TBD -// SetStep sets the uint32 value in the PatternFlowIpv4TosPrecedenceCounter object -func (obj *patternFlowIpv4TosPrecedenceCounter) SetStep(value uint32) PatternFlowIpv4TosPrecedenceCounter { +// SetValue sets the uint32 value in the PatternFlowIpv4OptionsCustomTypeOptionClass object +func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) SetValue(value uint32) PatternFlowIpv4OptionsCustomTypeOptionClass { + obj.setChoice(PatternFlowIpv4OptionsCustomTypeOptionClassChoice.VALUE) + obj.obj.Value = &value + return obj +} + +// description is TBD +// Values returns a []uint32 +func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) Values() []uint32 { + if obj.obj.Values == nil { + obj.SetValues([]uint32{0}) + } + return obj.obj.Values +} + +// description is TBD +// SetValues sets the []uint32 value in the PatternFlowIpv4OptionsCustomTypeOptionClass object +func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) SetValues(value []uint32) PatternFlowIpv4OptionsCustomTypeOptionClass { + obj.setChoice(PatternFlowIpv4OptionsCustomTypeOptionClassChoice.VALUES) + if obj.obj.Values == nil { + obj.obj.Values = make([]uint32, 0) + } + obj.obj.Values = value - obj.obj.Step = &value return obj } // description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4TosPrecedenceCounter) Count() uint32 { +// Increment returns a PatternFlowIpv4OptionsCustomTypeOptionClassCounter +func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) Increment() PatternFlowIpv4OptionsCustomTypeOptionClassCounter { + if obj.obj.Increment == nil { + obj.setChoice(PatternFlowIpv4OptionsCustomTypeOptionClassChoice.INCREMENT) + } + if obj.incrementHolder == nil { + obj.incrementHolder = &patternFlowIpv4OptionsCustomTypeOptionClassCounter{obj: obj.obj.Increment} + } + return obj.incrementHolder +} - return *obj.obj.Count +// description is TBD +// Increment returns a PatternFlowIpv4OptionsCustomTypeOptionClassCounter +func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) HasIncrement() bool { + return obj.obj.Increment != nil +} + +// description is TBD +// SetIncrement sets the PatternFlowIpv4OptionsCustomTypeOptionClassCounter value in the PatternFlowIpv4OptionsCustomTypeOptionClass object +func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) SetIncrement(value PatternFlowIpv4OptionsCustomTypeOptionClassCounter) PatternFlowIpv4OptionsCustomTypeOptionClass { + obj.setChoice(PatternFlowIpv4OptionsCustomTypeOptionClassChoice.INCREMENT) + obj.incrementHolder = nil + obj.obj.Increment = value.msg() + return obj } // description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4TosPrecedenceCounter) HasCount() bool { - return obj.obj.Count != nil +// Decrement returns a PatternFlowIpv4OptionsCustomTypeOptionClassCounter +func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) Decrement() PatternFlowIpv4OptionsCustomTypeOptionClassCounter { + if obj.obj.Decrement == nil { + obj.setChoice(PatternFlowIpv4OptionsCustomTypeOptionClassChoice.DECREMENT) + } + if obj.decrementHolder == nil { + obj.decrementHolder = &patternFlowIpv4OptionsCustomTypeOptionClassCounter{obj: obj.obj.Decrement} + } + return obj.decrementHolder } // description is TBD -// SetCount sets the uint32 value in the PatternFlowIpv4TosPrecedenceCounter object -func (obj *patternFlowIpv4TosPrecedenceCounter) SetCount(value uint32) PatternFlowIpv4TosPrecedenceCounter { +// Decrement returns a PatternFlowIpv4OptionsCustomTypeOptionClassCounter +func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) HasDecrement() bool { + return obj.obj.Decrement != nil +} + +// description is TBD +// SetDecrement sets the PatternFlowIpv4OptionsCustomTypeOptionClassCounter value in the PatternFlowIpv4OptionsCustomTypeOptionClass object +func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) SetDecrement(value PatternFlowIpv4OptionsCustomTypeOptionClassCounter) PatternFlowIpv4OptionsCustomTypeOptionClass { + obj.setChoice(PatternFlowIpv4OptionsCustomTypeOptionClassChoice.DECREMENT) + obj.decrementHolder = nil + obj.obj.Decrement = value.msg() - obj.obj.Count = &value return obj } -func (obj *patternFlowIpv4TosPrecedenceCounter) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Start != nil { + if obj.obj.Value != nil { - if *obj.obj.Start > 7 { + if *obj.obj.Value > 3 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosPrecedenceCounter.Start <= 7 but Got %d", *obj.obj.Start)) + fmt.Sprintf("0 <= PatternFlowIpv4OptionsCustomTypeOptionClass.Value <= 3 but Got %d", *obj.obj.Value)) } } - if obj.obj.Step != nil { + if obj.obj.Values != nil { + + for _, item := range obj.obj.Values { + if item > 3 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("min(uint32) <= PatternFlowIpv4OptionsCustomTypeOptionClass.Values <= 3 but Got %d", item)) + } - if *obj.obj.Step > 7 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosPrecedenceCounter.Step <= 7 but Got %d", *obj.obj.Step)) } } - if obj.obj.Count != nil { + if obj.obj.Increment != nil { - if *obj.obj.Count > 7 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosPrecedenceCounter.Count <= 7 but Got %d", *obj.obj.Count)) - } + obj.Increment().validateObj(vObj, set_default) + } + + if obj.obj.Decrement != nil { + obj.Decrement().validateObj(vObj, set_default) } } -func (obj *patternFlowIpv4TosPrecedenceCounter) setDefault() { - if obj.obj.Start == nil { - obj.SetStart(0) - } - if obj.obj.Step == nil { - obj.SetStep(1) - } - if obj.obj.Count == nil { - obj.SetCount(1) +func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) setDefault() { + if obj.obj.Choice == nil { + obj.setChoice(PatternFlowIpv4OptionsCustomTypeOptionClassChoice.VALUE) + } } -// ***** PatternFlowIpv4TosPrecedenceMetricTag ***** -type patternFlowIpv4TosPrecedenceMetricTag struct { +// ***** PatternFlowIpv4OptionsCustomTypeOptionNumber ***** +type patternFlowIpv4OptionsCustomTypeOptionNumber struct { validation - obj *otg.PatternFlowIpv4TosPrecedenceMetricTag - marshaller marshalPatternFlowIpv4TosPrecedenceMetricTag - unMarshaller unMarshalPatternFlowIpv4TosPrecedenceMetricTag + obj *otg.PatternFlowIpv4OptionsCustomTypeOptionNumber + marshaller marshalPatternFlowIpv4OptionsCustomTypeOptionNumber + unMarshaller unMarshalPatternFlowIpv4OptionsCustomTypeOptionNumber + incrementHolder PatternFlowIpv4OptionsCustomTypeOptionNumberCounter + decrementHolder PatternFlowIpv4OptionsCustomTypeOptionNumberCounter } -func NewPatternFlowIpv4TosPrecedenceMetricTag() PatternFlowIpv4TosPrecedenceMetricTag { - obj := patternFlowIpv4TosPrecedenceMetricTag{obj: &otg.PatternFlowIpv4TosPrecedenceMetricTag{}} +func NewPatternFlowIpv4OptionsCustomTypeOptionNumber() PatternFlowIpv4OptionsCustomTypeOptionNumber { + obj := patternFlowIpv4OptionsCustomTypeOptionNumber{obj: &otg.PatternFlowIpv4OptionsCustomTypeOptionNumber{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) msg() *otg.PatternFlowIpv4TosPrecedenceMetricTag { +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) msg() *otg.PatternFlowIpv4OptionsCustomTypeOptionNumber { return obj.obj } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) setMsg(msg *otg.PatternFlowIpv4TosPrecedenceMetricTag) PatternFlowIpv4TosPrecedenceMetricTag { - +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) setMsg(msg *otg.PatternFlowIpv4OptionsCustomTypeOptionNumber) PatternFlowIpv4OptionsCustomTypeOptionNumber { + obj.setNil() proto.Merge(obj.obj, msg) return obj } -type marshalpatternFlowIpv4TosPrecedenceMetricTag struct { - obj *patternFlowIpv4TosPrecedenceMetricTag +type marshalpatternFlowIpv4OptionsCustomTypeOptionNumber struct { + obj *patternFlowIpv4OptionsCustomTypeOptionNumber } -type marshalPatternFlowIpv4TosPrecedenceMetricTag interface { - // ToProto marshals PatternFlowIpv4TosPrecedenceMetricTag to protobuf object *otg.PatternFlowIpv4TosPrecedenceMetricTag - ToProto() (*otg.PatternFlowIpv4TosPrecedenceMetricTag, error) - // ToPbText marshals PatternFlowIpv4TosPrecedenceMetricTag to protobuf text +type marshalPatternFlowIpv4OptionsCustomTypeOptionNumber interface { + // ToProto marshals PatternFlowIpv4OptionsCustomTypeOptionNumber to protobuf object *otg.PatternFlowIpv4OptionsCustomTypeOptionNumber + ToProto() (*otg.PatternFlowIpv4OptionsCustomTypeOptionNumber, error) + // ToPbText marshals PatternFlowIpv4OptionsCustomTypeOptionNumber to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4TosPrecedenceMetricTag to YAML text + // ToYaml marshals PatternFlowIpv4OptionsCustomTypeOptionNumber to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4TosPrecedenceMetricTag to JSON text + // ToJson marshals PatternFlowIpv4OptionsCustomTypeOptionNumber to JSON text ToJson() (string, error) } -type unMarshalpatternFlowIpv4TosPrecedenceMetricTag struct { - obj *patternFlowIpv4TosPrecedenceMetricTag +type unMarshalpatternFlowIpv4OptionsCustomTypeOptionNumber struct { + obj *patternFlowIpv4OptionsCustomTypeOptionNumber } -type unMarshalPatternFlowIpv4TosPrecedenceMetricTag interface { - // FromProto unmarshals PatternFlowIpv4TosPrecedenceMetricTag from protobuf object *otg.PatternFlowIpv4TosPrecedenceMetricTag - FromProto(msg *otg.PatternFlowIpv4TosPrecedenceMetricTag) (PatternFlowIpv4TosPrecedenceMetricTag, error) - // FromPbText unmarshals PatternFlowIpv4TosPrecedenceMetricTag from protobuf text +type unMarshalPatternFlowIpv4OptionsCustomTypeOptionNumber interface { + // FromProto unmarshals PatternFlowIpv4OptionsCustomTypeOptionNumber from protobuf object *otg.PatternFlowIpv4OptionsCustomTypeOptionNumber + FromProto(msg *otg.PatternFlowIpv4OptionsCustomTypeOptionNumber) (PatternFlowIpv4OptionsCustomTypeOptionNumber, error) + // FromPbText unmarshals PatternFlowIpv4OptionsCustomTypeOptionNumber from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4TosPrecedenceMetricTag from YAML text + // FromYaml unmarshals PatternFlowIpv4OptionsCustomTypeOptionNumber from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4TosPrecedenceMetricTag from JSON text + // FromJson unmarshals PatternFlowIpv4OptionsCustomTypeOptionNumber from JSON text FromJson(value string) error } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) Marshal() marshalPatternFlowIpv4TosPrecedenceMetricTag { +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) Marshal() marshalPatternFlowIpv4OptionsCustomTypeOptionNumber { if obj.marshaller == nil { - obj.marshaller = &marshalpatternFlowIpv4TosPrecedenceMetricTag{obj: obj} + obj.marshaller = &marshalpatternFlowIpv4OptionsCustomTypeOptionNumber{obj: obj} } return obj.marshaller } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) Unmarshal() unMarshalPatternFlowIpv4TosPrecedenceMetricTag { +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) Unmarshal() unMarshalPatternFlowIpv4OptionsCustomTypeOptionNumber { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalpatternFlowIpv4TosPrecedenceMetricTag{obj: obj} + obj.unMarshaller = &unMarshalpatternFlowIpv4OptionsCustomTypeOptionNumber{obj: obj} } return obj.unMarshaller } -func (m *marshalpatternFlowIpv4TosPrecedenceMetricTag) ToProto() (*otg.PatternFlowIpv4TosPrecedenceMetricTag, error) { +func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionNumber) ToProto() (*otg.PatternFlowIpv4OptionsCustomTypeOptionNumber, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -331096,7 +343654,7 @@ func (m *marshalpatternFlowIpv4TosPrecedenceMetricTag) ToProto() (*otg.PatternFl return m.obj.msg(), nil } -func (m *unMarshalpatternFlowIpv4TosPrecedenceMetricTag) FromProto(msg *otg.PatternFlowIpv4TosPrecedenceMetricTag) (PatternFlowIpv4TosPrecedenceMetricTag, error) { +func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionNumber) FromProto(msg *otg.PatternFlowIpv4OptionsCustomTypeOptionNumber) (PatternFlowIpv4OptionsCustomTypeOptionNumber, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -331105,7 +343663,7 @@ func (m *unMarshalpatternFlowIpv4TosPrecedenceMetricTag) FromProto(msg *otg.Patt return newObj, nil } -func (m *marshalpatternFlowIpv4TosPrecedenceMetricTag) ToPbText() (string, error) { +func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionNumber) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -331117,12 +343675,12 @@ func (m *marshalpatternFlowIpv4TosPrecedenceMetricTag) ToPbText() (string, error return string(protoMarshal), nil } -func (m *unMarshalpatternFlowIpv4TosPrecedenceMetricTag) FromPbText(value string) error { +func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionNumber) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -331130,7 +343688,7 @@ func (m *unMarshalpatternFlowIpv4TosPrecedenceMetricTag) FromPbText(value string return retObj } -func (m *marshalpatternFlowIpv4TosPrecedenceMetricTag) ToYaml() (string, error) { +func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionNumber) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -331151,7 +343709,7 @@ func (m *marshalpatternFlowIpv4TosPrecedenceMetricTag) ToYaml() (string, error) return string(data), nil } -func (m *unMarshalpatternFlowIpv4TosPrecedenceMetricTag) FromYaml(value string) error { +func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionNumber) FromYaml(value string) error { if value == "" { value = "{}" } @@ -331168,7 +343726,7 @@ func (m *unMarshalpatternFlowIpv4TosPrecedenceMetricTag) FromYaml(value string) return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -331176,7 +343734,7 @@ func (m *unMarshalpatternFlowIpv4TosPrecedenceMetricTag) FromYaml(value string) return nil } -func (m *marshalpatternFlowIpv4TosPrecedenceMetricTag) ToJson() (string, error) { +func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionNumber) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -331194,7 +343752,7 @@ func (m *marshalpatternFlowIpv4TosPrecedenceMetricTag) ToJson() (string, error) return string(data), nil } -func (m *unMarshalpatternFlowIpv4TosPrecedenceMetricTag) FromJson(value string) error { +func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionNumber) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -331207,7 +343765,7 @@ func (m *unMarshalpatternFlowIpv4TosPrecedenceMetricTag) FromJson(value string) return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() err := m.obj.validateToAndFrom() if err != nil { return err @@ -331215,19 +343773,19 @@ func (m *unMarshalpatternFlowIpv4TosPrecedenceMetricTag) FromJson(value string) return nil } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) validateToAndFrom() error { +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) validate() error { +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) String() string { +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -331235,12 +343793,12 @@ func (obj *patternFlowIpv4TosPrecedenceMetricTag) String() string { return str } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) Clone() (PatternFlowIpv4TosPrecedenceMetricTag, error) { +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) Clone() (PatternFlowIpv4OptionsCustomTypeOptionNumber, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4TosPrecedenceMetricTag() + newObj := NewPatternFlowIpv4OptionsCustomTypeOptionNumber() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -331252,217 +343810,353 @@ func (obj *patternFlowIpv4TosPrecedenceMetricTag) Clone() (PatternFlowIpv4TosPre return newObj, nil } -// PatternFlowIpv4TosPrecedenceMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. -type PatternFlowIpv4TosPrecedenceMetricTag interface { +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) setNil() { + obj.incrementHolder = nil + obj.decrementHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// PatternFlowIpv4OptionsCustomTypeOptionNumber is option Number [Ref:https://www.iana.org/assignments/ip-parameters/ip-parameters.xhtml#ip-parameters-1]. +type PatternFlowIpv4OptionsCustomTypeOptionNumber interface { Validation - // msg marshals PatternFlowIpv4TosPrecedenceMetricTag to protobuf object *otg.PatternFlowIpv4TosPrecedenceMetricTag + // msg marshals PatternFlowIpv4OptionsCustomTypeOptionNumber to protobuf object *otg.PatternFlowIpv4OptionsCustomTypeOptionNumber // and doesn't set defaults - msg() *otg.PatternFlowIpv4TosPrecedenceMetricTag - // setMsg unmarshals PatternFlowIpv4TosPrecedenceMetricTag from protobuf object *otg.PatternFlowIpv4TosPrecedenceMetricTag + msg() *otg.PatternFlowIpv4OptionsCustomTypeOptionNumber + // setMsg unmarshals PatternFlowIpv4OptionsCustomTypeOptionNumber from protobuf object *otg.PatternFlowIpv4OptionsCustomTypeOptionNumber // and doesn't set defaults - setMsg(*otg.PatternFlowIpv4TosPrecedenceMetricTag) PatternFlowIpv4TosPrecedenceMetricTag + setMsg(*otg.PatternFlowIpv4OptionsCustomTypeOptionNumber) PatternFlowIpv4OptionsCustomTypeOptionNumber // provides marshal interface - Marshal() marshalPatternFlowIpv4TosPrecedenceMetricTag + Marshal() marshalPatternFlowIpv4OptionsCustomTypeOptionNumber // provides unmarshal interface - Unmarshal() unMarshalPatternFlowIpv4TosPrecedenceMetricTag - // validate validates PatternFlowIpv4TosPrecedenceMetricTag + Unmarshal() unMarshalPatternFlowIpv4OptionsCustomTypeOptionNumber + // validate validates PatternFlowIpv4OptionsCustomTypeOptionNumber validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4TosPrecedenceMetricTag, error) + Clone() (PatternFlowIpv4OptionsCustomTypeOptionNumber, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Name returns string, set in PatternFlowIpv4TosPrecedenceMetricTag. - Name() string - // SetName assigns string provided by user to PatternFlowIpv4TosPrecedenceMetricTag - SetName(value string) PatternFlowIpv4TosPrecedenceMetricTag - // Offset returns uint32, set in PatternFlowIpv4TosPrecedenceMetricTag. - Offset() uint32 - // SetOffset assigns uint32 provided by user to PatternFlowIpv4TosPrecedenceMetricTag - SetOffset(value uint32) PatternFlowIpv4TosPrecedenceMetricTag - // HasOffset checks if Offset has been set in PatternFlowIpv4TosPrecedenceMetricTag - HasOffset() bool - // Length returns uint32, set in PatternFlowIpv4TosPrecedenceMetricTag. - Length() uint32 - // SetLength assigns uint32 provided by user to PatternFlowIpv4TosPrecedenceMetricTag - SetLength(value uint32) PatternFlowIpv4TosPrecedenceMetricTag - // HasLength checks if Length has been set in PatternFlowIpv4TosPrecedenceMetricTag - HasLength() bool + // Choice returns PatternFlowIpv4OptionsCustomTypeOptionNumberChoiceEnum, set in PatternFlowIpv4OptionsCustomTypeOptionNumber + Choice() PatternFlowIpv4OptionsCustomTypeOptionNumberChoiceEnum + // setChoice assigns PatternFlowIpv4OptionsCustomTypeOptionNumberChoiceEnum provided by user to PatternFlowIpv4OptionsCustomTypeOptionNumber + setChoice(value PatternFlowIpv4OptionsCustomTypeOptionNumberChoiceEnum) PatternFlowIpv4OptionsCustomTypeOptionNumber + // HasChoice checks if Choice has been set in PatternFlowIpv4OptionsCustomTypeOptionNumber + HasChoice() bool + // Value returns uint32, set in PatternFlowIpv4OptionsCustomTypeOptionNumber. + Value() uint32 + // SetValue assigns uint32 provided by user to PatternFlowIpv4OptionsCustomTypeOptionNumber + SetValue(value uint32) PatternFlowIpv4OptionsCustomTypeOptionNumber + // HasValue checks if Value has been set in PatternFlowIpv4OptionsCustomTypeOptionNumber + HasValue() bool + // Values returns []uint32, set in PatternFlowIpv4OptionsCustomTypeOptionNumber. + Values() []uint32 + // SetValues assigns []uint32 provided by user to PatternFlowIpv4OptionsCustomTypeOptionNumber + SetValues(value []uint32) PatternFlowIpv4OptionsCustomTypeOptionNumber + // Increment returns PatternFlowIpv4OptionsCustomTypeOptionNumberCounter, set in PatternFlowIpv4OptionsCustomTypeOptionNumber. + // PatternFlowIpv4OptionsCustomTypeOptionNumberCounter is integer counter pattern + Increment() PatternFlowIpv4OptionsCustomTypeOptionNumberCounter + // SetIncrement assigns PatternFlowIpv4OptionsCustomTypeOptionNumberCounter provided by user to PatternFlowIpv4OptionsCustomTypeOptionNumber. + // PatternFlowIpv4OptionsCustomTypeOptionNumberCounter is integer counter pattern + SetIncrement(value PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) PatternFlowIpv4OptionsCustomTypeOptionNumber + // HasIncrement checks if Increment has been set in PatternFlowIpv4OptionsCustomTypeOptionNumber + HasIncrement() bool + // Decrement returns PatternFlowIpv4OptionsCustomTypeOptionNumberCounter, set in PatternFlowIpv4OptionsCustomTypeOptionNumber. + // PatternFlowIpv4OptionsCustomTypeOptionNumberCounter is integer counter pattern + Decrement() PatternFlowIpv4OptionsCustomTypeOptionNumberCounter + // SetDecrement assigns PatternFlowIpv4OptionsCustomTypeOptionNumberCounter provided by user to PatternFlowIpv4OptionsCustomTypeOptionNumber. + // PatternFlowIpv4OptionsCustomTypeOptionNumberCounter is integer counter pattern + SetDecrement(value PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) PatternFlowIpv4OptionsCustomTypeOptionNumber + // HasDecrement checks if Decrement has been set in PatternFlowIpv4OptionsCustomTypeOptionNumber + HasDecrement() bool + setNil() } -// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// Name returns a string -func (obj *patternFlowIpv4TosPrecedenceMetricTag) Name() string { +type PatternFlowIpv4OptionsCustomTypeOptionNumberChoiceEnum string - return *obj.obj.Name +// Enum of Choice on PatternFlowIpv4OptionsCustomTypeOptionNumber +var PatternFlowIpv4OptionsCustomTypeOptionNumberChoice = struct { + VALUE PatternFlowIpv4OptionsCustomTypeOptionNumberChoiceEnum + VALUES PatternFlowIpv4OptionsCustomTypeOptionNumberChoiceEnum + INCREMENT PatternFlowIpv4OptionsCustomTypeOptionNumberChoiceEnum + DECREMENT PatternFlowIpv4OptionsCustomTypeOptionNumberChoiceEnum +}{ + VALUE: PatternFlowIpv4OptionsCustomTypeOptionNumberChoiceEnum("value"), + VALUES: PatternFlowIpv4OptionsCustomTypeOptionNumberChoiceEnum("values"), + INCREMENT: PatternFlowIpv4OptionsCustomTypeOptionNumberChoiceEnum("increment"), + DECREMENT: PatternFlowIpv4OptionsCustomTypeOptionNumberChoiceEnum("decrement"), +} +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) Choice() PatternFlowIpv4OptionsCustomTypeOptionNumberChoiceEnum { + return PatternFlowIpv4OptionsCustomTypeOptionNumberChoiceEnum(obj.obj.Choice.Enum().String()) } -// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// SetName sets the string value in the PatternFlowIpv4TosPrecedenceMetricTag object -func (obj *patternFlowIpv4TosPrecedenceMetricTag) SetName(value string) PatternFlowIpv4TosPrecedenceMetricTag { +// description is TBD +// Choice returns a string +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) HasChoice() bool { + return obj.obj.Choice != nil +} + +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) setChoice(value PatternFlowIpv4OptionsCustomTypeOptionNumberChoiceEnum) PatternFlowIpv4OptionsCustomTypeOptionNumber { + intValue, ok := otg.PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on PatternFlowIpv4OptionsCustomTypeOptionNumberChoiceEnum", string(value))) + return obj + } + enumValue := otg.PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.Decrement = nil + obj.decrementHolder = nil + obj.obj.Increment = nil + obj.incrementHolder = nil + obj.obj.Values = nil + obj.obj.Value = nil + + if value == PatternFlowIpv4OptionsCustomTypeOptionNumberChoice.VALUE { + defaultValue := uint32(0) + obj.obj.Value = &defaultValue + } + + if value == PatternFlowIpv4OptionsCustomTypeOptionNumberChoice.VALUES { + defaultValue := []uint32{0} + obj.obj.Values = defaultValue + } + + if value == PatternFlowIpv4OptionsCustomTypeOptionNumberChoice.INCREMENT { + obj.obj.Increment = NewPatternFlowIpv4OptionsCustomTypeOptionNumberCounter().msg() + } + + if value == PatternFlowIpv4OptionsCustomTypeOptionNumberChoice.DECREMENT { + obj.obj.Decrement = NewPatternFlowIpv4OptionsCustomTypeOptionNumberCounter().msg() + } - obj.obj.Name = &value return obj } -// Offset in bits relative to start of corresponding header field -// Offset returns a uint32 -func (obj *patternFlowIpv4TosPrecedenceMetricTag) Offset() uint32 { +// description is TBD +// Value returns a uint32 +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) Value() uint32 { - return *obj.obj.Offset + if obj.obj.Value == nil { + obj.setChoice(PatternFlowIpv4OptionsCustomTypeOptionNumberChoice.VALUE) + } + + return *obj.obj.Value } -// Offset in bits relative to start of corresponding header field -// Offset returns a uint32 -func (obj *patternFlowIpv4TosPrecedenceMetricTag) HasOffset() bool { - return obj.obj.Offset != nil +// description is TBD +// Value returns a uint32 +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) HasValue() bool { + return obj.obj.Value != nil } -// Offset in bits relative to start of corresponding header field -// SetOffset sets the uint32 value in the PatternFlowIpv4TosPrecedenceMetricTag object -func (obj *patternFlowIpv4TosPrecedenceMetricTag) SetOffset(value uint32) PatternFlowIpv4TosPrecedenceMetricTag { +// description is TBD +// SetValue sets the uint32 value in the PatternFlowIpv4OptionsCustomTypeOptionNumber object +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) SetValue(value uint32) PatternFlowIpv4OptionsCustomTypeOptionNumber { + obj.setChoice(PatternFlowIpv4OptionsCustomTypeOptionNumberChoice.VALUE) + obj.obj.Value = &value + return obj +} + +// description is TBD +// Values returns a []uint32 +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) Values() []uint32 { + if obj.obj.Values == nil { + obj.SetValues([]uint32{0}) + } + return obj.obj.Values +} + +// description is TBD +// SetValues sets the []uint32 value in the PatternFlowIpv4OptionsCustomTypeOptionNumber object +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) SetValues(value []uint32) PatternFlowIpv4OptionsCustomTypeOptionNumber { + obj.setChoice(PatternFlowIpv4OptionsCustomTypeOptionNumberChoice.VALUES) + if obj.obj.Values == nil { + obj.obj.Values = make([]uint32, 0) + } + obj.obj.Values = value - obj.obj.Offset = &value return obj } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// Length returns a uint32 -func (obj *patternFlowIpv4TosPrecedenceMetricTag) Length() uint32 { +// description is TBD +// Increment returns a PatternFlowIpv4OptionsCustomTypeOptionNumberCounter +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) Increment() PatternFlowIpv4OptionsCustomTypeOptionNumberCounter { + if obj.obj.Increment == nil { + obj.setChoice(PatternFlowIpv4OptionsCustomTypeOptionNumberChoice.INCREMENT) + } + if obj.incrementHolder == nil { + obj.incrementHolder = &patternFlowIpv4OptionsCustomTypeOptionNumberCounter{obj: obj.obj.Increment} + } + return obj.incrementHolder +} - return *obj.obj.Length +// description is TBD +// Increment returns a PatternFlowIpv4OptionsCustomTypeOptionNumberCounter +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) HasIncrement() bool { + return obj.obj.Increment != nil +} + +// description is TBD +// SetIncrement sets the PatternFlowIpv4OptionsCustomTypeOptionNumberCounter value in the PatternFlowIpv4OptionsCustomTypeOptionNumber object +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) SetIncrement(value PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) PatternFlowIpv4OptionsCustomTypeOptionNumber { + obj.setChoice(PatternFlowIpv4OptionsCustomTypeOptionNumberChoice.INCREMENT) + obj.incrementHolder = nil + obj.obj.Increment = value.msg() + return obj } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// Length returns a uint32 -func (obj *patternFlowIpv4TosPrecedenceMetricTag) HasLength() bool { - return obj.obj.Length != nil +// description is TBD +// Decrement returns a PatternFlowIpv4OptionsCustomTypeOptionNumberCounter +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) Decrement() PatternFlowIpv4OptionsCustomTypeOptionNumberCounter { + if obj.obj.Decrement == nil { + obj.setChoice(PatternFlowIpv4OptionsCustomTypeOptionNumberChoice.DECREMENT) + } + if obj.decrementHolder == nil { + obj.decrementHolder = &patternFlowIpv4OptionsCustomTypeOptionNumberCounter{obj: obj.obj.Decrement} + } + return obj.decrementHolder } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// SetLength sets the uint32 value in the PatternFlowIpv4TosPrecedenceMetricTag object -func (obj *patternFlowIpv4TosPrecedenceMetricTag) SetLength(value uint32) PatternFlowIpv4TosPrecedenceMetricTag { +// description is TBD +// Decrement returns a PatternFlowIpv4OptionsCustomTypeOptionNumberCounter +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) HasDecrement() bool { + return obj.obj.Decrement != nil +} + +// description is TBD +// SetDecrement sets the PatternFlowIpv4OptionsCustomTypeOptionNumberCounter value in the PatternFlowIpv4OptionsCustomTypeOptionNumber object +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) SetDecrement(value PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) PatternFlowIpv4OptionsCustomTypeOptionNumber { + obj.setChoice(PatternFlowIpv4OptionsCustomTypeOptionNumberChoice.DECREMENT) + obj.decrementHolder = nil + obj.obj.Decrement = value.msg() - obj.obj.Length = &value return obj } -func (obj *patternFlowIpv4TosPrecedenceMetricTag) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - // Name is required - if obj.obj.Name == nil { - vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosPrecedenceMetricTag") - } - - if obj.obj.Offset != nil { + if obj.obj.Value != nil { - if *obj.obj.Offset > 2 { + if *obj.obj.Value > 31 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosPrecedenceMetricTag.Offset <= 2 but Got %d", *obj.obj.Offset)) + fmt.Sprintf("0 <= PatternFlowIpv4OptionsCustomTypeOptionNumber.Value <= 31 but Got %d", *obj.obj.Value)) } } - if obj.obj.Length != nil { + if obj.obj.Values != nil { + + for _, item := range obj.obj.Values { + if item > 31 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("min(uint32) <= PatternFlowIpv4OptionsCustomTypeOptionNumber.Values <= 31 but Got %d", item)) + } - if *obj.obj.Length < 1 || *obj.obj.Length > 3 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("1 <= PatternFlowIpv4TosPrecedenceMetricTag.Length <= 3 but Got %d", *obj.obj.Length)) } } -} + if obj.obj.Increment != nil { -func (obj *patternFlowIpv4TosPrecedenceMetricTag) setDefault() { - if obj.obj.Offset == nil { - obj.SetOffset(0) + obj.Increment().validateObj(vObj, set_default) } - if obj.obj.Length == nil { - obj.SetLength(3) + + if obj.obj.Decrement != nil { + + obj.Decrement().validateObj(vObj, set_default) } } -// ***** PatternFlowIpv4TosDelayCounter ***** -type patternFlowIpv4TosDelayCounter struct { +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) setDefault() { + if obj.obj.Choice == nil { + obj.setChoice(PatternFlowIpv4OptionsCustomTypeOptionNumberChoice.VALUE) + + } + +} + +// ***** PatternFlowSnmpv2CPDURequestIdCounter ***** +type patternFlowSnmpv2CPDURequestIdCounter struct { validation - obj *otg.PatternFlowIpv4TosDelayCounter - marshaller marshalPatternFlowIpv4TosDelayCounter - unMarshaller unMarshalPatternFlowIpv4TosDelayCounter + obj *otg.PatternFlowSnmpv2CPDURequestIdCounter + marshaller marshalPatternFlowSnmpv2CPDURequestIdCounter + unMarshaller unMarshalPatternFlowSnmpv2CPDURequestIdCounter } -func NewPatternFlowIpv4TosDelayCounter() PatternFlowIpv4TosDelayCounter { - obj := patternFlowIpv4TosDelayCounter{obj: &otg.PatternFlowIpv4TosDelayCounter{}} +func NewPatternFlowSnmpv2CPDURequestIdCounter() PatternFlowSnmpv2CPDURequestIdCounter { + obj := patternFlowSnmpv2CPDURequestIdCounter{obj: &otg.PatternFlowSnmpv2CPDURequestIdCounter{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4TosDelayCounter) msg() *otg.PatternFlowIpv4TosDelayCounter { +func (obj *patternFlowSnmpv2CPDURequestIdCounter) msg() *otg.PatternFlowSnmpv2CPDURequestIdCounter { return obj.obj } -func (obj *patternFlowIpv4TosDelayCounter) setMsg(msg *otg.PatternFlowIpv4TosDelayCounter) PatternFlowIpv4TosDelayCounter { +func (obj *patternFlowSnmpv2CPDURequestIdCounter) setMsg(msg *otg.PatternFlowSnmpv2CPDURequestIdCounter) PatternFlowSnmpv2CPDURequestIdCounter { proto.Merge(obj.obj, msg) return obj } -type marshalpatternFlowIpv4TosDelayCounter struct { - obj *patternFlowIpv4TosDelayCounter +type marshalpatternFlowSnmpv2CPDURequestIdCounter struct { + obj *patternFlowSnmpv2CPDURequestIdCounter } -type marshalPatternFlowIpv4TosDelayCounter interface { - // ToProto marshals PatternFlowIpv4TosDelayCounter to protobuf object *otg.PatternFlowIpv4TosDelayCounter - ToProto() (*otg.PatternFlowIpv4TosDelayCounter, error) - // ToPbText marshals PatternFlowIpv4TosDelayCounter to protobuf text +type marshalPatternFlowSnmpv2CPDURequestIdCounter interface { + // ToProto marshals PatternFlowSnmpv2CPDURequestIdCounter to protobuf object *otg.PatternFlowSnmpv2CPDURequestIdCounter + ToProto() (*otg.PatternFlowSnmpv2CPDURequestIdCounter, error) + // ToPbText marshals PatternFlowSnmpv2CPDURequestIdCounter to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4TosDelayCounter to YAML text + // ToYaml marshals PatternFlowSnmpv2CPDURequestIdCounter to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4TosDelayCounter to JSON text + // ToJson marshals PatternFlowSnmpv2CPDURequestIdCounter to JSON text ToJson() (string, error) } -type unMarshalpatternFlowIpv4TosDelayCounter struct { - obj *patternFlowIpv4TosDelayCounter +type unMarshalpatternFlowSnmpv2CPDURequestIdCounter struct { + obj *patternFlowSnmpv2CPDURequestIdCounter } -type unMarshalPatternFlowIpv4TosDelayCounter interface { - // FromProto unmarshals PatternFlowIpv4TosDelayCounter from protobuf object *otg.PatternFlowIpv4TosDelayCounter - FromProto(msg *otg.PatternFlowIpv4TosDelayCounter) (PatternFlowIpv4TosDelayCounter, error) - // FromPbText unmarshals PatternFlowIpv4TosDelayCounter from protobuf text +type unMarshalPatternFlowSnmpv2CPDURequestIdCounter interface { + // FromProto unmarshals PatternFlowSnmpv2CPDURequestIdCounter from protobuf object *otg.PatternFlowSnmpv2CPDURequestIdCounter + FromProto(msg *otg.PatternFlowSnmpv2CPDURequestIdCounter) (PatternFlowSnmpv2CPDURequestIdCounter, error) + // FromPbText unmarshals PatternFlowSnmpv2CPDURequestIdCounter from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4TosDelayCounter from YAML text + // FromYaml unmarshals PatternFlowSnmpv2CPDURequestIdCounter from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4TosDelayCounter from JSON text + // FromJson unmarshals PatternFlowSnmpv2CPDURequestIdCounter from JSON text FromJson(value string) error } -func (obj *patternFlowIpv4TosDelayCounter) Marshal() marshalPatternFlowIpv4TosDelayCounter { +func (obj *patternFlowSnmpv2CPDURequestIdCounter) Marshal() marshalPatternFlowSnmpv2CPDURequestIdCounter { if obj.marshaller == nil { - obj.marshaller = &marshalpatternFlowIpv4TosDelayCounter{obj: obj} + obj.marshaller = &marshalpatternFlowSnmpv2CPDURequestIdCounter{obj: obj} } return obj.marshaller } -func (obj *patternFlowIpv4TosDelayCounter) Unmarshal() unMarshalPatternFlowIpv4TosDelayCounter { +func (obj *patternFlowSnmpv2CPDURequestIdCounter) Unmarshal() unMarshalPatternFlowSnmpv2CPDURequestIdCounter { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalpatternFlowIpv4TosDelayCounter{obj: obj} + obj.unMarshaller = &unMarshalpatternFlowSnmpv2CPDURequestIdCounter{obj: obj} } return obj.unMarshaller } -func (m *marshalpatternFlowIpv4TosDelayCounter) ToProto() (*otg.PatternFlowIpv4TosDelayCounter, error) { +func (m *marshalpatternFlowSnmpv2CPDURequestIdCounter) ToProto() (*otg.PatternFlowSnmpv2CPDURequestIdCounter, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -331470,7 +344164,7 @@ func (m *marshalpatternFlowIpv4TosDelayCounter) ToProto() (*otg.PatternFlowIpv4T return m.obj.msg(), nil } -func (m *unMarshalpatternFlowIpv4TosDelayCounter) FromProto(msg *otg.PatternFlowIpv4TosDelayCounter) (PatternFlowIpv4TosDelayCounter, error) { +func (m *unMarshalpatternFlowSnmpv2CPDURequestIdCounter) FromProto(msg *otg.PatternFlowSnmpv2CPDURequestIdCounter) (PatternFlowSnmpv2CPDURequestIdCounter, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -331479,7 +344173,7 @@ func (m *unMarshalpatternFlowIpv4TosDelayCounter) FromProto(msg *otg.PatternFlow return newObj, nil } -func (m *marshalpatternFlowIpv4TosDelayCounter) ToPbText() (string, error) { +func (m *marshalpatternFlowSnmpv2CPDURequestIdCounter) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -331491,7 +344185,7 @@ func (m *marshalpatternFlowIpv4TosDelayCounter) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalpatternFlowIpv4TosDelayCounter) FromPbText(value string) error { +func (m *unMarshalpatternFlowSnmpv2CPDURequestIdCounter) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj @@ -331504,7 +344198,7 @@ func (m *unMarshalpatternFlowIpv4TosDelayCounter) FromPbText(value string) error return retObj } -func (m *marshalpatternFlowIpv4TosDelayCounter) ToYaml() (string, error) { +func (m *marshalpatternFlowSnmpv2CPDURequestIdCounter) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -331525,7 +344219,7 @@ func (m *marshalpatternFlowIpv4TosDelayCounter) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalpatternFlowIpv4TosDelayCounter) FromYaml(value string) error { +func (m *unMarshalpatternFlowSnmpv2CPDURequestIdCounter) FromYaml(value string) error { if value == "" { value = "{}" } @@ -331550,7 +344244,7 @@ func (m *unMarshalpatternFlowIpv4TosDelayCounter) FromYaml(value string) error { return nil } -func (m *marshalpatternFlowIpv4TosDelayCounter) ToJson() (string, error) { +func (m *marshalpatternFlowSnmpv2CPDURequestIdCounter) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -331568,7 +344262,7 @@ func (m *marshalpatternFlowIpv4TosDelayCounter) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalpatternFlowIpv4TosDelayCounter) FromJson(value string) error { +func (m *unMarshalpatternFlowSnmpv2CPDURequestIdCounter) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -331589,19 +344283,19 @@ func (m *unMarshalpatternFlowIpv4TosDelayCounter) FromJson(value string) error { return nil } -func (obj *patternFlowIpv4TosDelayCounter) validateToAndFrom() error { +func (obj *patternFlowSnmpv2CPDURequestIdCounter) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4TosDelayCounter) validate() error { +func (obj *patternFlowSnmpv2CPDURequestIdCounter) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4TosDelayCounter) String() string { +func (obj *patternFlowSnmpv2CPDURequestIdCounter) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -331609,12 +344303,12 @@ func (obj *patternFlowIpv4TosDelayCounter) String() string { return str } -func (obj *patternFlowIpv4TosDelayCounter) Clone() (PatternFlowIpv4TosDelayCounter, error) { +func (obj *patternFlowSnmpv2CPDURequestIdCounter) Clone() (PatternFlowSnmpv2CPDURequestIdCounter, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4TosDelayCounter() + newObj := NewPatternFlowSnmpv2CPDURequestIdCounter() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -331626,152 +344320,122 @@ func (obj *patternFlowIpv4TosDelayCounter) Clone() (PatternFlowIpv4TosDelayCount return newObj, nil } -// PatternFlowIpv4TosDelayCounter is integer counter pattern -type PatternFlowIpv4TosDelayCounter interface { +// PatternFlowSnmpv2CPDURequestIdCounter is integer counter pattern +type PatternFlowSnmpv2CPDURequestIdCounter interface { Validation - // msg marshals PatternFlowIpv4TosDelayCounter to protobuf object *otg.PatternFlowIpv4TosDelayCounter + // msg marshals PatternFlowSnmpv2CPDURequestIdCounter to protobuf object *otg.PatternFlowSnmpv2CPDURequestIdCounter // and doesn't set defaults - msg() *otg.PatternFlowIpv4TosDelayCounter - // setMsg unmarshals PatternFlowIpv4TosDelayCounter from protobuf object *otg.PatternFlowIpv4TosDelayCounter + msg() *otg.PatternFlowSnmpv2CPDURequestIdCounter + // setMsg unmarshals PatternFlowSnmpv2CPDURequestIdCounter from protobuf object *otg.PatternFlowSnmpv2CPDURequestIdCounter // and doesn't set defaults - setMsg(*otg.PatternFlowIpv4TosDelayCounter) PatternFlowIpv4TosDelayCounter + setMsg(*otg.PatternFlowSnmpv2CPDURequestIdCounter) PatternFlowSnmpv2CPDURequestIdCounter // provides marshal interface - Marshal() marshalPatternFlowIpv4TosDelayCounter + Marshal() marshalPatternFlowSnmpv2CPDURequestIdCounter // provides unmarshal interface - Unmarshal() unMarshalPatternFlowIpv4TosDelayCounter - // validate validates PatternFlowIpv4TosDelayCounter + Unmarshal() unMarshalPatternFlowSnmpv2CPDURequestIdCounter + // validate validates PatternFlowSnmpv2CPDURequestIdCounter validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4TosDelayCounter, error) + Clone() (PatternFlowSnmpv2CPDURequestIdCounter, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Start returns uint32, set in PatternFlowIpv4TosDelayCounter. - Start() uint32 - // SetStart assigns uint32 provided by user to PatternFlowIpv4TosDelayCounter - SetStart(value uint32) PatternFlowIpv4TosDelayCounter - // HasStart checks if Start has been set in PatternFlowIpv4TosDelayCounter + // Start returns int32, set in PatternFlowSnmpv2CPDURequestIdCounter. + Start() int32 + // SetStart assigns int32 provided by user to PatternFlowSnmpv2CPDURequestIdCounter + SetStart(value int32) PatternFlowSnmpv2CPDURequestIdCounter + // HasStart checks if Start has been set in PatternFlowSnmpv2CPDURequestIdCounter HasStart() bool - // Step returns uint32, set in PatternFlowIpv4TosDelayCounter. - Step() uint32 - // SetStep assigns uint32 provided by user to PatternFlowIpv4TosDelayCounter - SetStep(value uint32) PatternFlowIpv4TosDelayCounter - // HasStep checks if Step has been set in PatternFlowIpv4TosDelayCounter + // Step returns int32, set in PatternFlowSnmpv2CPDURequestIdCounter. + Step() int32 + // SetStep assigns int32 provided by user to PatternFlowSnmpv2CPDURequestIdCounter + SetStep(value int32) PatternFlowSnmpv2CPDURequestIdCounter + // HasStep checks if Step has been set in PatternFlowSnmpv2CPDURequestIdCounter HasStep() bool - // Count returns uint32, set in PatternFlowIpv4TosDelayCounter. - Count() uint32 - // SetCount assigns uint32 provided by user to PatternFlowIpv4TosDelayCounter - SetCount(value uint32) PatternFlowIpv4TosDelayCounter - // HasCount checks if Count has been set in PatternFlowIpv4TosDelayCounter + // Count returns int32, set in PatternFlowSnmpv2CPDURequestIdCounter. + Count() int32 + // SetCount assigns int32 provided by user to PatternFlowSnmpv2CPDURequestIdCounter + SetCount(value int32) PatternFlowSnmpv2CPDURequestIdCounter + // HasCount checks if Count has been set in PatternFlowSnmpv2CPDURequestIdCounter HasCount() bool } // description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4TosDelayCounter) Start() uint32 { +// Start returns a int32 +func (obj *patternFlowSnmpv2CPDURequestIdCounter) Start() int32 { return *obj.obj.Start } // description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4TosDelayCounter) HasStart() bool { +// Start returns a int32 +func (obj *patternFlowSnmpv2CPDURequestIdCounter) HasStart() bool { return obj.obj.Start != nil } // description is TBD -// SetStart sets the uint32 value in the PatternFlowIpv4TosDelayCounter object -func (obj *patternFlowIpv4TosDelayCounter) SetStart(value uint32) PatternFlowIpv4TosDelayCounter { +// SetStart sets the int32 value in the PatternFlowSnmpv2CPDURequestIdCounter object +func (obj *patternFlowSnmpv2CPDURequestIdCounter) SetStart(value int32) PatternFlowSnmpv2CPDURequestIdCounter { obj.obj.Start = &value return obj } // description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4TosDelayCounter) Step() uint32 { +// Step returns a int32 +func (obj *patternFlowSnmpv2CPDURequestIdCounter) Step() int32 { return *obj.obj.Step } // description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4TosDelayCounter) HasStep() bool { +// Step returns a int32 +func (obj *patternFlowSnmpv2CPDURequestIdCounter) HasStep() bool { return obj.obj.Step != nil } // description is TBD -// SetStep sets the uint32 value in the PatternFlowIpv4TosDelayCounter object -func (obj *patternFlowIpv4TosDelayCounter) SetStep(value uint32) PatternFlowIpv4TosDelayCounter { +// SetStep sets the int32 value in the PatternFlowSnmpv2CPDURequestIdCounter object +func (obj *patternFlowSnmpv2CPDURequestIdCounter) SetStep(value int32) PatternFlowSnmpv2CPDURequestIdCounter { obj.obj.Step = &value return obj } // description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4TosDelayCounter) Count() uint32 { +// Count returns a int32 +func (obj *patternFlowSnmpv2CPDURequestIdCounter) Count() int32 { return *obj.obj.Count } // description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4TosDelayCounter) HasCount() bool { +// Count returns a int32 +func (obj *patternFlowSnmpv2CPDURequestIdCounter) HasCount() bool { return obj.obj.Count != nil } // description is TBD -// SetCount sets the uint32 value in the PatternFlowIpv4TosDelayCounter object -func (obj *patternFlowIpv4TosDelayCounter) SetCount(value uint32) PatternFlowIpv4TosDelayCounter { +// SetCount sets the int32 value in the PatternFlowSnmpv2CPDURequestIdCounter object +func (obj *patternFlowSnmpv2CPDURequestIdCounter) SetCount(value int32) PatternFlowSnmpv2CPDURequestIdCounter { obj.obj.Count = &value return obj } -func (obj *patternFlowIpv4TosDelayCounter) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowSnmpv2CPDURequestIdCounter) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Start != nil { - - if *obj.obj.Start > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosDelayCounter.Start <= 1 but Got %d", *obj.obj.Start)) - } - - } - - if obj.obj.Step != nil { - - if *obj.obj.Step > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosDelayCounter.Step <= 1 but Got %d", *obj.obj.Step)) - } - - } - - if obj.obj.Count != nil { - - if *obj.obj.Count > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosDelayCounter.Count <= 1 but Got %d", *obj.obj.Count)) - } - - } - } -func (obj *patternFlowIpv4TosDelayCounter) setDefault() { +func (obj *patternFlowSnmpv2CPDURequestIdCounter) setDefault() { if obj.obj.Start == nil { obj.SetStart(0) } @@ -331784,75 +344448,75 @@ func (obj *patternFlowIpv4TosDelayCounter) setDefault() { } -// ***** PatternFlowIpv4TosDelayMetricTag ***** -type patternFlowIpv4TosDelayMetricTag struct { +// ***** PatternFlowSnmpv2CPDUErrorIndexCounter ***** +type patternFlowSnmpv2CPDUErrorIndexCounter struct { validation - obj *otg.PatternFlowIpv4TosDelayMetricTag - marshaller marshalPatternFlowIpv4TosDelayMetricTag - unMarshaller unMarshalPatternFlowIpv4TosDelayMetricTag + obj *otg.PatternFlowSnmpv2CPDUErrorIndexCounter + marshaller marshalPatternFlowSnmpv2CPDUErrorIndexCounter + unMarshaller unMarshalPatternFlowSnmpv2CPDUErrorIndexCounter } -func NewPatternFlowIpv4TosDelayMetricTag() PatternFlowIpv4TosDelayMetricTag { - obj := patternFlowIpv4TosDelayMetricTag{obj: &otg.PatternFlowIpv4TosDelayMetricTag{}} +func NewPatternFlowSnmpv2CPDUErrorIndexCounter() PatternFlowSnmpv2CPDUErrorIndexCounter { + obj := patternFlowSnmpv2CPDUErrorIndexCounter{obj: &otg.PatternFlowSnmpv2CPDUErrorIndexCounter{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4TosDelayMetricTag) msg() *otg.PatternFlowIpv4TosDelayMetricTag { +func (obj *patternFlowSnmpv2CPDUErrorIndexCounter) msg() *otg.PatternFlowSnmpv2CPDUErrorIndexCounter { return obj.obj } -func (obj *patternFlowIpv4TosDelayMetricTag) setMsg(msg *otg.PatternFlowIpv4TosDelayMetricTag) PatternFlowIpv4TosDelayMetricTag { +func (obj *patternFlowSnmpv2CPDUErrorIndexCounter) setMsg(msg *otg.PatternFlowSnmpv2CPDUErrorIndexCounter) PatternFlowSnmpv2CPDUErrorIndexCounter { proto.Merge(obj.obj, msg) return obj } -type marshalpatternFlowIpv4TosDelayMetricTag struct { - obj *patternFlowIpv4TosDelayMetricTag +type marshalpatternFlowSnmpv2CPDUErrorIndexCounter struct { + obj *patternFlowSnmpv2CPDUErrorIndexCounter } -type marshalPatternFlowIpv4TosDelayMetricTag interface { - // ToProto marshals PatternFlowIpv4TosDelayMetricTag to protobuf object *otg.PatternFlowIpv4TosDelayMetricTag - ToProto() (*otg.PatternFlowIpv4TosDelayMetricTag, error) - // ToPbText marshals PatternFlowIpv4TosDelayMetricTag to protobuf text +type marshalPatternFlowSnmpv2CPDUErrorIndexCounter interface { + // ToProto marshals PatternFlowSnmpv2CPDUErrorIndexCounter to protobuf object *otg.PatternFlowSnmpv2CPDUErrorIndexCounter + ToProto() (*otg.PatternFlowSnmpv2CPDUErrorIndexCounter, error) + // ToPbText marshals PatternFlowSnmpv2CPDUErrorIndexCounter to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4TosDelayMetricTag to YAML text + // ToYaml marshals PatternFlowSnmpv2CPDUErrorIndexCounter to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4TosDelayMetricTag to JSON text + // ToJson marshals PatternFlowSnmpv2CPDUErrorIndexCounter to JSON text ToJson() (string, error) } -type unMarshalpatternFlowIpv4TosDelayMetricTag struct { - obj *patternFlowIpv4TosDelayMetricTag +type unMarshalpatternFlowSnmpv2CPDUErrorIndexCounter struct { + obj *patternFlowSnmpv2CPDUErrorIndexCounter } -type unMarshalPatternFlowIpv4TosDelayMetricTag interface { - // FromProto unmarshals PatternFlowIpv4TosDelayMetricTag from protobuf object *otg.PatternFlowIpv4TosDelayMetricTag - FromProto(msg *otg.PatternFlowIpv4TosDelayMetricTag) (PatternFlowIpv4TosDelayMetricTag, error) - // FromPbText unmarshals PatternFlowIpv4TosDelayMetricTag from protobuf text +type unMarshalPatternFlowSnmpv2CPDUErrorIndexCounter interface { + // FromProto unmarshals PatternFlowSnmpv2CPDUErrorIndexCounter from protobuf object *otg.PatternFlowSnmpv2CPDUErrorIndexCounter + FromProto(msg *otg.PatternFlowSnmpv2CPDUErrorIndexCounter) (PatternFlowSnmpv2CPDUErrorIndexCounter, error) + // FromPbText unmarshals PatternFlowSnmpv2CPDUErrorIndexCounter from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4TosDelayMetricTag from YAML text + // FromYaml unmarshals PatternFlowSnmpv2CPDUErrorIndexCounter from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4TosDelayMetricTag from JSON text + // FromJson unmarshals PatternFlowSnmpv2CPDUErrorIndexCounter from JSON text FromJson(value string) error } -func (obj *patternFlowIpv4TosDelayMetricTag) Marshal() marshalPatternFlowIpv4TosDelayMetricTag { +func (obj *patternFlowSnmpv2CPDUErrorIndexCounter) Marshal() marshalPatternFlowSnmpv2CPDUErrorIndexCounter { if obj.marshaller == nil { - obj.marshaller = &marshalpatternFlowIpv4TosDelayMetricTag{obj: obj} + obj.marshaller = &marshalpatternFlowSnmpv2CPDUErrorIndexCounter{obj: obj} } return obj.marshaller } -func (obj *patternFlowIpv4TosDelayMetricTag) Unmarshal() unMarshalPatternFlowIpv4TosDelayMetricTag { +func (obj *patternFlowSnmpv2CPDUErrorIndexCounter) Unmarshal() unMarshalPatternFlowSnmpv2CPDUErrorIndexCounter { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalpatternFlowIpv4TosDelayMetricTag{obj: obj} + obj.unMarshaller = &unMarshalpatternFlowSnmpv2CPDUErrorIndexCounter{obj: obj} } return obj.unMarshaller } -func (m *marshalpatternFlowIpv4TosDelayMetricTag) ToProto() (*otg.PatternFlowIpv4TosDelayMetricTag, error) { +func (m *marshalpatternFlowSnmpv2CPDUErrorIndexCounter) ToProto() (*otg.PatternFlowSnmpv2CPDUErrorIndexCounter, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -331860,7 +344524,7 @@ func (m *marshalpatternFlowIpv4TosDelayMetricTag) ToProto() (*otg.PatternFlowIpv return m.obj.msg(), nil } -func (m *unMarshalpatternFlowIpv4TosDelayMetricTag) FromProto(msg *otg.PatternFlowIpv4TosDelayMetricTag) (PatternFlowIpv4TosDelayMetricTag, error) { +func (m *unMarshalpatternFlowSnmpv2CPDUErrorIndexCounter) FromProto(msg *otg.PatternFlowSnmpv2CPDUErrorIndexCounter) (PatternFlowSnmpv2CPDUErrorIndexCounter, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -331869,7 +344533,7 @@ func (m *unMarshalpatternFlowIpv4TosDelayMetricTag) FromProto(msg *otg.PatternFl return newObj, nil } -func (m *marshalpatternFlowIpv4TosDelayMetricTag) ToPbText() (string, error) { +func (m *marshalpatternFlowSnmpv2CPDUErrorIndexCounter) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -331881,7 +344545,7 @@ func (m *marshalpatternFlowIpv4TosDelayMetricTag) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalpatternFlowIpv4TosDelayMetricTag) FromPbText(value string) error { +func (m *unMarshalpatternFlowSnmpv2CPDUErrorIndexCounter) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj @@ -331894,7 +344558,7 @@ func (m *unMarshalpatternFlowIpv4TosDelayMetricTag) FromPbText(value string) err return retObj } -func (m *marshalpatternFlowIpv4TosDelayMetricTag) ToYaml() (string, error) { +func (m *marshalpatternFlowSnmpv2CPDUErrorIndexCounter) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -331915,7 +344579,7 @@ func (m *marshalpatternFlowIpv4TosDelayMetricTag) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalpatternFlowIpv4TosDelayMetricTag) FromYaml(value string) error { +func (m *unMarshalpatternFlowSnmpv2CPDUErrorIndexCounter) FromYaml(value string) error { if value == "" { value = "{}" } @@ -331940,7 +344604,7 @@ func (m *unMarshalpatternFlowIpv4TosDelayMetricTag) FromYaml(value string) error return nil } -func (m *marshalpatternFlowIpv4TosDelayMetricTag) ToJson() (string, error) { +func (m *marshalpatternFlowSnmpv2CPDUErrorIndexCounter) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -331958,7 +344622,7 @@ func (m *marshalpatternFlowIpv4TosDelayMetricTag) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalpatternFlowIpv4TosDelayMetricTag) FromJson(value string) error { +func (m *unMarshalpatternFlowSnmpv2CPDUErrorIndexCounter) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -331979,19 +344643,19 @@ func (m *unMarshalpatternFlowIpv4TosDelayMetricTag) FromJson(value string) error return nil } -func (obj *patternFlowIpv4TosDelayMetricTag) validateToAndFrom() error { +func (obj *patternFlowSnmpv2CPDUErrorIndexCounter) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4TosDelayMetricTag) validate() error { +func (obj *patternFlowSnmpv2CPDUErrorIndexCounter) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4TosDelayMetricTag) String() string { +func (obj *patternFlowSnmpv2CPDUErrorIndexCounter) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -331999,12 +344663,12 @@ func (obj *patternFlowIpv4TosDelayMetricTag) String() string { return str } -func (obj *patternFlowIpv4TosDelayMetricTag) Clone() (PatternFlowIpv4TosDelayMetricTag, error) { +func (obj *patternFlowSnmpv2CPDUErrorIndexCounter) Clone() (PatternFlowSnmpv2CPDUErrorIndexCounter, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4TosDelayMetricTag() + newObj := NewPatternFlowSnmpv2CPDUErrorIndexCounter() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -332016,217 +344680,209 @@ func (obj *patternFlowIpv4TosDelayMetricTag) Clone() (PatternFlowIpv4TosDelayMet return newObj, nil } -// PatternFlowIpv4TosDelayMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. -type PatternFlowIpv4TosDelayMetricTag interface { +// PatternFlowSnmpv2CPDUErrorIndexCounter is integer counter pattern +type PatternFlowSnmpv2CPDUErrorIndexCounter interface { Validation - // msg marshals PatternFlowIpv4TosDelayMetricTag to protobuf object *otg.PatternFlowIpv4TosDelayMetricTag + // msg marshals PatternFlowSnmpv2CPDUErrorIndexCounter to protobuf object *otg.PatternFlowSnmpv2CPDUErrorIndexCounter // and doesn't set defaults - msg() *otg.PatternFlowIpv4TosDelayMetricTag - // setMsg unmarshals PatternFlowIpv4TosDelayMetricTag from protobuf object *otg.PatternFlowIpv4TosDelayMetricTag + msg() *otg.PatternFlowSnmpv2CPDUErrorIndexCounter + // setMsg unmarshals PatternFlowSnmpv2CPDUErrorIndexCounter from protobuf object *otg.PatternFlowSnmpv2CPDUErrorIndexCounter // and doesn't set defaults - setMsg(*otg.PatternFlowIpv4TosDelayMetricTag) PatternFlowIpv4TosDelayMetricTag + setMsg(*otg.PatternFlowSnmpv2CPDUErrorIndexCounter) PatternFlowSnmpv2CPDUErrorIndexCounter // provides marshal interface - Marshal() marshalPatternFlowIpv4TosDelayMetricTag + Marshal() marshalPatternFlowSnmpv2CPDUErrorIndexCounter // provides unmarshal interface - Unmarshal() unMarshalPatternFlowIpv4TosDelayMetricTag - // validate validates PatternFlowIpv4TosDelayMetricTag + Unmarshal() unMarshalPatternFlowSnmpv2CPDUErrorIndexCounter + // validate validates PatternFlowSnmpv2CPDUErrorIndexCounter validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4TosDelayMetricTag, error) + Clone() (PatternFlowSnmpv2CPDUErrorIndexCounter, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Name returns string, set in PatternFlowIpv4TosDelayMetricTag. - Name() string - // SetName assigns string provided by user to PatternFlowIpv4TosDelayMetricTag - SetName(value string) PatternFlowIpv4TosDelayMetricTag - // Offset returns uint32, set in PatternFlowIpv4TosDelayMetricTag. - Offset() uint32 - // SetOffset assigns uint32 provided by user to PatternFlowIpv4TosDelayMetricTag - SetOffset(value uint32) PatternFlowIpv4TosDelayMetricTag - // HasOffset checks if Offset has been set in PatternFlowIpv4TosDelayMetricTag - HasOffset() bool - // Length returns uint32, set in PatternFlowIpv4TosDelayMetricTag. - Length() uint32 - // SetLength assigns uint32 provided by user to PatternFlowIpv4TosDelayMetricTag - SetLength(value uint32) PatternFlowIpv4TosDelayMetricTag - // HasLength checks if Length has been set in PatternFlowIpv4TosDelayMetricTag - HasLength() bool + // Start returns uint32, set in PatternFlowSnmpv2CPDUErrorIndexCounter. + Start() uint32 + // SetStart assigns uint32 provided by user to PatternFlowSnmpv2CPDUErrorIndexCounter + SetStart(value uint32) PatternFlowSnmpv2CPDUErrorIndexCounter + // HasStart checks if Start has been set in PatternFlowSnmpv2CPDUErrorIndexCounter + HasStart() bool + // Step returns uint32, set in PatternFlowSnmpv2CPDUErrorIndexCounter. + Step() uint32 + // SetStep assigns uint32 provided by user to PatternFlowSnmpv2CPDUErrorIndexCounter + SetStep(value uint32) PatternFlowSnmpv2CPDUErrorIndexCounter + // HasStep checks if Step has been set in PatternFlowSnmpv2CPDUErrorIndexCounter + HasStep() bool + // Count returns uint32, set in PatternFlowSnmpv2CPDUErrorIndexCounter. + Count() uint32 + // SetCount assigns uint32 provided by user to PatternFlowSnmpv2CPDUErrorIndexCounter + SetCount(value uint32) PatternFlowSnmpv2CPDUErrorIndexCounter + // HasCount checks if Count has been set in PatternFlowSnmpv2CPDUErrorIndexCounter + HasCount() bool } -// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// Name returns a string -func (obj *patternFlowIpv4TosDelayMetricTag) Name() string { +// description is TBD +// Start returns a uint32 +func (obj *patternFlowSnmpv2CPDUErrorIndexCounter) Start() uint32 { - return *obj.obj.Name + return *obj.obj.Start } -// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// SetName sets the string value in the PatternFlowIpv4TosDelayMetricTag object -func (obj *patternFlowIpv4TosDelayMetricTag) SetName(value string) PatternFlowIpv4TosDelayMetricTag { +// description is TBD +// Start returns a uint32 +func (obj *patternFlowSnmpv2CPDUErrorIndexCounter) HasStart() bool { + return obj.obj.Start != nil +} - obj.obj.Name = &value +// description is TBD +// SetStart sets the uint32 value in the PatternFlowSnmpv2CPDUErrorIndexCounter object +func (obj *patternFlowSnmpv2CPDUErrorIndexCounter) SetStart(value uint32) PatternFlowSnmpv2CPDUErrorIndexCounter { + + obj.obj.Start = &value return obj } -// Offset in bits relative to start of corresponding header field -// Offset returns a uint32 -func (obj *patternFlowIpv4TosDelayMetricTag) Offset() uint32 { +// description is TBD +// Step returns a uint32 +func (obj *patternFlowSnmpv2CPDUErrorIndexCounter) Step() uint32 { - return *obj.obj.Offset + return *obj.obj.Step } -// Offset in bits relative to start of corresponding header field -// Offset returns a uint32 -func (obj *patternFlowIpv4TosDelayMetricTag) HasOffset() bool { - return obj.obj.Offset != nil +// description is TBD +// Step returns a uint32 +func (obj *patternFlowSnmpv2CPDUErrorIndexCounter) HasStep() bool { + return obj.obj.Step != nil } -// Offset in bits relative to start of corresponding header field -// SetOffset sets the uint32 value in the PatternFlowIpv4TosDelayMetricTag object -func (obj *patternFlowIpv4TosDelayMetricTag) SetOffset(value uint32) PatternFlowIpv4TosDelayMetricTag { +// description is TBD +// SetStep sets the uint32 value in the PatternFlowSnmpv2CPDUErrorIndexCounter object +func (obj *patternFlowSnmpv2CPDUErrorIndexCounter) SetStep(value uint32) PatternFlowSnmpv2CPDUErrorIndexCounter { - obj.obj.Offset = &value + obj.obj.Step = &value return obj } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// Length returns a uint32 -func (obj *patternFlowIpv4TosDelayMetricTag) Length() uint32 { +// description is TBD +// Count returns a uint32 +func (obj *patternFlowSnmpv2CPDUErrorIndexCounter) Count() uint32 { - return *obj.obj.Length + return *obj.obj.Count } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// Length returns a uint32 -func (obj *patternFlowIpv4TosDelayMetricTag) HasLength() bool { - return obj.obj.Length != nil +// description is TBD +// Count returns a uint32 +func (obj *patternFlowSnmpv2CPDUErrorIndexCounter) HasCount() bool { + return obj.obj.Count != nil } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// SetLength sets the uint32 value in the PatternFlowIpv4TosDelayMetricTag object -func (obj *patternFlowIpv4TosDelayMetricTag) SetLength(value uint32) PatternFlowIpv4TosDelayMetricTag { +// description is TBD +// SetCount sets the uint32 value in the PatternFlowSnmpv2CPDUErrorIndexCounter object +func (obj *patternFlowSnmpv2CPDUErrorIndexCounter) SetCount(value uint32) PatternFlowSnmpv2CPDUErrorIndexCounter { - obj.obj.Length = &value + obj.obj.Count = &value return obj } -func (obj *patternFlowIpv4TosDelayMetricTag) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowSnmpv2CPDUErrorIndexCounter) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - // Name is required - if obj.obj.Name == nil { - vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosDelayMetricTag") - } - - if obj.obj.Offset != nil { - - if *obj.obj.Offset > 0 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosDelayMetricTag.Offset <= 0 but Got %d", *obj.obj.Offset)) - } - - } - - if obj.obj.Length != nil { - - if *obj.obj.Length < 1 || *obj.obj.Length > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("1 <= PatternFlowIpv4TosDelayMetricTag.Length <= 1 but Got %d", *obj.obj.Length)) - } - - } - } -func (obj *patternFlowIpv4TosDelayMetricTag) setDefault() { - if obj.obj.Offset == nil { - obj.SetOffset(0) +func (obj *patternFlowSnmpv2CPDUErrorIndexCounter) setDefault() { + if obj.obj.Start == nil { + obj.SetStart(0) } - if obj.obj.Length == nil { - obj.SetLength(1) + if obj.obj.Step == nil { + obj.SetStep(1) + } + if obj.obj.Count == nil { + obj.SetCount(1) } } -// ***** PatternFlowIpv4TosThroughputCounter ***** -type patternFlowIpv4TosThroughputCounter struct { +// ***** FlowSnmpv2CVariableBindingValue ***** +type flowSnmpv2CVariableBindingValue struct { validation - obj *otg.PatternFlowIpv4TosThroughputCounter - marshaller marshalPatternFlowIpv4TosThroughputCounter - unMarshaller unMarshalPatternFlowIpv4TosThroughputCounter -} - -func NewPatternFlowIpv4TosThroughputCounter() PatternFlowIpv4TosThroughputCounter { - obj := patternFlowIpv4TosThroughputCounter{obj: &otg.PatternFlowIpv4TosThroughputCounter{}} + obj *otg.FlowSnmpv2CVariableBindingValue + marshaller marshalFlowSnmpv2CVariableBindingValue + unMarshaller unMarshalFlowSnmpv2CVariableBindingValue + integerValueHolder PatternFlowSnmpv2CVariableBindingValueIntegerValue + ipAddressValueHolder PatternFlowSnmpv2CVariableBindingValueIpAddressValue + counterValueHolder PatternFlowSnmpv2CVariableBindingValueCounterValue + timeticksValueHolder PatternFlowSnmpv2CVariableBindingValueTimeticksValue + bigCounterValueHolder PatternFlowSnmpv2CVariableBindingValueBigCounterValue + unsignedIntegerValueHolder PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue +} + +func NewFlowSnmpv2CVariableBindingValue() FlowSnmpv2CVariableBindingValue { + obj := flowSnmpv2CVariableBindingValue{obj: &otg.FlowSnmpv2CVariableBindingValue{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4TosThroughputCounter) msg() *otg.PatternFlowIpv4TosThroughputCounter { +func (obj *flowSnmpv2CVariableBindingValue) msg() *otg.FlowSnmpv2CVariableBindingValue { return obj.obj } -func (obj *patternFlowIpv4TosThroughputCounter) setMsg(msg *otg.PatternFlowIpv4TosThroughputCounter) PatternFlowIpv4TosThroughputCounter { - +func (obj *flowSnmpv2CVariableBindingValue) setMsg(msg *otg.FlowSnmpv2CVariableBindingValue) FlowSnmpv2CVariableBindingValue { + obj.setNil() proto.Merge(obj.obj, msg) return obj } -type marshalpatternFlowIpv4TosThroughputCounter struct { - obj *patternFlowIpv4TosThroughputCounter +type marshalflowSnmpv2CVariableBindingValue struct { + obj *flowSnmpv2CVariableBindingValue } -type marshalPatternFlowIpv4TosThroughputCounter interface { - // ToProto marshals PatternFlowIpv4TosThroughputCounter to protobuf object *otg.PatternFlowIpv4TosThroughputCounter - ToProto() (*otg.PatternFlowIpv4TosThroughputCounter, error) - // ToPbText marshals PatternFlowIpv4TosThroughputCounter to protobuf text +type marshalFlowSnmpv2CVariableBindingValue interface { + // ToProto marshals FlowSnmpv2CVariableBindingValue to protobuf object *otg.FlowSnmpv2CVariableBindingValue + ToProto() (*otg.FlowSnmpv2CVariableBindingValue, error) + // ToPbText marshals FlowSnmpv2CVariableBindingValue to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4TosThroughputCounter to YAML text + // ToYaml marshals FlowSnmpv2CVariableBindingValue to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4TosThroughputCounter to JSON text + // ToJson marshals FlowSnmpv2CVariableBindingValue to JSON text ToJson() (string, error) } -type unMarshalpatternFlowIpv4TosThroughputCounter struct { - obj *patternFlowIpv4TosThroughputCounter +type unMarshalflowSnmpv2CVariableBindingValue struct { + obj *flowSnmpv2CVariableBindingValue } -type unMarshalPatternFlowIpv4TosThroughputCounter interface { - // FromProto unmarshals PatternFlowIpv4TosThroughputCounter from protobuf object *otg.PatternFlowIpv4TosThroughputCounter - FromProto(msg *otg.PatternFlowIpv4TosThroughputCounter) (PatternFlowIpv4TosThroughputCounter, error) - // FromPbText unmarshals PatternFlowIpv4TosThroughputCounter from protobuf text +type unMarshalFlowSnmpv2CVariableBindingValue interface { + // FromProto unmarshals FlowSnmpv2CVariableBindingValue from protobuf object *otg.FlowSnmpv2CVariableBindingValue + FromProto(msg *otg.FlowSnmpv2CVariableBindingValue) (FlowSnmpv2CVariableBindingValue, error) + // FromPbText unmarshals FlowSnmpv2CVariableBindingValue from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4TosThroughputCounter from YAML text + // FromYaml unmarshals FlowSnmpv2CVariableBindingValue from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4TosThroughputCounter from JSON text + // FromJson unmarshals FlowSnmpv2CVariableBindingValue from JSON text FromJson(value string) error } -func (obj *patternFlowIpv4TosThroughputCounter) Marshal() marshalPatternFlowIpv4TosThroughputCounter { +func (obj *flowSnmpv2CVariableBindingValue) Marshal() marshalFlowSnmpv2CVariableBindingValue { if obj.marshaller == nil { - obj.marshaller = &marshalpatternFlowIpv4TosThroughputCounter{obj: obj} + obj.marshaller = &marshalflowSnmpv2CVariableBindingValue{obj: obj} } return obj.marshaller } -func (obj *patternFlowIpv4TosThroughputCounter) Unmarshal() unMarshalPatternFlowIpv4TosThroughputCounter { +func (obj *flowSnmpv2CVariableBindingValue) Unmarshal() unMarshalFlowSnmpv2CVariableBindingValue { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalpatternFlowIpv4TosThroughputCounter{obj: obj} + obj.unMarshaller = &unMarshalflowSnmpv2CVariableBindingValue{obj: obj} } return obj.unMarshaller } -func (m *marshalpatternFlowIpv4TosThroughputCounter) ToProto() (*otg.PatternFlowIpv4TosThroughputCounter, error) { +func (m *marshalflowSnmpv2CVariableBindingValue) ToProto() (*otg.FlowSnmpv2CVariableBindingValue, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -332234,7 +344890,7 @@ func (m *marshalpatternFlowIpv4TosThroughputCounter) ToProto() (*otg.PatternFlow return m.obj.msg(), nil } -func (m *unMarshalpatternFlowIpv4TosThroughputCounter) FromProto(msg *otg.PatternFlowIpv4TosThroughputCounter) (PatternFlowIpv4TosThroughputCounter, error) { +func (m *unMarshalflowSnmpv2CVariableBindingValue) FromProto(msg *otg.FlowSnmpv2CVariableBindingValue) (FlowSnmpv2CVariableBindingValue, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -332243,7 +344899,7 @@ func (m *unMarshalpatternFlowIpv4TosThroughputCounter) FromProto(msg *otg.Patter return newObj, nil } -func (m *marshalpatternFlowIpv4TosThroughputCounter) ToPbText() (string, error) { +func (m *marshalflowSnmpv2CVariableBindingValue) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -332255,12 +344911,12 @@ func (m *marshalpatternFlowIpv4TosThroughputCounter) ToPbText() (string, error) return string(protoMarshal), nil } -func (m *unMarshalpatternFlowIpv4TosThroughputCounter) FromPbText(value string) error { +func (m *unMarshalflowSnmpv2CVariableBindingValue) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -332268,7 +344924,7 @@ func (m *unMarshalpatternFlowIpv4TosThroughputCounter) FromPbText(value string) return retObj } -func (m *marshalpatternFlowIpv4TosThroughputCounter) ToYaml() (string, error) { +func (m *marshalflowSnmpv2CVariableBindingValue) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -332289,7 +344945,7 @@ func (m *marshalpatternFlowIpv4TosThroughputCounter) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalpatternFlowIpv4TosThroughputCounter) FromYaml(value string) error { +func (m *unMarshalflowSnmpv2CVariableBindingValue) FromYaml(value string) error { if value == "" { value = "{}" } @@ -332306,7 +344962,7 @@ func (m *unMarshalpatternFlowIpv4TosThroughputCounter) FromYaml(value string) er return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -332314,7 +344970,7 @@ func (m *unMarshalpatternFlowIpv4TosThroughputCounter) FromYaml(value string) er return nil } -func (m *marshalpatternFlowIpv4TosThroughputCounter) ToJson() (string, error) { +func (m *marshalflowSnmpv2CVariableBindingValue) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -332332,7 +344988,7 @@ func (m *marshalpatternFlowIpv4TosThroughputCounter) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalpatternFlowIpv4TosThroughputCounter) FromJson(value string) error { +func (m *unMarshalflowSnmpv2CVariableBindingValue) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -332345,7 +345001,7 @@ func (m *unMarshalpatternFlowIpv4TosThroughputCounter) FromJson(value string) er return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() err := m.obj.validateToAndFrom() if err != nil { return err @@ -332353,19 +345009,19 @@ func (m *unMarshalpatternFlowIpv4TosThroughputCounter) FromJson(value string) er return nil } -func (obj *patternFlowIpv4TosThroughputCounter) validateToAndFrom() error { +func (obj *flowSnmpv2CVariableBindingValue) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4TosThroughputCounter) validate() error { +func (obj *flowSnmpv2CVariableBindingValue) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4TosThroughputCounter) String() string { +func (obj *flowSnmpv2CVariableBindingValue) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -332373,12 +345029,12 @@ func (obj *patternFlowIpv4TosThroughputCounter) String() string { return str } -func (obj *patternFlowIpv4TosThroughputCounter) Clone() (PatternFlowIpv4TosThroughputCounter, error) { +func (obj *flowSnmpv2CVariableBindingValue) Clone() (FlowSnmpv2CVariableBindingValue, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4TosThroughputCounter() + newObj := NewFlowSnmpv2CVariableBindingValue() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -332390,233 +345046,646 @@ func (obj *patternFlowIpv4TosThroughputCounter) Clone() (PatternFlowIpv4TosThrou return newObj, nil } -// PatternFlowIpv4TosThroughputCounter is integer counter pattern -type PatternFlowIpv4TosThroughputCounter interface { +func (obj *flowSnmpv2CVariableBindingValue) setNil() { + obj.integerValueHolder = nil + obj.ipAddressValueHolder = nil + obj.counterValueHolder = nil + obj.timeticksValueHolder = nil + obj.bigCounterValueHolder = nil + obj.unsignedIntegerValueHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// FlowSnmpv2CVariableBindingValue is the value for the object_identifier as per RFC2578. +type FlowSnmpv2CVariableBindingValue interface { Validation - // msg marshals PatternFlowIpv4TosThroughputCounter to protobuf object *otg.PatternFlowIpv4TosThroughputCounter + // msg marshals FlowSnmpv2CVariableBindingValue to protobuf object *otg.FlowSnmpv2CVariableBindingValue // and doesn't set defaults - msg() *otg.PatternFlowIpv4TosThroughputCounter - // setMsg unmarshals PatternFlowIpv4TosThroughputCounter from protobuf object *otg.PatternFlowIpv4TosThroughputCounter + msg() *otg.FlowSnmpv2CVariableBindingValue + // setMsg unmarshals FlowSnmpv2CVariableBindingValue from protobuf object *otg.FlowSnmpv2CVariableBindingValue // and doesn't set defaults - setMsg(*otg.PatternFlowIpv4TosThroughputCounter) PatternFlowIpv4TosThroughputCounter + setMsg(*otg.FlowSnmpv2CVariableBindingValue) FlowSnmpv2CVariableBindingValue // provides marshal interface - Marshal() marshalPatternFlowIpv4TosThroughputCounter + Marshal() marshalFlowSnmpv2CVariableBindingValue // provides unmarshal interface - Unmarshal() unMarshalPatternFlowIpv4TosThroughputCounter - // validate validates PatternFlowIpv4TosThroughputCounter + Unmarshal() unMarshalFlowSnmpv2CVariableBindingValue + // validate validates FlowSnmpv2CVariableBindingValue validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4TosThroughputCounter, error) + Clone() (FlowSnmpv2CVariableBindingValue, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Start returns uint32, set in PatternFlowIpv4TosThroughputCounter. - Start() uint32 - // SetStart assigns uint32 provided by user to PatternFlowIpv4TosThroughputCounter - SetStart(value uint32) PatternFlowIpv4TosThroughputCounter - // HasStart checks if Start has been set in PatternFlowIpv4TosThroughputCounter - HasStart() bool - // Step returns uint32, set in PatternFlowIpv4TosThroughputCounter. - Step() uint32 - // SetStep assigns uint32 provided by user to PatternFlowIpv4TosThroughputCounter - SetStep(value uint32) PatternFlowIpv4TosThroughputCounter - // HasStep checks if Step has been set in PatternFlowIpv4TosThroughputCounter - HasStep() bool - // Count returns uint32, set in PatternFlowIpv4TosThroughputCounter. - Count() uint32 - // SetCount assigns uint32 provided by user to PatternFlowIpv4TosThroughputCounter - SetCount(value uint32) PatternFlowIpv4TosThroughputCounter - // HasCount checks if Count has been set in PatternFlowIpv4TosThroughputCounter - HasCount() bool + // Choice returns FlowSnmpv2CVariableBindingValueChoiceEnum, set in FlowSnmpv2CVariableBindingValue + Choice() FlowSnmpv2CVariableBindingValueChoiceEnum + // setChoice assigns FlowSnmpv2CVariableBindingValueChoiceEnum provided by user to FlowSnmpv2CVariableBindingValue + setChoice(value FlowSnmpv2CVariableBindingValueChoiceEnum) FlowSnmpv2CVariableBindingValue + // HasChoice checks if Choice has been set in FlowSnmpv2CVariableBindingValue + HasChoice() bool + // getter for NoValue to set choice. + NoValue() + // IntegerValue returns PatternFlowSnmpv2CVariableBindingValueIntegerValue, set in FlowSnmpv2CVariableBindingValue. + IntegerValue() PatternFlowSnmpv2CVariableBindingValueIntegerValue + // SetIntegerValue assigns PatternFlowSnmpv2CVariableBindingValueIntegerValue provided by user to FlowSnmpv2CVariableBindingValue. + SetIntegerValue(value PatternFlowSnmpv2CVariableBindingValueIntegerValue) FlowSnmpv2CVariableBindingValue + // HasIntegerValue checks if IntegerValue has been set in FlowSnmpv2CVariableBindingValue + HasIntegerValue() bool + // StringValue returns string, set in FlowSnmpv2CVariableBindingValue. + StringValue() string + // SetStringValue assigns string provided by user to FlowSnmpv2CVariableBindingValue + SetStringValue(value string) FlowSnmpv2CVariableBindingValue + // HasStringValue checks if StringValue has been set in FlowSnmpv2CVariableBindingValue + HasStringValue() bool + // ObjectIdentifierValue returns string, set in FlowSnmpv2CVariableBindingValue. + ObjectIdentifierValue() string + // SetObjectIdentifierValue assigns string provided by user to FlowSnmpv2CVariableBindingValue + SetObjectIdentifierValue(value string) FlowSnmpv2CVariableBindingValue + // HasObjectIdentifierValue checks if ObjectIdentifierValue has been set in FlowSnmpv2CVariableBindingValue + HasObjectIdentifierValue() bool + // IpAddressValue returns PatternFlowSnmpv2CVariableBindingValueIpAddressValue, set in FlowSnmpv2CVariableBindingValue. + IpAddressValue() PatternFlowSnmpv2CVariableBindingValueIpAddressValue + // SetIpAddressValue assigns PatternFlowSnmpv2CVariableBindingValueIpAddressValue provided by user to FlowSnmpv2CVariableBindingValue. + SetIpAddressValue(value PatternFlowSnmpv2CVariableBindingValueIpAddressValue) FlowSnmpv2CVariableBindingValue + // HasIpAddressValue checks if IpAddressValue has been set in FlowSnmpv2CVariableBindingValue + HasIpAddressValue() bool + // CounterValue returns PatternFlowSnmpv2CVariableBindingValueCounterValue, set in FlowSnmpv2CVariableBindingValue. + CounterValue() PatternFlowSnmpv2CVariableBindingValueCounterValue + // SetCounterValue assigns PatternFlowSnmpv2CVariableBindingValueCounterValue provided by user to FlowSnmpv2CVariableBindingValue. + SetCounterValue(value PatternFlowSnmpv2CVariableBindingValueCounterValue) FlowSnmpv2CVariableBindingValue + // HasCounterValue checks if CounterValue has been set in FlowSnmpv2CVariableBindingValue + HasCounterValue() bool + // TimeticksValue returns PatternFlowSnmpv2CVariableBindingValueTimeticksValue, set in FlowSnmpv2CVariableBindingValue. + TimeticksValue() PatternFlowSnmpv2CVariableBindingValueTimeticksValue + // SetTimeticksValue assigns PatternFlowSnmpv2CVariableBindingValueTimeticksValue provided by user to FlowSnmpv2CVariableBindingValue. + SetTimeticksValue(value PatternFlowSnmpv2CVariableBindingValueTimeticksValue) FlowSnmpv2CVariableBindingValue + // HasTimeticksValue checks if TimeticksValue has been set in FlowSnmpv2CVariableBindingValue + HasTimeticksValue() bool + // ArbitraryValue returns string, set in FlowSnmpv2CVariableBindingValue. + ArbitraryValue() string + // SetArbitraryValue assigns string provided by user to FlowSnmpv2CVariableBindingValue + SetArbitraryValue(value string) FlowSnmpv2CVariableBindingValue + // HasArbitraryValue checks if ArbitraryValue has been set in FlowSnmpv2CVariableBindingValue + HasArbitraryValue() bool + // BigCounterValue returns PatternFlowSnmpv2CVariableBindingValueBigCounterValue, set in FlowSnmpv2CVariableBindingValue. + BigCounterValue() PatternFlowSnmpv2CVariableBindingValueBigCounterValue + // SetBigCounterValue assigns PatternFlowSnmpv2CVariableBindingValueBigCounterValue provided by user to FlowSnmpv2CVariableBindingValue. + SetBigCounterValue(value PatternFlowSnmpv2CVariableBindingValueBigCounterValue) FlowSnmpv2CVariableBindingValue + // HasBigCounterValue checks if BigCounterValue has been set in FlowSnmpv2CVariableBindingValue + HasBigCounterValue() bool + // UnsignedIntegerValue returns PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue, set in FlowSnmpv2CVariableBindingValue. + UnsignedIntegerValue() PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue + // SetUnsignedIntegerValue assigns PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue provided by user to FlowSnmpv2CVariableBindingValue. + SetUnsignedIntegerValue(value PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) FlowSnmpv2CVariableBindingValue + // HasUnsignedIntegerValue checks if UnsignedIntegerValue has been set in FlowSnmpv2CVariableBindingValue + HasUnsignedIntegerValue() bool + setNil() +} + +type FlowSnmpv2CVariableBindingValueChoiceEnum string + +// Enum of Choice on FlowSnmpv2CVariableBindingValue +var FlowSnmpv2CVariableBindingValueChoice = struct { + NO_VALUE FlowSnmpv2CVariableBindingValueChoiceEnum + INTEGER_VALUE FlowSnmpv2CVariableBindingValueChoiceEnum + STRING_VALUE FlowSnmpv2CVariableBindingValueChoiceEnum + OBJECT_IDENTIFIER_VALUE FlowSnmpv2CVariableBindingValueChoiceEnum + IP_ADDRESS_VALUE FlowSnmpv2CVariableBindingValueChoiceEnum + COUNTER_VALUE FlowSnmpv2CVariableBindingValueChoiceEnum + TIMETICKS_VALUE FlowSnmpv2CVariableBindingValueChoiceEnum + ARBITRARY_VALUE FlowSnmpv2CVariableBindingValueChoiceEnum + BIG_COUNTER_VALUE FlowSnmpv2CVariableBindingValueChoiceEnum + UNSIGNED_INTEGER_VALUE FlowSnmpv2CVariableBindingValueChoiceEnum +}{ + NO_VALUE: FlowSnmpv2CVariableBindingValueChoiceEnum("no_value"), + INTEGER_VALUE: FlowSnmpv2CVariableBindingValueChoiceEnum("integer_value"), + STRING_VALUE: FlowSnmpv2CVariableBindingValueChoiceEnum("string_value"), + OBJECT_IDENTIFIER_VALUE: FlowSnmpv2CVariableBindingValueChoiceEnum("object_identifier_value"), + IP_ADDRESS_VALUE: FlowSnmpv2CVariableBindingValueChoiceEnum("ip_address_value"), + COUNTER_VALUE: FlowSnmpv2CVariableBindingValueChoiceEnum("counter_value"), + TIMETICKS_VALUE: FlowSnmpv2CVariableBindingValueChoiceEnum("timeticks_value"), + ARBITRARY_VALUE: FlowSnmpv2CVariableBindingValueChoiceEnum("arbitrary_value"), + BIG_COUNTER_VALUE: FlowSnmpv2CVariableBindingValueChoiceEnum("big_counter_value"), + UNSIGNED_INTEGER_VALUE: FlowSnmpv2CVariableBindingValueChoiceEnum("unsigned_integer_value"), +} + +func (obj *flowSnmpv2CVariableBindingValue) Choice() FlowSnmpv2CVariableBindingValueChoiceEnum { + return FlowSnmpv2CVariableBindingValueChoiceEnum(obj.obj.Choice.Enum().String()) +} + +// getter for NoValue to set choice +func (obj *flowSnmpv2CVariableBindingValue) NoValue() { + obj.setChoice(FlowSnmpv2CVariableBindingValueChoice.NO_VALUE) } // description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4TosThroughputCounter) Start() uint32 { +// Choice returns a string +func (obj *flowSnmpv2CVariableBindingValue) HasChoice() bool { + return obj.obj.Choice != nil +} - return *obj.obj.Start +func (obj *flowSnmpv2CVariableBindingValue) setChoice(value FlowSnmpv2CVariableBindingValueChoiceEnum) FlowSnmpv2CVariableBindingValue { + intValue, ok := otg.FlowSnmpv2CVariableBindingValue_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on FlowSnmpv2CVariableBindingValueChoiceEnum", string(value))) + return obj + } + enumValue := otg.FlowSnmpv2CVariableBindingValue_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.UnsignedIntegerValue = nil + obj.unsignedIntegerValueHolder = nil + obj.obj.BigCounterValue = nil + obj.bigCounterValueHolder = nil + obj.obj.ArbitraryValue = nil + obj.obj.TimeticksValue = nil + obj.timeticksValueHolder = nil + obj.obj.CounterValue = nil + obj.counterValueHolder = nil + obj.obj.IpAddressValue = nil + obj.ipAddressValueHolder = nil + obj.obj.ObjectIdentifierValue = nil + obj.obj.StringValue = nil + obj.obj.IntegerValue = nil + obj.integerValueHolder = nil + + if value == FlowSnmpv2CVariableBindingValueChoice.INTEGER_VALUE { + obj.obj.IntegerValue = NewPatternFlowSnmpv2CVariableBindingValueIntegerValue().msg() + } + + if value == FlowSnmpv2CVariableBindingValueChoice.STRING_VALUE { + defaultValue := "string" + obj.obj.StringValue = &defaultValue + } + + if value == FlowSnmpv2CVariableBindingValueChoice.OBJECT_IDENTIFIER_VALUE { + defaultValue := "0.1" + obj.obj.ObjectIdentifierValue = &defaultValue + } + + if value == FlowSnmpv2CVariableBindingValueChoice.IP_ADDRESS_VALUE { + obj.obj.IpAddressValue = NewPatternFlowSnmpv2CVariableBindingValueIpAddressValue().msg() + } + + if value == FlowSnmpv2CVariableBindingValueChoice.COUNTER_VALUE { + obj.obj.CounterValue = NewPatternFlowSnmpv2CVariableBindingValueCounterValue().msg() + } + + if value == FlowSnmpv2CVariableBindingValueChoice.TIMETICKS_VALUE { + obj.obj.TimeticksValue = NewPatternFlowSnmpv2CVariableBindingValueTimeticksValue().msg() + } + + if value == FlowSnmpv2CVariableBindingValueChoice.ARBITRARY_VALUE { + defaultValue := "00" + obj.obj.ArbitraryValue = &defaultValue + } + + if value == FlowSnmpv2CVariableBindingValueChoice.BIG_COUNTER_VALUE { + obj.obj.BigCounterValue = NewPatternFlowSnmpv2CVariableBindingValueBigCounterValue().msg() + } + + if value == FlowSnmpv2CVariableBindingValueChoice.UNSIGNED_INTEGER_VALUE { + obj.obj.UnsignedIntegerValue = NewPatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue().msg() + } + return obj } // description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4TosThroughputCounter) HasStart() bool { - return obj.obj.Start != nil +// IntegerValue returns a PatternFlowSnmpv2CVariableBindingValueIntegerValue +func (obj *flowSnmpv2CVariableBindingValue) IntegerValue() PatternFlowSnmpv2CVariableBindingValueIntegerValue { + if obj.obj.IntegerValue == nil { + obj.setChoice(FlowSnmpv2CVariableBindingValueChoice.INTEGER_VALUE) + } + if obj.integerValueHolder == nil { + obj.integerValueHolder = &patternFlowSnmpv2CVariableBindingValueIntegerValue{obj: obj.obj.IntegerValue} + } + return obj.integerValueHolder } // description is TBD -// SetStart sets the uint32 value in the PatternFlowIpv4TosThroughputCounter object -func (obj *patternFlowIpv4TosThroughputCounter) SetStart(value uint32) PatternFlowIpv4TosThroughputCounter { +// IntegerValue returns a PatternFlowSnmpv2CVariableBindingValueIntegerValue +func (obj *flowSnmpv2CVariableBindingValue) HasIntegerValue() bool { + return obj.obj.IntegerValue != nil +} - obj.obj.Start = &value +// description is TBD +// SetIntegerValue sets the PatternFlowSnmpv2CVariableBindingValueIntegerValue value in the FlowSnmpv2CVariableBindingValue object +func (obj *flowSnmpv2CVariableBindingValue) SetIntegerValue(value PatternFlowSnmpv2CVariableBindingValueIntegerValue) FlowSnmpv2CVariableBindingValue { + obj.setChoice(FlowSnmpv2CVariableBindingValueChoice.INTEGER_VALUE) + obj.integerValueHolder = nil + obj.obj.IntegerValue = value.msg() + + return obj +} + +// It contains the hex bytes of the value to be sent. As of now it is restricted to 5000 bytes. +// StringValue returns a string +func (obj *flowSnmpv2CVariableBindingValue) StringValue() string { + + if obj.obj.StringValue == nil { + obj.setChoice(FlowSnmpv2CVariableBindingValueChoice.STRING_VALUE) + } + + return *obj.obj.StringValue + +} + +// It contains the hex bytes of the value to be sent. As of now it is restricted to 5000 bytes. +// StringValue returns a string +func (obj *flowSnmpv2CVariableBindingValue) HasStringValue() bool { + return obj.obj.StringValue != nil +} + +// It contains the hex bytes of the value to be sent. As of now it is restricted to 5000 bytes. +// SetStringValue sets the string value in the FlowSnmpv2CVariableBindingValue object +func (obj *flowSnmpv2CVariableBindingValue) SetStringValue(value string) FlowSnmpv2CVariableBindingValue { + obj.setChoice(FlowSnmpv2CVariableBindingValueChoice.STRING_VALUE) + obj.obj.StringValue = &value + return obj +} + +// The Object Identifier points to a particular parameter in the SNMP agent. +// - Encoding of this field follows RFC2578(section 3.5) and ASN.1 X.690(section 8.1.3.6) specification. +// Refer: http://www.itu.int/ITU-T/asn1/ +// - According to BER, the first two numbers of any OID (x.y) are encoded as one value using the formula (40*x)+y. +// Example, the first two numbers of an SNMP OID 1.3... are encoded as 43 or 0x2B, because (40*1)+3 = 43. +// - After the first two numbers are encoded, the subsequent numbers in the OID are each encoded as a byte. +// - However, a special rule is required for large numbers because one byte can only represent a number from 0-127. +// - The rule for large numbers states that only the lower 7 bits in the byte are used for holding the value (0-127). +// - The highest order bit(8th) is used as a flag to indicate that this number spans more than one byte. Therefore, any number over 127 must be encoded using more than one byte. +// - Example, the number 2680 in the OID '1.3.6.1.4.1.2680.1.2.7.3.2.0' cannot be encoded using a single byte. +// According to this rule, the number 2680 must be encoded as 0x94 0x78. +// Since the most significant bit is set in the first byte (0x94), it indicates that number spans to the next byte. +// Since the most significant bit is not set in the next byte (0x78), it indicates that the number ends at the second byte. +// The value is derived by appending 7 bits from each of the concatenated bytes i.e (0x14 *128^1) + (0x78 * 128^0) = 2680. +// ObjectIdentifierValue returns a string +func (obj *flowSnmpv2CVariableBindingValue) ObjectIdentifierValue() string { + + if obj.obj.ObjectIdentifierValue == nil { + obj.setChoice(FlowSnmpv2CVariableBindingValueChoice.OBJECT_IDENTIFIER_VALUE) + } + + return *obj.obj.ObjectIdentifierValue + +} + +// The Object Identifier points to a particular parameter in the SNMP agent. +// - Encoding of this field follows RFC2578(section 3.5) and ASN.1 X.690(section 8.1.3.6) specification. +// Refer: http://www.itu.int/ITU-T/asn1/ +// - According to BER, the first two numbers of any OID (x.y) are encoded as one value using the formula (40*x)+y. +// Example, the first two numbers of an SNMP OID 1.3... are encoded as 43 or 0x2B, because (40*1)+3 = 43. +// - After the first two numbers are encoded, the subsequent numbers in the OID are each encoded as a byte. +// - However, a special rule is required for large numbers because one byte can only represent a number from 0-127. +// - The rule for large numbers states that only the lower 7 bits in the byte are used for holding the value (0-127). +// - The highest order bit(8th) is used as a flag to indicate that this number spans more than one byte. Therefore, any number over 127 must be encoded using more than one byte. +// - Example, the number 2680 in the OID '1.3.6.1.4.1.2680.1.2.7.3.2.0' cannot be encoded using a single byte. +// According to this rule, the number 2680 must be encoded as 0x94 0x78. +// Since the most significant bit is set in the first byte (0x94), it indicates that number spans to the next byte. +// Since the most significant bit is not set in the next byte (0x78), it indicates that the number ends at the second byte. +// The value is derived by appending 7 bits from each of the concatenated bytes i.e (0x14 *128^1) + (0x78 * 128^0) = 2680. +// ObjectIdentifierValue returns a string +func (obj *flowSnmpv2CVariableBindingValue) HasObjectIdentifierValue() bool { + return obj.obj.ObjectIdentifierValue != nil +} + +// The Object Identifier points to a particular parameter in the SNMP agent. +// - Encoding of this field follows RFC2578(section 3.5) and ASN.1 X.690(section 8.1.3.6) specification. +// Refer: http://www.itu.int/ITU-T/asn1/ +// - According to BER, the first two numbers of any OID (x.y) are encoded as one value using the formula (40*x)+y. +// Example, the first two numbers of an SNMP OID 1.3... are encoded as 43 or 0x2B, because (40*1)+3 = 43. +// - After the first two numbers are encoded, the subsequent numbers in the OID are each encoded as a byte. +// - However, a special rule is required for large numbers because one byte can only represent a number from 0-127. +// - The rule for large numbers states that only the lower 7 bits in the byte are used for holding the value (0-127). +// - The highest order bit(8th) is used as a flag to indicate that this number spans more than one byte. Therefore, any number over 127 must be encoded using more than one byte. +// - Example, the number 2680 in the OID '1.3.6.1.4.1.2680.1.2.7.3.2.0' cannot be encoded using a single byte. +// According to this rule, the number 2680 must be encoded as 0x94 0x78. +// Since the most significant bit is set in the first byte (0x94), it indicates that number spans to the next byte. +// Since the most significant bit is not set in the next byte (0x78), it indicates that the number ends at the second byte. +// The value is derived by appending 7 bits from each of the concatenated bytes i.e (0x14 *128^1) + (0x78 * 128^0) = 2680. +// SetObjectIdentifierValue sets the string value in the FlowSnmpv2CVariableBindingValue object +func (obj *flowSnmpv2CVariableBindingValue) SetObjectIdentifierValue(value string) FlowSnmpv2CVariableBindingValue { + obj.setChoice(FlowSnmpv2CVariableBindingValueChoice.OBJECT_IDENTIFIER_VALUE) + obj.obj.ObjectIdentifierValue = &value return obj } // description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4TosThroughputCounter) Step() uint32 { +// IpAddressValue returns a PatternFlowSnmpv2CVariableBindingValueIpAddressValue +func (obj *flowSnmpv2CVariableBindingValue) IpAddressValue() PatternFlowSnmpv2CVariableBindingValueIpAddressValue { + if obj.obj.IpAddressValue == nil { + obj.setChoice(FlowSnmpv2CVariableBindingValueChoice.IP_ADDRESS_VALUE) + } + if obj.ipAddressValueHolder == nil { + obj.ipAddressValueHolder = &patternFlowSnmpv2CVariableBindingValueIpAddressValue{obj: obj.obj.IpAddressValue} + } + return obj.ipAddressValueHolder +} - return *obj.obj.Step +// description is TBD +// IpAddressValue returns a PatternFlowSnmpv2CVariableBindingValueIpAddressValue +func (obj *flowSnmpv2CVariableBindingValue) HasIpAddressValue() bool { + return obj.obj.IpAddressValue != nil +} + +// description is TBD +// SetIpAddressValue sets the PatternFlowSnmpv2CVariableBindingValueIpAddressValue value in the FlowSnmpv2CVariableBindingValue object +func (obj *flowSnmpv2CVariableBindingValue) SetIpAddressValue(value PatternFlowSnmpv2CVariableBindingValueIpAddressValue) FlowSnmpv2CVariableBindingValue { + obj.setChoice(FlowSnmpv2CVariableBindingValueChoice.IP_ADDRESS_VALUE) + obj.ipAddressValueHolder = nil + obj.obj.IpAddressValue = value.msg() + return obj } // description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4TosThroughputCounter) HasStep() bool { - return obj.obj.Step != nil +// CounterValue returns a PatternFlowSnmpv2CVariableBindingValueCounterValue +func (obj *flowSnmpv2CVariableBindingValue) CounterValue() PatternFlowSnmpv2CVariableBindingValueCounterValue { + if obj.obj.CounterValue == nil { + obj.setChoice(FlowSnmpv2CVariableBindingValueChoice.COUNTER_VALUE) + } + if obj.counterValueHolder == nil { + obj.counterValueHolder = &patternFlowSnmpv2CVariableBindingValueCounterValue{obj: obj.obj.CounterValue} + } + return obj.counterValueHolder } // description is TBD -// SetStep sets the uint32 value in the PatternFlowIpv4TosThroughputCounter object -func (obj *patternFlowIpv4TosThroughputCounter) SetStep(value uint32) PatternFlowIpv4TosThroughputCounter { +// CounterValue returns a PatternFlowSnmpv2CVariableBindingValueCounterValue +func (obj *flowSnmpv2CVariableBindingValue) HasCounterValue() bool { + return obj.obj.CounterValue != nil +} + +// description is TBD +// SetCounterValue sets the PatternFlowSnmpv2CVariableBindingValueCounterValue value in the FlowSnmpv2CVariableBindingValue object +func (obj *flowSnmpv2CVariableBindingValue) SetCounterValue(value PatternFlowSnmpv2CVariableBindingValueCounterValue) FlowSnmpv2CVariableBindingValue { + obj.setChoice(FlowSnmpv2CVariableBindingValueChoice.COUNTER_VALUE) + obj.counterValueHolder = nil + obj.obj.CounterValue = value.msg() - obj.obj.Step = &value return obj } // description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4TosThroughputCounter) Count() uint32 { +// TimeticksValue returns a PatternFlowSnmpv2CVariableBindingValueTimeticksValue +func (obj *flowSnmpv2CVariableBindingValue) TimeticksValue() PatternFlowSnmpv2CVariableBindingValueTimeticksValue { + if obj.obj.TimeticksValue == nil { + obj.setChoice(FlowSnmpv2CVariableBindingValueChoice.TIMETICKS_VALUE) + } + if obj.timeticksValueHolder == nil { + obj.timeticksValueHolder = &patternFlowSnmpv2CVariableBindingValueTimeticksValue{obj: obj.obj.TimeticksValue} + } + return obj.timeticksValueHolder +} - return *obj.obj.Count +// description is TBD +// TimeticksValue returns a PatternFlowSnmpv2CVariableBindingValueTimeticksValue +func (obj *flowSnmpv2CVariableBindingValue) HasTimeticksValue() bool { + return obj.obj.TimeticksValue != nil +} + +// description is TBD +// SetTimeticksValue sets the PatternFlowSnmpv2CVariableBindingValueTimeticksValue value in the FlowSnmpv2CVariableBindingValue object +func (obj *flowSnmpv2CVariableBindingValue) SetTimeticksValue(value PatternFlowSnmpv2CVariableBindingValueTimeticksValue) FlowSnmpv2CVariableBindingValue { + obj.setChoice(FlowSnmpv2CVariableBindingValueChoice.TIMETICKS_VALUE) + obj.timeticksValueHolder = nil + obj.obj.TimeticksValue = value.msg() + + return obj +} + +// It contains the hex bytes of the value to be sent. As of now it is restricted to 5000 bytes. +// ArbitraryValue returns a string +func (obj *flowSnmpv2CVariableBindingValue) ArbitraryValue() string { + + if obj.obj.ArbitraryValue == nil { + obj.setChoice(FlowSnmpv2CVariableBindingValueChoice.ARBITRARY_VALUE) + } + + return *obj.obj.ArbitraryValue } +// It contains the hex bytes of the value to be sent. As of now it is restricted to 5000 bytes. +// ArbitraryValue returns a string +func (obj *flowSnmpv2CVariableBindingValue) HasArbitraryValue() bool { + return obj.obj.ArbitraryValue != nil +} + +// It contains the hex bytes of the value to be sent. As of now it is restricted to 5000 bytes. +// SetArbitraryValue sets the string value in the FlowSnmpv2CVariableBindingValue object +func (obj *flowSnmpv2CVariableBindingValue) SetArbitraryValue(value string) FlowSnmpv2CVariableBindingValue { + obj.setChoice(FlowSnmpv2CVariableBindingValueChoice.ARBITRARY_VALUE) + obj.obj.ArbitraryValue = &value + return obj +} + // description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4TosThroughputCounter) HasCount() bool { - return obj.obj.Count != nil +// BigCounterValue returns a PatternFlowSnmpv2CVariableBindingValueBigCounterValue +func (obj *flowSnmpv2CVariableBindingValue) BigCounterValue() PatternFlowSnmpv2CVariableBindingValueBigCounterValue { + if obj.obj.BigCounterValue == nil { + obj.setChoice(FlowSnmpv2CVariableBindingValueChoice.BIG_COUNTER_VALUE) + } + if obj.bigCounterValueHolder == nil { + obj.bigCounterValueHolder = &patternFlowSnmpv2CVariableBindingValueBigCounterValue{obj: obj.obj.BigCounterValue} + } + return obj.bigCounterValueHolder } // description is TBD -// SetCount sets the uint32 value in the PatternFlowIpv4TosThroughputCounter object -func (obj *patternFlowIpv4TosThroughputCounter) SetCount(value uint32) PatternFlowIpv4TosThroughputCounter { +// BigCounterValue returns a PatternFlowSnmpv2CVariableBindingValueBigCounterValue +func (obj *flowSnmpv2CVariableBindingValue) HasBigCounterValue() bool { + return obj.obj.BigCounterValue != nil +} + +// description is TBD +// SetBigCounterValue sets the PatternFlowSnmpv2CVariableBindingValueBigCounterValue value in the FlowSnmpv2CVariableBindingValue object +func (obj *flowSnmpv2CVariableBindingValue) SetBigCounterValue(value PatternFlowSnmpv2CVariableBindingValueBigCounterValue) FlowSnmpv2CVariableBindingValue { + obj.setChoice(FlowSnmpv2CVariableBindingValueChoice.BIG_COUNTER_VALUE) + obj.bigCounterValueHolder = nil + obj.obj.BigCounterValue = value.msg() - obj.obj.Count = &value return obj } -func (obj *patternFlowIpv4TosThroughputCounter) validateObj(vObj *validation, set_default bool) { +// description is TBD +// UnsignedIntegerValue returns a PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue +func (obj *flowSnmpv2CVariableBindingValue) UnsignedIntegerValue() PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue { + if obj.obj.UnsignedIntegerValue == nil { + obj.setChoice(FlowSnmpv2CVariableBindingValueChoice.UNSIGNED_INTEGER_VALUE) + } + if obj.unsignedIntegerValueHolder == nil { + obj.unsignedIntegerValueHolder = &patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue{obj: obj.obj.UnsignedIntegerValue} + } + return obj.unsignedIntegerValueHolder +} + +// description is TBD +// UnsignedIntegerValue returns a PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue +func (obj *flowSnmpv2CVariableBindingValue) HasUnsignedIntegerValue() bool { + return obj.obj.UnsignedIntegerValue != nil +} + +// description is TBD +// SetUnsignedIntegerValue sets the PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue value in the FlowSnmpv2CVariableBindingValue object +func (obj *flowSnmpv2CVariableBindingValue) SetUnsignedIntegerValue(value PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) FlowSnmpv2CVariableBindingValue { + obj.setChoice(FlowSnmpv2CVariableBindingValueChoice.UNSIGNED_INTEGER_VALUE) + obj.unsignedIntegerValueHolder = nil + obj.obj.UnsignedIntegerValue = value.msg() + + return obj +} + +func (obj *flowSnmpv2CVariableBindingValue) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Start != nil { + if obj.obj.IntegerValue != nil { - if *obj.obj.Start > 1 { + obj.IntegerValue().validateObj(vObj, set_default) + } + + if obj.obj.StringValue != nil { + + if len(*obj.obj.StringValue) > 10000 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosThroughputCounter.Start <= 1 but Got %d", *obj.obj.Start)) + fmt.Sprintf( + "None <= length of FlowSnmpv2CVariableBindingValue.StringValue <= 10000 but Got %d", + len(*obj.obj.StringValue))) } } - if obj.obj.Step != nil { + if obj.obj.ObjectIdentifierValue != nil { - if *obj.obj.Step > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosThroughputCounter.Step <= 1 but Got %d", *obj.obj.Step)) + err := obj.validateOid(obj.ObjectIdentifierValue()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on FlowSnmpv2CVariableBindingValue.ObjectIdentifierValue")) } } - if obj.obj.Count != nil { + if obj.obj.IpAddressValue != nil { - if *obj.obj.Count > 1 { + obj.IpAddressValue().validateObj(vObj, set_default) + } + + if obj.obj.CounterValue != nil { + + obj.CounterValue().validateObj(vObj, set_default) + } + + if obj.obj.TimeticksValue != nil { + + obj.TimeticksValue().validateObj(vObj, set_default) + } + + if obj.obj.ArbitraryValue != nil { + + if len(*obj.obj.ArbitraryValue) > 10000 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosThroughputCounter.Count <= 1 but Got %d", *obj.obj.Count)) + fmt.Sprintf( + "None <= length of FlowSnmpv2CVariableBindingValue.ArbitraryValue <= 10000 but Got %d", + len(*obj.obj.ArbitraryValue))) } } -} + if obj.obj.BigCounterValue != nil { -func (obj *patternFlowIpv4TosThroughputCounter) setDefault() { - if obj.obj.Start == nil { - obj.SetStart(0) + obj.BigCounterValue().validateObj(vObj, set_default) } - if obj.obj.Step == nil { - obj.SetStep(1) + + if obj.obj.UnsignedIntegerValue != nil { + + obj.UnsignedIntegerValue().validateObj(vObj, set_default) } - if obj.obj.Count == nil { - obj.SetCount(1) + +} + +func (obj *flowSnmpv2CVariableBindingValue) setDefault() { + if obj.obj.Choice == nil { + obj.setChoice(FlowSnmpv2CVariableBindingValueChoice.NO_VALUE) + } } -// ***** PatternFlowIpv4TosThroughputMetricTag ***** -type patternFlowIpv4TosThroughputMetricTag struct { +// ***** PatternFlowSnmpv2CBulkPDURequestIdCounter ***** +type patternFlowSnmpv2CBulkPDURequestIdCounter struct { validation - obj *otg.PatternFlowIpv4TosThroughputMetricTag - marshaller marshalPatternFlowIpv4TosThroughputMetricTag - unMarshaller unMarshalPatternFlowIpv4TosThroughputMetricTag + obj *otg.PatternFlowSnmpv2CBulkPDURequestIdCounter + marshaller marshalPatternFlowSnmpv2CBulkPDURequestIdCounter + unMarshaller unMarshalPatternFlowSnmpv2CBulkPDURequestIdCounter } -func NewPatternFlowIpv4TosThroughputMetricTag() PatternFlowIpv4TosThroughputMetricTag { - obj := patternFlowIpv4TosThroughputMetricTag{obj: &otg.PatternFlowIpv4TosThroughputMetricTag{}} +func NewPatternFlowSnmpv2CBulkPDURequestIdCounter() PatternFlowSnmpv2CBulkPDURequestIdCounter { + obj := patternFlowSnmpv2CBulkPDURequestIdCounter{obj: &otg.PatternFlowSnmpv2CBulkPDURequestIdCounter{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4TosThroughputMetricTag) msg() *otg.PatternFlowIpv4TosThroughputMetricTag { +func (obj *patternFlowSnmpv2CBulkPDURequestIdCounter) msg() *otg.PatternFlowSnmpv2CBulkPDURequestIdCounter { return obj.obj } -func (obj *patternFlowIpv4TosThroughputMetricTag) setMsg(msg *otg.PatternFlowIpv4TosThroughputMetricTag) PatternFlowIpv4TosThroughputMetricTag { +func (obj *patternFlowSnmpv2CBulkPDURequestIdCounter) setMsg(msg *otg.PatternFlowSnmpv2CBulkPDURequestIdCounter) PatternFlowSnmpv2CBulkPDURequestIdCounter { proto.Merge(obj.obj, msg) return obj } -type marshalpatternFlowIpv4TosThroughputMetricTag struct { - obj *patternFlowIpv4TosThroughputMetricTag +type marshalpatternFlowSnmpv2CBulkPDURequestIdCounter struct { + obj *patternFlowSnmpv2CBulkPDURequestIdCounter } -type marshalPatternFlowIpv4TosThroughputMetricTag interface { - // ToProto marshals PatternFlowIpv4TosThroughputMetricTag to protobuf object *otg.PatternFlowIpv4TosThroughputMetricTag - ToProto() (*otg.PatternFlowIpv4TosThroughputMetricTag, error) - // ToPbText marshals PatternFlowIpv4TosThroughputMetricTag to protobuf text +type marshalPatternFlowSnmpv2CBulkPDURequestIdCounter interface { + // ToProto marshals PatternFlowSnmpv2CBulkPDURequestIdCounter to protobuf object *otg.PatternFlowSnmpv2CBulkPDURequestIdCounter + ToProto() (*otg.PatternFlowSnmpv2CBulkPDURequestIdCounter, error) + // ToPbText marshals PatternFlowSnmpv2CBulkPDURequestIdCounter to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4TosThroughputMetricTag to YAML text + // ToYaml marshals PatternFlowSnmpv2CBulkPDURequestIdCounter to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4TosThroughputMetricTag to JSON text + // ToJson marshals PatternFlowSnmpv2CBulkPDURequestIdCounter to JSON text ToJson() (string, error) } -type unMarshalpatternFlowIpv4TosThroughputMetricTag struct { - obj *patternFlowIpv4TosThroughputMetricTag +type unMarshalpatternFlowSnmpv2CBulkPDURequestIdCounter struct { + obj *patternFlowSnmpv2CBulkPDURequestIdCounter } -type unMarshalPatternFlowIpv4TosThroughputMetricTag interface { - // FromProto unmarshals PatternFlowIpv4TosThroughputMetricTag from protobuf object *otg.PatternFlowIpv4TosThroughputMetricTag - FromProto(msg *otg.PatternFlowIpv4TosThroughputMetricTag) (PatternFlowIpv4TosThroughputMetricTag, error) - // FromPbText unmarshals PatternFlowIpv4TosThroughputMetricTag from protobuf text +type unMarshalPatternFlowSnmpv2CBulkPDURequestIdCounter interface { + // FromProto unmarshals PatternFlowSnmpv2CBulkPDURequestIdCounter from protobuf object *otg.PatternFlowSnmpv2CBulkPDURequestIdCounter + FromProto(msg *otg.PatternFlowSnmpv2CBulkPDURequestIdCounter) (PatternFlowSnmpv2CBulkPDURequestIdCounter, error) + // FromPbText unmarshals PatternFlowSnmpv2CBulkPDURequestIdCounter from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4TosThroughputMetricTag from YAML text + // FromYaml unmarshals PatternFlowSnmpv2CBulkPDURequestIdCounter from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4TosThroughputMetricTag from JSON text + // FromJson unmarshals PatternFlowSnmpv2CBulkPDURequestIdCounter from JSON text FromJson(value string) error } -func (obj *patternFlowIpv4TosThroughputMetricTag) Marshal() marshalPatternFlowIpv4TosThroughputMetricTag { +func (obj *patternFlowSnmpv2CBulkPDURequestIdCounter) Marshal() marshalPatternFlowSnmpv2CBulkPDURequestIdCounter { if obj.marshaller == nil { - obj.marshaller = &marshalpatternFlowIpv4TosThroughputMetricTag{obj: obj} + obj.marshaller = &marshalpatternFlowSnmpv2CBulkPDURequestIdCounter{obj: obj} } return obj.marshaller } -func (obj *patternFlowIpv4TosThroughputMetricTag) Unmarshal() unMarshalPatternFlowIpv4TosThroughputMetricTag { +func (obj *patternFlowSnmpv2CBulkPDURequestIdCounter) Unmarshal() unMarshalPatternFlowSnmpv2CBulkPDURequestIdCounter { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalpatternFlowIpv4TosThroughputMetricTag{obj: obj} + obj.unMarshaller = &unMarshalpatternFlowSnmpv2CBulkPDURequestIdCounter{obj: obj} } return obj.unMarshaller } -func (m *marshalpatternFlowIpv4TosThroughputMetricTag) ToProto() (*otg.PatternFlowIpv4TosThroughputMetricTag, error) { +func (m *marshalpatternFlowSnmpv2CBulkPDURequestIdCounter) ToProto() (*otg.PatternFlowSnmpv2CBulkPDURequestIdCounter, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -332624,7 +345693,7 @@ func (m *marshalpatternFlowIpv4TosThroughputMetricTag) ToProto() (*otg.PatternFl return m.obj.msg(), nil } -func (m *unMarshalpatternFlowIpv4TosThroughputMetricTag) FromProto(msg *otg.PatternFlowIpv4TosThroughputMetricTag) (PatternFlowIpv4TosThroughputMetricTag, error) { +func (m *unMarshalpatternFlowSnmpv2CBulkPDURequestIdCounter) FromProto(msg *otg.PatternFlowSnmpv2CBulkPDURequestIdCounter) (PatternFlowSnmpv2CBulkPDURequestIdCounter, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -332633,7 +345702,7 @@ func (m *unMarshalpatternFlowIpv4TosThroughputMetricTag) FromProto(msg *otg.Patt return newObj, nil } -func (m *marshalpatternFlowIpv4TosThroughputMetricTag) ToPbText() (string, error) { +func (m *marshalpatternFlowSnmpv2CBulkPDURequestIdCounter) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -332645,7 +345714,7 @@ func (m *marshalpatternFlowIpv4TosThroughputMetricTag) ToPbText() (string, error return string(protoMarshal), nil } -func (m *unMarshalpatternFlowIpv4TosThroughputMetricTag) FromPbText(value string) error { +func (m *unMarshalpatternFlowSnmpv2CBulkPDURequestIdCounter) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj @@ -332658,7 +345727,7 @@ func (m *unMarshalpatternFlowIpv4TosThroughputMetricTag) FromPbText(value string return retObj } -func (m *marshalpatternFlowIpv4TosThroughputMetricTag) ToYaml() (string, error) { +func (m *marshalpatternFlowSnmpv2CBulkPDURequestIdCounter) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -332679,7 +345748,7 @@ func (m *marshalpatternFlowIpv4TosThroughputMetricTag) ToYaml() (string, error) return string(data), nil } -func (m *unMarshalpatternFlowIpv4TosThroughputMetricTag) FromYaml(value string) error { +func (m *unMarshalpatternFlowSnmpv2CBulkPDURequestIdCounter) FromYaml(value string) error { if value == "" { value = "{}" } @@ -332704,7 +345773,7 @@ func (m *unMarshalpatternFlowIpv4TosThroughputMetricTag) FromYaml(value string) return nil } -func (m *marshalpatternFlowIpv4TosThroughputMetricTag) ToJson() (string, error) { +func (m *marshalpatternFlowSnmpv2CBulkPDURequestIdCounter) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -332722,7 +345791,7 @@ func (m *marshalpatternFlowIpv4TosThroughputMetricTag) ToJson() (string, error) return string(data), nil } -func (m *unMarshalpatternFlowIpv4TosThroughputMetricTag) FromJson(value string) error { +func (m *unMarshalpatternFlowSnmpv2CBulkPDURequestIdCounter) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -332743,19 +345812,19 @@ func (m *unMarshalpatternFlowIpv4TosThroughputMetricTag) FromJson(value string) return nil } -func (obj *patternFlowIpv4TosThroughputMetricTag) validateToAndFrom() error { +func (obj *patternFlowSnmpv2CBulkPDURequestIdCounter) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4TosThroughputMetricTag) validate() error { +func (obj *patternFlowSnmpv2CBulkPDURequestIdCounter) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4TosThroughputMetricTag) String() string { +func (obj *patternFlowSnmpv2CBulkPDURequestIdCounter) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -332763,12 +345832,12 @@ func (obj *patternFlowIpv4TosThroughputMetricTag) String() string { return str } -func (obj *patternFlowIpv4TosThroughputMetricTag) Clone() (PatternFlowIpv4TosThroughputMetricTag, error) { +func (obj *patternFlowSnmpv2CBulkPDURequestIdCounter) Clone() (PatternFlowSnmpv2CBulkPDURequestIdCounter, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4TosThroughputMetricTag() + newObj := NewPatternFlowSnmpv2CBulkPDURequestIdCounter() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -332780,217 +345849,203 @@ func (obj *patternFlowIpv4TosThroughputMetricTag) Clone() (PatternFlowIpv4TosThr return newObj, nil } -// PatternFlowIpv4TosThroughputMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. -type PatternFlowIpv4TosThroughputMetricTag interface { +// PatternFlowSnmpv2CBulkPDURequestIdCounter is integer counter pattern +type PatternFlowSnmpv2CBulkPDURequestIdCounter interface { Validation - // msg marshals PatternFlowIpv4TosThroughputMetricTag to protobuf object *otg.PatternFlowIpv4TosThroughputMetricTag + // msg marshals PatternFlowSnmpv2CBulkPDURequestIdCounter to protobuf object *otg.PatternFlowSnmpv2CBulkPDURequestIdCounter // and doesn't set defaults - msg() *otg.PatternFlowIpv4TosThroughputMetricTag - // setMsg unmarshals PatternFlowIpv4TosThroughputMetricTag from protobuf object *otg.PatternFlowIpv4TosThroughputMetricTag + msg() *otg.PatternFlowSnmpv2CBulkPDURequestIdCounter + // setMsg unmarshals PatternFlowSnmpv2CBulkPDURequestIdCounter from protobuf object *otg.PatternFlowSnmpv2CBulkPDURequestIdCounter // and doesn't set defaults - setMsg(*otg.PatternFlowIpv4TosThroughputMetricTag) PatternFlowIpv4TosThroughputMetricTag + setMsg(*otg.PatternFlowSnmpv2CBulkPDURequestIdCounter) PatternFlowSnmpv2CBulkPDURequestIdCounter // provides marshal interface - Marshal() marshalPatternFlowIpv4TosThroughputMetricTag + Marshal() marshalPatternFlowSnmpv2CBulkPDURequestIdCounter // provides unmarshal interface - Unmarshal() unMarshalPatternFlowIpv4TosThroughputMetricTag - // validate validates PatternFlowIpv4TosThroughputMetricTag + Unmarshal() unMarshalPatternFlowSnmpv2CBulkPDURequestIdCounter + // validate validates PatternFlowSnmpv2CBulkPDURequestIdCounter validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4TosThroughputMetricTag, error) + Clone() (PatternFlowSnmpv2CBulkPDURequestIdCounter, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Name returns string, set in PatternFlowIpv4TosThroughputMetricTag. - Name() string - // SetName assigns string provided by user to PatternFlowIpv4TosThroughputMetricTag - SetName(value string) PatternFlowIpv4TosThroughputMetricTag - // Offset returns uint32, set in PatternFlowIpv4TosThroughputMetricTag. - Offset() uint32 - // SetOffset assigns uint32 provided by user to PatternFlowIpv4TosThroughputMetricTag - SetOffset(value uint32) PatternFlowIpv4TosThroughputMetricTag - // HasOffset checks if Offset has been set in PatternFlowIpv4TosThroughputMetricTag - HasOffset() bool - // Length returns uint32, set in PatternFlowIpv4TosThroughputMetricTag. - Length() uint32 - // SetLength assigns uint32 provided by user to PatternFlowIpv4TosThroughputMetricTag - SetLength(value uint32) PatternFlowIpv4TosThroughputMetricTag - // HasLength checks if Length has been set in PatternFlowIpv4TosThroughputMetricTag - HasLength() bool + // Start returns int32, set in PatternFlowSnmpv2CBulkPDURequestIdCounter. + Start() int32 + // SetStart assigns int32 provided by user to PatternFlowSnmpv2CBulkPDURequestIdCounter + SetStart(value int32) PatternFlowSnmpv2CBulkPDURequestIdCounter + // HasStart checks if Start has been set in PatternFlowSnmpv2CBulkPDURequestIdCounter + HasStart() bool + // Step returns int32, set in PatternFlowSnmpv2CBulkPDURequestIdCounter. + Step() int32 + // SetStep assigns int32 provided by user to PatternFlowSnmpv2CBulkPDURequestIdCounter + SetStep(value int32) PatternFlowSnmpv2CBulkPDURequestIdCounter + // HasStep checks if Step has been set in PatternFlowSnmpv2CBulkPDURequestIdCounter + HasStep() bool + // Count returns int32, set in PatternFlowSnmpv2CBulkPDURequestIdCounter. + Count() int32 + // SetCount assigns int32 provided by user to PatternFlowSnmpv2CBulkPDURequestIdCounter + SetCount(value int32) PatternFlowSnmpv2CBulkPDURequestIdCounter + // HasCount checks if Count has been set in PatternFlowSnmpv2CBulkPDURequestIdCounter + HasCount() bool } -// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// Name returns a string -func (obj *patternFlowIpv4TosThroughputMetricTag) Name() string { +// description is TBD +// Start returns a int32 +func (obj *patternFlowSnmpv2CBulkPDURequestIdCounter) Start() int32 { - return *obj.obj.Name + return *obj.obj.Start } -// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// SetName sets the string value in the PatternFlowIpv4TosThroughputMetricTag object -func (obj *patternFlowIpv4TosThroughputMetricTag) SetName(value string) PatternFlowIpv4TosThroughputMetricTag { +// description is TBD +// Start returns a int32 +func (obj *patternFlowSnmpv2CBulkPDURequestIdCounter) HasStart() bool { + return obj.obj.Start != nil +} - obj.obj.Name = &value +// description is TBD +// SetStart sets the int32 value in the PatternFlowSnmpv2CBulkPDURequestIdCounter object +func (obj *patternFlowSnmpv2CBulkPDURequestIdCounter) SetStart(value int32) PatternFlowSnmpv2CBulkPDURequestIdCounter { + + obj.obj.Start = &value return obj } -// Offset in bits relative to start of corresponding header field -// Offset returns a uint32 -func (obj *patternFlowIpv4TosThroughputMetricTag) Offset() uint32 { +// description is TBD +// Step returns a int32 +func (obj *patternFlowSnmpv2CBulkPDURequestIdCounter) Step() int32 { - return *obj.obj.Offset + return *obj.obj.Step } -// Offset in bits relative to start of corresponding header field -// Offset returns a uint32 -func (obj *patternFlowIpv4TosThroughputMetricTag) HasOffset() bool { - return obj.obj.Offset != nil +// description is TBD +// Step returns a int32 +func (obj *patternFlowSnmpv2CBulkPDURequestIdCounter) HasStep() bool { + return obj.obj.Step != nil } -// Offset in bits relative to start of corresponding header field -// SetOffset sets the uint32 value in the PatternFlowIpv4TosThroughputMetricTag object -func (obj *patternFlowIpv4TosThroughputMetricTag) SetOffset(value uint32) PatternFlowIpv4TosThroughputMetricTag { +// description is TBD +// SetStep sets the int32 value in the PatternFlowSnmpv2CBulkPDURequestIdCounter object +func (obj *patternFlowSnmpv2CBulkPDURequestIdCounter) SetStep(value int32) PatternFlowSnmpv2CBulkPDURequestIdCounter { - obj.obj.Offset = &value + obj.obj.Step = &value return obj } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// Length returns a uint32 -func (obj *patternFlowIpv4TosThroughputMetricTag) Length() uint32 { +// description is TBD +// Count returns a int32 +func (obj *patternFlowSnmpv2CBulkPDURequestIdCounter) Count() int32 { - return *obj.obj.Length + return *obj.obj.Count } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// Length returns a uint32 -func (obj *patternFlowIpv4TosThroughputMetricTag) HasLength() bool { - return obj.obj.Length != nil +// description is TBD +// Count returns a int32 +func (obj *patternFlowSnmpv2CBulkPDURequestIdCounter) HasCount() bool { + return obj.obj.Count != nil } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// SetLength sets the uint32 value in the PatternFlowIpv4TosThroughputMetricTag object -func (obj *patternFlowIpv4TosThroughputMetricTag) SetLength(value uint32) PatternFlowIpv4TosThroughputMetricTag { +// description is TBD +// SetCount sets the int32 value in the PatternFlowSnmpv2CBulkPDURequestIdCounter object +func (obj *patternFlowSnmpv2CBulkPDURequestIdCounter) SetCount(value int32) PatternFlowSnmpv2CBulkPDURequestIdCounter { - obj.obj.Length = &value + obj.obj.Count = &value return obj } -func (obj *patternFlowIpv4TosThroughputMetricTag) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowSnmpv2CBulkPDURequestIdCounter) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - // Name is required - if obj.obj.Name == nil { - vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosThroughputMetricTag") - } - - if obj.obj.Offset != nil { - - if *obj.obj.Offset > 0 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosThroughputMetricTag.Offset <= 0 but Got %d", *obj.obj.Offset)) - } - - } - - if obj.obj.Length != nil { - - if *obj.obj.Length < 1 || *obj.obj.Length > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("1 <= PatternFlowIpv4TosThroughputMetricTag.Length <= 1 but Got %d", *obj.obj.Length)) - } - - } - } -func (obj *patternFlowIpv4TosThroughputMetricTag) setDefault() { - if obj.obj.Offset == nil { - obj.SetOffset(0) +func (obj *patternFlowSnmpv2CBulkPDURequestIdCounter) setDefault() { + if obj.obj.Start == nil { + obj.SetStart(0) } - if obj.obj.Length == nil { - obj.SetLength(1) + if obj.obj.Step == nil { + obj.SetStep(1) + } + if obj.obj.Count == nil { + obj.SetCount(1) } } -// ***** PatternFlowIpv4TosReliabilityCounter ***** -type patternFlowIpv4TosReliabilityCounter struct { +// ***** PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter ***** +type patternFlowSnmpv2CBulkPDUMaxRepetitionsCounter struct { validation - obj *otg.PatternFlowIpv4TosReliabilityCounter - marshaller marshalPatternFlowIpv4TosReliabilityCounter - unMarshaller unMarshalPatternFlowIpv4TosReliabilityCounter + obj *otg.PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter + marshaller marshalPatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter + unMarshaller unMarshalPatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter } -func NewPatternFlowIpv4TosReliabilityCounter() PatternFlowIpv4TosReliabilityCounter { - obj := patternFlowIpv4TosReliabilityCounter{obj: &otg.PatternFlowIpv4TosReliabilityCounter{}} +func NewPatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter() PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter { + obj := patternFlowSnmpv2CBulkPDUMaxRepetitionsCounter{obj: &otg.PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4TosReliabilityCounter) msg() *otg.PatternFlowIpv4TosReliabilityCounter { +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) msg() *otg.PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter { return obj.obj } -func (obj *patternFlowIpv4TosReliabilityCounter) setMsg(msg *otg.PatternFlowIpv4TosReliabilityCounter) PatternFlowIpv4TosReliabilityCounter { +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) setMsg(msg *otg.PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter { proto.Merge(obj.obj, msg) return obj } -type marshalpatternFlowIpv4TosReliabilityCounter struct { - obj *patternFlowIpv4TosReliabilityCounter +type marshalpatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter struct { + obj *patternFlowSnmpv2CBulkPDUMaxRepetitionsCounter } -type marshalPatternFlowIpv4TosReliabilityCounter interface { - // ToProto marshals PatternFlowIpv4TosReliabilityCounter to protobuf object *otg.PatternFlowIpv4TosReliabilityCounter - ToProto() (*otg.PatternFlowIpv4TosReliabilityCounter, error) - // ToPbText marshals PatternFlowIpv4TosReliabilityCounter to protobuf text +type marshalPatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter interface { + // ToProto marshals PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter to protobuf object *otg.PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter + ToProto() (*otg.PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter, error) + // ToPbText marshals PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4TosReliabilityCounter to YAML text + // ToYaml marshals PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4TosReliabilityCounter to JSON text + // ToJson marshals PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter to JSON text ToJson() (string, error) } -type unMarshalpatternFlowIpv4TosReliabilityCounter struct { - obj *patternFlowIpv4TosReliabilityCounter +type unMarshalpatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter struct { + obj *patternFlowSnmpv2CBulkPDUMaxRepetitionsCounter } -type unMarshalPatternFlowIpv4TosReliabilityCounter interface { - // FromProto unmarshals PatternFlowIpv4TosReliabilityCounter from protobuf object *otg.PatternFlowIpv4TosReliabilityCounter - FromProto(msg *otg.PatternFlowIpv4TosReliabilityCounter) (PatternFlowIpv4TosReliabilityCounter, error) - // FromPbText unmarshals PatternFlowIpv4TosReliabilityCounter from protobuf text +type unMarshalPatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter interface { + // FromProto unmarshals PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter from protobuf object *otg.PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter + FromProto(msg *otg.PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) (PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter, error) + // FromPbText unmarshals PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4TosReliabilityCounter from YAML text + // FromYaml unmarshals PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4TosReliabilityCounter from JSON text + // FromJson unmarshals PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter from JSON text FromJson(value string) error } -func (obj *patternFlowIpv4TosReliabilityCounter) Marshal() marshalPatternFlowIpv4TosReliabilityCounter { +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) Marshal() marshalPatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter { if obj.marshaller == nil { - obj.marshaller = &marshalpatternFlowIpv4TosReliabilityCounter{obj: obj} + obj.marshaller = &marshalpatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter{obj: obj} } return obj.marshaller } -func (obj *patternFlowIpv4TosReliabilityCounter) Unmarshal() unMarshalPatternFlowIpv4TosReliabilityCounter { +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) Unmarshal() unMarshalPatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalpatternFlowIpv4TosReliabilityCounter{obj: obj} + obj.unMarshaller = &unMarshalpatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter{obj: obj} } return obj.unMarshaller } -func (m *marshalpatternFlowIpv4TosReliabilityCounter) ToProto() (*otg.PatternFlowIpv4TosReliabilityCounter, error) { +func (m *marshalpatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) ToProto() (*otg.PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -332998,7 +346053,7 @@ func (m *marshalpatternFlowIpv4TosReliabilityCounter) ToProto() (*otg.PatternFlo return m.obj.msg(), nil } -func (m *unMarshalpatternFlowIpv4TosReliabilityCounter) FromProto(msg *otg.PatternFlowIpv4TosReliabilityCounter) (PatternFlowIpv4TosReliabilityCounter, error) { +func (m *unMarshalpatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) FromProto(msg *otg.PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) (PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -333007,7 +346062,7 @@ func (m *unMarshalpatternFlowIpv4TosReliabilityCounter) FromProto(msg *otg.Patte return newObj, nil } -func (m *marshalpatternFlowIpv4TosReliabilityCounter) ToPbText() (string, error) { +func (m *marshalpatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -333019,7 +346074,7 @@ func (m *marshalpatternFlowIpv4TosReliabilityCounter) ToPbText() (string, error) return string(protoMarshal), nil } -func (m *unMarshalpatternFlowIpv4TosReliabilityCounter) FromPbText(value string) error { +func (m *unMarshalpatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj @@ -333032,7 +346087,7 @@ func (m *unMarshalpatternFlowIpv4TosReliabilityCounter) FromPbText(value string) return retObj } -func (m *marshalpatternFlowIpv4TosReliabilityCounter) ToYaml() (string, error) { +func (m *marshalpatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -333053,7 +346108,7 @@ func (m *marshalpatternFlowIpv4TosReliabilityCounter) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalpatternFlowIpv4TosReliabilityCounter) FromYaml(value string) error { +func (m *unMarshalpatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) FromYaml(value string) error { if value == "" { value = "{}" } @@ -333078,7 +346133,7 @@ func (m *unMarshalpatternFlowIpv4TosReliabilityCounter) FromYaml(value string) e return nil } -func (m *marshalpatternFlowIpv4TosReliabilityCounter) ToJson() (string, error) { +func (m *marshalpatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -333096,7 +346151,7 @@ func (m *marshalpatternFlowIpv4TosReliabilityCounter) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalpatternFlowIpv4TosReliabilityCounter) FromJson(value string) error { +func (m *unMarshalpatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -333117,19 +346172,19 @@ func (m *unMarshalpatternFlowIpv4TosReliabilityCounter) FromJson(value string) e return nil } -func (obj *patternFlowIpv4TosReliabilityCounter) validateToAndFrom() error { +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4TosReliabilityCounter) validate() error { +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4TosReliabilityCounter) String() string { +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -333137,12 +346192,12 @@ func (obj *patternFlowIpv4TosReliabilityCounter) String() string { return str } -func (obj *patternFlowIpv4TosReliabilityCounter) Clone() (PatternFlowIpv4TosReliabilityCounter, error) { +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) Clone() (PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4TosReliabilityCounter() + newObj := NewPatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -333154,51 +346209,51 @@ func (obj *patternFlowIpv4TosReliabilityCounter) Clone() (PatternFlowIpv4TosReli return newObj, nil } -// PatternFlowIpv4TosReliabilityCounter is integer counter pattern -type PatternFlowIpv4TosReliabilityCounter interface { +// PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter is integer counter pattern +type PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter interface { Validation - // msg marshals PatternFlowIpv4TosReliabilityCounter to protobuf object *otg.PatternFlowIpv4TosReliabilityCounter + // msg marshals PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter to protobuf object *otg.PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter // and doesn't set defaults - msg() *otg.PatternFlowIpv4TosReliabilityCounter - // setMsg unmarshals PatternFlowIpv4TosReliabilityCounter from protobuf object *otg.PatternFlowIpv4TosReliabilityCounter + msg() *otg.PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter + // setMsg unmarshals PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter from protobuf object *otg.PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter // and doesn't set defaults - setMsg(*otg.PatternFlowIpv4TosReliabilityCounter) PatternFlowIpv4TosReliabilityCounter + setMsg(*otg.PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter // provides marshal interface - Marshal() marshalPatternFlowIpv4TosReliabilityCounter + Marshal() marshalPatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter // provides unmarshal interface - Unmarshal() unMarshalPatternFlowIpv4TosReliabilityCounter - // validate validates PatternFlowIpv4TosReliabilityCounter + Unmarshal() unMarshalPatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter + // validate validates PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4TosReliabilityCounter, error) + Clone() (PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Start returns uint32, set in PatternFlowIpv4TosReliabilityCounter. + // Start returns uint32, set in PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter. Start() uint32 - // SetStart assigns uint32 provided by user to PatternFlowIpv4TosReliabilityCounter - SetStart(value uint32) PatternFlowIpv4TosReliabilityCounter - // HasStart checks if Start has been set in PatternFlowIpv4TosReliabilityCounter + // SetStart assigns uint32 provided by user to PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter + SetStart(value uint32) PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter + // HasStart checks if Start has been set in PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter HasStart() bool - // Step returns uint32, set in PatternFlowIpv4TosReliabilityCounter. + // Step returns uint32, set in PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter. Step() uint32 - // SetStep assigns uint32 provided by user to PatternFlowIpv4TosReliabilityCounter - SetStep(value uint32) PatternFlowIpv4TosReliabilityCounter - // HasStep checks if Step has been set in PatternFlowIpv4TosReliabilityCounter + // SetStep assigns uint32 provided by user to PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter + SetStep(value uint32) PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter + // HasStep checks if Step has been set in PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter HasStep() bool - // Count returns uint32, set in PatternFlowIpv4TosReliabilityCounter. + // Count returns uint32, set in PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter. Count() uint32 - // SetCount assigns uint32 provided by user to PatternFlowIpv4TosReliabilityCounter - SetCount(value uint32) PatternFlowIpv4TosReliabilityCounter - // HasCount checks if Count has been set in PatternFlowIpv4TosReliabilityCounter + // SetCount assigns uint32 provided by user to PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter + SetCount(value uint32) PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter + // HasCount checks if Count has been set in PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter HasCount() bool } // description is TBD // Start returns a uint32 -func (obj *patternFlowIpv4TosReliabilityCounter) Start() uint32 { +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) Start() uint32 { return *obj.obj.Start @@ -333206,13 +346261,13 @@ func (obj *patternFlowIpv4TosReliabilityCounter) Start() uint32 { // description is TBD // Start returns a uint32 -func (obj *patternFlowIpv4TosReliabilityCounter) HasStart() bool { +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) HasStart() bool { return obj.obj.Start != nil } // description is TBD -// SetStart sets the uint32 value in the PatternFlowIpv4TosReliabilityCounter object -func (obj *patternFlowIpv4TosReliabilityCounter) SetStart(value uint32) PatternFlowIpv4TosReliabilityCounter { +// SetStart sets the uint32 value in the PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter object +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) SetStart(value uint32) PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter { obj.obj.Start = &value return obj @@ -333220,7 +346275,7 @@ func (obj *patternFlowIpv4TosReliabilityCounter) SetStart(value uint32) PatternF // description is TBD // Step returns a uint32 -func (obj *patternFlowIpv4TosReliabilityCounter) Step() uint32 { +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) Step() uint32 { return *obj.obj.Step @@ -333228,13 +346283,13 @@ func (obj *patternFlowIpv4TosReliabilityCounter) Step() uint32 { // description is TBD // Step returns a uint32 -func (obj *patternFlowIpv4TosReliabilityCounter) HasStep() bool { +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) HasStep() bool { return obj.obj.Step != nil } // description is TBD -// SetStep sets the uint32 value in the PatternFlowIpv4TosReliabilityCounter object -func (obj *patternFlowIpv4TosReliabilityCounter) SetStep(value uint32) PatternFlowIpv4TosReliabilityCounter { +// SetStep sets the uint32 value in the PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter object +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) SetStep(value uint32) PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter { obj.obj.Step = &value return obj @@ -333242,7 +346297,7 @@ func (obj *patternFlowIpv4TosReliabilityCounter) SetStep(value uint32) PatternFl // description is TBD // Count returns a uint32 -func (obj *patternFlowIpv4TosReliabilityCounter) Count() uint32 { +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) Count() uint32 { return *obj.obj.Count @@ -333250,56 +346305,26 @@ func (obj *patternFlowIpv4TosReliabilityCounter) Count() uint32 { // description is TBD // Count returns a uint32 -func (obj *patternFlowIpv4TosReliabilityCounter) HasCount() bool { +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) HasCount() bool { return obj.obj.Count != nil } // description is TBD -// SetCount sets the uint32 value in the PatternFlowIpv4TosReliabilityCounter object -func (obj *patternFlowIpv4TosReliabilityCounter) SetCount(value uint32) PatternFlowIpv4TosReliabilityCounter { +// SetCount sets the uint32 value in the PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter object +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) SetCount(value uint32) PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter { obj.obj.Count = &value return obj } -func (obj *patternFlowIpv4TosReliabilityCounter) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Start != nil { - - if *obj.obj.Start > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosReliabilityCounter.Start <= 1 but Got %d", *obj.obj.Start)) - } - - } - - if obj.obj.Step != nil { - - if *obj.obj.Step > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosReliabilityCounter.Step <= 1 but Got %d", *obj.obj.Step)) - } - - } - - if obj.obj.Count != nil { - - if *obj.obj.Count > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosReliabilityCounter.Count <= 1 but Got %d", *obj.obj.Count)) - } - - } - } -func (obj *patternFlowIpv4TosReliabilityCounter) setDefault() { +func (obj *patternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) setDefault() { if obj.obj.Start == nil { obj.SetStart(0) } @@ -333312,75 +346337,75 @@ func (obj *patternFlowIpv4TosReliabilityCounter) setDefault() { } -// ***** PatternFlowIpv4TosReliabilityMetricTag ***** -type patternFlowIpv4TosReliabilityMetricTag struct { +// ***** IsisLspPrefixAttributes ***** +type isisLspPrefixAttributes struct { validation - obj *otg.PatternFlowIpv4TosReliabilityMetricTag - marshaller marshalPatternFlowIpv4TosReliabilityMetricTag - unMarshaller unMarshalPatternFlowIpv4TosReliabilityMetricTag + obj *otg.IsisLspPrefixAttributes + marshaller marshalIsisLspPrefixAttributes + unMarshaller unMarshalIsisLspPrefixAttributes } -func NewPatternFlowIpv4TosReliabilityMetricTag() PatternFlowIpv4TosReliabilityMetricTag { - obj := patternFlowIpv4TosReliabilityMetricTag{obj: &otg.PatternFlowIpv4TosReliabilityMetricTag{}} +func NewIsisLspPrefixAttributes() IsisLspPrefixAttributes { + obj := isisLspPrefixAttributes{obj: &otg.IsisLspPrefixAttributes{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4TosReliabilityMetricTag) msg() *otg.PatternFlowIpv4TosReliabilityMetricTag { +func (obj *isisLspPrefixAttributes) msg() *otg.IsisLspPrefixAttributes { return obj.obj } -func (obj *patternFlowIpv4TosReliabilityMetricTag) setMsg(msg *otg.PatternFlowIpv4TosReliabilityMetricTag) PatternFlowIpv4TosReliabilityMetricTag { +func (obj *isisLspPrefixAttributes) setMsg(msg *otg.IsisLspPrefixAttributes) IsisLspPrefixAttributes { proto.Merge(obj.obj, msg) return obj } -type marshalpatternFlowIpv4TosReliabilityMetricTag struct { - obj *patternFlowIpv4TosReliabilityMetricTag +type marshalisisLspPrefixAttributes struct { + obj *isisLspPrefixAttributes } -type marshalPatternFlowIpv4TosReliabilityMetricTag interface { - // ToProto marshals PatternFlowIpv4TosReliabilityMetricTag to protobuf object *otg.PatternFlowIpv4TosReliabilityMetricTag - ToProto() (*otg.PatternFlowIpv4TosReliabilityMetricTag, error) - // ToPbText marshals PatternFlowIpv4TosReliabilityMetricTag to protobuf text +type marshalIsisLspPrefixAttributes interface { + // ToProto marshals IsisLspPrefixAttributes to protobuf object *otg.IsisLspPrefixAttributes + ToProto() (*otg.IsisLspPrefixAttributes, error) + // ToPbText marshals IsisLspPrefixAttributes to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4TosReliabilityMetricTag to YAML text + // ToYaml marshals IsisLspPrefixAttributes to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4TosReliabilityMetricTag to JSON text + // ToJson marshals IsisLspPrefixAttributes to JSON text ToJson() (string, error) } -type unMarshalpatternFlowIpv4TosReliabilityMetricTag struct { - obj *patternFlowIpv4TosReliabilityMetricTag +type unMarshalisisLspPrefixAttributes struct { + obj *isisLspPrefixAttributes } -type unMarshalPatternFlowIpv4TosReliabilityMetricTag interface { - // FromProto unmarshals PatternFlowIpv4TosReliabilityMetricTag from protobuf object *otg.PatternFlowIpv4TosReliabilityMetricTag - FromProto(msg *otg.PatternFlowIpv4TosReliabilityMetricTag) (PatternFlowIpv4TosReliabilityMetricTag, error) - // FromPbText unmarshals PatternFlowIpv4TosReliabilityMetricTag from protobuf text +type unMarshalIsisLspPrefixAttributes interface { + // FromProto unmarshals IsisLspPrefixAttributes from protobuf object *otg.IsisLspPrefixAttributes + FromProto(msg *otg.IsisLspPrefixAttributes) (IsisLspPrefixAttributes, error) + // FromPbText unmarshals IsisLspPrefixAttributes from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4TosReliabilityMetricTag from YAML text + // FromYaml unmarshals IsisLspPrefixAttributes from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4TosReliabilityMetricTag from JSON text + // FromJson unmarshals IsisLspPrefixAttributes from JSON text FromJson(value string) error } -func (obj *patternFlowIpv4TosReliabilityMetricTag) Marshal() marshalPatternFlowIpv4TosReliabilityMetricTag { +func (obj *isisLspPrefixAttributes) Marshal() marshalIsisLspPrefixAttributes { if obj.marshaller == nil { - obj.marshaller = &marshalpatternFlowIpv4TosReliabilityMetricTag{obj: obj} + obj.marshaller = &marshalisisLspPrefixAttributes{obj: obj} } return obj.marshaller } -func (obj *patternFlowIpv4TosReliabilityMetricTag) Unmarshal() unMarshalPatternFlowIpv4TosReliabilityMetricTag { +func (obj *isisLspPrefixAttributes) Unmarshal() unMarshalIsisLspPrefixAttributes { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalpatternFlowIpv4TosReliabilityMetricTag{obj: obj} + obj.unMarshaller = &unMarshalisisLspPrefixAttributes{obj: obj} } return obj.unMarshaller } -func (m *marshalpatternFlowIpv4TosReliabilityMetricTag) ToProto() (*otg.PatternFlowIpv4TosReliabilityMetricTag, error) { +func (m *marshalisisLspPrefixAttributes) ToProto() (*otg.IsisLspPrefixAttributes, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -333388,7 +346413,7 @@ func (m *marshalpatternFlowIpv4TosReliabilityMetricTag) ToProto() (*otg.PatternF return m.obj.msg(), nil } -func (m *unMarshalpatternFlowIpv4TosReliabilityMetricTag) FromProto(msg *otg.PatternFlowIpv4TosReliabilityMetricTag) (PatternFlowIpv4TosReliabilityMetricTag, error) { +func (m *unMarshalisisLspPrefixAttributes) FromProto(msg *otg.IsisLspPrefixAttributes) (IsisLspPrefixAttributes, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -333397,7 +346422,7 @@ func (m *unMarshalpatternFlowIpv4TosReliabilityMetricTag) FromProto(msg *otg.Pat return newObj, nil } -func (m *marshalpatternFlowIpv4TosReliabilityMetricTag) ToPbText() (string, error) { +func (m *marshalisisLspPrefixAttributes) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -333409,7 +346434,7 @@ func (m *marshalpatternFlowIpv4TosReliabilityMetricTag) ToPbText() (string, erro return string(protoMarshal), nil } -func (m *unMarshalpatternFlowIpv4TosReliabilityMetricTag) FromPbText(value string) error { +func (m *unMarshalisisLspPrefixAttributes) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj @@ -333422,7 +346447,7 @@ func (m *unMarshalpatternFlowIpv4TosReliabilityMetricTag) FromPbText(value strin return retObj } -func (m *marshalpatternFlowIpv4TosReliabilityMetricTag) ToYaml() (string, error) { +func (m *marshalisisLspPrefixAttributes) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -333443,7 +346468,7 @@ func (m *marshalpatternFlowIpv4TosReliabilityMetricTag) ToYaml() (string, error) return string(data), nil } -func (m *unMarshalpatternFlowIpv4TosReliabilityMetricTag) FromYaml(value string) error { +func (m *unMarshalisisLspPrefixAttributes) FromYaml(value string) error { if value == "" { value = "{}" } @@ -333468,7 +346493,7 @@ func (m *unMarshalpatternFlowIpv4TosReliabilityMetricTag) FromYaml(value string) return nil } -func (m *marshalpatternFlowIpv4TosReliabilityMetricTag) ToJson() (string, error) { +func (m *marshalisisLspPrefixAttributes) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -333486,7 +346511,7 @@ func (m *marshalpatternFlowIpv4TosReliabilityMetricTag) ToJson() (string, error) return string(data), nil } -func (m *unMarshalpatternFlowIpv4TosReliabilityMetricTag) FromJson(value string) error { +func (m *unMarshalisisLspPrefixAttributes) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -333507,19 +346532,19 @@ func (m *unMarshalpatternFlowIpv4TosReliabilityMetricTag) FromJson(value string) return nil } -func (obj *patternFlowIpv4TosReliabilityMetricTag) validateToAndFrom() error { +func (obj *isisLspPrefixAttributes) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4TosReliabilityMetricTag) validate() error { +func (obj *isisLspPrefixAttributes) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4TosReliabilityMetricTag) String() string { +func (obj *isisLspPrefixAttributes) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -333527,12 +346552,12 @@ func (obj *patternFlowIpv4TosReliabilityMetricTag) String() string { return str } -func (obj *patternFlowIpv4TosReliabilityMetricTag) Clone() (PatternFlowIpv4TosReliabilityMetricTag, error) { +func (obj *isisLspPrefixAttributes) Clone() (IsisLspPrefixAttributes, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4TosReliabilityMetricTag() + newObj := NewIsisLspPrefixAttributes() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -333544,217 +346569,195 @@ func (obj *patternFlowIpv4TosReliabilityMetricTag) Clone() (PatternFlowIpv4TosRe return newObj, nil } -// PatternFlowIpv4TosReliabilityMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. -type PatternFlowIpv4TosReliabilityMetricTag interface { +// IsisLspPrefixAttributes is this contains the properties of ISIS Prefix attributes for the extended IPv4 and IPv6 reachability. https://www.rfc-editor.org/rfc/rfc7794.html +type IsisLspPrefixAttributes interface { Validation - // msg marshals PatternFlowIpv4TosReliabilityMetricTag to protobuf object *otg.PatternFlowIpv4TosReliabilityMetricTag + // msg marshals IsisLspPrefixAttributes to protobuf object *otg.IsisLspPrefixAttributes // and doesn't set defaults - msg() *otg.PatternFlowIpv4TosReliabilityMetricTag - // setMsg unmarshals PatternFlowIpv4TosReliabilityMetricTag from protobuf object *otg.PatternFlowIpv4TosReliabilityMetricTag + msg() *otg.IsisLspPrefixAttributes + // setMsg unmarshals IsisLspPrefixAttributes from protobuf object *otg.IsisLspPrefixAttributes // and doesn't set defaults - setMsg(*otg.PatternFlowIpv4TosReliabilityMetricTag) PatternFlowIpv4TosReliabilityMetricTag + setMsg(*otg.IsisLspPrefixAttributes) IsisLspPrefixAttributes // provides marshal interface - Marshal() marshalPatternFlowIpv4TosReliabilityMetricTag + Marshal() marshalIsisLspPrefixAttributes // provides unmarshal interface - Unmarshal() unMarshalPatternFlowIpv4TosReliabilityMetricTag - // validate validates PatternFlowIpv4TosReliabilityMetricTag + Unmarshal() unMarshalIsisLspPrefixAttributes + // validate validates IsisLspPrefixAttributes validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4TosReliabilityMetricTag, error) + Clone() (IsisLspPrefixAttributes, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Name returns string, set in PatternFlowIpv4TosReliabilityMetricTag. - Name() string - // SetName assigns string provided by user to PatternFlowIpv4TosReliabilityMetricTag - SetName(value string) PatternFlowIpv4TosReliabilityMetricTag - // Offset returns uint32, set in PatternFlowIpv4TosReliabilityMetricTag. - Offset() uint32 - // SetOffset assigns uint32 provided by user to PatternFlowIpv4TosReliabilityMetricTag - SetOffset(value uint32) PatternFlowIpv4TosReliabilityMetricTag - // HasOffset checks if Offset has been set in PatternFlowIpv4TosReliabilityMetricTag - HasOffset() bool - // Length returns uint32, set in PatternFlowIpv4TosReliabilityMetricTag. - Length() uint32 - // SetLength assigns uint32 provided by user to PatternFlowIpv4TosReliabilityMetricTag - SetLength(value uint32) PatternFlowIpv4TosReliabilityMetricTag - // HasLength checks if Length has been set in PatternFlowIpv4TosReliabilityMetricTag - HasLength() bool + // XFlag returns bool, set in IsisLspPrefixAttributes. + XFlag() bool + // SetXFlag assigns bool provided by user to IsisLspPrefixAttributes + SetXFlag(value bool) IsisLspPrefixAttributes + // HasXFlag checks if XFlag has been set in IsisLspPrefixAttributes + HasXFlag() bool + // RFlag returns bool, set in IsisLspPrefixAttributes. + RFlag() bool + // SetRFlag assigns bool provided by user to IsisLspPrefixAttributes + SetRFlag(value bool) IsisLspPrefixAttributes + // HasRFlag checks if RFlag has been set in IsisLspPrefixAttributes + HasRFlag() bool + // NFlag returns bool, set in IsisLspPrefixAttributes. + NFlag() bool + // SetNFlag assigns bool provided by user to IsisLspPrefixAttributes + SetNFlag(value bool) IsisLspPrefixAttributes + // HasNFlag checks if NFlag has been set in IsisLspPrefixAttributes + HasNFlag() bool } -// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// Name returns a string -func (obj *patternFlowIpv4TosReliabilityMetricTag) Name() string { +// External Prefix Flag (Bit 0) +// XFlag returns a bool +func (obj *isisLspPrefixAttributes) XFlag() bool { - return *obj.obj.Name + return *obj.obj.XFlag } -// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// SetName sets the string value in the PatternFlowIpv4TosReliabilityMetricTag object -func (obj *patternFlowIpv4TosReliabilityMetricTag) SetName(value string) PatternFlowIpv4TosReliabilityMetricTag { +// External Prefix Flag (Bit 0) +// XFlag returns a bool +func (obj *isisLspPrefixAttributes) HasXFlag() bool { + return obj.obj.XFlag != nil +} - obj.obj.Name = &value +// External Prefix Flag (Bit 0) +// SetXFlag sets the bool value in the IsisLspPrefixAttributes object +func (obj *isisLspPrefixAttributes) SetXFlag(value bool) IsisLspPrefixAttributes { + + obj.obj.XFlag = &value return obj } -// Offset in bits relative to start of corresponding header field -// Offset returns a uint32 -func (obj *patternFlowIpv4TosReliabilityMetricTag) Offset() uint32 { +// Re-advertisement Flag (Bit 1) +// RFlag returns a bool +func (obj *isisLspPrefixAttributes) RFlag() bool { - return *obj.obj.Offset + return *obj.obj.RFlag } -// Offset in bits relative to start of corresponding header field -// Offset returns a uint32 -func (obj *patternFlowIpv4TosReliabilityMetricTag) HasOffset() bool { - return obj.obj.Offset != nil +// Re-advertisement Flag (Bit 1) +// RFlag returns a bool +func (obj *isisLspPrefixAttributes) HasRFlag() bool { + return obj.obj.RFlag != nil } -// Offset in bits relative to start of corresponding header field -// SetOffset sets the uint32 value in the PatternFlowIpv4TosReliabilityMetricTag object -func (obj *patternFlowIpv4TosReliabilityMetricTag) SetOffset(value uint32) PatternFlowIpv4TosReliabilityMetricTag { +// Re-advertisement Flag (Bit 1) +// SetRFlag sets the bool value in the IsisLspPrefixAttributes object +func (obj *isisLspPrefixAttributes) SetRFlag(value bool) IsisLspPrefixAttributes { - obj.obj.Offset = &value + obj.obj.RFlag = &value return obj } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// Length returns a uint32 -func (obj *patternFlowIpv4TosReliabilityMetricTag) Length() uint32 { +// Node Flag (Bit 2) +// NFlag returns a bool +func (obj *isisLspPrefixAttributes) NFlag() bool { - return *obj.obj.Length + return *obj.obj.NFlag } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// Length returns a uint32 -func (obj *patternFlowIpv4TosReliabilityMetricTag) HasLength() bool { - return obj.obj.Length != nil +// Node Flag (Bit 2) +// NFlag returns a bool +func (obj *isisLspPrefixAttributes) HasNFlag() bool { + return obj.obj.NFlag != nil } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// SetLength sets the uint32 value in the PatternFlowIpv4TosReliabilityMetricTag object -func (obj *patternFlowIpv4TosReliabilityMetricTag) SetLength(value uint32) PatternFlowIpv4TosReliabilityMetricTag { +// Node Flag (Bit 2) +// SetNFlag sets the bool value in the IsisLspPrefixAttributes object +func (obj *isisLspPrefixAttributes) SetNFlag(value bool) IsisLspPrefixAttributes { - obj.obj.Length = &value + obj.obj.NFlag = &value return obj } -func (obj *patternFlowIpv4TosReliabilityMetricTag) validateObj(vObj *validation, set_default bool) { +func (obj *isisLspPrefixAttributes) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - // Name is required - if obj.obj.Name == nil { - vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosReliabilityMetricTag") - } - - if obj.obj.Offset != nil { - - if *obj.obj.Offset > 0 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosReliabilityMetricTag.Offset <= 0 but Got %d", *obj.obj.Offset)) - } - - } - - if obj.obj.Length != nil { - - if *obj.obj.Length < 1 || *obj.obj.Length > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("1 <= PatternFlowIpv4TosReliabilityMetricTag.Length <= 1 but Got %d", *obj.obj.Length)) - } - - } - } -func (obj *patternFlowIpv4TosReliabilityMetricTag) setDefault() { - if obj.obj.Offset == nil { - obj.SetOffset(0) - } - if obj.obj.Length == nil { - obj.SetLength(1) - } +func (obj *isisLspPrefixAttributes) setDefault() { } -// ***** PatternFlowIpv4TosMonetaryCounter ***** -type patternFlowIpv4TosMonetaryCounter struct { +// ***** BgpV4EviVxlanBroadcastDomain ***** +type bgpV4EviVxlanBroadcastDomain struct { validation - obj *otg.PatternFlowIpv4TosMonetaryCounter - marshaller marshalPatternFlowIpv4TosMonetaryCounter - unMarshaller unMarshalPatternFlowIpv4TosMonetaryCounter + obj *otg.BgpV4EviVxlanBroadcastDomain + marshaller marshalBgpV4EviVxlanBroadcastDomain + unMarshaller unMarshalBgpV4EviVxlanBroadcastDomain + cmacIpRangeHolder BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter } -func NewPatternFlowIpv4TosMonetaryCounter() PatternFlowIpv4TosMonetaryCounter { - obj := patternFlowIpv4TosMonetaryCounter{obj: &otg.PatternFlowIpv4TosMonetaryCounter{}} +func NewBgpV4EviVxlanBroadcastDomain() BgpV4EviVxlanBroadcastDomain { + obj := bgpV4EviVxlanBroadcastDomain{obj: &otg.BgpV4EviVxlanBroadcastDomain{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4TosMonetaryCounter) msg() *otg.PatternFlowIpv4TosMonetaryCounter { +func (obj *bgpV4EviVxlanBroadcastDomain) msg() *otg.BgpV4EviVxlanBroadcastDomain { return obj.obj } -func (obj *patternFlowIpv4TosMonetaryCounter) setMsg(msg *otg.PatternFlowIpv4TosMonetaryCounter) PatternFlowIpv4TosMonetaryCounter { - +func (obj *bgpV4EviVxlanBroadcastDomain) setMsg(msg *otg.BgpV4EviVxlanBroadcastDomain) BgpV4EviVxlanBroadcastDomain { + obj.setNil() proto.Merge(obj.obj, msg) return obj } -type marshalpatternFlowIpv4TosMonetaryCounter struct { - obj *patternFlowIpv4TosMonetaryCounter +type marshalbgpV4EviVxlanBroadcastDomain struct { + obj *bgpV4EviVxlanBroadcastDomain } -type marshalPatternFlowIpv4TosMonetaryCounter interface { - // ToProto marshals PatternFlowIpv4TosMonetaryCounter to protobuf object *otg.PatternFlowIpv4TosMonetaryCounter - ToProto() (*otg.PatternFlowIpv4TosMonetaryCounter, error) - // ToPbText marshals PatternFlowIpv4TosMonetaryCounter to protobuf text +type marshalBgpV4EviVxlanBroadcastDomain interface { + // ToProto marshals BgpV4EviVxlanBroadcastDomain to protobuf object *otg.BgpV4EviVxlanBroadcastDomain + ToProto() (*otg.BgpV4EviVxlanBroadcastDomain, error) + // ToPbText marshals BgpV4EviVxlanBroadcastDomain to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4TosMonetaryCounter to YAML text + // ToYaml marshals BgpV4EviVxlanBroadcastDomain to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4TosMonetaryCounter to JSON text + // ToJson marshals BgpV4EviVxlanBroadcastDomain to JSON text ToJson() (string, error) } -type unMarshalpatternFlowIpv4TosMonetaryCounter struct { - obj *patternFlowIpv4TosMonetaryCounter +type unMarshalbgpV4EviVxlanBroadcastDomain struct { + obj *bgpV4EviVxlanBroadcastDomain } -type unMarshalPatternFlowIpv4TosMonetaryCounter interface { - // FromProto unmarshals PatternFlowIpv4TosMonetaryCounter from protobuf object *otg.PatternFlowIpv4TosMonetaryCounter - FromProto(msg *otg.PatternFlowIpv4TosMonetaryCounter) (PatternFlowIpv4TosMonetaryCounter, error) - // FromPbText unmarshals PatternFlowIpv4TosMonetaryCounter from protobuf text +type unMarshalBgpV4EviVxlanBroadcastDomain interface { + // FromProto unmarshals BgpV4EviVxlanBroadcastDomain from protobuf object *otg.BgpV4EviVxlanBroadcastDomain + FromProto(msg *otg.BgpV4EviVxlanBroadcastDomain) (BgpV4EviVxlanBroadcastDomain, error) + // FromPbText unmarshals BgpV4EviVxlanBroadcastDomain from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4TosMonetaryCounter from YAML text + // FromYaml unmarshals BgpV4EviVxlanBroadcastDomain from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4TosMonetaryCounter from JSON text + // FromJson unmarshals BgpV4EviVxlanBroadcastDomain from JSON text FromJson(value string) error } -func (obj *patternFlowIpv4TosMonetaryCounter) Marshal() marshalPatternFlowIpv4TosMonetaryCounter { +func (obj *bgpV4EviVxlanBroadcastDomain) Marshal() marshalBgpV4EviVxlanBroadcastDomain { if obj.marshaller == nil { - obj.marshaller = &marshalpatternFlowIpv4TosMonetaryCounter{obj: obj} + obj.marshaller = &marshalbgpV4EviVxlanBroadcastDomain{obj: obj} } return obj.marshaller } -func (obj *patternFlowIpv4TosMonetaryCounter) Unmarshal() unMarshalPatternFlowIpv4TosMonetaryCounter { +func (obj *bgpV4EviVxlanBroadcastDomain) Unmarshal() unMarshalBgpV4EviVxlanBroadcastDomain { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalpatternFlowIpv4TosMonetaryCounter{obj: obj} + obj.unMarshaller = &unMarshalbgpV4EviVxlanBroadcastDomain{obj: obj} } return obj.unMarshaller } -func (m *marshalpatternFlowIpv4TosMonetaryCounter) ToProto() (*otg.PatternFlowIpv4TosMonetaryCounter, error) { +func (m *marshalbgpV4EviVxlanBroadcastDomain) ToProto() (*otg.BgpV4EviVxlanBroadcastDomain, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -333762,7 +346765,7 @@ func (m *marshalpatternFlowIpv4TosMonetaryCounter) ToProto() (*otg.PatternFlowIp return m.obj.msg(), nil } -func (m *unMarshalpatternFlowIpv4TosMonetaryCounter) FromProto(msg *otg.PatternFlowIpv4TosMonetaryCounter) (PatternFlowIpv4TosMonetaryCounter, error) { +func (m *unMarshalbgpV4EviVxlanBroadcastDomain) FromProto(msg *otg.BgpV4EviVxlanBroadcastDomain) (BgpV4EviVxlanBroadcastDomain, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -333771,7 +346774,7 @@ func (m *unMarshalpatternFlowIpv4TosMonetaryCounter) FromProto(msg *otg.PatternF return newObj, nil } -func (m *marshalpatternFlowIpv4TosMonetaryCounter) ToPbText() (string, error) { +func (m *marshalbgpV4EviVxlanBroadcastDomain) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -333783,12 +346786,12 @@ func (m *marshalpatternFlowIpv4TosMonetaryCounter) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalpatternFlowIpv4TosMonetaryCounter) FromPbText(value string) error { +func (m *unMarshalbgpV4EviVxlanBroadcastDomain) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -333796,7 +346799,7 @@ func (m *unMarshalpatternFlowIpv4TosMonetaryCounter) FromPbText(value string) er return retObj } -func (m *marshalpatternFlowIpv4TosMonetaryCounter) ToYaml() (string, error) { +func (m *marshalbgpV4EviVxlanBroadcastDomain) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -333817,7 +346820,7 @@ func (m *marshalpatternFlowIpv4TosMonetaryCounter) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalpatternFlowIpv4TosMonetaryCounter) FromYaml(value string) error { +func (m *unMarshalbgpV4EviVxlanBroadcastDomain) FromYaml(value string) error { if value == "" { value = "{}" } @@ -333834,7 +346837,7 @@ func (m *unMarshalpatternFlowIpv4TosMonetaryCounter) FromYaml(value string) erro return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -333842,7 +346845,7 @@ func (m *unMarshalpatternFlowIpv4TosMonetaryCounter) FromYaml(value string) erro return nil } -func (m *marshalpatternFlowIpv4TosMonetaryCounter) ToJson() (string, error) { +func (m *marshalbgpV4EviVxlanBroadcastDomain) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -333860,7 +346863,7 @@ func (m *marshalpatternFlowIpv4TosMonetaryCounter) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalpatternFlowIpv4TosMonetaryCounter) FromJson(value string) error { +func (m *unMarshalbgpV4EviVxlanBroadcastDomain) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -333873,7 +346876,7 @@ func (m *unMarshalpatternFlowIpv4TosMonetaryCounter) FromJson(value string) erro return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() err := m.obj.validateToAndFrom() if err != nil { return err @@ -333881,19 +346884,19 @@ func (m *unMarshalpatternFlowIpv4TosMonetaryCounter) FromJson(value string) erro return nil } -func (obj *patternFlowIpv4TosMonetaryCounter) validateToAndFrom() error { +func (obj *bgpV4EviVxlanBroadcastDomain) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4TosMonetaryCounter) validate() error { +func (obj *bgpV4EviVxlanBroadcastDomain) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4TosMonetaryCounter) String() string { +func (obj *bgpV4EviVxlanBroadcastDomain) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -333901,12 +346904,12 @@ func (obj *patternFlowIpv4TosMonetaryCounter) String() string { return str } -func (obj *patternFlowIpv4TosMonetaryCounter) Clone() (PatternFlowIpv4TosMonetaryCounter, error) { +func (obj *bgpV4EviVxlanBroadcastDomain) Clone() (BgpV4EviVxlanBroadcastDomain, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4TosMonetaryCounter() + newObj := NewBgpV4EviVxlanBroadcastDomain() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -333918,233 +346921,286 @@ func (obj *patternFlowIpv4TosMonetaryCounter) Clone() (PatternFlowIpv4TosMonetar return newObj, nil } -// PatternFlowIpv4TosMonetaryCounter is integer counter pattern -type PatternFlowIpv4TosMonetaryCounter interface { +func (obj *bgpV4EviVxlanBroadcastDomain) setNil() { + obj.cmacIpRangeHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// BgpV4EviVxlanBroadcastDomain is configuration for Broadcast Domains per EVI. +type BgpV4EviVxlanBroadcastDomain interface { Validation - // msg marshals PatternFlowIpv4TosMonetaryCounter to protobuf object *otg.PatternFlowIpv4TosMonetaryCounter + // msg marshals BgpV4EviVxlanBroadcastDomain to protobuf object *otg.BgpV4EviVxlanBroadcastDomain // and doesn't set defaults - msg() *otg.PatternFlowIpv4TosMonetaryCounter - // setMsg unmarshals PatternFlowIpv4TosMonetaryCounter from protobuf object *otg.PatternFlowIpv4TosMonetaryCounter + msg() *otg.BgpV4EviVxlanBroadcastDomain + // setMsg unmarshals BgpV4EviVxlanBroadcastDomain from protobuf object *otg.BgpV4EviVxlanBroadcastDomain // and doesn't set defaults - setMsg(*otg.PatternFlowIpv4TosMonetaryCounter) PatternFlowIpv4TosMonetaryCounter + setMsg(*otg.BgpV4EviVxlanBroadcastDomain) BgpV4EviVxlanBroadcastDomain // provides marshal interface - Marshal() marshalPatternFlowIpv4TosMonetaryCounter + Marshal() marshalBgpV4EviVxlanBroadcastDomain // provides unmarshal interface - Unmarshal() unMarshalPatternFlowIpv4TosMonetaryCounter - // validate validates PatternFlowIpv4TosMonetaryCounter + Unmarshal() unMarshalBgpV4EviVxlanBroadcastDomain + // validate validates BgpV4EviVxlanBroadcastDomain validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4TosMonetaryCounter, error) + Clone() (BgpV4EviVxlanBroadcastDomain, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Start returns uint32, set in PatternFlowIpv4TosMonetaryCounter. - Start() uint32 - // SetStart assigns uint32 provided by user to PatternFlowIpv4TosMonetaryCounter - SetStart(value uint32) PatternFlowIpv4TosMonetaryCounter - // HasStart checks if Start has been set in PatternFlowIpv4TosMonetaryCounter - HasStart() bool - // Step returns uint32, set in PatternFlowIpv4TosMonetaryCounter. - Step() uint32 - // SetStep assigns uint32 provided by user to PatternFlowIpv4TosMonetaryCounter - SetStep(value uint32) PatternFlowIpv4TosMonetaryCounter - // HasStep checks if Step has been set in PatternFlowIpv4TosMonetaryCounter - HasStep() bool - // Count returns uint32, set in PatternFlowIpv4TosMonetaryCounter. - Count() uint32 - // SetCount assigns uint32 provided by user to PatternFlowIpv4TosMonetaryCounter - SetCount(value uint32) PatternFlowIpv4TosMonetaryCounter - // HasCount checks if Count has been set in PatternFlowIpv4TosMonetaryCounter - HasCount() bool + // CmacIpRange returns BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIterIter, set in BgpV4EviVxlanBroadcastDomain + CmacIpRange() BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter + // EthernetTagId returns uint32, set in BgpV4EviVxlanBroadcastDomain. + EthernetTagId() uint32 + // SetEthernetTagId assigns uint32 provided by user to BgpV4EviVxlanBroadcastDomain + SetEthernetTagId(value uint32) BgpV4EviVxlanBroadcastDomain + // HasEthernetTagId checks if EthernetTagId has been set in BgpV4EviVxlanBroadcastDomain + HasEthernetTagId() bool + // VlanAwareService returns bool, set in BgpV4EviVxlanBroadcastDomain. + VlanAwareService() bool + // SetVlanAwareService assigns bool provided by user to BgpV4EviVxlanBroadcastDomain + SetVlanAwareService(value bool) BgpV4EviVxlanBroadcastDomain + // HasVlanAwareService checks if VlanAwareService has been set in BgpV4EviVxlanBroadcastDomain + HasVlanAwareService() bool + setNil() } -// description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4TosMonetaryCounter) Start() uint32 { +// This contains the list of Customer MAC/IP Ranges to be configured per Broadcast Domain. +// +// Advertises following route - +// Type 2 - MAC/IP Advertisement Route. +// CmacIpRange returns a []BgpCMacIpRange +func (obj *bgpV4EviVxlanBroadcastDomain) CmacIpRange() BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { + if len(obj.obj.CmacIpRange) == 0 { + obj.obj.CmacIpRange = []*otg.BgpCMacIpRange{} + } + if obj.cmacIpRangeHolder == nil { + obj.cmacIpRangeHolder = newBgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter(&obj.obj.CmacIpRange).setMsg(obj) + } + return obj.cmacIpRangeHolder +} - return *obj.obj.Start +type bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter struct { + obj *bgpV4EviVxlanBroadcastDomain + bgpCMacIpRangeSlice []BgpCMacIpRange + fieldPtr *[]*otg.BgpCMacIpRange +} +func newBgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter(ptr *[]*otg.BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { + return &bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter{fieldPtr: ptr} } -// description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4TosMonetaryCounter) HasStart() bool { - return obj.obj.Start != nil +type BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter interface { + setMsg(*bgpV4EviVxlanBroadcastDomain) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter + Items() []BgpCMacIpRange + Add() BgpCMacIpRange + Append(items ...BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter + Set(index int, newObj BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter + Clear() BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter + clearHolderSlice() BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter + appendHolderSlice(item BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter } -// description is TBD -// SetStart sets the uint32 value in the PatternFlowIpv4TosMonetaryCounter object -func (obj *patternFlowIpv4TosMonetaryCounter) SetStart(value uint32) PatternFlowIpv4TosMonetaryCounter { +func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) setMsg(msg *bgpV4EviVxlanBroadcastDomain) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&bgpCMacIpRange{obj: val}) + } + obj.obj = msg + return obj +} - obj.obj.Start = &value +func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) Items() []BgpCMacIpRange { + return obj.bgpCMacIpRangeSlice +} + +func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) Add() BgpCMacIpRange { + newObj := &otg.BgpCMacIpRange{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &bgpCMacIpRange{obj: newObj} + newLibObj.setDefault() + obj.bgpCMacIpRangeSlice = append(obj.bgpCMacIpRangeSlice, newLibObj) + return newLibObj +} + +func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) Append(items ...BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { + for _, item := range items { + newObj := item.msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.bgpCMacIpRangeSlice = append(obj.bgpCMacIpRangeSlice, item) + } return obj } -// description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4TosMonetaryCounter) Step() uint32 { +func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) Set(index int, newObj BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { + (*obj.fieldPtr)[index] = newObj.msg() + obj.bgpCMacIpRangeSlice[index] = newObj + return obj +} +func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) Clear() BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.BgpCMacIpRange{} + obj.bgpCMacIpRangeSlice = []BgpCMacIpRange{} + } + return obj +} +func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) clearHolderSlice() BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { + if len(obj.bgpCMacIpRangeSlice) > 0 { + obj.bgpCMacIpRangeSlice = []BgpCMacIpRange{} + } + return obj +} +func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) appendHolderSlice(item BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { + obj.bgpCMacIpRangeSlice = append(obj.bgpCMacIpRangeSlice, item) + return obj +} - return *obj.obj.Step +// The Ethernet Tag ID of the Broadcast Domain. +// EthernetTagId returns a uint32 +func (obj *bgpV4EviVxlanBroadcastDomain) EthernetTagId() uint32 { + + return *obj.obj.EthernetTagId } -// description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4TosMonetaryCounter) HasStep() bool { - return obj.obj.Step != nil +// The Ethernet Tag ID of the Broadcast Domain. +// EthernetTagId returns a uint32 +func (obj *bgpV4EviVxlanBroadcastDomain) HasEthernetTagId() bool { + return obj.obj.EthernetTagId != nil } -// description is TBD -// SetStep sets the uint32 value in the PatternFlowIpv4TosMonetaryCounter object -func (obj *patternFlowIpv4TosMonetaryCounter) SetStep(value uint32) PatternFlowIpv4TosMonetaryCounter { +// The Ethernet Tag ID of the Broadcast Domain. +// SetEthernetTagId sets the uint32 value in the BgpV4EviVxlanBroadcastDomain object +func (obj *bgpV4EviVxlanBroadcastDomain) SetEthernetTagId(value uint32) BgpV4EviVxlanBroadcastDomain { - obj.obj.Step = &value + obj.obj.EthernetTagId = &value return obj } -// description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4TosMonetaryCounter) Count() uint32 { +// VLAN-Aware service to be enabled or disabled. +// VlanAwareService returns a bool +func (obj *bgpV4EviVxlanBroadcastDomain) VlanAwareService() bool { - return *obj.obj.Count + return *obj.obj.VlanAwareService } -// description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4TosMonetaryCounter) HasCount() bool { - return obj.obj.Count != nil +// VLAN-Aware service to be enabled or disabled. +// VlanAwareService returns a bool +func (obj *bgpV4EviVxlanBroadcastDomain) HasVlanAwareService() bool { + return obj.obj.VlanAwareService != nil } -// description is TBD -// SetCount sets the uint32 value in the PatternFlowIpv4TosMonetaryCounter object -func (obj *patternFlowIpv4TosMonetaryCounter) SetCount(value uint32) PatternFlowIpv4TosMonetaryCounter { +// VLAN-Aware service to be enabled or disabled. +// SetVlanAwareService sets the bool value in the BgpV4EviVxlanBroadcastDomain object +func (obj *bgpV4EviVxlanBroadcastDomain) SetVlanAwareService(value bool) BgpV4EviVxlanBroadcastDomain { - obj.obj.Count = &value + obj.obj.VlanAwareService = &value return obj } -func (obj *patternFlowIpv4TosMonetaryCounter) validateObj(vObj *validation, set_default bool) { +func (obj *bgpV4EviVxlanBroadcastDomain) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Start != nil { - - if *obj.obj.Start > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosMonetaryCounter.Start <= 1 but Got %d", *obj.obj.Start)) - } - - } - - if obj.obj.Step != nil { + if len(obj.obj.CmacIpRange) != 0 { - if *obj.obj.Step > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosMonetaryCounter.Step <= 1 but Got %d", *obj.obj.Step)) + if set_default { + obj.CmacIpRange().clearHolderSlice() + for _, item := range obj.obj.CmacIpRange { + obj.CmacIpRange().appendHolderSlice(&bgpCMacIpRange{obj: item}) + } } - - } - - if obj.obj.Count != nil { - - if *obj.obj.Count > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosMonetaryCounter.Count <= 1 but Got %d", *obj.obj.Count)) + for _, item := range obj.CmacIpRange().Items() { + item.validateObj(vObj, set_default) } } } -func (obj *patternFlowIpv4TosMonetaryCounter) setDefault() { - if obj.obj.Start == nil { - obj.SetStart(0) - } - if obj.obj.Step == nil { - obj.SetStep(1) +func (obj *bgpV4EviVxlanBroadcastDomain) setDefault() { + if obj.obj.EthernetTagId == nil { + obj.SetEthernetTagId(0) } - if obj.obj.Count == nil { - obj.SetCount(1) + if obj.obj.VlanAwareService == nil { + obj.SetVlanAwareService(false) } } -// ***** PatternFlowIpv4TosMonetaryMetricTag ***** -type patternFlowIpv4TosMonetaryMetricTag struct { +// ***** BgpRouteDistinguisher ***** +type bgpRouteDistinguisher struct { validation - obj *otg.PatternFlowIpv4TosMonetaryMetricTag - marshaller marshalPatternFlowIpv4TosMonetaryMetricTag - unMarshaller unMarshalPatternFlowIpv4TosMonetaryMetricTag + obj *otg.BgpRouteDistinguisher + marshaller marshalBgpRouteDistinguisher + unMarshaller unMarshalBgpRouteDistinguisher } -func NewPatternFlowIpv4TosMonetaryMetricTag() PatternFlowIpv4TosMonetaryMetricTag { - obj := patternFlowIpv4TosMonetaryMetricTag{obj: &otg.PatternFlowIpv4TosMonetaryMetricTag{}} +func NewBgpRouteDistinguisher() BgpRouteDistinguisher { + obj := bgpRouteDistinguisher{obj: &otg.BgpRouteDistinguisher{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4TosMonetaryMetricTag) msg() *otg.PatternFlowIpv4TosMonetaryMetricTag { +func (obj *bgpRouteDistinguisher) msg() *otg.BgpRouteDistinguisher { return obj.obj } -func (obj *patternFlowIpv4TosMonetaryMetricTag) setMsg(msg *otg.PatternFlowIpv4TosMonetaryMetricTag) PatternFlowIpv4TosMonetaryMetricTag { +func (obj *bgpRouteDistinguisher) setMsg(msg *otg.BgpRouteDistinguisher) BgpRouteDistinguisher { proto.Merge(obj.obj, msg) return obj } -type marshalpatternFlowIpv4TosMonetaryMetricTag struct { - obj *patternFlowIpv4TosMonetaryMetricTag +type marshalbgpRouteDistinguisher struct { + obj *bgpRouteDistinguisher } -type marshalPatternFlowIpv4TosMonetaryMetricTag interface { - // ToProto marshals PatternFlowIpv4TosMonetaryMetricTag to protobuf object *otg.PatternFlowIpv4TosMonetaryMetricTag - ToProto() (*otg.PatternFlowIpv4TosMonetaryMetricTag, error) - // ToPbText marshals PatternFlowIpv4TosMonetaryMetricTag to protobuf text +type marshalBgpRouteDistinguisher interface { + // ToProto marshals BgpRouteDistinguisher to protobuf object *otg.BgpRouteDistinguisher + ToProto() (*otg.BgpRouteDistinguisher, error) + // ToPbText marshals BgpRouteDistinguisher to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4TosMonetaryMetricTag to YAML text + // ToYaml marshals BgpRouteDistinguisher to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4TosMonetaryMetricTag to JSON text + // ToJson marshals BgpRouteDistinguisher to JSON text ToJson() (string, error) } -type unMarshalpatternFlowIpv4TosMonetaryMetricTag struct { - obj *patternFlowIpv4TosMonetaryMetricTag +type unMarshalbgpRouteDistinguisher struct { + obj *bgpRouteDistinguisher } -type unMarshalPatternFlowIpv4TosMonetaryMetricTag interface { - // FromProto unmarshals PatternFlowIpv4TosMonetaryMetricTag from protobuf object *otg.PatternFlowIpv4TosMonetaryMetricTag - FromProto(msg *otg.PatternFlowIpv4TosMonetaryMetricTag) (PatternFlowIpv4TosMonetaryMetricTag, error) - // FromPbText unmarshals PatternFlowIpv4TosMonetaryMetricTag from protobuf text +type unMarshalBgpRouteDistinguisher interface { + // FromProto unmarshals BgpRouteDistinguisher from protobuf object *otg.BgpRouteDistinguisher + FromProto(msg *otg.BgpRouteDistinguisher) (BgpRouteDistinguisher, error) + // FromPbText unmarshals BgpRouteDistinguisher from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4TosMonetaryMetricTag from YAML text + // FromYaml unmarshals BgpRouteDistinguisher from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4TosMonetaryMetricTag from JSON text + // FromJson unmarshals BgpRouteDistinguisher from JSON text FromJson(value string) error } -func (obj *patternFlowIpv4TosMonetaryMetricTag) Marshal() marshalPatternFlowIpv4TosMonetaryMetricTag { +func (obj *bgpRouteDistinguisher) Marshal() marshalBgpRouteDistinguisher { if obj.marshaller == nil { - obj.marshaller = &marshalpatternFlowIpv4TosMonetaryMetricTag{obj: obj} + obj.marshaller = &marshalbgpRouteDistinguisher{obj: obj} } return obj.marshaller } -func (obj *patternFlowIpv4TosMonetaryMetricTag) Unmarshal() unMarshalPatternFlowIpv4TosMonetaryMetricTag { +func (obj *bgpRouteDistinguisher) Unmarshal() unMarshalBgpRouteDistinguisher { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalpatternFlowIpv4TosMonetaryMetricTag{obj: obj} + obj.unMarshaller = &unMarshalbgpRouteDistinguisher{obj: obj} } return obj.unMarshaller } -func (m *marshalpatternFlowIpv4TosMonetaryMetricTag) ToProto() (*otg.PatternFlowIpv4TosMonetaryMetricTag, error) { +func (m *marshalbgpRouteDistinguisher) ToProto() (*otg.BgpRouteDistinguisher, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -334152,7 +347208,7 @@ func (m *marshalpatternFlowIpv4TosMonetaryMetricTag) ToProto() (*otg.PatternFlow return m.obj.msg(), nil } -func (m *unMarshalpatternFlowIpv4TosMonetaryMetricTag) FromProto(msg *otg.PatternFlowIpv4TosMonetaryMetricTag) (PatternFlowIpv4TosMonetaryMetricTag, error) { +func (m *unMarshalbgpRouteDistinguisher) FromProto(msg *otg.BgpRouteDistinguisher) (BgpRouteDistinguisher, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -334161,7 +347217,7 @@ func (m *unMarshalpatternFlowIpv4TosMonetaryMetricTag) FromProto(msg *otg.Patter return newObj, nil } -func (m *marshalpatternFlowIpv4TosMonetaryMetricTag) ToPbText() (string, error) { +func (m *marshalbgpRouteDistinguisher) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -334173,7 +347229,7 @@ func (m *marshalpatternFlowIpv4TosMonetaryMetricTag) ToPbText() (string, error) return string(protoMarshal), nil } -func (m *unMarshalpatternFlowIpv4TosMonetaryMetricTag) FromPbText(value string) error { +func (m *unMarshalbgpRouteDistinguisher) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj @@ -334186,7 +347242,7 @@ func (m *unMarshalpatternFlowIpv4TosMonetaryMetricTag) FromPbText(value string) return retObj } -func (m *marshalpatternFlowIpv4TosMonetaryMetricTag) ToYaml() (string, error) { +func (m *marshalbgpRouteDistinguisher) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -334207,7 +347263,7 @@ func (m *marshalpatternFlowIpv4TosMonetaryMetricTag) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalpatternFlowIpv4TosMonetaryMetricTag) FromYaml(value string) error { +func (m *unMarshalbgpRouteDistinguisher) FromYaml(value string) error { if value == "" { value = "{}" } @@ -334232,7 +347288,7 @@ func (m *unMarshalpatternFlowIpv4TosMonetaryMetricTag) FromYaml(value string) er return nil } -func (m *marshalpatternFlowIpv4TosMonetaryMetricTag) ToJson() (string, error) { +func (m *marshalbgpRouteDistinguisher) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -334250,7 +347306,7 @@ func (m *marshalpatternFlowIpv4TosMonetaryMetricTag) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalpatternFlowIpv4TosMonetaryMetricTag) FromJson(value string) error { +func (m *unMarshalbgpRouteDistinguisher) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -334271,19 +347327,19 @@ func (m *unMarshalpatternFlowIpv4TosMonetaryMetricTag) FromJson(value string) er return nil } -func (obj *patternFlowIpv4TosMonetaryMetricTag) validateToAndFrom() error { +func (obj *bgpRouteDistinguisher) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4TosMonetaryMetricTag) validate() error { +func (obj *bgpRouteDistinguisher) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4TosMonetaryMetricTag) String() string { +func (obj *bgpRouteDistinguisher) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -334291,12 +347347,12 @@ func (obj *patternFlowIpv4TosMonetaryMetricTag) String() string { return str } -func (obj *patternFlowIpv4TosMonetaryMetricTag) Clone() (PatternFlowIpv4TosMonetaryMetricTag, error) { +func (obj *bgpRouteDistinguisher) Clone() (BgpRouteDistinguisher, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4TosMonetaryMetricTag() + newObj := NewBgpRouteDistinguisher() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -334308,217 +347364,218 @@ func (obj *patternFlowIpv4TosMonetaryMetricTag) Clone() (PatternFlowIpv4TosMonet return newObj, nil } -// PatternFlowIpv4TosMonetaryMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. -type PatternFlowIpv4TosMonetaryMetricTag interface { +// BgpRouteDistinguisher is bGP Route Distinguisher. +type BgpRouteDistinguisher interface { Validation - // msg marshals PatternFlowIpv4TosMonetaryMetricTag to protobuf object *otg.PatternFlowIpv4TosMonetaryMetricTag + // msg marshals BgpRouteDistinguisher to protobuf object *otg.BgpRouteDistinguisher // and doesn't set defaults - msg() *otg.PatternFlowIpv4TosMonetaryMetricTag - // setMsg unmarshals PatternFlowIpv4TosMonetaryMetricTag from protobuf object *otg.PatternFlowIpv4TosMonetaryMetricTag + msg() *otg.BgpRouteDistinguisher + // setMsg unmarshals BgpRouteDistinguisher from protobuf object *otg.BgpRouteDistinguisher // and doesn't set defaults - setMsg(*otg.PatternFlowIpv4TosMonetaryMetricTag) PatternFlowIpv4TosMonetaryMetricTag + setMsg(*otg.BgpRouteDistinguisher) BgpRouteDistinguisher // provides marshal interface - Marshal() marshalPatternFlowIpv4TosMonetaryMetricTag + Marshal() marshalBgpRouteDistinguisher // provides unmarshal interface - Unmarshal() unMarshalPatternFlowIpv4TosMonetaryMetricTag - // validate validates PatternFlowIpv4TosMonetaryMetricTag + Unmarshal() unMarshalBgpRouteDistinguisher + // validate validates BgpRouteDistinguisher validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4TosMonetaryMetricTag, error) + Clone() (BgpRouteDistinguisher, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Name returns string, set in PatternFlowIpv4TosMonetaryMetricTag. - Name() string - // SetName assigns string provided by user to PatternFlowIpv4TosMonetaryMetricTag - SetName(value string) PatternFlowIpv4TosMonetaryMetricTag - // Offset returns uint32, set in PatternFlowIpv4TosMonetaryMetricTag. - Offset() uint32 - // SetOffset assigns uint32 provided by user to PatternFlowIpv4TosMonetaryMetricTag - SetOffset(value uint32) PatternFlowIpv4TosMonetaryMetricTag - // HasOffset checks if Offset has been set in PatternFlowIpv4TosMonetaryMetricTag - HasOffset() bool - // Length returns uint32, set in PatternFlowIpv4TosMonetaryMetricTag. - Length() uint32 - // SetLength assigns uint32 provided by user to PatternFlowIpv4TosMonetaryMetricTag - SetLength(value uint32) PatternFlowIpv4TosMonetaryMetricTag - // HasLength checks if Length has been set in PatternFlowIpv4TosMonetaryMetricTag - HasLength() bool + // RdType returns BgpRouteDistinguisherRdTypeEnum, set in BgpRouteDistinguisher + RdType() BgpRouteDistinguisherRdTypeEnum + // SetRdType assigns BgpRouteDistinguisherRdTypeEnum provided by user to BgpRouteDistinguisher + SetRdType(value BgpRouteDistinguisherRdTypeEnum) BgpRouteDistinguisher + // HasRdType checks if RdType has been set in BgpRouteDistinguisher + HasRdType() bool + // AutoConfigRdIpAddr returns bool, set in BgpRouteDistinguisher. + AutoConfigRdIpAddr() bool + // SetAutoConfigRdIpAddr assigns bool provided by user to BgpRouteDistinguisher + SetAutoConfigRdIpAddr(value bool) BgpRouteDistinguisher + // HasAutoConfigRdIpAddr checks if AutoConfigRdIpAddr has been set in BgpRouteDistinguisher + HasAutoConfigRdIpAddr() bool + // RdValue returns string, set in BgpRouteDistinguisher. + RdValue() string + // SetRdValue assigns string provided by user to BgpRouteDistinguisher + SetRdValue(value string) BgpRouteDistinguisher + // HasRdValue checks if RdValue has been set in BgpRouteDistinguisher + HasRdValue() bool } -// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// Name returns a string -func (obj *patternFlowIpv4TosMonetaryMetricTag) Name() string { +type BgpRouteDistinguisherRdTypeEnum string - return *obj.obj.Name +// Enum of RdType on BgpRouteDistinguisher +var BgpRouteDistinguisherRdType = struct { + AS_2OCTET BgpRouteDistinguisherRdTypeEnum + IPV4_ADDRESS BgpRouteDistinguisherRdTypeEnum + AS_4OCTET BgpRouteDistinguisherRdTypeEnum +}{ + AS_2OCTET: BgpRouteDistinguisherRdTypeEnum("as_2octet"), + IPV4_ADDRESS: BgpRouteDistinguisherRdTypeEnum("ipv4_address"), + AS_4OCTET: BgpRouteDistinguisherRdTypeEnum("as_4octet"), +} +func (obj *bgpRouteDistinguisher) RdType() BgpRouteDistinguisherRdTypeEnum { + return BgpRouteDistinguisherRdTypeEnum(obj.obj.RdType.Enum().String()) } -// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// SetName sets the string value in the PatternFlowIpv4TosMonetaryMetricTag object -func (obj *patternFlowIpv4TosMonetaryMetricTag) SetName(value string) PatternFlowIpv4TosMonetaryMetricTag { +// Route Distinguisher Type field of 2 Byte. +// - as_2octet: Two-Octet AS Specific Extended Community (RFC 4360). +// - ipv4_address: IPv4 Address Specific Extended Community (RFC 4360). +// - as_4octet: 4-Octet AS Specific Extended Community (RFC 5668). +// RdType returns a string +func (obj *bgpRouteDistinguisher) HasRdType() bool { + return obj.obj.RdType != nil +} + +func (obj *bgpRouteDistinguisher) SetRdType(value BgpRouteDistinguisherRdTypeEnum) BgpRouteDistinguisher { + intValue, ok := otg.BgpRouteDistinguisher_RdType_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on BgpRouteDistinguisherRdTypeEnum", string(value))) + return obj + } + enumValue := otg.BgpRouteDistinguisher_RdType_Enum(intValue) + obj.obj.RdType = &enumValue - obj.obj.Name = &value return obj } -// Offset in bits relative to start of corresponding header field -// Offset returns a uint32 -func (obj *patternFlowIpv4TosMonetaryMetricTag) Offset() uint32 { +// Allow to automatically configure RD IP address from local ip. +// AutoConfigRdIpAddr returns a bool +func (obj *bgpRouteDistinguisher) AutoConfigRdIpAddr() bool { - return *obj.obj.Offset + return *obj.obj.AutoConfigRdIpAddr } -// Offset in bits relative to start of corresponding header field -// Offset returns a uint32 -func (obj *patternFlowIpv4TosMonetaryMetricTag) HasOffset() bool { - return obj.obj.Offset != nil +// Allow to automatically configure RD IP address from local ip. +// AutoConfigRdIpAddr returns a bool +func (obj *bgpRouteDistinguisher) HasAutoConfigRdIpAddr() bool { + return obj.obj.AutoConfigRdIpAddr != nil } -// Offset in bits relative to start of corresponding header field -// SetOffset sets the uint32 value in the PatternFlowIpv4TosMonetaryMetricTag object -func (obj *patternFlowIpv4TosMonetaryMetricTag) SetOffset(value uint32) PatternFlowIpv4TosMonetaryMetricTag { +// Allow to automatically configure RD IP address from local ip. +// SetAutoConfigRdIpAddr sets the bool value in the BgpRouteDistinguisher object +func (obj *bgpRouteDistinguisher) SetAutoConfigRdIpAddr(value bool) BgpRouteDistinguisher { - obj.obj.Offset = &value + obj.obj.AutoConfigRdIpAddr = &value return obj } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// Length returns a uint32 -func (obj *patternFlowIpv4TosMonetaryMetricTag) Length() uint32 { +// Colon separated Extended Community value of 6 Bytes - "AS number: Value". Example - for the as_2octet or as_4octet "60005:100", for ipv4_address "1.1.1.1:100" +// RdValue returns a string +func (obj *bgpRouteDistinguisher) RdValue() string { - return *obj.obj.Length + return *obj.obj.RdValue } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// Length returns a uint32 -func (obj *patternFlowIpv4TosMonetaryMetricTag) HasLength() bool { - return obj.obj.Length != nil +// Colon separated Extended Community value of 6 Bytes - "AS number: Value". Example - for the as_2octet or as_4octet "60005:100", for ipv4_address "1.1.1.1:100" +// RdValue returns a string +func (obj *bgpRouteDistinguisher) HasRdValue() bool { + return obj.obj.RdValue != nil } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// SetLength sets the uint32 value in the PatternFlowIpv4TosMonetaryMetricTag object -func (obj *patternFlowIpv4TosMonetaryMetricTag) SetLength(value uint32) PatternFlowIpv4TosMonetaryMetricTag { +// Colon separated Extended Community value of 6 Bytes - "AS number: Value". Example - for the as_2octet or as_4octet "60005:100", for ipv4_address "1.1.1.1:100" +// SetRdValue sets the string value in the BgpRouteDistinguisher object +func (obj *bgpRouteDistinguisher) SetRdValue(value string) BgpRouteDistinguisher { - obj.obj.Length = &value + obj.obj.RdValue = &value return obj } -func (obj *patternFlowIpv4TosMonetaryMetricTag) validateObj(vObj *validation, set_default bool) { +func (obj *bgpRouteDistinguisher) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - // Name is required - if obj.obj.Name == nil { - vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosMonetaryMetricTag") - } - - if obj.obj.Offset != nil { - - if *obj.obj.Offset > 0 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosMonetaryMetricTag.Offset <= 0 but Got %d", *obj.obj.Offset)) - } - - } - - if obj.obj.Length != nil { - - if *obj.obj.Length < 1 || *obj.obj.Length > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("1 <= PatternFlowIpv4TosMonetaryMetricTag.Length <= 1 but Got %d", *obj.obj.Length)) - } - - } - } -func (obj *patternFlowIpv4TosMonetaryMetricTag) setDefault() { - if obj.obj.Offset == nil { - obj.SetOffset(0) +func (obj *bgpRouteDistinguisher) setDefault() { + if obj.obj.RdType == nil { + obj.SetRdType(BgpRouteDistinguisherRdType.AS_2OCTET) + } - if obj.obj.Length == nil { - obj.SetLength(1) + if obj.obj.AutoConfigRdIpAddr == nil { + obj.SetAutoConfigRdIpAddr(false) } } -// ***** PatternFlowIpv4TosUnusedCounter ***** -type patternFlowIpv4TosUnusedCounter struct { +// ***** BgpRouteTarget ***** +type bgpRouteTarget struct { validation - obj *otg.PatternFlowIpv4TosUnusedCounter - marshaller marshalPatternFlowIpv4TosUnusedCounter - unMarshaller unMarshalPatternFlowIpv4TosUnusedCounter + obj *otg.BgpRouteTarget + marshaller marshalBgpRouteTarget + unMarshaller unMarshalBgpRouteTarget } -func NewPatternFlowIpv4TosUnusedCounter() PatternFlowIpv4TosUnusedCounter { - obj := patternFlowIpv4TosUnusedCounter{obj: &otg.PatternFlowIpv4TosUnusedCounter{}} +func NewBgpRouteTarget() BgpRouteTarget { + obj := bgpRouteTarget{obj: &otg.BgpRouteTarget{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4TosUnusedCounter) msg() *otg.PatternFlowIpv4TosUnusedCounter { +func (obj *bgpRouteTarget) msg() *otg.BgpRouteTarget { return obj.obj } -func (obj *patternFlowIpv4TosUnusedCounter) setMsg(msg *otg.PatternFlowIpv4TosUnusedCounter) PatternFlowIpv4TosUnusedCounter { +func (obj *bgpRouteTarget) setMsg(msg *otg.BgpRouteTarget) BgpRouteTarget { proto.Merge(obj.obj, msg) return obj } -type marshalpatternFlowIpv4TosUnusedCounter struct { - obj *patternFlowIpv4TosUnusedCounter +type marshalbgpRouteTarget struct { + obj *bgpRouteTarget } -type marshalPatternFlowIpv4TosUnusedCounter interface { - // ToProto marshals PatternFlowIpv4TosUnusedCounter to protobuf object *otg.PatternFlowIpv4TosUnusedCounter - ToProto() (*otg.PatternFlowIpv4TosUnusedCounter, error) - // ToPbText marshals PatternFlowIpv4TosUnusedCounter to protobuf text +type marshalBgpRouteTarget interface { + // ToProto marshals BgpRouteTarget to protobuf object *otg.BgpRouteTarget + ToProto() (*otg.BgpRouteTarget, error) + // ToPbText marshals BgpRouteTarget to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4TosUnusedCounter to YAML text + // ToYaml marshals BgpRouteTarget to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4TosUnusedCounter to JSON text + // ToJson marshals BgpRouteTarget to JSON text ToJson() (string, error) } -type unMarshalpatternFlowIpv4TosUnusedCounter struct { - obj *patternFlowIpv4TosUnusedCounter +type unMarshalbgpRouteTarget struct { + obj *bgpRouteTarget } -type unMarshalPatternFlowIpv4TosUnusedCounter interface { - // FromProto unmarshals PatternFlowIpv4TosUnusedCounter from protobuf object *otg.PatternFlowIpv4TosUnusedCounter - FromProto(msg *otg.PatternFlowIpv4TosUnusedCounter) (PatternFlowIpv4TosUnusedCounter, error) - // FromPbText unmarshals PatternFlowIpv4TosUnusedCounter from protobuf text +type unMarshalBgpRouteTarget interface { + // FromProto unmarshals BgpRouteTarget from protobuf object *otg.BgpRouteTarget + FromProto(msg *otg.BgpRouteTarget) (BgpRouteTarget, error) + // FromPbText unmarshals BgpRouteTarget from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4TosUnusedCounter from YAML text + // FromYaml unmarshals BgpRouteTarget from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4TosUnusedCounter from JSON text + // FromJson unmarshals BgpRouteTarget from JSON text FromJson(value string) error } -func (obj *patternFlowIpv4TosUnusedCounter) Marshal() marshalPatternFlowIpv4TosUnusedCounter { +func (obj *bgpRouteTarget) Marshal() marshalBgpRouteTarget { if obj.marshaller == nil { - obj.marshaller = &marshalpatternFlowIpv4TosUnusedCounter{obj: obj} + obj.marshaller = &marshalbgpRouteTarget{obj: obj} } return obj.marshaller } -func (obj *patternFlowIpv4TosUnusedCounter) Unmarshal() unMarshalPatternFlowIpv4TosUnusedCounter { +func (obj *bgpRouteTarget) Unmarshal() unMarshalBgpRouteTarget { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalpatternFlowIpv4TosUnusedCounter{obj: obj} + obj.unMarshaller = &unMarshalbgpRouteTarget{obj: obj} } return obj.unMarshaller } -func (m *marshalpatternFlowIpv4TosUnusedCounter) ToProto() (*otg.PatternFlowIpv4TosUnusedCounter, error) { +func (m *marshalbgpRouteTarget) ToProto() (*otg.BgpRouteTarget, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -334526,7 +347583,7 @@ func (m *marshalpatternFlowIpv4TosUnusedCounter) ToProto() (*otg.PatternFlowIpv4 return m.obj.msg(), nil } -func (m *unMarshalpatternFlowIpv4TosUnusedCounter) FromProto(msg *otg.PatternFlowIpv4TosUnusedCounter) (PatternFlowIpv4TosUnusedCounter, error) { +func (m *unMarshalbgpRouteTarget) FromProto(msg *otg.BgpRouteTarget) (BgpRouteTarget, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -334535,7 +347592,7 @@ func (m *unMarshalpatternFlowIpv4TosUnusedCounter) FromProto(msg *otg.PatternFlo return newObj, nil } -func (m *marshalpatternFlowIpv4TosUnusedCounter) ToPbText() (string, error) { +func (m *marshalbgpRouteTarget) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -334547,7 +347604,7 @@ func (m *marshalpatternFlowIpv4TosUnusedCounter) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalpatternFlowIpv4TosUnusedCounter) FromPbText(value string) error { +func (m *unMarshalbgpRouteTarget) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj @@ -334560,7 +347617,7 @@ func (m *unMarshalpatternFlowIpv4TosUnusedCounter) FromPbText(value string) erro return retObj } -func (m *marshalpatternFlowIpv4TosUnusedCounter) ToYaml() (string, error) { +func (m *marshalbgpRouteTarget) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -334581,7 +347638,7 @@ func (m *marshalpatternFlowIpv4TosUnusedCounter) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalpatternFlowIpv4TosUnusedCounter) FromYaml(value string) error { +func (m *unMarshalbgpRouteTarget) FromYaml(value string) error { if value == "" { value = "{}" } @@ -334606,7 +347663,7 @@ func (m *unMarshalpatternFlowIpv4TosUnusedCounter) FromYaml(value string) error return nil } -func (m *marshalpatternFlowIpv4TosUnusedCounter) ToJson() (string, error) { +func (m *marshalbgpRouteTarget) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -334624,7 +347681,7 @@ func (m *marshalpatternFlowIpv4TosUnusedCounter) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalpatternFlowIpv4TosUnusedCounter) FromJson(value string) error { +func (m *unMarshalbgpRouteTarget) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -334645,19 +347702,19 @@ func (m *unMarshalpatternFlowIpv4TosUnusedCounter) FromJson(value string) error return nil } -func (obj *patternFlowIpv4TosUnusedCounter) validateToAndFrom() error { +func (obj *bgpRouteTarget) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4TosUnusedCounter) validate() error { +func (obj *bgpRouteTarget) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4TosUnusedCounter) String() string { +func (obj *bgpRouteTarget) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -334665,12 +347722,12 @@ func (obj *patternFlowIpv4TosUnusedCounter) String() string { return str } -func (obj *patternFlowIpv4TosUnusedCounter) Clone() (PatternFlowIpv4TosUnusedCounter, error) { +func (obj *bgpRouteTarget) Clone() (BgpRouteTarget, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4TosUnusedCounter() + newObj := NewBgpRouteTarget() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -334682,233 +347739,183 @@ func (obj *patternFlowIpv4TosUnusedCounter) Clone() (PatternFlowIpv4TosUnusedCou return newObj, nil } -// PatternFlowIpv4TosUnusedCounter is integer counter pattern -type PatternFlowIpv4TosUnusedCounter interface { +// BgpRouteTarget is bGP Route Target. +type BgpRouteTarget interface { Validation - // msg marshals PatternFlowIpv4TosUnusedCounter to protobuf object *otg.PatternFlowIpv4TosUnusedCounter + // msg marshals BgpRouteTarget to protobuf object *otg.BgpRouteTarget // and doesn't set defaults - msg() *otg.PatternFlowIpv4TosUnusedCounter - // setMsg unmarshals PatternFlowIpv4TosUnusedCounter from protobuf object *otg.PatternFlowIpv4TosUnusedCounter + msg() *otg.BgpRouteTarget + // setMsg unmarshals BgpRouteTarget from protobuf object *otg.BgpRouteTarget // and doesn't set defaults - setMsg(*otg.PatternFlowIpv4TosUnusedCounter) PatternFlowIpv4TosUnusedCounter + setMsg(*otg.BgpRouteTarget) BgpRouteTarget // provides marshal interface - Marshal() marshalPatternFlowIpv4TosUnusedCounter + Marshal() marshalBgpRouteTarget // provides unmarshal interface - Unmarshal() unMarshalPatternFlowIpv4TosUnusedCounter - // validate validates PatternFlowIpv4TosUnusedCounter + Unmarshal() unMarshalBgpRouteTarget + // validate validates BgpRouteTarget validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4TosUnusedCounter, error) + Clone() (BgpRouteTarget, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Start returns uint32, set in PatternFlowIpv4TosUnusedCounter. - Start() uint32 - // SetStart assigns uint32 provided by user to PatternFlowIpv4TosUnusedCounter - SetStart(value uint32) PatternFlowIpv4TosUnusedCounter - // HasStart checks if Start has been set in PatternFlowIpv4TosUnusedCounter - HasStart() bool - // Step returns uint32, set in PatternFlowIpv4TosUnusedCounter. - Step() uint32 - // SetStep assigns uint32 provided by user to PatternFlowIpv4TosUnusedCounter - SetStep(value uint32) PatternFlowIpv4TosUnusedCounter - // HasStep checks if Step has been set in PatternFlowIpv4TosUnusedCounter - HasStep() bool - // Count returns uint32, set in PatternFlowIpv4TosUnusedCounter. - Count() uint32 - // SetCount assigns uint32 provided by user to PatternFlowIpv4TosUnusedCounter - SetCount(value uint32) PatternFlowIpv4TosUnusedCounter - // HasCount checks if Count has been set in PatternFlowIpv4TosUnusedCounter - HasCount() bool -} - -// description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4TosUnusedCounter) Start() uint32 { - - return *obj.obj.Start - -} - -// description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4TosUnusedCounter) HasStart() bool { - return obj.obj.Start != nil + // RtType returns BgpRouteTargetRtTypeEnum, set in BgpRouteTarget + RtType() BgpRouteTargetRtTypeEnum + // SetRtType assigns BgpRouteTargetRtTypeEnum provided by user to BgpRouteTarget + SetRtType(value BgpRouteTargetRtTypeEnum) BgpRouteTarget + // HasRtType checks if RtType has been set in BgpRouteTarget + HasRtType() bool + // RtValue returns string, set in BgpRouteTarget. + RtValue() string + // SetRtValue assigns string provided by user to BgpRouteTarget + SetRtValue(value string) BgpRouteTarget + // HasRtValue checks if RtValue has been set in BgpRouteTarget + HasRtValue() bool } -// description is TBD -// SetStart sets the uint32 value in the PatternFlowIpv4TosUnusedCounter object -func (obj *patternFlowIpv4TosUnusedCounter) SetStart(value uint32) PatternFlowIpv4TosUnusedCounter { +type BgpRouteTargetRtTypeEnum string - obj.obj.Start = &value - return obj +// Enum of RtType on BgpRouteTarget +var BgpRouteTargetRtType = struct { + AS_2OCTET BgpRouteTargetRtTypeEnum + IPV4_ADDRESS BgpRouteTargetRtTypeEnum + AS_4OCTET BgpRouteTargetRtTypeEnum +}{ + AS_2OCTET: BgpRouteTargetRtTypeEnum("as_2octet"), + IPV4_ADDRESS: BgpRouteTargetRtTypeEnum("ipv4_address"), + AS_4OCTET: BgpRouteTargetRtTypeEnum("as_4octet"), } -// description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4TosUnusedCounter) Step() uint32 { - - return *obj.obj.Step - +func (obj *bgpRouteTarget) RtType() BgpRouteTargetRtTypeEnum { + return BgpRouteTargetRtTypeEnum(obj.obj.RtType.Enum().String()) } -// description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4TosUnusedCounter) HasStep() bool { - return obj.obj.Step != nil +// Extended Community Type field of 2 Byte. +// - as_2octet: Two-Octet AS Specific Extended Community (RFC 4360). +// - ipv4_address: IPv4 Address Specific Extended Community (RFC 4360). +// - as_4octet: 4-Octet AS Specific Extended Community (RFC 5668). +// RtType returns a string +func (obj *bgpRouteTarget) HasRtType() bool { + return obj.obj.RtType != nil } -// description is TBD -// SetStep sets the uint32 value in the PatternFlowIpv4TosUnusedCounter object -func (obj *patternFlowIpv4TosUnusedCounter) SetStep(value uint32) PatternFlowIpv4TosUnusedCounter { +func (obj *bgpRouteTarget) SetRtType(value BgpRouteTargetRtTypeEnum) BgpRouteTarget { + intValue, ok := otg.BgpRouteTarget_RtType_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on BgpRouteTargetRtTypeEnum", string(value))) + return obj + } + enumValue := otg.BgpRouteTarget_RtType_Enum(intValue) + obj.obj.RtType = &enumValue - obj.obj.Step = &value return obj } -// description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4TosUnusedCounter) Count() uint32 { +// Colon separated Extended Community value of 6 Bytes - AS number: Assigned Number. Example - for the as_2octet or as_4octet "60005:100", for ipv4_address "1.1.1.1:100" +// RtValue returns a string +func (obj *bgpRouteTarget) RtValue() string { - return *obj.obj.Count + return *obj.obj.RtValue } -// description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4TosUnusedCounter) HasCount() bool { - return obj.obj.Count != nil +// Colon separated Extended Community value of 6 Bytes - AS number: Assigned Number. Example - for the as_2octet or as_4octet "60005:100", for ipv4_address "1.1.1.1:100" +// RtValue returns a string +func (obj *bgpRouteTarget) HasRtValue() bool { + return obj.obj.RtValue != nil } -// description is TBD -// SetCount sets the uint32 value in the PatternFlowIpv4TosUnusedCounter object -func (obj *patternFlowIpv4TosUnusedCounter) SetCount(value uint32) PatternFlowIpv4TosUnusedCounter { +// Colon separated Extended Community value of 6 Bytes - AS number: Assigned Number. Example - for the as_2octet or as_4octet "60005:100", for ipv4_address "1.1.1.1:100" +// SetRtValue sets the string value in the BgpRouteTarget object +func (obj *bgpRouteTarget) SetRtValue(value string) BgpRouteTarget { - obj.obj.Count = &value + obj.obj.RtValue = &value return obj } -func (obj *patternFlowIpv4TosUnusedCounter) validateObj(vObj *validation, set_default bool) { +func (obj *bgpRouteTarget) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Start != nil { - - if *obj.obj.Start > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosUnusedCounter.Start <= 1 but Got %d", *obj.obj.Start)) - } - - } - - if obj.obj.Step != nil { - - if *obj.obj.Step > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosUnusedCounter.Step <= 1 but Got %d", *obj.obj.Step)) - } - - } - - if obj.obj.Count != nil { - - if *obj.obj.Count > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosUnusedCounter.Count <= 1 but Got %d", *obj.obj.Count)) - } - - } - } -func (obj *patternFlowIpv4TosUnusedCounter) setDefault() { - if obj.obj.Start == nil { - obj.SetStart(0) - } - if obj.obj.Step == nil { - obj.SetStep(1) - } - if obj.obj.Count == nil { - obj.SetCount(1) - } +func (obj *bgpRouteTarget) setDefault() { } -// ***** PatternFlowIpv4TosUnusedMetricTag ***** -type patternFlowIpv4TosUnusedMetricTag struct { +// ***** BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget ***** +type bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget struct { validation - obj *otg.PatternFlowIpv4TosUnusedMetricTag - marshaller marshalPatternFlowIpv4TosUnusedMetricTag - unMarshaller unMarshalPatternFlowIpv4TosUnusedMetricTag + obj *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + marshaller marshalBgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + unMarshaller unMarshalBgpExtendedCommunityTransitive2OctetAsTypeRouteTarget } -func NewPatternFlowIpv4TosUnusedMetricTag() PatternFlowIpv4TosUnusedMetricTag { - obj := patternFlowIpv4TosUnusedMetricTag{obj: &otg.PatternFlowIpv4TosUnusedMetricTag{}} +func NewBgpExtendedCommunityTransitive2OctetAsTypeRouteTarget() BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget { + obj := bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget{obj: &otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4TosUnusedMetricTag) msg() *otg.PatternFlowIpv4TosUnusedMetricTag { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) msg() *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget { return obj.obj } -func (obj *patternFlowIpv4TosUnusedMetricTag) setMsg(msg *otg.PatternFlowIpv4TosUnusedMetricTag) PatternFlowIpv4TosUnusedMetricTag { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) setMsg(msg *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget { proto.Merge(obj.obj, msg) return obj } -type marshalpatternFlowIpv4TosUnusedMetricTag struct { - obj *patternFlowIpv4TosUnusedMetricTag +type marshalbgpExtendedCommunityTransitive2OctetAsTypeRouteTarget struct { + obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget } -type marshalPatternFlowIpv4TosUnusedMetricTag interface { - // ToProto marshals PatternFlowIpv4TosUnusedMetricTag to protobuf object *otg.PatternFlowIpv4TosUnusedMetricTag - ToProto() (*otg.PatternFlowIpv4TosUnusedMetricTag, error) - // ToPbText marshals PatternFlowIpv4TosUnusedMetricTag to protobuf text +type marshalBgpExtendedCommunityTransitive2OctetAsTypeRouteTarget interface { + // ToProto marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget to protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + ToProto() (*otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget, error) + // ToPbText marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4TosUnusedMetricTag to YAML text + // ToYaml marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4TosUnusedMetricTag to JSON text + // ToJson marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget to JSON text ToJson() (string, error) } -type unMarshalpatternFlowIpv4TosUnusedMetricTag struct { - obj *patternFlowIpv4TosUnusedMetricTag +type unMarshalbgpExtendedCommunityTransitive2OctetAsTypeRouteTarget struct { + obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget } -type unMarshalPatternFlowIpv4TosUnusedMetricTag interface { - // FromProto unmarshals PatternFlowIpv4TosUnusedMetricTag from protobuf object *otg.PatternFlowIpv4TosUnusedMetricTag - FromProto(msg *otg.PatternFlowIpv4TosUnusedMetricTag) (PatternFlowIpv4TosUnusedMetricTag, error) - // FromPbText unmarshals PatternFlowIpv4TosUnusedMetricTag from protobuf text +type unMarshalBgpExtendedCommunityTransitive2OctetAsTypeRouteTarget interface { + // FromProto unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget from protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + FromProto(msg *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) (BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget, error) + // FromPbText unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4TosUnusedMetricTag from YAML text + // FromYaml unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4TosUnusedMetricTag from JSON text + // FromJson unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget from JSON text FromJson(value string) error } -func (obj *patternFlowIpv4TosUnusedMetricTag) Marshal() marshalPatternFlowIpv4TosUnusedMetricTag { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) Marshal() marshalBgpExtendedCommunityTransitive2OctetAsTypeRouteTarget { if obj.marshaller == nil { - obj.marshaller = &marshalpatternFlowIpv4TosUnusedMetricTag{obj: obj} + obj.marshaller = &marshalbgpExtendedCommunityTransitive2OctetAsTypeRouteTarget{obj: obj} } return obj.marshaller } -func (obj *patternFlowIpv4TosUnusedMetricTag) Unmarshal() unMarshalPatternFlowIpv4TosUnusedMetricTag { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) Unmarshal() unMarshalBgpExtendedCommunityTransitive2OctetAsTypeRouteTarget { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalpatternFlowIpv4TosUnusedMetricTag{obj: obj} + obj.unMarshaller = &unMarshalbgpExtendedCommunityTransitive2OctetAsTypeRouteTarget{obj: obj} } return obj.unMarshaller } -func (m *marshalpatternFlowIpv4TosUnusedMetricTag) ToProto() (*otg.PatternFlowIpv4TosUnusedMetricTag, error) { +func (m *marshalbgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) ToProto() (*otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -334916,7 +347923,7 @@ func (m *marshalpatternFlowIpv4TosUnusedMetricTag) ToProto() (*otg.PatternFlowIp return m.obj.msg(), nil } -func (m *unMarshalpatternFlowIpv4TosUnusedMetricTag) FromProto(msg *otg.PatternFlowIpv4TosUnusedMetricTag) (PatternFlowIpv4TosUnusedMetricTag, error) { +func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) FromProto(msg *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) (BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -334925,7 +347932,7 @@ func (m *unMarshalpatternFlowIpv4TosUnusedMetricTag) FromProto(msg *otg.PatternF return newObj, nil } -func (m *marshalpatternFlowIpv4TosUnusedMetricTag) ToPbText() (string, error) { +func (m *marshalbgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -334937,7 +347944,7 @@ func (m *marshalpatternFlowIpv4TosUnusedMetricTag) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalpatternFlowIpv4TosUnusedMetricTag) FromPbText(value string) error { +func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj @@ -334950,7 +347957,7 @@ func (m *unMarshalpatternFlowIpv4TosUnusedMetricTag) FromPbText(value string) er return retObj } -func (m *marshalpatternFlowIpv4TosUnusedMetricTag) ToYaml() (string, error) { +func (m *marshalbgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -334971,7 +347978,7 @@ func (m *marshalpatternFlowIpv4TosUnusedMetricTag) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalpatternFlowIpv4TosUnusedMetricTag) FromYaml(value string) error { +func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) FromYaml(value string) error { if value == "" { value = "{}" } @@ -334996,7 +348003,7 @@ func (m *unMarshalpatternFlowIpv4TosUnusedMetricTag) FromYaml(value string) erro return nil } -func (m *marshalpatternFlowIpv4TosUnusedMetricTag) ToJson() (string, error) { +func (m *marshalbgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -335014,7 +348021,7 @@ func (m *marshalpatternFlowIpv4TosUnusedMetricTag) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalpatternFlowIpv4TosUnusedMetricTag) FromJson(value string) error { +func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -335035,19 +348042,19 @@ func (m *unMarshalpatternFlowIpv4TosUnusedMetricTag) FromJson(value string) erro return nil } -func (obj *patternFlowIpv4TosUnusedMetricTag) validateToAndFrom() error { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4TosUnusedMetricTag) validate() error { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4TosUnusedMetricTag) String() string { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -335055,12 +348062,12 @@ func (obj *patternFlowIpv4TosUnusedMetricTag) String() string { return str } -func (obj *patternFlowIpv4TosUnusedMetricTag) Clone() (PatternFlowIpv4TosUnusedMetricTag, error) { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) Clone() (BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4TosUnusedMetricTag() + newObj := NewBgpExtendedCommunityTransitive2OctetAsTypeRouteTarget() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -335072,217 +348079,182 @@ func (obj *patternFlowIpv4TosUnusedMetricTag) Clone() (PatternFlowIpv4TosUnusedM return newObj, nil } -// PatternFlowIpv4TosUnusedMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. -type PatternFlowIpv4TosUnusedMetricTag interface { +// BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget is the Route Target Community identifies one or more routers that may receive a set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02. +type BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget interface { Validation - // msg marshals PatternFlowIpv4TosUnusedMetricTag to protobuf object *otg.PatternFlowIpv4TosUnusedMetricTag + // msg marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget to protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget // and doesn't set defaults - msg() *otg.PatternFlowIpv4TosUnusedMetricTag - // setMsg unmarshals PatternFlowIpv4TosUnusedMetricTag from protobuf object *otg.PatternFlowIpv4TosUnusedMetricTag + msg() *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + // setMsg unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget from protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget // and doesn't set defaults - setMsg(*otg.PatternFlowIpv4TosUnusedMetricTag) PatternFlowIpv4TosUnusedMetricTag + setMsg(*otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget // provides marshal interface - Marshal() marshalPatternFlowIpv4TosUnusedMetricTag + Marshal() marshalBgpExtendedCommunityTransitive2OctetAsTypeRouteTarget // provides unmarshal interface - Unmarshal() unMarshalPatternFlowIpv4TosUnusedMetricTag - // validate validates PatternFlowIpv4TosUnusedMetricTag + Unmarshal() unMarshalBgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + // validate validates BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4TosUnusedMetricTag, error) + Clone() (BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Name returns string, set in PatternFlowIpv4TosUnusedMetricTag. - Name() string - // SetName assigns string provided by user to PatternFlowIpv4TosUnusedMetricTag - SetName(value string) PatternFlowIpv4TosUnusedMetricTag - // Offset returns uint32, set in PatternFlowIpv4TosUnusedMetricTag. - Offset() uint32 - // SetOffset assigns uint32 provided by user to PatternFlowIpv4TosUnusedMetricTag - SetOffset(value uint32) PatternFlowIpv4TosUnusedMetricTag - // HasOffset checks if Offset has been set in PatternFlowIpv4TosUnusedMetricTag - HasOffset() bool - // Length returns uint32, set in PatternFlowIpv4TosUnusedMetricTag. - Length() uint32 - // SetLength assigns uint32 provided by user to PatternFlowIpv4TosUnusedMetricTag - SetLength(value uint32) PatternFlowIpv4TosUnusedMetricTag - // HasLength checks if Length has been set in PatternFlowIpv4TosUnusedMetricTag - HasLength() bool -} - -// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// Name returns a string -func (obj *patternFlowIpv4TosUnusedMetricTag) Name() string { - - return *obj.obj.Name - -} - -// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// SetName sets the string value in the PatternFlowIpv4TosUnusedMetricTag object -func (obj *patternFlowIpv4TosUnusedMetricTag) SetName(value string) PatternFlowIpv4TosUnusedMetricTag { - - obj.obj.Name = &value - return obj + // Global2ByteAs returns uint32, set in BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget. + Global2ByteAs() uint32 + // SetGlobal2ByteAs assigns uint32 provided by user to BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + SetGlobal2ByteAs(value uint32) BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + // HasGlobal2ByteAs checks if Global2ByteAs has been set in BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + HasGlobal2ByteAs() bool + // Local4ByteAdmin returns uint32, set in BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget. + Local4ByteAdmin() uint32 + // SetLocal4ByteAdmin assigns uint32 provided by user to BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + SetLocal4ByteAdmin(value uint32) BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + // HasLocal4ByteAdmin checks if Local4ByteAdmin has been set in BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + HasLocal4ByteAdmin() bool } -// Offset in bits relative to start of corresponding header field -// Offset returns a uint32 -func (obj *patternFlowIpv4TosUnusedMetricTag) Offset() uint32 { +// The two octet IANA assigned AS value assigned to the Autonomous System. +// Global2ByteAs returns a uint32 +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) Global2ByteAs() uint32 { - return *obj.obj.Offset + return *obj.obj.Global_2ByteAs } -// Offset in bits relative to start of corresponding header field -// Offset returns a uint32 -func (obj *patternFlowIpv4TosUnusedMetricTag) HasOffset() bool { - return obj.obj.Offset != nil +// The two octet IANA assigned AS value assigned to the Autonomous System. +// Global2ByteAs returns a uint32 +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) HasGlobal2ByteAs() bool { + return obj.obj.Global_2ByteAs != nil } -// Offset in bits relative to start of corresponding header field -// SetOffset sets the uint32 value in the PatternFlowIpv4TosUnusedMetricTag object -func (obj *patternFlowIpv4TosUnusedMetricTag) SetOffset(value uint32) PatternFlowIpv4TosUnusedMetricTag { +// The two octet IANA assigned AS value assigned to the Autonomous System. +// SetGlobal2ByteAs sets the uint32 value in the BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget object +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) SetGlobal2ByteAs(value uint32) BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget { - obj.obj.Offset = &value + obj.obj.Global_2ByteAs = &value return obj } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// Length returns a uint32 -func (obj *patternFlowIpv4TosUnusedMetricTag) Length() uint32 { +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// Local4ByteAdmin returns a uint32 +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) Local4ByteAdmin() uint32 { - return *obj.obj.Length + return *obj.obj.Local_4ByteAdmin } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// Length returns a uint32 -func (obj *patternFlowIpv4TosUnusedMetricTag) HasLength() bool { - return obj.obj.Length != nil +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// Local4ByteAdmin returns a uint32 +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) HasLocal4ByteAdmin() bool { + return obj.obj.Local_4ByteAdmin != nil } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// SetLength sets the uint32 value in the PatternFlowIpv4TosUnusedMetricTag object -func (obj *patternFlowIpv4TosUnusedMetricTag) SetLength(value uint32) PatternFlowIpv4TosUnusedMetricTag { +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// SetLocal4ByteAdmin sets the uint32 value in the BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget object +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) SetLocal4ByteAdmin(value uint32) BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget { - obj.obj.Length = &value + obj.obj.Local_4ByteAdmin = &value return obj } -func (obj *patternFlowIpv4TosUnusedMetricTag) validateObj(vObj *validation, set_default bool) { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - // Name is required - if obj.obj.Name == nil { - vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4TosUnusedMetricTag") - } - - if obj.obj.Offset != nil { - - if *obj.obj.Offset > 0 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4TosUnusedMetricTag.Offset <= 0 but Got %d", *obj.obj.Offset)) - } - - } - - if obj.obj.Length != nil { + if obj.obj.Global_2ByteAs != nil { - if *obj.obj.Length < 1 || *obj.obj.Length > 1 { + if *obj.obj.Global_2ByteAs > 65535 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("1 <= PatternFlowIpv4TosUnusedMetricTag.Length <= 1 but Got %d", *obj.obj.Length)) + fmt.Sprintf("0 <= BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget.Global_2ByteAs <= 65535 but Got %d", *obj.obj.Global_2ByteAs)) } } } -func (obj *patternFlowIpv4TosUnusedMetricTag) setDefault() { - if obj.obj.Offset == nil { - obj.SetOffset(0) +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) setDefault() { + if obj.obj.Global_2ByteAs == nil { + obj.SetGlobal2ByteAs(100) } - if obj.obj.Length == nil { - obj.SetLength(1) + if obj.obj.Local_4ByteAdmin == nil { + obj.SetLocal4ByteAdmin(1) } } -// ***** PatternFlowIpv4DscpPhbCounter ***** -type patternFlowIpv4DscpPhbCounter struct { +// ***** BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin ***** +type bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin struct { validation - obj *otg.PatternFlowIpv4DscpPhbCounter - marshaller marshalPatternFlowIpv4DscpPhbCounter - unMarshaller unMarshalPatternFlowIpv4DscpPhbCounter + obj *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + marshaller marshalBgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + unMarshaller unMarshalBgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin } -func NewPatternFlowIpv4DscpPhbCounter() PatternFlowIpv4DscpPhbCounter { - obj := patternFlowIpv4DscpPhbCounter{obj: &otg.PatternFlowIpv4DscpPhbCounter{}} +func NewBgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin() BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin { + obj := bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin{obj: &otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4DscpPhbCounter) msg() *otg.PatternFlowIpv4DscpPhbCounter { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) msg() *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin { return obj.obj } -func (obj *patternFlowIpv4DscpPhbCounter) setMsg(msg *otg.PatternFlowIpv4DscpPhbCounter) PatternFlowIpv4DscpPhbCounter { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) setMsg(msg *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin { proto.Merge(obj.obj, msg) return obj } -type marshalpatternFlowIpv4DscpPhbCounter struct { - obj *patternFlowIpv4DscpPhbCounter +type marshalbgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin struct { + obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin } -type marshalPatternFlowIpv4DscpPhbCounter interface { - // ToProto marshals PatternFlowIpv4DscpPhbCounter to protobuf object *otg.PatternFlowIpv4DscpPhbCounter - ToProto() (*otg.PatternFlowIpv4DscpPhbCounter, error) - // ToPbText marshals PatternFlowIpv4DscpPhbCounter to protobuf text +type marshalBgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin interface { + // ToProto marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin to protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + ToProto() (*otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin, error) + // ToPbText marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4DscpPhbCounter to YAML text + // ToYaml marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4DscpPhbCounter to JSON text + // ToJson marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin to JSON text ToJson() (string, error) } -type unMarshalpatternFlowIpv4DscpPhbCounter struct { - obj *patternFlowIpv4DscpPhbCounter +type unMarshalbgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin struct { + obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin } -type unMarshalPatternFlowIpv4DscpPhbCounter interface { - // FromProto unmarshals PatternFlowIpv4DscpPhbCounter from protobuf object *otg.PatternFlowIpv4DscpPhbCounter - FromProto(msg *otg.PatternFlowIpv4DscpPhbCounter) (PatternFlowIpv4DscpPhbCounter, error) - // FromPbText unmarshals PatternFlowIpv4DscpPhbCounter from protobuf text +type unMarshalBgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin interface { + // FromProto unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin from protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + FromProto(msg *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) (BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin, error) + // FromPbText unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4DscpPhbCounter from YAML text + // FromYaml unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4DscpPhbCounter from JSON text + // FromJson unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin from JSON text FromJson(value string) error } -func (obj *patternFlowIpv4DscpPhbCounter) Marshal() marshalPatternFlowIpv4DscpPhbCounter { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) Marshal() marshalBgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin { if obj.marshaller == nil { - obj.marshaller = &marshalpatternFlowIpv4DscpPhbCounter{obj: obj} + obj.marshaller = &marshalbgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin{obj: obj} } return obj.marshaller } -func (obj *patternFlowIpv4DscpPhbCounter) Unmarshal() unMarshalPatternFlowIpv4DscpPhbCounter { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) Unmarshal() unMarshalBgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalpatternFlowIpv4DscpPhbCounter{obj: obj} + obj.unMarshaller = &unMarshalbgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin{obj: obj} } return obj.unMarshaller } -func (m *marshalpatternFlowIpv4DscpPhbCounter) ToProto() (*otg.PatternFlowIpv4DscpPhbCounter, error) { +func (m *marshalbgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) ToProto() (*otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -335290,7 +348262,7 @@ func (m *marshalpatternFlowIpv4DscpPhbCounter) ToProto() (*otg.PatternFlowIpv4Ds return m.obj.msg(), nil } -func (m *unMarshalpatternFlowIpv4DscpPhbCounter) FromProto(msg *otg.PatternFlowIpv4DscpPhbCounter) (PatternFlowIpv4DscpPhbCounter, error) { +func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) FromProto(msg *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) (BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -335299,7 +348271,7 @@ func (m *unMarshalpatternFlowIpv4DscpPhbCounter) FromProto(msg *otg.PatternFlowI return newObj, nil } -func (m *marshalpatternFlowIpv4DscpPhbCounter) ToPbText() (string, error) { +func (m *marshalbgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -335311,7 +348283,7 @@ func (m *marshalpatternFlowIpv4DscpPhbCounter) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalpatternFlowIpv4DscpPhbCounter) FromPbText(value string) error { +func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj @@ -335324,7 +348296,7 @@ func (m *unMarshalpatternFlowIpv4DscpPhbCounter) FromPbText(value string) error return retObj } -func (m *marshalpatternFlowIpv4DscpPhbCounter) ToYaml() (string, error) { +func (m *marshalbgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -335345,7 +348317,7 @@ func (m *marshalpatternFlowIpv4DscpPhbCounter) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalpatternFlowIpv4DscpPhbCounter) FromYaml(value string) error { +func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) FromYaml(value string) error { if value == "" { value = "{}" } @@ -335370,7 +348342,7 @@ func (m *unMarshalpatternFlowIpv4DscpPhbCounter) FromYaml(value string) error { return nil } -func (m *marshalpatternFlowIpv4DscpPhbCounter) ToJson() (string, error) { +func (m *marshalbgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -335388,7 +348360,7 @@ func (m *marshalpatternFlowIpv4DscpPhbCounter) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalpatternFlowIpv4DscpPhbCounter) FromJson(value string) error { +func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -335409,19 +348381,19 @@ func (m *unMarshalpatternFlowIpv4DscpPhbCounter) FromJson(value string) error { return nil } -func (obj *patternFlowIpv4DscpPhbCounter) validateToAndFrom() error { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4DscpPhbCounter) validate() error { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4DscpPhbCounter) String() string { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -335429,12 +348401,12 @@ func (obj *patternFlowIpv4DscpPhbCounter) String() string { return str } -func (obj *patternFlowIpv4DscpPhbCounter) Clone() (PatternFlowIpv4DscpPhbCounter, error) { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) Clone() (BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4DscpPhbCounter() + newObj := NewBgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -335446,233 +348418,182 @@ func (obj *patternFlowIpv4DscpPhbCounter) Clone() (PatternFlowIpv4DscpPhbCounter return newObj, nil } -// PatternFlowIpv4DscpPhbCounter is integer counter pattern -type PatternFlowIpv4DscpPhbCounter interface { +// BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin is the Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP. It is sent with sub-type as 0x03 . +type BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin interface { Validation - // msg marshals PatternFlowIpv4DscpPhbCounter to protobuf object *otg.PatternFlowIpv4DscpPhbCounter + // msg marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin to protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin // and doesn't set defaults - msg() *otg.PatternFlowIpv4DscpPhbCounter - // setMsg unmarshals PatternFlowIpv4DscpPhbCounter from protobuf object *otg.PatternFlowIpv4DscpPhbCounter + msg() *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + // setMsg unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin from protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin // and doesn't set defaults - setMsg(*otg.PatternFlowIpv4DscpPhbCounter) PatternFlowIpv4DscpPhbCounter + setMsg(*otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin // provides marshal interface - Marshal() marshalPatternFlowIpv4DscpPhbCounter + Marshal() marshalBgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin // provides unmarshal interface - Unmarshal() unMarshalPatternFlowIpv4DscpPhbCounter - // validate validates PatternFlowIpv4DscpPhbCounter + Unmarshal() unMarshalBgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + // validate validates BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4DscpPhbCounter, error) + Clone() (BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Start returns uint32, set in PatternFlowIpv4DscpPhbCounter. - Start() uint32 - // SetStart assigns uint32 provided by user to PatternFlowIpv4DscpPhbCounter - SetStart(value uint32) PatternFlowIpv4DscpPhbCounter - // HasStart checks if Start has been set in PatternFlowIpv4DscpPhbCounter - HasStart() bool - // Step returns uint32, set in PatternFlowIpv4DscpPhbCounter. - Step() uint32 - // SetStep assigns uint32 provided by user to PatternFlowIpv4DscpPhbCounter - SetStep(value uint32) PatternFlowIpv4DscpPhbCounter - // HasStep checks if Step has been set in PatternFlowIpv4DscpPhbCounter - HasStep() bool - // Count returns uint32, set in PatternFlowIpv4DscpPhbCounter. - Count() uint32 - // SetCount assigns uint32 provided by user to PatternFlowIpv4DscpPhbCounter - SetCount(value uint32) PatternFlowIpv4DscpPhbCounter - // HasCount checks if Count has been set in PatternFlowIpv4DscpPhbCounter - HasCount() bool -} - -// description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4DscpPhbCounter) Start() uint32 { - - return *obj.obj.Start - -} - -// description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4DscpPhbCounter) HasStart() bool { - return obj.obj.Start != nil -} - -// description is TBD -// SetStart sets the uint32 value in the PatternFlowIpv4DscpPhbCounter object -func (obj *patternFlowIpv4DscpPhbCounter) SetStart(value uint32) PatternFlowIpv4DscpPhbCounter { - - obj.obj.Start = &value - return obj + // Global2ByteAs returns uint32, set in BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin. + Global2ByteAs() uint32 + // SetGlobal2ByteAs assigns uint32 provided by user to BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + SetGlobal2ByteAs(value uint32) BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + // HasGlobal2ByteAs checks if Global2ByteAs has been set in BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + HasGlobal2ByteAs() bool + // Local4ByteAdmin returns uint32, set in BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin. + Local4ByteAdmin() uint32 + // SetLocal4ByteAdmin assigns uint32 provided by user to BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + SetLocal4ByteAdmin(value uint32) BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + // HasLocal4ByteAdmin checks if Local4ByteAdmin has been set in BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + HasLocal4ByteAdmin() bool } -// description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4DscpPhbCounter) Step() uint32 { +// The two octet IANA assigned AS value assigned to the Autonomous System. +// Global2ByteAs returns a uint32 +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) Global2ByteAs() uint32 { - return *obj.obj.Step + return *obj.obj.Global_2ByteAs } -// description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4DscpPhbCounter) HasStep() bool { - return obj.obj.Step != nil +// The two octet IANA assigned AS value assigned to the Autonomous System. +// Global2ByteAs returns a uint32 +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) HasGlobal2ByteAs() bool { + return obj.obj.Global_2ByteAs != nil } -// description is TBD -// SetStep sets the uint32 value in the PatternFlowIpv4DscpPhbCounter object -func (obj *patternFlowIpv4DscpPhbCounter) SetStep(value uint32) PatternFlowIpv4DscpPhbCounter { +// The two octet IANA assigned AS value assigned to the Autonomous System. +// SetGlobal2ByteAs sets the uint32 value in the BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin object +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) SetGlobal2ByteAs(value uint32) BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin { - obj.obj.Step = &value + obj.obj.Global_2ByteAs = &value return obj } -// description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4DscpPhbCounter) Count() uint32 { +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// Local4ByteAdmin returns a uint32 +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) Local4ByteAdmin() uint32 { - return *obj.obj.Count + return *obj.obj.Local_4ByteAdmin } -// description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4DscpPhbCounter) HasCount() bool { - return obj.obj.Count != nil +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// Local4ByteAdmin returns a uint32 +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) HasLocal4ByteAdmin() bool { + return obj.obj.Local_4ByteAdmin != nil } -// description is TBD -// SetCount sets the uint32 value in the PatternFlowIpv4DscpPhbCounter object -func (obj *patternFlowIpv4DscpPhbCounter) SetCount(value uint32) PatternFlowIpv4DscpPhbCounter { +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// SetLocal4ByteAdmin sets the uint32 value in the BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin object +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) SetLocal4ByteAdmin(value uint32) BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin { - obj.obj.Count = &value + obj.obj.Local_4ByteAdmin = &value return obj } -func (obj *patternFlowIpv4DscpPhbCounter) validateObj(vObj *validation, set_default bool) { +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Start != nil { - - if *obj.obj.Start > 63 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4DscpPhbCounter.Start <= 63 but Got %d", *obj.obj.Start)) - } - - } - - if obj.obj.Step != nil { - - if *obj.obj.Step > 63 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4DscpPhbCounter.Step <= 63 but Got %d", *obj.obj.Step)) - } - - } - - if obj.obj.Count != nil { + if obj.obj.Global_2ByteAs != nil { - if *obj.obj.Count > 63 { + if *obj.obj.Global_2ByteAs > 65535 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4DscpPhbCounter.Count <= 63 but Got %d", *obj.obj.Count)) + fmt.Sprintf("0 <= BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin.Global_2ByteAs <= 65535 but Got %d", *obj.obj.Global_2ByteAs)) } } } -func (obj *patternFlowIpv4DscpPhbCounter) setDefault() { - if obj.obj.Start == nil { - obj.SetStart(0) - } - if obj.obj.Step == nil { - obj.SetStep(1) +func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) setDefault() { + if obj.obj.Global_2ByteAs == nil { + obj.SetGlobal2ByteAs(100) } - if obj.obj.Count == nil { - obj.SetCount(1) + if obj.obj.Local_4ByteAdmin == nil { + obj.SetLocal4ByteAdmin(1) } } -// ***** PatternFlowIpv4DscpPhbMetricTag ***** -type patternFlowIpv4DscpPhbMetricTag struct { +// ***** BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget ***** +type bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget struct { validation - obj *otg.PatternFlowIpv4DscpPhbMetricTag - marshaller marshalPatternFlowIpv4DscpPhbMetricTag - unMarshaller unMarshalPatternFlowIpv4DscpPhbMetricTag + obj *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + marshaller marshalBgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + unMarshaller unMarshalBgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget } -func NewPatternFlowIpv4DscpPhbMetricTag() PatternFlowIpv4DscpPhbMetricTag { - obj := patternFlowIpv4DscpPhbMetricTag{obj: &otg.PatternFlowIpv4DscpPhbMetricTag{}} +func NewBgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget() BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget { + obj := bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget{obj: &otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4DscpPhbMetricTag) msg() *otg.PatternFlowIpv4DscpPhbMetricTag { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) msg() *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget { return obj.obj } -func (obj *patternFlowIpv4DscpPhbMetricTag) setMsg(msg *otg.PatternFlowIpv4DscpPhbMetricTag) PatternFlowIpv4DscpPhbMetricTag { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) setMsg(msg *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget { proto.Merge(obj.obj, msg) return obj } -type marshalpatternFlowIpv4DscpPhbMetricTag struct { - obj *patternFlowIpv4DscpPhbMetricTag +type marshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget struct { + obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget } -type marshalPatternFlowIpv4DscpPhbMetricTag interface { - // ToProto marshals PatternFlowIpv4DscpPhbMetricTag to protobuf object *otg.PatternFlowIpv4DscpPhbMetricTag - ToProto() (*otg.PatternFlowIpv4DscpPhbMetricTag, error) - // ToPbText marshals PatternFlowIpv4DscpPhbMetricTag to protobuf text +type marshalBgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget interface { + // ToProto marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget to protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + ToProto() (*otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget, error) + // ToPbText marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4DscpPhbMetricTag to YAML text + // ToYaml marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4DscpPhbMetricTag to JSON text + // ToJson marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget to JSON text ToJson() (string, error) } -type unMarshalpatternFlowIpv4DscpPhbMetricTag struct { - obj *patternFlowIpv4DscpPhbMetricTag +type unMarshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget struct { + obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget } -type unMarshalPatternFlowIpv4DscpPhbMetricTag interface { - // FromProto unmarshals PatternFlowIpv4DscpPhbMetricTag from protobuf object *otg.PatternFlowIpv4DscpPhbMetricTag - FromProto(msg *otg.PatternFlowIpv4DscpPhbMetricTag) (PatternFlowIpv4DscpPhbMetricTag, error) - // FromPbText unmarshals PatternFlowIpv4DscpPhbMetricTag from protobuf text +type unMarshalBgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget interface { + // FromProto unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget from protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + FromProto(msg *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) (BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget, error) + // FromPbText unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4DscpPhbMetricTag from YAML text + // FromYaml unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4DscpPhbMetricTag from JSON text + // FromJson unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget from JSON text FromJson(value string) error } -func (obj *patternFlowIpv4DscpPhbMetricTag) Marshal() marshalPatternFlowIpv4DscpPhbMetricTag { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) Marshal() marshalBgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget { if obj.marshaller == nil { - obj.marshaller = &marshalpatternFlowIpv4DscpPhbMetricTag{obj: obj} + obj.marshaller = &marshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget{obj: obj} } return obj.marshaller } -func (obj *patternFlowIpv4DscpPhbMetricTag) Unmarshal() unMarshalPatternFlowIpv4DscpPhbMetricTag { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) Unmarshal() unMarshalBgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalpatternFlowIpv4DscpPhbMetricTag{obj: obj} + obj.unMarshaller = &unMarshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget{obj: obj} } return obj.unMarshaller } -func (m *marshalpatternFlowIpv4DscpPhbMetricTag) ToProto() (*otg.PatternFlowIpv4DscpPhbMetricTag, error) { +func (m *marshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) ToProto() (*otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -335680,7 +348601,7 @@ func (m *marshalpatternFlowIpv4DscpPhbMetricTag) ToProto() (*otg.PatternFlowIpv4 return m.obj.msg(), nil } -func (m *unMarshalpatternFlowIpv4DscpPhbMetricTag) FromProto(msg *otg.PatternFlowIpv4DscpPhbMetricTag) (PatternFlowIpv4DscpPhbMetricTag, error) { +func (m *unMarshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) FromProto(msg *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) (BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -335689,7 +348610,7 @@ func (m *unMarshalpatternFlowIpv4DscpPhbMetricTag) FromProto(msg *otg.PatternFlo return newObj, nil } -func (m *marshalpatternFlowIpv4DscpPhbMetricTag) ToPbText() (string, error) { +func (m *marshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -335701,7 +348622,7 @@ func (m *marshalpatternFlowIpv4DscpPhbMetricTag) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalpatternFlowIpv4DscpPhbMetricTag) FromPbText(value string) error { +func (m *unMarshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj @@ -335714,7 +348635,7 @@ func (m *unMarshalpatternFlowIpv4DscpPhbMetricTag) FromPbText(value string) erro return retObj } -func (m *marshalpatternFlowIpv4DscpPhbMetricTag) ToYaml() (string, error) { +func (m *marshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -335735,7 +348656,7 @@ func (m *marshalpatternFlowIpv4DscpPhbMetricTag) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalpatternFlowIpv4DscpPhbMetricTag) FromYaml(value string) error { +func (m *unMarshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) FromYaml(value string) error { if value == "" { value = "{}" } @@ -335760,7 +348681,7 @@ func (m *unMarshalpatternFlowIpv4DscpPhbMetricTag) FromYaml(value string) error return nil } -func (m *marshalpatternFlowIpv4DscpPhbMetricTag) ToJson() (string, error) { +func (m *marshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -335778,7 +348699,7 @@ func (m *marshalpatternFlowIpv4DscpPhbMetricTag) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalpatternFlowIpv4DscpPhbMetricTag) FromJson(value string) error { +func (m *unMarshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -335799,19 +348720,19 @@ func (m *unMarshalpatternFlowIpv4DscpPhbMetricTag) FromJson(value string) error return nil } -func (obj *patternFlowIpv4DscpPhbMetricTag) validateToAndFrom() error { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4DscpPhbMetricTag) validate() error { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4DscpPhbMetricTag) String() string { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -335819,12 +348740,12 @@ func (obj *patternFlowIpv4DscpPhbMetricTag) String() string { return str } -func (obj *patternFlowIpv4DscpPhbMetricTag) Clone() (PatternFlowIpv4DscpPhbMetricTag, error) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) Clone() (BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4DscpPhbMetricTag() + newObj := NewBgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -335836,217 +348757,191 @@ func (obj *patternFlowIpv4DscpPhbMetricTag) Clone() (PatternFlowIpv4DscpPhbMetri return newObj, nil } -// PatternFlowIpv4DscpPhbMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. -type PatternFlowIpv4DscpPhbMetricTag interface { +// BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget is the Route Target Community identifies one or more routers that may receive a set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02. +type BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget interface { Validation - // msg marshals PatternFlowIpv4DscpPhbMetricTag to protobuf object *otg.PatternFlowIpv4DscpPhbMetricTag + // msg marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget to protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget // and doesn't set defaults - msg() *otg.PatternFlowIpv4DscpPhbMetricTag - // setMsg unmarshals PatternFlowIpv4DscpPhbMetricTag from protobuf object *otg.PatternFlowIpv4DscpPhbMetricTag + msg() *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + // setMsg unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget from protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget // and doesn't set defaults - setMsg(*otg.PatternFlowIpv4DscpPhbMetricTag) PatternFlowIpv4DscpPhbMetricTag + setMsg(*otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget // provides marshal interface - Marshal() marshalPatternFlowIpv4DscpPhbMetricTag + Marshal() marshalBgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget // provides unmarshal interface - Unmarshal() unMarshalPatternFlowIpv4DscpPhbMetricTag - // validate validates PatternFlowIpv4DscpPhbMetricTag + Unmarshal() unMarshalBgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + // validate validates BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4DscpPhbMetricTag, error) + Clone() (BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Name returns string, set in PatternFlowIpv4DscpPhbMetricTag. - Name() string - // SetName assigns string provided by user to PatternFlowIpv4DscpPhbMetricTag - SetName(value string) PatternFlowIpv4DscpPhbMetricTag - // Offset returns uint32, set in PatternFlowIpv4DscpPhbMetricTag. - Offset() uint32 - // SetOffset assigns uint32 provided by user to PatternFlowIpv4DscpPhbMetricTag - SetOffset(value uint32) PatternFlowIpv4DscpPhbMetricTag - // HasOffset checks if Offset has been set in PatternFlowIpv4DscpPhbMetricTag - HasOffset() bool - // Length returns uint32, set in PatternFlowIpv4DscpPhbMetricTag. - Length() uint32 - // SetLength assigns uint32 provided by user to PatternFlowIpv4DscpPhbMetricTag - SetLength(value uint32) PatternFlowIpv4DscpPhbMetricTag - // HasLength checks if Length has been set in PatternFlowIpv4DscpPhbMetricTag - HasLength() bool -} - -// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// Name returns a string -func (obj *patternFlowIpv4DscpPhbMetricTag) Name() string { - - return *obj.obj.Name - -} - -// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// SetName sets the string value in the PatternFlowIpv4DscpPhbMetricTag object -func (obj *patternFlowIpv4DscpPhbMetricTag) SetName(value string) PatternFlowIpv4DscpPhbMetricTag { - - obj.obj.Name = &value - return obj + // GlobalIpv4Admin returns string, set in BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget. + GlobalIpv4Admin() string + // SetGlobalIpv4Admin assigns string provided by user to BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + SetGlobalIpv4Admin(value string) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + // HasGlobalIpv4Admin checks if GlobalIpv4Admin has been set in BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + HasGlobalIpv4Admin() bool + // Local2ByteAdmin returns uint32, set in BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget. + Local2ByteAdmin() uint32 + // SetLocal2ByteAdmin assigns uint32 provided by user to BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + SetLocal2ByteAdmin(value uint32) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + // HasLocal2ByteAdmin checks if Local2ByteAdmin has been set in BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + HasLocal2ByteAdmin() bool } -// Offset in bits relative to start of corresponding header field -// Offset returns a uint32 -func (obj *patternFlowIpv4DscpPhbMetricTag) Offset() uint32 { +// An IPv4 unicast address assigned by one of the Internet registries. +// GlobalIpv4Admin returns a string +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) GlobalIpv4Admin() string { - return *obj.obj.Offset + return *obj.obj.GlobalIpv4Admin } -// Offset in bits relative to start of corresponding header field -// Offset returns a uint32 -func (obj *patternFlowIpv4DscpPhbMetricTag) HasOffset() bool { - return obj.obj.Offset != nil +// An IPv4 unicast address assigned by one of the Internet registries. +// GlobalIpv4Admin returns a string +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) HasGlobalIpv4Admin() bool { + return obj.obj.GlobalIpv4Admin != nil } -// Offset in bits relative to start of corresponding header field -// SetOffset sets the uint32 value in the PatternFlowIpv4DscpPhbMetricTag object -func (obj *patternFlowIpv4DscpPhbMetricTag) SetOffset(value uint32) PatternFlowIpv4DscpPhbMetricTag { +// An IPv4 unicast address assigned by one of the Internet registries. +// SetGlobalIpv4Admin sets the string value in the BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget object +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) SetGlobalIpv4Admin(value string) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget { - obj.obj.Offset = &value + obj.obj.GlobalIpv4Admin = &value return obj } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// Length returns a uint32 -func (obj *patternFlowIpv4DscpPhbMetricTag) Length() uint32 { +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// Local2ByteAdmin returns a uint32 +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) Local2ByteAdmin() uint32 { - return *obj.obj.Length + return *obj.obj.Local_2ByteAdmin } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// Length returns a uint32 -func (obj *patternFlowIpv4DscpPhbMetricTag) HasLength() bool { - return obj.obj.Length != nil +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// Local2ByteAdmin returns a uint32 +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) HasLocal2ByteAdmin() bool { + return obj.obj.Local_2ByteAdmin != nil } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// SetLength sets the uint32 value in the PatternFlowIpv4DscpPhbMetricTag object -func (obj *patternFlowIpv4DscpPhbMetricTag) SetLength(value uint32) PatternFlowIpv4DscpPhbMetricTag { +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// SetLocal2ByteAdmin sets the uint32 value in the BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget object +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) SetLocal2ByteAdmin(value uint32) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget { - obj.obj.Length = &value + obj.obj.Local_2ByteAdmin = &value return obj } -func (obj *patternFlowIpv4DscpPhbMetricTag) validateObj(vObj *validation, set_default bool) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - // Name is required - if obj.obj.Name == nil { - vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4DscpPhbMetricTag") - } - - if obj.obj.Offset != nil { + if obj.obj.GlobalIpv4Admin != nil { - if *obj.obj.Offset > 5 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4DscpPhbMetricTag.Offset <= 5 but Got %d", *obj.obj.Offset)) + err := obj.validateIpv4(obj.GlobalIpv4Admin()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget.GlobalIpv4Admin")) } } - if obj.obj.Length != nil { + if obj.obj.Local_2ByteAdmin != nil { - if *obj.obj.Length < 1 || *obj.obj.Length > 6 { + if *obj.obj.Local_2ByteAdmin > 65535 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("1 <= PatternFlowIpv4DscpPhbMetricTag.Length <= 6 but Got %d", *obj.obj.Length)) + fmt.Sprintf("0 <= BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget.Local_2ByteAdmin <= 65535 but Got %d", *obj.obj.Local_2ByteAdmin)) } } } -func (obj *patternFlowIpv4DscpPhbMetricTag) setDefault() { - if obj.obj.Offset == nil { - obj.SetOffset(0) +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) setDefault() { + if obj.obj.GlobalIpv4Admin == nil { + obj.SetGlobalIpv4Admin("0.0.0.0") } - if obj.obj.Length == nil { - obj.SetLength(6) + if obj.obj.Local_2ByteAdmin == nil { + obj.SetLocal2ByteAdmin(1) } } -// ***** PatternFlowIpv4DscpEcnCounter ***** -type patternFlowIpv4DscpEcnCounter struct { +// ***** BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin ***** +type bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin struct { validation - obj *otg.PatternFlowIpv4DscpEcnCounter - marshaller marshalPatternFlowIpv4DscpEcnCounter - unMarshaller unMarshalPatternFlowIpv4DscpEcnCounter + obj *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + marshaller marshalBgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + unMarshaller unMarshalBgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin } -func NewPatternFlowIpv4DscpEcnCounter() PatternFlowIpv4DscpEcnCounter { - obj := patternFlowIpv4DscpEcnCounter{obj: &otg.PatternFlowIpv4DscpEcnCounter{}} +func NewBgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin() BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin { + obj := bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin{obj: &otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4DscpEcnCounter) msg() *otg.PatternFlowIpv4DscpEcnCounter { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) msg() *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin { return obj.obj } -func (obj *patternFlowIpv4DscpEcnCounter) setMsg(msg *otg.PatternFlowIpv4DscpEcnCounter) PatternFlowIpv4DscpEcnCounter { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) setMsg(msg *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin { proto.Merge(obj.obj, msg) return obj } -type marshalpatternFlowIpv4DscpEcnCounter struct { - obj *patternFlowIpv4DscpEcnCounter +type marshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin struct { + obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin } -type marshalPatternFlowIpv4DscpEcnCounter interface { - // ToProto marshals PatternFlowIpv4DscpEcnCounter to protobuf object *otg.PatternFlowIpv4DscpEcnCounter - ToProto() (*otg.PatternFlowIpv4DscpEcnCounter, error) - // ToPbText marshals PatternFlowIpv4DscpEcnCounter to protobuf text +type marshalBgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin interface { + // ToProto marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin to protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + ToProto() (*otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin, error) + // ToPbText marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4DscpEcnCounter to YAML text + // ToYaml marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4DscpEcnCounter to JSON text + // ToJson marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin to JSON text ToJson() (string, error) } -type unMarshalpatternFlowIpv4DscpEcnCounter struct { - obj *patternFlowIpv4DscpEcnCounter +type unMarshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin struct { + obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin } -type unMarshalPatternFlowIpv4DscpEcnCounter interface { - // FromProto unmarshals PatternFlowIpv4DscpEcnCounter from protobuf object *otg.PatternFlowIpv4DscpEcnCounter - FromProto(msg *otg.PatternFlowIpv4DscpEcnCounter) (PatternFlowIpv4DscpEcnCounter, error) - // FromPbText unmarshals PatternFlowIpv4DscpEcnCounter from protobuf text +type unMarshalBgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin interface { + // FromProto unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin from protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + FromProto(msg *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) (BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin, error) + // FromPbText unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4DscpEcnCounter from YAML text + // FromYaml unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4DscpEcnCounter from JSON text + // FromJson unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin from JSON text FromJson(value string) error } -func (obj *patternFlowIpv4DscpEcnCounter) Marshal() marshalPatternFlowIpv4DscpEcnCounter { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) Marshal() marshalBgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin { if obj.marshaller == nil { - obj.marshaller = &marshalpatternFlowIpv4DscpEcnCounter{obj: obj} + obj.marshaller = &marshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin{obj: obj} } return obj.marshaller } -func (obj *patternFlowIpv4DscpEcnCounter) Unmarshal() unMarshalPatternFlowIpv4DscpEcnCounter { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) Unmarshal() unMarshalBgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalpatternFlowIpv4DscpEcnCounter{obj: obj} + obj.unMarshaller = &unMarshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin{obj: obj} } return obj.unMarshaller } -func (m *marshalpatternFlowIpv4DscpEcnCounter) ToProto() (*otg.PatternFlowIpv4DscpEcnCounter, error) { +func (m *marshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) ToProto() (*otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -336054,7 +348949,7 @@ func (m *marshalpatternFlowIpv4DscpEcnCounter) ToProto() (*otg.PatternFlowIpv4Ds return m.obj.msg(), nil } -func (m *unMarshalpatternFlowIpv4DscpEcnCounter) FromProto(msg *otg.PatternFlowIpv4DscpEcnCounter) (PatternFlowIpv4DscpEcnCounter, error) { +func (m *unMarshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) FromProto(msg *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) (BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -336063,7 +348958,7 @@ func (m *unMarshalpatternFlowIpv4DscpEcnCounter) FromProto(msg *otg.PatternFlowI return newObj, nil } -func (m *marshalpatternFlowIpv4DscpEcnCounter) ToPbText() (string, error) { +func (m *marshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -336075,7 +348970,7 @@ func (m *marshalpatternFlowIpv4DscpEcnCounter) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalpatternFlowIpv4DscpEcnCounter) FromPbText(value string) error { +func (m *unMarshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj @@ -336088,7 +348983,7 @@ func (m *unMarshalpatternFlowIpv4DscpEcnCounter) FromPbText(value string) error return retObj } -func (m *marshalpatternFlowIpv4DscpEcnCounter) ToYaml() (string, error) { +func (m *marshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -336109,7 +349004,7 @@ func (m *marshalpatternFlowIpv4DscpEcnCounter) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalpatternFlowIpv4DscpEcnCounter) FromYaml(value string) error { +func (m *unMarshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) FromYaml(value string) error { if value == "" { value = "{}" } @@ -336134,7 +349029,7 @@ func (m *unMarshalpatternFlowIpv4DscpEcnCounter) FromYaml(value string) error { return nil } -func (m *marshalpatternFlowIpv4DscpEcnCounter) ToJson() (string, error) { +func (m *marshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -336152,7 +349047,7 @@ func (m *marshalpatternFlowIpv4DscpEcnCounter) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalpatternFlowIpv4DscpEcnCounter) FromJson(value string) error { +func (m *unMarshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -336173,19 +349068,19 @@ func (m *unMarshalpatternFlowIpv4DscpEcnCounter) FromJson(value string) error { return nil } -func (obj *patternFlowIpv4DscpEcnCounter) validateToAndFrom() error { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4DscpEcnCounter) validate() error { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4DscpEcnCounter) String() string { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -336193,12 +349088,12 @@ func (obj *patternFlowIpv4DscpEcnCounter) String() string { return str } -func (obj *patternFlowIpv4DscpEcnCounter) Clone() (PatternFlowIpv4DscpEcnCounter, error) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) Clone() (BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4DscpEcnCounter() + newObj := NewBgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -336210,233 +349105,191 @@ func (obj *patternFlowIpv4DscpEcnCounter) Clone() (PatternFlowIpv4DscpEcnCounter return newObj, nil } -// PatternFlowIpv4DscpEcnCounter is integer counter pattern -type PatternFlowIpv4DscpEcnCounter interface { +// BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin is the Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP It is sent with sub-type as 0x03. +type BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin interface { Validation - // msg marshals PatternFlowIpv4DscpEcnCounter to protobuf object *otg.PatternFlowIpv4DscpEcnCounter + // msg marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin to protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin // and doesn't set defaults - msg() *otg.PatternFlowIpv4DscpEcnCounter - // setMsg unmarshals PatternFlowIpv4DscpEcnCounter from protobuf object *otg.PatternFlowIpv4DscpEcnCounter + msg() *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + // setMsg unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin from protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin // and doesn't set defaults - setMsg(*otg.PatternFlowIpv4DscpEcnCounter) PatternFlowIpv4DscpEcnCounter + setMsg(*otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin // provides marshal interface - Marshal() marshalPatternFlowIpv4DscpEcnCounter + Marshal() marshalBgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin // provides unmarshal interface - Unmarshal() unMarshalPatternFlowIpv4DscpEcnCounter - // validate validates PatternFlowIpv4DscpEcnCounter + Unmarshal() unMarshalBgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + // validate validates BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4DscpEcnCounter, error) + Clone() (BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Start returns uint32, set in PatternFlowIpv4DscpEcnCounter. - Start() uint32 - // SetStart assigns uint32 provided by user to PatternFlowIpv4DscpEcnCounter - SetStart(value uint32) PatternFlowIpv4DscpEcnCounter - // HasStart checks if Start has been set in PatternFlowIpv4DscpEcnCounter - HasStart() bool - // Step returns uint32, set in PatternFlowIpv4DscpEcnCounter. - Step() uint32 - // SetStep assigns uint32 provided by user to PatternFlowIpv4DscpEcnCounter - SetStep(value uint32) PatternFlowIpv4DscpEcnCounter - // HasStep checks if Step has been set in PatternFlowIpv4DscpEcnCounter - HasStep() bool - // Count returns uint32, set in PatternFlowIpv4DscpEcnCounter. - Count() uint32 - // SetCount assigns uint32 provided by user to PatternFlowIpv4DscpEcnCounter - SetCount(value uint32) PatternFlowIpv4DscpEcnCounter - // HasCount checks if Count has been set in PatternFlowIpv4DscpEcnCounter - HasCount() bool -} - -// description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4DscpEcnCounter) Start() uint32 { - - return *obj.obj.Start - -} - -// description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4DscpEcnCounter) HasStart() bool { - return obj.obj.Start != nil -} - -// description is TBD -// SetStart sets the uint32 value in the PatternFlowIpv4DscpEcnCounter object -func (obj *patternFlowIpv4DscpEcnCounter) SetStart(value uint32) PatternFlowIpv4DscpEcnCounter { - - obj.obj.Start = &value - return obj + // GlobalIpv4Admin returns string, set in BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin. + GlobalIpv4Admin() string + // SetGlobalIpv4Admin assigns string provided by user to BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + SetGlobalIpv4Admin(value string) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + // HasGlobalIpv4Admin checks if GlobalIpv4Admin has been set in BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + HasGlobalIpv4Admin() bool + // Local2ByteAdmin returns uint32, set in BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin. + Local2ByteAdmin() uint32 + // SetLocal2ByteAdmin assigns uint32 provided by user to BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + SetLocal2ByteAdmin(value uint32) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + // HasLocal2ByteAdmin checks if Local2ByteAdmin has been set in BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + HasLocal2ByteAdmin() bool } -// description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4DscpEcnCounter) Step() uint32 { +// An IPv4 unicast address assigned by one of the Internet registries. +// GlobalIpv4Admin returns a string +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) GlobalIpv4Admin() string { - return *obj.obj.Step + return *obj.obj.GlobalIpv4Admin } -// description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4DscpEcnCounter) HasStep() bool { - return obj.obj.Step != nil +// An IPv4 unicast address assigned by one of the Internet registries. +// GlobalIpv4Admin returns a string +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) HasGlobalIpv4Admin() bool { + return obj.obj.GlobalIpv4Admin != nil } -// description is TBD -// SetStep sets the uint32 value in the PatternFlowIpv4DscpEcnCounter object -func (obj *patternFlowIpv4DscpEcnCounter) SetStep(value uint32) PatternFlowIpv4DscpEcnCounter { +// An IPv4 unicast address assigned by one of the Internet registries. +// SetGlobalIpv4Admin sets the string value in the BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin object +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) SetGlobalIpv4Admin(value string) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin { - obj.obj.Step = &value + obj.obj.GlobalIpv4Admin = &value return obj } -// description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4DscpEcnCounter) Count() uint32 { +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// Local2ByteAdmin returns a uint32 +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) Local2ByteAdmin() uint32 { - return *obj.obj.Count + return *obj.obj.Local_2ByteAdmin } -// description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4DscpEcnCounter) HasCount() bool { - return obj.obj.Count != nil +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// Local2ByteAdmin returns a uint32 +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) HasLocal2ByteAdmin() bool { + return obj.obj.Local_2ByteAdmin != nil } -// description is TBD -// SetCount sets the uint32 value in the PatternFlowIpv4DscpEcnCounter object -func (obj *patternFlowIpv4DscpEcnCounter) SetCount(value uint32) PatternFlowIpv4DscpEcnCounter { +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// SetLocal2ByteAdmin sets the uint32 value in the BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin object +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) SetLocal2ByteAdmin(value uint32) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin { - obj.obj.Count = &value + obj.obj.Local_2ByteAdmin = &value return obj } -func (obj *patternFlowIpv4DscpEcnCounter) validateObj(vObj *validation, set_default bool) { +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Start != nil { - - if *obj.obj.Start > 3 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4DscpEcnCounter.Start <= 3 but Got %d", *obj.obj.Start)) - } - - } - - if obj.obj.Step != nil { + if obj.obj.GlobalIpv4Admin != nil { - if *obj.obj.Step > 3 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4DscpEcnCounter.Step <= 3 but Got %d", *obj.obj.Step)) + err := obj.validateIpv4(obj.GlobalIpv4Admin()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin.GlobalIpv4Admin")) } } - if obj.obj.Count != nil { + if obj.obj.Local_2ByteAdmin != nil { - if *obj.obj.Count > 3 { + if *obj.obj.Local_2ByteAdmin > 65535 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4DscpEcnCounter.Count <= 3 but Got %d", *obj.obj.Count)) + fmt.Sprintf("0 <= BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin.Local_2ByteAdmin <= 65535 but Got %d", *obj.obj.Local_2ByteAdmin)) } } } -func (obj *patternFlowIpv4DscpEcnCounter) setDefault() { - if obj.obj.Start == nil { - obj.SetStart(0) - } - if obj.obj.Step == nil { - obj.SetStep(1) +func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) setDefault() { + if obj.obj.GlobalIpv4Admin == nil { + obj.SetGlobalIpv4Admin("0.0.0.0") } - if obj.obj.Count == nil { - obj.SetCount(1) + if obj.obj.Local_2ByteAdmin == nil { + obj.SetLocal2ByteAdmin(1) } } -// ***** PatternFlowIpv4DscpEcnMetricTag ***** -type patternFlowIpv4DscpEcnMetricTag struct { +// ***** BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget ***** +type bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget struct { validation - obj *otg.PatternFlowIpv4DscpEcnMetricTag - marshaller marshalPatternFlowIpv4DscpEcnMetricTag - unMarshaller unMarshalPatternFlowIpv4DscpEcnMetricTag + obj *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + marshaller marshalBgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + unMarshaller unMarshalBgpExtendedCommunityTransitive4OctetAsTypeRouteTarget } -func NewPatternFlowIpv4DscpEcnMetricTag() PatternFlowIpv4DscpEcnMetricTag { - obj := patternFlowIpv4DscpEcnMetricTag{obj: &otg.PatternFlowIpv4DscpEcnMetricTag{}} +func NewBgpExtendedCommunityTransitive4OctetAsTypeRouteTarget() BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget { + obj := bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget{obj: &otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4DscpEcnMetricTag) msg() *otg.PatternFlowIpv4DscpEcnMetricTag { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) msg() *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget { return obj.obj } -func (obj *patternFlowIpv4DscpEcnMetricTag) setMsg(msg *otg.PatternFlowIpv4DscpEcnMetricTag) PatternFlowIpv4DscpEcnMetricTag { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) setMsg(msg *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget { proto.Merge(obj.obj, msg) return obj } -type marshalpatternFlowIpv4DscpEcnMetricTag struct { - obj *patternFlowIpv4DscpEcnMetricTag +type marshalbgpExtendedCommunityTransitive4OctetAsTypeRouteTarget struct { + obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget } -type marshalPatternFlowIpv4DscpEcnMetricTag interface { - // ToProto marshals PatternFlowIpv4DscpEcnMetricTag to protobuf object *otg.PatternFlowIpv4DscpEcnMetricTag - ToProto() (*otg.PatternFlowIpv4DscpEcnMetricTag, error) - // ToPbText marshals PatternFlowIpv4DscpEcnMetricTag to protobuf text +type marshalBgpExtendedCommunityTransitive4OctetAsTypeRouteTarget interface { + // ToProto marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget to protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + ToProto() (*otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget, error) + // ToPbText marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4DscpEcnMetricTag to YAML text + // ToYaml marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4DscpEcnMetricTag to JSON text + // ToJson marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget to JSON text ToJson() (string, error) } -type unMarshalpatternFlowIpv4DscpEcnMetricTag struct { - obj *patternFlowIpv4DscpEcnMetricTag +type unMarshalbgpExtendedCommunityTransitive4OctetAsTypeRouteTarget struct { + obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget } -type unMarshalPatternFlowIpv4DscpEcnMetricTag interface { - // FromProto unmarshals PatternFlowIpv4DscpEcnMetricTag from protobuf object *otg.PatternFlowIpv4DscpEcnMetricTag - FromProto(msg *otg.PatternFlowIpv4DscpEcnMetricTag) (PatternFlowIpv4DscpEcnMetricTag, error) - // FromPbText unmarshals PatternFlowIpv4DscpEcnMetricTag from protobuf text +type unMarshalBgpExtendedCommunityTransitive4OctetAsTypeRouteTarget interface { + // FromProto unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget from protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + FromProto(msg *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) (BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget, error) + // FromPbText unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4DscpEcnMetricTag from YAML text + // FromYaml unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4DscpEcnMetricTag from JSON text + // FromJson unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget from JSON text FromJson(value string) error } -func (obj *patternFlowIpv4DscpEcnMetricTag) Marshal() marshalPatternFlowIpv4DscpEcnMetricTag { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) Marshal() marshalBgpExtendedCommunityTransitive4OctetAsTypeRouteTarget { if obj.marshaller == nil { - obj.marshaller = &marshalpatternFlowIpv4DscpEcnMetricTag{obj: obj} + obj.marshaller = &marshalbgpExtendedCommunityTransitive4OctetAsTypeRouteTarget{obj: obj} } return obj.marshaller } -func (obj *patternFlowIpv4DscpEcnMetricTag) Unmarshal() unMarshalPatternFlowIpv4DscpEcnMetricTag { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) Unmarshal() unMarshalBgpExtendedCommunityTransitive4OctetAsTypeRouteTarget { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalpatternFlowIpv4DscpEcnMetricTag{obj: obj} + obj.unMarshaller = &unMarshalbgpExtendedCommunityTransitive4OctetAsTypeRouteTarget{obj: obj} } return obj.unMarshaller } -func (m *marshalpatternFlowIpv4DscpEcnMetricTag) ToProto() (*otg.PatternFlowIpv4DscpEcnMetricTag, error) { +func (m *marshalbgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) ToProto() (*otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -336444,7 +349297,7 @@ func (m *marshalpatternFlowIpv4DscpEcnMetricTag) ToProto() (*otg.PatternFlowIpv4 return m.obj.msg(), nil } -func (m *unMarshalpatternFlowIpv4DscpEcnMetricTag) FromProto(msg *otg.PatternFlowIpv4DscpEcnMetricTag) (PatternFlowIpv4DscpEcnMetricTag, error) { +func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) FromProto(msg *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) (BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -336453,7 +349306,7 @@ func (m *unMarshalpatternFlowIpv4DscpEcnMetricTag) FromProto(msg *otg.PatternFlo return newObj, nil } -func (m *marshalpatternFlowIpv4DscpEcnMetricTag) ToPbText() (string, error) { +func (m *marshalbgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -336465,7 +349318,7 @@ func (m *marshalpatternFlowIpv4DscpEcnMetricTag) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalpatternFlowIpv4DscpEcnMetricTag) FromPbText(value string) error { +func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj @@ -336478,7 +349331,7 @@ func (m *unMarshalpatternFlowIpv4DscpEcnMetricTag) FromPbText(value string) erro return retObj } -func (m *marshalpatternFlowIpv4DscpEcnMetricTag) ToYaml() (string, error) { +func (m *marshalbgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -336499,7 +349352,7 @@ func (m *marshalpatternFlowIpv4DscpEcnMetricTag) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalpatternFlowIpv4DscpEcnMetricTag) FromYaml(value string) error { +func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) FromYaml(value string) error { if value == "" { value = "{}" } @@ -336524,7 +349377,7 @@ func (m *unMarshalpatternFlowIpv4DscpEcnMetricTag) FromYaml(value string) error return nil } -func (m *marshalpatternFlowIpv4DscpEcnMetricTag) ToJson() (string, error) { +func (m *marshalbgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -336542,7 +349395,7 @@ func (m *marshalpatternFlowIpv4DscpEcnMetricTag) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalpatternFlowIpv4DscpEcnMetricTag) FromJson(value string) error { +func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -336563,19 +349416,19 @@ func (m *unMarshalpatternFlowIpv4DscpEcnMetricTag) FromJson(value string) error return nil } -func (obj *patternFlowIpv4DscpEcnMetricTag) validateToAndFrom() error { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4DscpEcnMetricTag) validate() error { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4DscpEcnMetricTag) String() string { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -336583,12 +349436,12 @@ func (obj *patternFlowIpv4DscpEcnMetricTag) String() string { return str } -func (obj *patternFlowIpv4DscpEcnMetricTag) Clone() (PatternFlowIpv4DscpEcnMetricTag, error) { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) Clone() (BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4DscpEcnMetricTag() + newObj := NewBgpExtendedCommunityTransitive4OctetAsTypeRouteTarget() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -336600,219 +349453,182 @@ func (obj *patternFlowIpv4DscpEcnMetricTag) Clone() (PatternFlowIpv4DscpEcnMetri return newObj, nil } -// PatternFlowIpv4DscpEcnMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. -type PatternFlowIpv4DscpEcnMetricTag interface { +// BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget is the Route Target Community identifies one or more routers that may receive a set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02 +type BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget interface { Validation - // msg marshals PatternFlowIpv4DscpEcnMetricTag to protobuf object *otg.PatternFlowIpv4DscpEcnMetricTag + // msg marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget to protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget // and doesn't set defaults - msg() *otg.PatternFlowIpv4DscpEcnMetricTag - // setMsg unmarshals PatternFlowIpv4DscpEcnMetricTag from protobuf object *otg.PatternFlowIpv4DscpEcnMetricTag + msg() *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + // setMsg unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget from protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget // and doesn't set defaults - setMsg(*otg.PatternFlowIpv4DscpEcnMetricTag) PatternFlowIpv4DscpEcnMetricTag + setMsg(*otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget // provides marshal interface - Marshal() marshalPatternFlowIpv4DscpEcnMetricTag + Marshal() marshalBgpExtendedCommunityTransitive4OctetAsTypeRouteTarget // provides unmarshal interface - Unmarshal() unMarshalPatternFlowIpv4DscpEcnMetricTag - // validate validates PatternFlowIpv4DscpEcnMetricTag + Unmarshal() unMarshalBgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + // validate validates BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4DscpEcnMetricTag, error) + Clone() (BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Name returns string, set in PatternFlowIpv4DscpEcnMetricTag. - Name() string - // SetName assigns string provided by user to PatternFlowIpv4DscpEcnMetricTag - SetName(value string) PatternFlowIpv4DscpEcnMetricTag - // Offset returns uint32, set in PatternFlowIpv4DscpEcnMetricTag. - Offset() uint32 - // SetOffset assigns uint32 provided by user to PatternFlowIpv4DscpEcnMetricTag - SetOffset(value uint32) PatternFlowIpv4DscpEcnMetricTag - // HasOffset checks if Offset has been set in PatternFlowIpv4DscpEcnMetricTag - HasOffset() bool - // Length returns uint32, set in PatternFlowIpv4DscpEcnMetricTag. - Length() uint32 - // SetLength assigns uint32 provided by user to PatternFlowIpv4DscpEcnMetricTag - SetLength(value uint32) PatternFlowIpv4DscpEcnMetricTag - // HasLength checks if Length has been set in PatternFlowIpv4DscpEcnMetricTag - HasLength() bool -} - -// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// Name returns a string -func (obj *patternFlowIpv4DscpEcnMetricTag) Name() string { - - return *obj.obj.Name - -} - -// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field -// SetName sets the string value in the PatternFlowIpv4DscpEcnMetricTag object -func (obj *patternFlowIpv4DscpEcnMetricTag) SetName(value string) PatternFlowIpv4DscpEcnMetricTag { - - obj.obj.Name = &value - return obj + // Global4ByteAs returns uint32, set in BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget. + Global4ByteAs() uint32 + // SetGlobal4ByteAs assigns uint32 provided by user to BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + SetGlobal4ByteAs(value uint32) BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + // HasGlobal4ByteAs checks if Global4ByteAs has been set in BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + HasGlobal4ByteAs() bool + // Local2ByteAdmin returns uint32, set in BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget. + Local2ByteAdmin() uint32 + // SetLocal2ByteAdmin assigns uint32 provided by user to BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + SetLocal2ByteAdmin(value uint32) BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + // HasLocal2ByteAdmin checks if Local2ByteAdmin has been set in BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + HasLocal2ByteAdmin() bool } -// Offset in bits relative to start of corresponding header field -// Offset returns a uint32 -func (obj *patternFlowIpv4DscpEcnMetricTag) Offset() uint32 { +// The four octet IANA assigned AS value assigned to the Autonomous System. +// Global4ByteAs returns a uint32 +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) Global4ByteAs() uint32 { - return *obj.obj.Offset + return *obj.obj.Global_4ByteAs } -// Offset in bits relative to start of corresponding header field -// Offset returns a uint32 -func (obj *patternFlowIpv4DscpEcnMetricTag) HasOffset() bool { - return obj.obj.Offset != nil +// The four octet IANA assigned AS value assigned to the Autonomous System. +// Global4ByteAs returns a uint32 +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) HasGlobal4ByteAs() bool { + return obj.obj.Global_4ByteAs != nil } -// Offset in bits relative to start of corresponding header field -// SetOffset sets the uint32 value in the PatternFlowIpv4DscpEcnMetricTag object -func (obj *patternFlowIpv4DscpEcnMetricTag) SetOffset(value uint32) PatternFlowIpv4DscpEcnMetricTag { +// The four octet IANA assigned AS value assigned to the Autonomous System. +// SetGlobal4ByteAs sets the uint32 value in the BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget object +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) SetGlobal4ByteAs(value uint32) BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget { - obj.obj.Offset = &value + obj.obj.Global_4ByteAs = &value return obj } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// Length returns a uint32 -func (obj *patternFlowIpv4DscpEcnMetricTag) Length() uint32 { +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// Local2ByteAdmin returns a uint32 +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) Local2ByteAdmin() uint32 { - return *obj.obj.Length + return *obj.obj.Local_2ByteAdmin } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// Length returns a uint32 -func (obj *patternFlowIpv4DscpEcnMetricTag) HasLength() bool { - return obj.obj.Length != nil +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// Local2ByteAdmin returns a uint32 +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) HasLocal2ByteAdmin() bool { + return obj.obj.Local_2ByteAdmin != nil } -// Number of bits to track for metrics starting from configured offset of corresponding header field -// SetLength sets the uint32 value in the PatternFlowIpv4DscpEcnMetricTag object -func (obj *patternFlowIpv4DscpEcnMetricTag) SetLength(value uint32) PatternFlowIpv4DscpEcnMetricTag { +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// SetLocal2ByteAdmin sets the uint32 value in the BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget object +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) SetLocal2ByteAdmin(value uint32) BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget { - obj.obj.Length = &value + obj.obj.Local_2ByteAdmin = &value return obj } -func (obj *patternFlowIpv4DscpEcnMetricTag) validateObj(vObj *validation, set_default bool) { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - // Name is required - if obj.obj.Name == nil { - vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface PatternFlowIpv4DscpEcnMetricTag") - } - - if obj.obj.Offset != nil { - - if *obj.obj.Offset > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4DscpEcnMetricTag.Offset <= 1 but Got %d", *obj.obj.Offset)) - } - - } - - if obj.obj.Length != nil { + if obj.obj.Local_2ByteAdmin != nil { - if *obj.obj.Length < 1 || *obj.obj.Length > 2 { + if *obj.obj.Local_2ByteAdmin > 65535 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("1 <= PatternFlowIpv4DscpEcnMetricTag.Length <= 2 but Got %d", *obj.obj.Length)) + fmt.Sprintf("0 <= BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget.Local_2ByteAdmin <= 65535 but Got %d", *obj.obj.Local_2ByteAdmin)) } } } -func (obj *patternFlowIpv4DscpEcnMetricTag) setDefault() { - if obj.obj.Offset == nil { - obj.SetOffset(0) +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) setDefault() { + if obj.obj.Global_4ByteAs == nil { + obj.SetGlobal4ByteAs(100) } - if obj.obj.Length == nil { - obj.SetLength(2) + if obj.obj.Local_2ByteAdmin == nil { + obj.SetLocal2ByteAdmin(1) } } -// ***** PatternFlowIpv4OptionsCustomTypeCopiedFlag ***** -type patternFlowIpv4OptionsCustomTypeCopiedFlag struct { +// ***** BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin ***** +type bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin struct { validation - obj *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag - marshaller marshalPatternFlowIpv4OptionsCustomTypeCopiedFlag - unMarshaller unMarshalPatternFlowIpv4OptionsCustomTypeCopiedFlag - incrementHolder PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter - decrementHolder PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter + obj *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + marshaller marshalBgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + unMarshaller unMarshalBgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin } -func NewPatternFlowIpv4OptionsCustomTypeCopiedFlag() PatternFlowIpv4OptionsCustomTypeCopiedFlag { - obj := patternFlowIpv4OptionsCustomTypeCopiedFlag{obj: &otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag{}} +func NewBgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin() BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin { + obj := bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin{obj: &otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) msg() *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) msg() *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin { return obj.obj } -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) setMsg(msg *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag) PatternFlowIpv4OptionsCustomTypeCopiedFlag { - obj.setNil() +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) setMsg(msg *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin { + proto.Merge(obj.obj, msg) return obj } -type marshalpatternFlowIpv4OptionsCustomTypeCopiedFlag struct { - obj *patternFlowIpv4OptionsCustomTypeCopiedFlag +type marshalbgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin struct { + obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin } -type marshalPatternFlowIpv4OptionsCustomTypeCopiedFlag interface { - // ToProto marshals PatternFlowIpv4OptionsCustomTypeCopiedFlag to protobuf object *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag - ToProto() (*otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag, error) - // ToPbText marshals PatternFlowIpv4OptionsCustomTypeCopiedFlag to protobuf text +type marshalBgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin interface { + // ToProto marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin to protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + ToProto() (*otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin, error) + // ToPbText marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4OptionsCustomTypeCopiedFlag to YAML text + // ToYaml marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4OptionsCustomTypeCopiedFlag to JSON text + // ToJson marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin to JSON text ToJson() (string, error) } -type unMarshalpatternFlowIpv4OptionsCustomTypeCopiedFlag struct { - obj *patternFlowIpv4OptionsCustomTypeCopiedFlag +type unMarshalbgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin struct { + obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin } -type unMarshalPatternFlowIpv4OptionsCustomTypeCopiedFlag interface { - // FromProto unmarshals PatternFlowIpv4OptionsCustomTypeCopiedFlag from protobuf object *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag - FromProto(msg *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag) (PatternFlowIpv4OptionsCustomTypeCopiedFlag, error) - // FromPbText unmarshals PatternFlowIpv4OptionsCustomTypeCopiedFlag from protobuf text +type unMarshalBgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin interface { + // FromProto unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin from protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + FromProto(msg *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) (BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin, error) + // FromPbText unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4OptionsCustomTypeCopiedFlag from YAML text + // FromYaml unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4OptionsCustomTypeCopiedFlag from JSON text + // FromJson unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin from JSON text FromJson(value string) error } -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) Marshal() marshalPatternFlowIpv4OptionsCustomTypeCopiedFlag { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) Marshal() marshalBgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin { if obj.marshaller == nil { - obj.marshaller = &marshalpatternFlowIpv4OptionsCustomTypeCopiedFlag{obj: obj} + obj.marshaller = &marshalbgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin{obj: obj} } return obj.marshaller } -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) Unmarshal() unMarshalPatternFlowIpv4OptionsCustomTypeCopiedFlag { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) Unmarshal() unMarshalBgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalpatternFlowIpv4OptionsCustomTypeCopiedFlag{obj: obj} + obj.unMarshaller = &unMarshalbgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin{obj: obj} } return obj.unMarshaller } -func (m *marshalpatternFlowIpv4OptionsCustomTypeCopiedFlag) ToProto() (*otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag, error) { +func (m *marshalbgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) ToProto() (*otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -336820,7 +349636,7 @@ func (m *marshalpatternFlowIpv4OptionsCustomTypeCopiedFlag) ToProto() (*otg.Patt return m.obj.msg(), nil } -func (m *unMarshalpatternFlowIpv4OptionsCustomTypeCopiedFlag) FromProto(msg *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag) (PatternFlowIpv4OptionsCustomTypeCopiedFlag, error) { +func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) FromProto(msg *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) (BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -336829,7 +349645,7 @@ func (m *unMarshalpatternFlowIpv4OptionsCustomTypeCopiedFlag) FromProto(msg *otg return newObj, nil } -func (m *marshalpatternFlowIpv4OptionsCustomTypeCopiedFlag) ToPbText() (string, error) { +func (m *marshalbgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -336841,12 +349657,12 @@ func (m *marshalpatternFlowIpv4OptionsCustomTypeCopiedFlag) ToPbText() (string, return string(protoMarshal), nil } -func (m *unMarshalpatternFlowIpv4OptionsCustomTypeCopiedFlag) FromPbText(value string) error { +func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - m.obj.setNil() + vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -336854,7 +349670,7 @@ func (m *unMarshalpatternFlowIpv4OptionsCustomTypeCopiedFlag) FromPbText(value s return retObj } -func (m *marshalpatternFlowIpv4OptionsCustomTypeCopiedFlag) ToYaml() (string, error) { +func (m *marshalbgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -336875,7 +349691,7 @@ func (m *marshalpatternFlowIpv4OptionsCustomTypeCopiedFlag) ToYaml() (string, er return string(data), nil } -func (m *unMarshalpatternFlowIpv4OptionsCustomTypeCopiedFlag) FromYaml(value string) error { +func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) FromYaml(value string) error { if value == "" { value = "{}" } @@ -336892,7 +349708,7 @@ func (m *unMarshalpatternFlowIpv4OptionsCustomTypeCopiedFlag) FromYaml(value str return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - m.obj.setNil() + vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -336900,7 +349716,7 @@ func (m *unMarshalpatternFlowIpv4OptionsCustomTypeCopiedFlag) FromYaml(value str return nil } -func (m *marshalpatternFlowIpv4OptionsCustomTypeCopiedFlag) ToJson() (string, error) { +func (m *marshalbgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -336918,7 +349734,7 @@ func (m *marshalpatternFlowIpv4OptionsCustomTypeCopiedFlag) ToJson() (string, er return string(data), nil } -func (m *unMarshalpatternFlowIpv4OptionsCustomTypeCopiedFlag) FromJson(value string) error { +func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -336931,7 +349747,7 @@ func (m *unMarshalpatternFlowIpv4OptionsCustomTypeCopiedFlag) FromJson(value str return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - m.obj.setNil() + err := m.obj.validateToAndFrom() if err != nil { return err @@ -336939,392 +349755,219 @@ func (m *unMarshalpatternFlowIpv4OptionsCustomTypeCopiedFlag) FromJson(value str return nil } -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) validateToAndFrom() error { - // emptyVars() - obj.validateObj(&obj.validation, true) - return obj.validationResult() -} - -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) validate() error { - // emptyVars() - obj.validateObj(&obj.validation, false) - return obj.validationResult() -} - -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) String() string { - str, err := obj.Marshal().ToYaml() - if err != nil { - return err.Error() - } - return str -} - -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) Clone() (PatternFlowIpv4OptionsCustomTypeCopiedFlag, error) { - vErr := obj.validate() - if vErr != nil { - return nil, vErr - } - newObj := NewPatternFlowIpv4OptionsCustomTypeCopiedFlag() - data, err := proto.Marshal(obj.msg()) - if err != nil { - return nil, err - } - pbErr := proto.Unmarshal(data, newObj.msg()) - if pbErr != nil { - return nil, pbErr - } - return newObj, nil -} - -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) setNil() { - obj.incrementHolder = nil - obj.decrementHolder = nil - obj.validationErrors = nil - obj.warnings = nil - obj.constraints = make(map[string]map[string]Constraints) -} - -// PatternFlowIpv4OptionsCustomTypeCopiedFlag is this flag indicates this option is copied to all fragments on fragmentations. -type PatternFlowIpv4OptionsCustomTypeCopiedFlag interface { - Validation - // msg marshals PatternFlowIpv4OptionsCustomTypeCopiedFlag to protobuf object *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag - // and doesn't set defaults - msg() *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag - // setMsg unmarshals PatternFlowIpv4OptionsCustomTypeCopiedFlag from protobuf object *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag - // and doesn't set defaults - setMsg(*otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag) PatternFlowIpv4OptionsCustomTypeCopiedFlag - // provides marshal interface - Marshal() marshalPatternFlowIpv4OptionsCustomTypeCopiedFlag - // provides unmarshal interface - Unmarshal() unMarshalPatternFlowIpv4OptionsCustomTypeCopiedFlag - // validate validates PatternFlowIpv4OptionsCustomTypeCopiedFlag - validate() error - // A stringer function - String() string - // Clones the object - Clone() (PatternFlowIpv4OptionsCustomTypeCopiedFlag, error) - validateToAndFrom() error - validateObj(vObj *validation, set_default bool) - setDefault() - // Choice returns PatternFlowIpv4OptionsCustomTypeCopiedFlagChoiceEnum, set in PatternFlowIpv4OptionsCustomTypeCopiedFlag - Choice() PatternFlowIpv4OptionsCustomTypeCopiedFlagChoiceEnum - // setChoice assigns PatternFlowIpv4OptionsCustomTypeCopiedFlagChoiceEnum provided by user to PatternFlowIpv4OptionsCustomTypeCopiedFlag - setChoice(value PatternFlowIpv4OptionsCustomTypeCopiedFlagChoiceEnum) PatternFlowIpv4OptionsCustomTypeCopiedFlag - // HasChoice checks if Choice has been set in PatternFlowIpv4OptionsCustomTypeCopiedFlag - HasChoice() bool - // Value returns uint32, set in PatternFlowIpv4OptionsCustomTypeCopiedFlag. - Value() uint32 - // SetValue assigns uint32 provided by user to PatternFlowIpv4OptionsCustomTypeCopiedFlag - SetValue(value uint32) PatternFlowIpv4OptionsCustomTypeCopiedFlag - // HasValue checks if Value has been set in PatternFlowIpv4OptionsCustomTypeCopiedFlag - HasValue() bool - // Values returns []uint32, set in PatternFlowIpv4OptionsCustomTypeCopiedFlag. - Values() []uint32 - // SetValues assigns []uint32 provided by user to PatternFlowIpv4OptionsCustomTypeCopiedFlag - SetValues(value []uint32) PatternFlowIpv4OptionsCustomTypeCopiedFlag - // Increment returns PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter, set in PatternFlowIpv4OptionsCustomTypeCopiedFlag. - // PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter is integer counter pattern - Increment() PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter - // SetIncrement assigns PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter provided by user to PatternFlowIpv4OptionsCustomTypeCopiedFlag. - // PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter is integer counter pattern - SetIncrement(value PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) PatternFlowIpv4OptionsCustomTypeCopiedFlag - // HasIncrement checks if Increment has been set in PatternFlowIpv4OptionsCustomTypeCopiedFlag - HasIncrement() bool - // Decrement returns PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter, set in PatternFlowIpv4OptionsCustomTypeCopiedFlag. - // PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter is integer counter pattern - Decrement() PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter - // SetDecrement assigns PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter provided by user to PatternFlowIpv4OptionsCustomTypeCopiedFlag. - // PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter is integer counter pattern - SetDecrement(value PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) PatternFlowIpv4OptionsCustomTypeCopiedFlag - // HasDecrement checks if Decrement has been set in PatternFlowIpv4OptionsCustomTypeCopiedFlag - HasDecrement() bool - setNil() -} - -type PatternFlowIpv4OptionsCustomTypeCopiedFlagChoiceEnum string - -// Enum of Choice on PatternFlowIpv4OptionsCustomTypeCopiedFlag -var PatternFlowIpv4OptionsCustomTypeCopiedFlagChoice = struct { - VALUE PatternFlowIpv4OptionsCustomTypeCopiedFlagChoiceEnum - VALUES PatternFlowIpv4OptionsCustomTypeCopiedFlagChoiceEnum - INCREMENT PatternFlowIpv4OptionsCustomTypeCopiedFlagChoiceEnum - DECREMENT PatternFlowIpv4OptionsCustomTypeCopiedFlagChoiceEnum -}{ - VALUE: PatternFlowIpv4OptionsCustomTypeCopiedFlagChoiceEnum("value"), - VALUES: PatternFlowIpv4OptionsCustomTypeCopiedFlagChoiceEnum("values"), - INCREMENT: PatternFlowIpv4OptionsCustomTypeCopiedFlagChoiceEnum("increment"), - DECREMENT: PatternFlowIpv4OptionsCustomTypeCopiedFlagChoiceEnum("decrement"), -} - -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) Choice() PatternFlowIpv4OptionsCustomTypeCopiedFlagChoiceEnum { - return PatternFlowIpv4OptionsCustomTypeCopiedFlagChoiceEnum(obj.obj.Choice.Enum().String()) -} - -// description is TBD -// Choice returns a string -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) HasChoice() bool { - return obj.obj.Choice != nil -} - -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) setChoice(value PatternFlowIpv4OptionsCustomTypeCopiedFlagChoiceEnum) PatternFlowIpv4OptionsCustomTypeCopiedFlag { - intValue, ok := otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice_Enum_value[string(value)] - if !ok { - obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( - "%s is not a valid choice on PatternFlowIpv4OptionsCustomTypeCopiedFlagChoiceEnum", string(value))) - return obj - } - enumValue := otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice_Enum(intValue) - obj.obj.Choice = &enumValue - obj.obj.Decrement = nil - obj.decrementHolder = nil - obj.obj.Increment = nil - obj.incrementHolder = nil - obj.obj.Values = nil - obj.obj.Value = nil - - if value == PatternFlowIpv4OptionsCustomTypeCopiedFlagChoice.VALUE { - defaultValue := uint32(0) - obj.obj.Value = &defaultValue - } - - if value == PatternFlowIpv4OptionsCustomTypeCopiedFlagChoice.VALUES { - defaultValue := []uint32{0} - obj.obj.Values = defaultValue - } - - if value == PatternFlowIpv4OptionsCustomTypeCopiedFlagChoice.INCREMENT { - obj.obj.Increment = NewPatternFlowIpv4OptionsCustomTypeCopiedFlagCounter().msg() - } - - if value == PatternFlowIpv4OptionsCustomTypeCopiedFlagChoice.DECREMENT { - obj.obj.Decrement = NewPatternFlowIpv4OptionsCustomTypeCopiedFlagCounter().msg() - } - - return obj -} - -// description is TBD -// Value returns a uint32 -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) Value() uint32 { - - if obj.obj.Value == nil { - obj.setChoice(PatternFlowIpv4OptionsCustomTypeCopiedFlagChoice.VALUE) - } - - return *obj.obj.Value - -} - -// description is TBD -// Value returns a uint32 -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) HasValue() bool { - return obj.obj.Value != nil -} - -// description is TBD -// SetValue sets the uint32 value in the PatternFlowIpv4OptionsCustomTypeCopiedFlag object -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) SetValue(value uint32) PatternFlowIpv4OptionsCustomTypeCopiedFlag { - obj.setChoice(PatternFlowIpv4OptionsCustomTypeCopiedFlagChoice.VALUE) - obj.obj.Value = &value - return obj +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() } -// description is TBD -// Values returns a []uint32 -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) Values() []uint32 { - if obj.obj.Values == nil { - obj.SetValues([]uint32{0}) - } - return obj.obj.Values +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() } -// description is TBD -// SetValues sets the []uint32 value in the PatternFlowIpv4OptionsCustomTypeCopiedFlag object -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) SetValues(value []uint32) PatternFlowIpv4OptionsCustomTypeCopiedFlag { - obj.setChoice(PatternFlowIpv4OptionsCustomTypeCopiedFlagChoice.VALUES) - if obj.obj.Values == nil { - obj.obj.Values = make([]uint32, 0) +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() } - obj.obj.Values = value - - return obj + return str } -// description is TBD -// Increment returns a PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) Increment() PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter { - if obj.obj.Increment == nil { - obj.setChoice(PatternFlowIpv4OptionsCustomTypeCopiedFlagChoice.INCREMENT) +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) Clone() (BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr } - if obj.incrementHolder == nil { - obj.incrementHolder = &patternFlowIpv4OptionsCustomTypeCopiedFlagCounter{obj: obj.obj.Increment} + newObj := NewBgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin() + data, err := proto.Marshal(obj.msg()) + if err != nil { + return nil, err } - return obj.incrementHolder + pbErr := proto.Unmarshal(data, newObj.msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil } -// description is TBD -// Increment returns a PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) HasIncrement() bool { - return obj.obj.Increment != nil +// BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin is the Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP. It is sent with sub-type as 0x03. +type BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin interface { + Validation + // msg marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin to protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + // and doesn't set defaults + msg() *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + // setMsg unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin from protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + // and doesn't set defaults + setMsg(*otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + // provides marshal interface + Marshal() marshalBgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + // provides unmarshal interface + Unmarshal() unMarshalBgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + // validate validates BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + validate() error + // A stringer function + String() string + // Clones the object + Clone() (BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Global4ByteAs returns uint32, set in BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin. + Global4ByteAs() uint32 + // SetGlobal4ByteAs assigns uint32 provided by user to BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + SetGlobal4ByteAs(value uint32) BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + // HasGlobal4ByteAs checks if Global4ByteAs has been set in BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + HasGlobal4ByteAs() bool + // Local2ByteAdmin returns uint32, set in BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin. + Local2ByteAdmin() uint32 + // SetLocal2ByteAdmin assigns uint32 provided by user to BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + SetLocal2ByteAdmin(value uint32) BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + // HasLocal2ByteAdmin checks if Local2ByteAdmin has been set in BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + HasLocal2ByteAdmin() bool } -// description is TBD -// SetIncrement sets the PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter value in the PatternFlowIpv4OptionsCustomTypeCopiedFlag object -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) SetIncrement(value PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) PatternFlowIpv4OptionsCustomTypeCopiedFlag { - obj.setChoice(PatternFlowIpv4OptionsCustomTypeCopiedFlagChoice.INCREMENT) - obj.incrementHolder = nil - obj.obj.Increment = value.msg() +// The four octet IANA assigned AS value assigned to the Autonomous System. +// Global4ByteAs returns a uint32 +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) Global4ByteAs() uint32 { + return *obj.obj.Global_4ByteAs + +} + +// The four octet IANA assigned AS value assigned to the Autonomous System. +// Global4ByteAs returns a uint32 +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) HasGlobal4ByteAs() bool { + return obj.obj.Global_4ByteAs != nil +} + +// The four octet IANA assigned AS value assigned to the Autonomous System. +// SetGlobal4ByteAs sets the uint32 value in the BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin object +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) SetGlobal4ByteAs(value uint32) BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin { + + obj.obj.Global_4ByteAs = &value return obj } -// description is TBD -// Decrement returns a PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) Decrement() PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter { - if obj.obj.Decrement == nil { - obj.setChoice(PatternFlowIpv4OptionsCustomTypeCopiedFlagChoice.DECREMENT) - } - if obj.decrementHolder == nil { - obj.decrementHolder = &patternFlowIpv4OptionsCustomTypeCopiedFlagCounter{obj: obj.obj.Decrement} - } - return obj.decrementHolder +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// Local2ByteAdmin returns a uint32 +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) Local2ByteAdmin() uint32 { + + return *obj.obj.Local_2ByteAdmin + } -// description is TBD -// Decrement returns a PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) HasDecrement() bool { - return obj.obj.Decrement != nil +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// Local2ByteAdmin returns a uint32 +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) HasLocal2ByteAdmin() bool { + return obj.obj.Local_2ByteAdmin != nil } -// description is TBD -// SetDecrement sets the PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter value in the PatternFlowIpv4OptionsCustomTypeCopiedFlag object -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) SetDecrement(value PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) PatternFlowIpv4OptionsCustomTypeCopiedFlag { - obj.setChoice(PatternFlowIpv4OptionsCustomTypeCopiedFlagChoice.DECREMENT) - obj.decrementHolder = nil - obj.obj.Decrement = value.msg() +// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. +// SetLocal2ByteAdmin sets the uint32 value in the BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin object +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) SetLocal2ByteAdmin(value uint32) BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin { + obj.obj.Local_2ByteAdmin = &value return obj } -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) validateObj(vObj *validation, set_default bool) { +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Value != nil { + if obj.obj.Local_2ByteAdmin != nil { - if *obj.obj.Value > 1 { + if *obj.obj.Local_2ByteAdmin > 65535 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4OptionsCustomTypeCopiedFlag.Value <= 1 but Got %d", *obj.obj.Value)) - } - - } - - if obj.obj.Values != nil { - - for _, item := range obj.obj.Values { - if item > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("min(uint32) <= PatternFlowIpv4OptionsCustomTypeCopiedFlag.Values <= 1 but Got %d", item)) - } - + fmt.Sprintf("0 <= BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin.Local_2ByteAdmin <= 65535 but Got %d", *obj.obj.Local_2ByteAdmin)) } } - if obj.obj.Increment != nil { - - obj.Increment().validateObj(vObj, set_default) - } - - if obj.obj.Decrement != nil { - - obj.Decrement().validateObj(vObj, set_default) - } - } -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlag) setDefault() { - if obj.obj.Choice == nil { - obj.setChoice(PatternFlowIpv4OptionsCustomTypeCopiedFlagChoice.VALUE) - +func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) setDefault() { + if obj.obj.Global_4ByteAs == nil { + obj.SetGlobal4ByteAs(100) + } + if obj.obj.Local_2ByteAdmin == nil { + obj.SetLocal2ByteAdmin(1) } } -// ***** PatternFlowIpv4OptionsCustomTypeOptionClass ***** -type patternFlowIpv4OptionsCustomTypeOptionClass struct { +// ***** BgpExtendedCommunityTransitiveOpaqueTypeColor ***** +type bgpExtendedCommunityTransitiveOpaqueTypeColor struct { validation - obj *otg.PatternFlowIpv4OptionsCustomTypeOptionClass - marshaller marshalPatternFlowIpv4OptionsCustomTypeOptionClass - unMarshaller unMarshalPatternFlowIpv4OptionsCustomTypeOptionClass - incrementHolder PatternFlowIpv4OptionsCustomTypeOptionClassCounter - decrementHolder PatternFlowIpv4OptionsCustomTypeOptionClassCounter + obj *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor + marshaller marshalBgpExtendedCommunityTransitiveOpaqueTypeColor + unMarshaller unMarshalBgpExtendedCommunityTransitiveOpaqueTypeColor } -func NewPatternFlowIpv4OptionsCustomTypeOptionClass() PatternFlowIpv4OptionsCustomTypeOptionClass { - obj := patternFlowIpv4OptionsCustomTypeOptionClass{obj: &otg.PatternFlowIpv4OptionsCustomTypeOptionClass{}} +func NewBgpExtendedCommunityTransitiveOpaqueTypeColor() BgpExtendedCommunityTransitiveOpaqueTypeColor { + obj := bgpExtendedCommunityTransitiveOpaqueTypeColor{obj: &otg.BgpExtendedCommunityTransitiveOpaqueTypeColor{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) msg() *otg.PatternFlowIpv4OptionsCustomTypeOptionClass { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) msg() *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor { return obj.obj } -func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) setMsg(msg *otg.PatternFlowIpv4OptionsCustomTypeOptionClass) PatternFlowIpv4OptionsCustomTypeOptionClass { - obj.setNil() +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) setMsg(msg *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor) BgpExtendedCommunityTransitiveOpaqueTypeColor { + proto.Merge(obj.obj, msg) return obj } -type marshalpatternFlowIpv4OptionsCustomTypeOptionClass struct { - obj *patternFlowIpv4OptionsCustomTypeOptionClass +type marshalbgpExtendedCommunityTransitiveOpaqueTypeColor struct { + obj *bgpExtendedCommunityTransitiveOpaqueTypeColor } -type marshalPatternFlowIpv4OptionsCustomTypeOptionClass interface { - // ToProto marshals PatternFlowIpv4OptionsCustomTypeOptionClass to protobuf object *otg.PatternFlowIpv4OptionsCustomTypeOptionClass - ToProto() (*otg.PatternFlowIpv4OptionsCustomTypeOptionClass, error) - // ToPbText marshals PatternFlowIpv4OptionsCustomTypeOptionClass to protobuf text +type marshalBgpExtendedCommunityTransitiveOpaqueTypeColor interface { + // ToProto marshals BgpExtendedCommunityTransitiveOpaqueTypeColor to protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor + ToProto() (*otg.BgpExtendedCommunityTransitiveOpaqueTypeColor, error) + // ToPbText marshals BgpExtendedCommunityTransitiveOpaqueTypeColor to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4OptionsCustomTypeOptionClass to YAML text + // ToYaml marshals BgpExtendedCommunityTransitiveOpaqueTypeColor to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4OptionsCustomTypeOptionClass to JSON text + // ToJson marshals BgpExtendedCommunityTransitiveOpaqueTypeColor to JSON text ToJson() (string, error) } -type unMarshalpatternFlowIpv4OptionsCustomTypeOptionClass struct { - obj *patternFlowIpv4OptionsCustomTypeOptionClass +type unMarshalbgpExtendedCommunityTransitiveOpaqueTypeColor struct { + obj *bgpExtendedCommunityTransitiveOpaqueTypeColor } -type unMarshalPatternFlowIpv4OptionsCustomTypeOptionClass interface { - // FromProto unmarshals PatternFlowIpv4OptionsCustomTypeOptionClass from protobuf object *otg.PatternFlowIpv4OptionsCustomTypeOptionClass - FromProto(msg *otg.PatternFlowIpv4OptionsCustomTypeOptionClass) (PatternFlowIpv4OptionsCustomTypeOptionClass, error) - // FromPbText unmarshals PatternFlowIpv4OptionsCustomTypeOptionClass from protobuf text +type unMarshalBgpExtendedCommunityTransitiveOpaqueTypeColor interface { + // FromProto unmarshals BgpExtendedCommunityTransitiveOpaqueTypeColor from protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor + FromProto(msg *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor) (BgpExtendedCommunityTransitiveOpaqueTypeColor, error) + // FromPbText unmarshals BgpExtendedCommunityTransitiveOpaqueTypeColor from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4OptionsCustomTypeOptionClass from YAML text + // FromYaml unmarshals BgpExtendedCommunityTransitiveOpaqueTypeColor from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4OptionsCustomTypeOptionClass from JSON text + // FromJson unmarshals BgpExtendedCommunityTransitiveOpaqueTypeColor from JSON text FromJson(value string) error } -func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) Marshal() marshalPatternFlowIpv4OptionsCustomTypeOptionClass { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) Marshal() marshalBgpExtendedCommunityTransitiveOpaqueTypeColor { if obj.marshaller == nil { - obj.marshaller = &marshalpatternFlowIpv4OptionsCustomTypeOptionClass{obj: obj} + obj.marshaller = &marshalbgpExtendedCommunityTransitiveOpaqueTypeColor{obj: obj} } return obj.marshaller } -func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) Unmarshal() unMarshalPatternFlowIpv4OptionsCustomTypeOptionClass { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) Unmarshal() unMarshalBgpExtendedCommunityTransitiveOpaqueTypeColor { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalpatternFlowIpv4OptionsCustomTypeOptionClass{obj: obj} + obj.unMarshaller = &unMarshalbgpExtendedCommunityTransitiveOpaqueTypeColor{obj: obj} } return obj.unMarshaller } -func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionClass) ToProto() (*otg.PatternFlowIpv4OptionsCustomTypeOptionClass, error) { +func (m *marshalbgpExtendedCommunityTransitiveOpaqueTypeColor) ToProto() (*otg.BgpExtendedCommunityTransitiveOpaqueTypeColor, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -337332,7 +349975,7 @@ func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionClass) ToProto() (*otg.Pat return m.obj.msg(), nil } -func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionClass) FromProto(msg *otg.PatternFlowIpv4OptionsCustomTypeOptionClass) (PatternFlowIpv4OptionsCustomTypeOptionClass, error) { +func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueTypeColor) FromProto(msg *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor) (BgpExtendedCommunityTransitiveOpaqueTypeColor, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -337341,7 +349984,7 @@ func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionClass) FromProto(msg *ot return newObj, nil } -func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionClass) ToPbText() (string, error) { +func (m *marshalbgpExtendedCommunityTransitiveOpaqueTypeColor) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -337353,12 +349996,12 @@ func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionClass) ToPbText() (string, return string(protoMarshal), nil } -func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionClass) FromPbText(value string) error { +func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueTypeColor) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - m.obj.setNil() + vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -337366,7 +350009,7 @@ func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionClass) FromPbText(value return retObj } -func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionClass) ToYaml() (string, error) { +func (m *marshalbgpExtendedCommunityTransitiveOpaqueTypeColor) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -337387,7 +350030,7 @@ func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionClass) ToYaml() (string, e return string(data), nil } -func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionClass) FromYaml(value string) error { +func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueTypeColor) FromYaml(value string) error { if value == "" { value = "{}" } @@ -337404,7 +350047,7 @@ func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionClass) FromYaml(value st return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - m.obj.setNil() + vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -337412,7 +350055,7 @@ func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionClass) FromYaml(value st return nil } -func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionClass) ToJson() (string, error) { +func (m *marshalbgpExtendedCommunityTransitiveOpaqueTypeColor) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -337430,7 +350073,7 @@ func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionClass) ToJson() (string, e return string(data), nil } -func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionClass) FromJson(value string) error { +func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueTypeColor) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -337443,7 +350086,7 @@ func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionClass) FromJson(value st return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - m.obj.setNil() + err := m.obj.validateToAndFrom() if err != nil { return err @@ -337451,19 +350094,19 @@ func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionClass) FromJson(value st return nil } -func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) validateToAndFrom() error { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) validate() error { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) String() string { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -337471,12 +350114,12 @@ func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) String() string { return str } -func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) Clone() (PatternFlowIpv4OptionsCustomTypeOptionClass, error) { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) Clone() (BgpExtendedCommunityTransitiveOpaqueTypeColor, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4OptionsCustomTypeOptionClass() + newObj := NewBgpExtendedCommunityTransitiveOpaqueTypeColor() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -337488,355 +350131,182 @@ func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) Clone() (PatternFlowIpv4 return newObj, nil } -func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) setNil() { - obj.incrementHolder = nil - obj.decrementHolder = nil - obj.validationErrors = nil - obj.warnings = nil - obj.constraints = make(map[string]map[string]Constraints) -} - -// PatternFlowIpv4OptionsCustomTypeOptionClass is option class [Ref:https://www.iana.org/assignments/ip-parameters/ip-parameters.xhtml#ip-parameters-1]. -type PatternFlowIpv4OptionsCustomTypeOptionClass interface { +// BgpExtendedCommunityTransitiveOpaqueTypeColor is the Color Community contains locally administrator defined 'color' value which is used in conjunction with Encapsulation attribute to decide whether a data packet can be transmitted on a certain tunnel or not. It is defined in RFC9012 and sent with sub-type as 0x0b. +type BgpExtendedCommunityTransitiveOpaqueTypeColor interface { Validation - // msg marshals PatternFlowIpv4OptionsCustomTypeOptionClass to protobuf object *otg.PatternFlowIpv4OptionsCustomTypeOptionClass + // msg marshals BgpExtendedCommunityTransitiveOpaqueTypeColor to protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor // and doesn't set defaults - msg() *otg.PatternFlowIpv4OptionsCustomTypeOptionClass - // setMsg unmarshals PatternFlowIpv4OptionsCustomTypeOptionClass from protobuf object *otg.PatternFlowIpv4OptionsCustomTypeOptionClass + msg() *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor + // setMsg unmarshals BgpExtendedCommunityTransitiveOpaqueTypeColor from protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor // and doesn't set defaults - setMsg(*otg.PatternFlowIpv4OptionsCustomTypeOptionClass) PatternFlowIpv4OptionsCustomTypeOptionClass + setMsg(*otg.BgpExtendedCommunityTransitiveOpaqueTypeColor) BgpExtendedCommunityTransitiveOpaqueTypeColor // provides marshal interface - Marshal() marshalPatternFlowIpv4OptionsCustomTypeOptionClass + Marshal() marshalBgpExtendedCommunityTransitiveOpaqueTypeColor // provides unmarshal interface - Unmarshal() unMarshalPatternFlowIpv4OptionsCustomTypeOptionClass - // validate validates PatternFlowIpv4OptionsCustomTypeOptionClass + Unmarshal() unMarshalBgpExtendedCommunityTransitiveOpaqueTypeColor + // validate validates BgpExtendedCommunityTransitiveOpaqueTypeColor validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4OptionsCustomTypeOptionClass, error) + Clone() (BgpExtendedCommunityTransitiveOpaqueTypeColor, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Choice returns PatternFlowIpv4OptionsCustomTypeOptionClassChoiceEnum, set in PatternFlowIpv4OptionsCustomTypeOptionClass - Choice() PatternFlowIpv4OptionsCustomTypeOptionClassChoiceEnum - // setChoice assigns PatternFlowIpv4OptionsCustomTypeOptionClassChoiceEnum provided by user to PatternFlowIpv4OptionsCustomTypeOptionClass - setChoice(value PatternFlowIpv4OptionsCustomTypeOptionClassChoiceEnum) PatternFlowIpv4OptionsCustomTypeOptionClass - // HasChoice checks if Choice has been set in PatternFlowIpv4OptionsCustomTypeOptionClass - HasChoice() bool - // Value returns uint32, set in PatternFlowIpv4OptionsCustomTypeOptionClass. - Value() uint32 - // SetValue assigns uint32 provided by user to PatternFlowIpv4OptionsCustomTypeOptionClass - SetValue(value uint32) PatternFlowIpv4OptionsCustomTypeOptionClass - // HasValue checks if Value has been set in PatternFlowIpv4OptionsCustomTypeOptionClass - HasValue() bool - // Values returns []uint32, set in PatternFlowIpv4OptionsCustomTypeOptionClass. - Values() []uint32 - // SetValues assigns []uint32 provided by user to PatternFlowIpv4OptionsCustomTypeOptionClass - SetValues(value []uint32) PatternFlowIpv4OptionsCustomTypeOptionClass - // Increment returns PatternFlowIpv4OptionsCustomTypeOptionClassCounter, set in PatternFlowIpv4OptionsCustomTypeOptionClass. - // PatternFlowIpv4OptionsCustomTypeOptionClassCounter is integer counter pattern - Increment() PatternFlowIpv4OptionsCustomTypeOptionClassCounter - // SetIncrement assigns PatternFlowIpv4OptionsCustomTypeOptionClassCounter provided by user to PatternFlowIpv4OptionsCustomTypeOptionClass. - // PatternFlowIpv4OptionsCustomTypeOptionClassCounter is integer counter pattern - SetIncrement(value PatternFlowIpv4OptionsCustomTypeOptionClassCounter) PatternFlowIpv4OptionsCustomTypeOptionClass - // HasIncrement checks if Increment has been set in PatternFlowIpv4OptionsCustomTypeOptionClass - HasIncrement() bool - // Decrement returns PatternFlowIpv4OptionsCustomTypeOptionClassCounter, set in PatternFlowIpv4OptionsCustomTypeOptionClass. - // PatternFlowIpv4OptionsCustomTypeOptionClassCounter is integer counter pattern - Decrement() PatternFlowIpv4OptionsCustomTypeOptionClassCounter - // SetDecrement assigns PatternFlowIpv4OptionsCustomTypeOptionClassCounter provided by user to PatternFlowIpv4OptionsCustomTypeOptionClass. - // PatternFlowIpv4OptionsCustomTypeOptionClassCounter is integer counter pattern - SetDecrement(value PatternFlowIpv4OptionsCustomTypeOptionClassCounter) PatternFlowIpv4OptionsCustomTypeOptionClass - // HasDecrement checks if Decrement has been set in PatternFlowIpv4OptionsCustomTypeOptionClass - HasDecrement() bool - setNil() -} - -type PatternFlowIpv4OptionsCustomTypeOptionClassChoiceEnum string - -// Enum of Choice on PatternFlowIpv4OptionsCustomTypeOptionClass -var PatternFlowIpv4OptionsCustomTypeOptionClassChoice = struct { - VALUE PatternFlowIpv4OptionsCustomTypeOptionClassChoiceEnum - VALUES PatternFlowIpv4OptionsCustomTypeOptionClassChoiceEnum - INCREMENT PatternFlowIpv4OptionsCustomTypeOptionClassChoiceEnum - DECREMENT PatternFlowIpv4OptionsCustomTypeOptionClassChoiceEnum -}{ - VALUE: PatternFlowIpv4OptionsCustomTypeOptionClassChoiceEnum("value"), - VALUES: PatternFlowIpv4OptionsCustomTypeOptionClassChoiceEnum("values"), - INCREMENT: PatternFlowIpv4OptionsCustomTypeOptionClassChoiceEnum("increment"), - DECREMENT: PatternFlowIpv4OptionsCustomTypeOptionClassChoiceEnum("decrement"), -} - -func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) Choice() PatternFlowIpv4OptionsCustomTypeOptionClassChoiceEnum { - return PatternFlowIpv4OptionsCustomTypeOptionClassChoiceEnum(obj.obj.Choice.Enum().String()) -} - -// description is TBD -// Choice returns a string -func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) HasChoice() bool { - return obj.obj.Choice != nil -} - -func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) setChoice(value PatternFlowIpv4OptionsCustomTypeOptionClassChoiceEnum) PatternFlowIpv4OptionsCustomTypeOptionClass { - intValue, ok := otg.PatternFlowIpv4OptionsCustomTypeOptionClass_Choice_Enum_value[string(value)] - if !ok { - obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( - "%s is not a valid choice on PatternFlowIpv4OptionsCustomTypeOptionClassChoiceEnum", string(value))) - return obj - } - enumValue := otg.PatternFlowIpv4OptionsCustomTypeOptionClass_Choice_Enum(intValue) - obj.obj.Choice = &enumValue - obj.obj.Decrement = nil - obj.decrementHolder = nil - obj.obj.Increment = nil - obj.incrementHolder = nil - obj.obj.Values = nil - obj.obj.Value = nil - - if value == PatternFlowIpv4OptionsCustomTypeOptionClassChoice.VALUE { - defaultValue := uint32(0) - obj.obj.Value = &defaultValue - } - - if value == PatternFlowIpv4OptionsCustomTypeOptionClassChoice.VALUES { - defaultValue := []uint32{0} - obj.obj.Values = defaultValue - } - - if value == PatternFlowIpv4OptionsCustomTypeOptionClassChoice.INCREMENT { - obj.obj.Increment = NewPatternFlowIpv4OptionsCustomTypeOptionClassCounter().msg() - } - - if value == PatternFlowIpv4OptionsCustomTypeOptionClassChoice.DECREMENT { - obj.obj.Decrement = NewPatternFlowIpv4OptionsCustomTypeOptionClassCounter().msg() - } - - return obj + // Flags returns uint32, set in BgpExtendedCommunityTransitiveOpaqueTypeColor. + Flags() uint32 + // SetFlags assigns uint32 provided by user to BgpExtendedCommunityTransitiveOpaqueTypeColor + SetFlags(value uint32) BgpExtendedCommunityTransitiveOpaqueTypeColor + // HasFlags checks if Flags has been set in BgpExtendedCommunityTransitiveOpaqueTypeColor + HasFlags() bool + // Color returns uint32, set in BgpExtendedCommunityTransitiveOpaqueTypeColor. + Color() uint32 + // SetColor assigns uint32 provided by user to BgpExtendedCommunityTransitiveOpaqueTypeColor + SetColor(value uint32) BgpExtendedCommunityTransitiveOpaqueTypeColor + // HasColor checks if Color has been set in BgpExtendedCommunityTransitiveOpaqueTypeColor + HasColor() bool } -// description is TBD -// Value returns a uint32 -func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) Value() uint32 { - - if obj.obj.Value == nil { - obj.setChoice(PatternFlowIpv4OptionsCustomTypeOptionClassChoice.VALUE) - } - - return *obj.obj.Value - -} +// Two octet flag values. +// Flags returns a uint32 +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) Flags() uint32 { -// description is TBD -// Value returns a uint32 -func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) HasValue() bool { - return obj.obj.Value != nil -} + return *obj.obj.Flags -// description is TBD -// SetValue sets the uint32 value in the PatternFlowIpv4OptionsCustomTypeOptionClass object -func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) SetValue(value uint32) PatternFlowIpv4OptionsCustomTypeOptionClass { - obj.setChoice(PatternFlowIpv4OptionsCustomTypeOptionClassChoice.VALUE) - obj.obj.Value = &value - return obj } -// description is TBD -// Values returns a []uint32 -func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) Values() []uint32 { - if obj.obj.Values == nil { - obj.SetValues([]uint32{0}) - } - return obj.obj.Values +// Two octet flag values. +// Flags returns a uint32 +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) HasFlags() bool { + return obj.obj.Flags != nil } -// description is TBD -// SetValues sets the []uint32 value in the PatternFlowIpv4OptionsCustomTypeOptionClass object -func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) SetValues(value []uint32) PatternFlowIpv4OptionsCustomTypeOptionClass { - obj.setChoice(PatternFlowIpv4OptionsCustomTypeOptionClassChoice.VALUES) - if obj.obj.Values == nil { - obj.obj.Values = make([]uint32, 0) - } - obj.obj.Values = value +// Two octet flag values. +// SetFlags sets the uint32 value in the BgpExtendedCommunityTransitiveOpaqueTypeColor object +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) SetFlags(value uint32) BgpExtendedCommunityTransitiveOpaqueTypeColor { + obj.obj.Flags = &value return obj } -// description is TBD -// Increment returns a PatternFlowIpv4OptionsCustomTypeOptionClassCounter -func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) Increment() PatternFlowIpv4OptionsCustomTypeOptionClassCounter { - if obj.obj.Increment == nil { - obj.setChoice(PatternFlowIpv4OptionsCustomTypeOptionClassChoice.INCREMENT) - } - if obj.incrementHolder == nil { - obj.incrementHolder = &patternFlowIpv4OptionsCustomTypeOptionClassCounter{obj: obj.obj.Increment} - } - return obj.incrementHolder -} - -// description is TBD -// Increment returns a PatternFlowIpv4OptionsCustomTypeOptionClassCounter -func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) HasIncrement() bool { - return obj.obj.Increment != nil -} - -// description is TBD -// SetIncrement sets the PatternFlowIpv4OptionsCustomTypeOptionClassCounter value in the PatternFlowIpv4OptionsCustomTypeOptionClass object -func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) SetIncrement(value PatternFlowIpv4OptionsCustomTypeOptionClassCounter) PatternFlowIpv4OptionsCustomTypeOptionClass { - obj.setChoice(PatternFlowIpv4OptionsCustomTypeOptionClassChoice.INCREMENT) - obj.incrementHolder = nil - obj.obj.Increment = value.msg() +// The color value is user defined and configured locally and used to determine whether a data packet can be transmitted on a certain tunnel or not in conjunction with the Encapsulation attribute. It is defined in RFC9012. +// Color returns a uint32 +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) Color() uint32 { - return obj -} + return *obj.obj.Color -// description is TBD -// Decrement returns a PatternFlowIpv4OptionsCustomTypeOptionClassCounter -func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) Decrement() PatternFlowIpv4OptionsCustomTypeOptionClassCounter { - if obj.obj.Decrement == nil { - obj.setChoice(PatternFlowIpv4OptionsCustomTypeOptionClassChoice.DECREMENT) - } - if obj.decrementHolder == nil { - obj.decrementHolder = &patternFlowIpv4OptionsCustomTypeOptionClassCounter{obj: obj.obj.Decrement} - } - return obj.decrementHolder } -// description is TBD -// Decrement returns a PatternFlowIpv4OptionsCustomTypeOptionClassCounter -func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) HasDecrement() bool { - return obj.obj.Decrement != nil +// The color value is user defined and configured locally and used to determine whether a data packet can be transmitted on a certain tunnel or not in conjunction with the Encapsulation attribute. It is defined in RFC9012. +// Color returns a uint32 +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) HasColor() bool { + return obj.obj.Color != nil } -// description is TBD -// SetDecrement sets the PatternFlowIpv4OptionsCustomTypeOptionClassCounter value in the PatternFlowIpv4OptionsCustomTypeOptionClass object -func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) SetDecrement(value PatternFlowIpv4OptionsCustomTypeOptionClassCounter) PatternFlowIpv4OptionsCustomTypeOptionClass { - obj.setChoice(PatternFlowIpv4OptionsCustomTypeOptionClassChoice.DECREMENT) - obj.decrementHolder = nil - obj.obj.Decrement = value.msg() +// The color value is user defined and configured locally and used to determine whether a data packet can be transmitted on a certain tunnel or not in conjunction with the Encapsulation attribute. It is defined in RFC9012. +// SetColor sets the uint32 value in the BgpExtendedCommunityTransitiveOpaqueTypeColor object +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) SetColor(value uint32) BgpExtendedCommunityTransitiveOpaqueTypeColor { + obj.obj.Color = &value return obj } -func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) validateObj(vObj *validation, set_default bool) { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Value != nil { + if obj.obj.Flags != nil { - if *obj.obj.Value > 3 { + if *obj.obj.Flags > 65535 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4OptionsCustomTypeOptionClass.Value <= 3 but Got %d", *obj.obj.Value)) - } - - } - - if obj.obj.Values != nil { - - for _, item := range obj.obj.Values { - if item > 3 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("min(uint32) <= PatternFlowIpv4OptionsCustomTypeOptionClass.Values <= 3 but Got %d", item)) - } - + fmt.Sprintf("0 <= BgpExtendedCommunityTransitiveOpaqueTypeColor.Flags <= 65535 but Got %d", *obj.obj.Flags)) } } - if obj.obj.Increment != nil { - - obj.Increment().validateObj(vObj, set_default) - } - - if obj.obj.Decrement != nil { - - obj.Decrement().validateObj(vObj, set_default) - } - } -func (obj *patternFlowIpv4OptionsCustomTypeOptionClass) setDefault() { - if obj.obj.Choice == nil { - obj.setChoice(PatternFlowIpv4OptionsCustomTypeOptionClassChoice.VALUE) - +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) setDefault() { + if obj.obj.Flags == nil { + obj.SetFlags(0) + } + if obj.obj.Color == nil { + obj.SetColor(0) } } -// ***** PatternFlowIpv4OptionsCustomTypeOptionNumber ***** -type patternFlowIpv4OptionsCustomTypeOptionNumber struct { +// ***** BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation ***** +type bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation struct { validation - obj *otg.PatternFlowIpv4OptionsCustomTypeOptionNumber - marshaller marshalPatternFlowIpv4OptionsCustomTypeOptionNumber - unMarshaller unMarshalPatternFlowIpv4OptionsCustomTypeOptionNumber - incrementHolder PatternFlowIpv4OptionsCustomTypeOptionNumberCounter - decrementHolder PatternFlowIpv4OptionsCustomTypeOptionNumberCounter + obj *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + marshaller marshalBgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + unMarshaller unMarshalBgpExtendedCommunityTransitiveOpaqueTypeEncapsulation } -func NewPatternFlowIpv4OptionsCustomTypeOptionNumber() PatternFlowIpv4OptionsCustomTypeOptionNumber { - obj := patternFlowIpv4OptionsCustomTypeOptionNumber{obj: &otg.PatternFlowIpv4OptionsCustomTypeOptionNumber{}} +func NewBgpExtendedCommunityTransitiveOpaqueTypeEncapsulation() BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation { + obj := bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation{obj: &otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) msg() *otg.PatternFlowIpv4OptionsCustomTypeOptionNumber { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) msg() *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation { return obj.obj } -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) setMsg(msg *otg.PatternFlowIpv4OptionsCustomTypeOptionNumber) PatternFlowIpv4OptionsCustomTypeOptionNumber { - obj.setNil() +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) setMsg(msg *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation { + proto.Merge(obj.obj, msg) return obj } -type marshalpatternFlowIpv4OptionsCustomTypeOptionNumber struct { - obj *patternFlowIpv4OptionsCustomTypeOptionNumber +type marshalbgpExtendedCommunityTransitiveOpaqueTypeEncapsulation struct { + obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation } -type marshalPatternFlowIpv4OptionsCustomTypeOptionNumber interface { - // ToProto marshals PatternFlowIpv4OptionsCustomTypeOptionNumber to protobuf object *otg.PatternFlowIpv4OptionsCustomTypeOptionNumber - ToProto() (*otg.PatternFlowIpv4OptionsCustomTypeOptionNumber, error) - // ToPbText marshals PatternFlowIpv4OptionsCustomTypeOptionNumber to protobuf text +type marshalBgpExtendedCommunityTransitiveOpaqueTypeEncapsulation interface { + // ToProto marshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation to protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + ToProto() (*otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation, error) + // ToPbText marshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4OptionsCustomTypeOptionNumber to YAML text + // ToYaml marshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4OptionsCustomTypeOptionNumber to JSON text + // ToJson marshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation to JSON text ToJson() (string, error) } -type unMarshalpatternFlowIpv4OptionsCustomTypeOptionNumber struct { - obj *patternFlowIpv4OptionsCustomTypeOptionNumber +type unMarshalbgpExtendedCommunityTransitiveOpaqueTypeEncapsulation struct { + obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation } -type unMarshalPatternFlowIpv4OptionsCustomTypeOptionNumber interface { - // FromProto unmarshals PatternFlowIpv4OptionsCustomTypeOptionNumber from protobuf object *otg.PatternFlowIpv4OptionsCustomTypeOptionNumber - FromProto(msg *otg.PatternFlowIpv4OptionsCustomTypeOptionNumber) (PatternFlowIpv4OptionsCustomTypeOptionNumber, error) - // FromPbText unmarshals PatternFlowIpv4OptionsCustomTypeOptionNumber from protobuf text +type unMarshalBgpExtendedCommunityTransitiveOpaqueTypeEncapsulation interface { + // FromProto unmarshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation from protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + FromProto(msg *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) (BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation, error) + // FromPbText unmarshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4OptionsCustomTypeOptionNumber from YAML text + // FromYaml unmarshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4OptionsCustomTypeOptionNumber from JSON text + // FromJson unmarshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation from JSON text FromJson(value string) error } -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) Marshal() marshalPatternFlowIpv4OptionsCustomTypeOptionNumber { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) Marshal() marshalBgpExtendedCommunityTransitiveOpaqueTypeEncapsulation { if obj.marshaller == nil { - obj.marshaller = &marshalpatternFlowIpv4OptionsCustomTypeOptionNumber{obj: obj} + obj.marshaller = &marshalbgpExtendedCommunityTransitiveOpaqueTypeEncapsulation{obj: obj} } return obj.marshaller } -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) Unmarshal() unMarshalPatternFlowIpv4OptionsCustomTypeOptionNumber { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) Unmarshal() unMarshalBgpExtendedCommunityTransitiveOpaqueTypeEncapsulation { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalpatternFlowIpv4OptionsCustomTypeOptionNumber{obj: obj} + obj.unMarshaller = &unMarshalbgpExtendedCommunityTransitiveOpaqueTypeEncapsulation{obj: obj} } return obj.unMarshaller } -func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionNumber) ToProto() (*otg.PatternFlowIpv4OptionsCustomTypeOptionNumber, error) { +func (m *marshalbgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) ToProto() (*otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -337844,7 +350314,7 @@ func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionNumber) ToProto() (*otg.Pa return m.obj.msg(), nil } -func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionNumber) FromProto(msg *otg.PatternFlowIpv4OptionsCustomTypeOptionNumber) (PatternFlowIpv4OptionsCustomTypeOptionNumber, error) { +func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) FromProto(msg *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) (BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -337853,7 +350323,7 @@ func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionNumber) FromProto(msg *o return newObj, nil } -func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionNumber) ToPbText() (string, error) { +func (m *marshalbgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -337865,12 +350335,12 @@ func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionNumber) ToPbText() (string return string(protoMarshal), nil } -func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionNumber) FromPbText(value string) error { +func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - m.obj.setNil() + vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -337878,7 +350348,7 @@ func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionNumber) FromPbText(value return retObj } -func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionNumber) ToYaml() (string, error) { +func (m *marshalbgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -337899,7 +350369,7 @@ func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionNumber) ToYaml() (string, return string(data), nil } -func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionNumber) FromYaml(value string) error { +func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) FromYaml(value string) error { if value == "" { value = "{}" } @@ -337916,7 +350386,7 @@ func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionNumber) FromYaml(value s return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - m.obj.setNil() + vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -337924,7 +350394,7 @@ func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionNumber) FromYaml(value s return nil } -func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionNumber) ToJson() (string, error) { +func (m *marshalbgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -337942,7 +350412,7 @@ func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionNumber) ToJson() (string, return string(data), nil } -func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionNumber) FromJson(value string) error { +func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -337955,7 +350425,7 @@ func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionNumber) FromJson(value s return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - m.obj.setNil() + err := m.obj.validateToAndFrom() if err != nil { return err @@ -337963,19 +350433,19 @@ func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionNumber) FromJson(value s return nil } -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) validateToAndFrom() error { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) validate() error { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) String() string { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -337983,12 +350453,12 @@ func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) String() string { return str } -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) Clone() (PatternFlowIpv4OptionsCustomTypeOptionNumber, error) { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) Clone() (BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4OptionsCustomTypeOptionNumber() + newObj := NewBgpExtendedCommunityTransitiveOpaqueTypeEncapsulation() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -338000,353 +350470,203 @@ func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) Clone() (PatternFlowIpv return newObj, nil } -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) setNil() { - obj.incrementHolder = nil - obj.decrementHolder = nil - obj.validationErrors = nil - obj.warnings = nil - obj.constraints = make(map[string]map[string]Constraints) -} - -// PatternFlowIpv4OptionsCustomTypeOptionNumber is option Number [Ref:https://www.iana.org/assignments/ip-parameters/ip-parameters.xhtml#ip-parameters-1]. -type PatternFlowIpv4OptionsCustomTypeOptionNumber interface { +// BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation is this identifies the type of tunneling technology being signalled. It is defined in RFC9012 and sent with sub-type as 0x0c. +type BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation interface { Validation - // msg marshals PatternFlowIpv4OptionsCustomTypeOptionNumber to protobuf object *otg.PatternFlowIpv4OptionsCustomTypeOptionNumber + // msg marshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation to protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation // and doesn't set defaults - msg() *otg.PatternFlowIpv4OptionsCustomTypeOptionNumber - // setMsg unmarshals PatternFlowIpv4OptionsCustomTypeOptionNumber from protobuf object *otg.PatternFlowIpv4OptionsCustomTypeOptionNumber + msg() *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + // setMsg unmarshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation from protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation // and doesn't set defaults - setMsg(*otg.PatternFlowIpv4OptionsCustomTypeOptionNumber) PatternFlowIpv4OptionsCustomTypeOptionNumber + setMsg(*otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation // provides marshal interface - Marshal() marshalPatternFlowIpv4OptionsCustomTypeOptionNumber + Marshal() marshalBgpExtendedCommunityTransitiveOpaqueTypeEncapsulation // provides unmarshal interface - Unmarshal() unMarshalPatternFlowIpv4OptionsCustomTypeOptionNumber - // validate validates PatternFlowIpv4OptionsCustomTypeOptionNumber + Unmarshal() unMarshalBgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + // validate validates BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4OptionsCustomTypeOptionNumber, error) + Clone() (BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Choice returns PatternFlowIpv4OptionsCustomTypeOptionNumberChoiceEnum, set in PatternFlowIpv4OptionsCustomTypeOptionNumber - Choice() PatternFlowIpv4OptionsCustomTypeOptionNumberChoiceEnum - // setChoice assigns PatternFlowIpv4OptionsCustomTypeOptionNumberChoiceEnum provided by user to PatternFlowIpv4OptionsCustomTypeOptionNumber - setChoice(value PatternFlowIpv4OptionsCustomTypeOptionNumberChoiceEnum) PatternFlowIpv4OptionsCustomTypeOptionNumber - // HasChoice checks if Choice has been set in PatternFlowIpv4OptionsCustomTypeOptionNumber - HasChoice() bool - // Value returns uint32, set in PatternFlowIpv4OptionsCustomTypeOptionNumber. - Value() uint32 - // SetValue assigns uint32 provided by user to PatternFlowIpv4OptionsCustomTypeOptionNumber - SetValue(value uint32) PatternFlowIpv4OptionsCustomTypeOptionNumber - // HasValue checks if Value has been set in PatternFlowIpv4OptionsCustomTypeOptionNumber - HasValue() bool - // Values returns []uint32, set in PatternFlowIpv4OptionsCustomTypeOptionNumber. - Values() []uint32 - // SetValues assigns []uint32 provided by user to PatternFlowIpv4OptionsCustomTypeOptionNumber - SetValues(value []uint32) PatternFlowIpv4OptionsCustomTypeOptionNumber - // Increment returns PatternFlowIpv4OptionsCustomTypeOptionNumberCounter, set in PatternFlowIpv4OptionsCustomTypeOptionNumber. - // PatternFlowIpv4OptionsCustomTypeOptionNumberCounter is integer counter pattern - Increment() PatternFlowIpv4OptionsCustomTypeOptionNumberCounter - // SetIncrement assigns PatternFlowIpv4OptionsCustomTypeOptionNumberCounter provided by user to PatternFlowIpv4OptionsCustomTypeOptionNumber. - // PatternFlowIpv4OptionsCustomTypeOptionNumberCounter is integer counter pattern - SetIncrement(value PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) PatternFlowIpv4OptionsCustomTypeOptionNumber - // HasIncrement checks if Increment has been set in PatternFlowIpv4OptionsCustomTypeOptionNumber - HasIncrement() bool - // Decrement returns PatternFlowIpv4OptionsCustomTypeOptionNumberCounter, set in PatternFlowIpv4OptionsCustomTypeOptionNumber. - // PatternFlowIpv4OptionsCustomTypeOptionNumberCounter is integer counter pattern - Decrement() PatternFlowIpv4OptionsCustomTypeOptionNumberCounter - // SetDecrement assigns PatternFlowIpv4OptionsCustomTypeOptionNumberCounter provided by user to PatternFlowIpv4OptionsCustomTypeOptionNumber. - // PatternFlowIpv4OptionsCustomTypeOptionNumberCounter is integer counter pattern - SetDecrement(value PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) PatternFlowIpv4OptionsCustomTypeOptionNumber - // HasDecrement checks if Decrement has been set in PatternFlowIpv4OptionsCustomTypeOptionNumber - HasDecrement() bool - setNil() -} - -type PatternFlowIpv4OptionsCustomTypeOptionNumberChoiceEnum string - -// Enum of Choice on PatternFlowIpv4OptionsCustomTypeOptionNumber -var PatternFlowIpv4OptionsCustomTypeOptionNumberChoice = struct { - VALUE PatternFlowIpv4OptionsCustomTypeOptionNumberChoiceEnum - VALUES PatternFlowIpv4OptionsCustomTypeOptionNumberChoiceEnum - INCREMENT PatternFlowIpv4OptionsCustomTypeOptionNumberChoiceEnum - DECREMENT PatternFlowIpv4OptionsCustomTypeOptionNumberChoiceEnum -}{ - VALUE: PatternFlowIpv4OptionsCustomTypeOptionNumberChoiceEnum("value"), - VALUES: PatternFlowIpv4OptionsCustomTypeOptionNumberChoiceEnum("values"), - INCREMENT: PatternFlowIpv4OptionsCustomTypeOptionNumberChoiceEnum("increment"), - DECREMENT: PatternFlowIpv4OptionsCustomTypeOptionNumberChoiceEnum("decrement"), -} - -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) Choice() PatternFlowIpv4OptionsCustomTypeOptionNumberChoiceEnum { - return PatternFlowIpv4OptionsCustomTypeOptionNumberChoiceEnum(obj.obj.Choice.Enum().String()) -} - -// description is TBD -// Choice returns a string -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) HasChoice() bool { - return obj.obj.Choice != nil -} - -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) setChoice(value PatternFlowIpv4OptionsCustomTypeOptionNumberChoiceEnum) PatternFlowIpv4OptionsCustomTypeOptionNumber { - intValue, ok := otg.PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice_Enum_value[string(value)] - if !ok { - obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( - "%s is not a valid choice on PatternFlowIpv4OptionsCustomTypeOptionNumberChoiceEnum", string(value))) - return obj - } - enumValue := otg.PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice_Enum(intValue) - obj.obj.Choice = &enumValue - obj.obj.Decrement = nil - obj.decrementHolder = nil - obj.obj.Increment = nil - obj.incrementHolder = nil - obj.obj.Values = nil - obj.obj.Value = nil - - if value == PatternFlowIpv4OptionsCustomTypeOptionNumberChoice.VALUE { - defaultValue := uint32(0) - obj.obj.Value = &defaultValue - } - - if value == PatternFlowIpv4OptionsCustomTypeOptionNumberChoice.VALUES { - defaultValue := []uint32{0} - obj.obj.Values = defaultValue - } - - if value == PatternFlowIpv4OptionsCustomTypeOptionNumberChoice.INCREMENT { - obj.obj.Increment = NewPatternFlowIpv4OptionsCustomTypeOptionNumberCounter().msg() - } - - if value == PatternFlowIpv4OptionsCustomTypeOptionNumberChoice.DECREMENT { - obj.obj.Decrement = NewPatternFlowIpv4OptionsCustomTypeOptionNumberCounter().msg() - } - - return obj + // Reserved returns uint32, set in BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation. + Reserved() uint32 + // SetReserved assigns uint32 provided by user to BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + SetReserved(value uint32) BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + // HasReserved checks if Reserved has been set in BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + HasReserved() bool + // TunnelType returns uint32, set in BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation. + TunnelType() uint32 + // SetTunnelType assigns uint32 provided by user to BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + SetTunnelType(value uint32) BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + // HasTunnelType checks if TunnelType has been set in BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + HasTunnelType() bool } -// description is TBD -// Value returns a uint32 -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) Value() uint32 { - - if obj.obj.Value == nil { - obj.setChoice(PatternFlowIpv4OptionsCustomTypeOptionNumberChoice.VALUE) - } - - return *obj.obj.Value - -} +// Four bytes of reserved values. Normally set to 0 on transmit and ignored on receive. +// Reserved returns a uint32 +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) Reserved() uint32 { -// description is TBD -// Value returns a uint32 -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) HasValue() bool { - return obj.obj.Value != nil -} + return *obj.obj.Reserved -// description is TBD -// SetValue sets the uint32 value in the PatternFlowIpv4OptionsCustomTypeOptionNumber object -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) SetValue(value uint32) PatternFlowIpv4OptionsCustomTypeOptionNumber { - obj.setChoice(PatternFlowIpv4OptionsCustomTypeOptionNumberChoice.VALUE) - obj.obj.Value = &value - return obj } -// description is TBD -// Values returns a []uint32 -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) Values() []uint32 { - if obj.obj.Values == nil { - obj.SetValues([]uint32{0}) - } - return obj.obj.Values +// Four bytes of reserved values. Normally set to 0 on transmit and ignored on receive. +// Reserved returns a uint32 +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) HasReserved() bool { + return obj.obj.Reserved != nil } -// description is TBD -// SetValues sets the []uint32 value in the PatternFlowIpv4OptionsCustomTypeOptionNumber object -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) SetValues(value []uint32) PatternFlowIpv4OptionsCustomTypeOptionNumber { - obj.setChoice(PatternFlowIpv4OptionsCustomTypeOptionNumberChoice.VALUES) - if obj.obj.Values == nil { - obj.obj.Values = make([]uint32, 0) - } - obj.obj.Values = value +// Four bytes of reserved values. Normally set to 0 on transmit and ignored on receive. +// SetReserved sets the uint32 value in the BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation object +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) SetReserved(value uint32) BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation { + obj.obj.Reserved = &value return obj } -// description is TBD -// Increment returns a PatternFlowIpv4OptionsCustomTypeOptionNumberCounter -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) Increment() PatternFlowIpv4OptionsCustomTypeOptionNumberCounter { - if obj.obj.Increment == nil { - obj.setChoice(PatternFlowIpv4OptionsCustomTypeOptionNumberChoice.INCREMENT) - } - if obj.incrementHolder == nil { - obj.incrementHolder = &patternFlowIpv4OptionsCustomTypeOptionNumberCounter{obj: obj.obj.Increment} - } - return obj.incrementHolder -} - -// description is TBD -// Increment returns a PatternFlowIpv4OptionsCustomTypeOptionNumberCounter -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) HasIncrement() bool { - return obj.obj.Increment != nil -} - -// description is TBD -// SetIncrement sets the PatternFlowIpv4OptionsCustomTypeOptionNumberCounter value in the PatternFlowIpv4OptionsCustomTypeOptionNumber object -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) SetIncrement(value PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) PatternFlowIpv4OptionsCustomTypeOptionNumber { - obj.setChoice(PatternFlowIpv4OptionsCustomTypeOptionNumberChoice.INCREMENT) - obj.incrementHolder = nil - obj.obj.Increment = value.msg() +// Identifies the type of tunneling technology being signalled. Initially defined in RFC5512 and extended in RFC9012. Some of the important tunnel types include 1 L2TPv3 over IP [RFC9012], +// 2 GRE [RFC9012] +// 7 IP in IP [RFC9012] +// 8 VXLAN Encapsulation [RFC8365] +// 9 NVGRE Encapsulation [RFC8365] +// 10 MPLS Encapsulation [RFC8365] +// 15 SR TE Policy Type [draft-ietf-idr-segment-routing-te-policy] +// 19 Geneve Encapsulation [RFC8926] +// TunnelType returns a uint32 +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) TunnelType() uint32 { - return obj -} + return *obj.obj.TunnelType -// description is TBD -// Decrement returns a PatternFlowIpv4OptionsCustomTypeOptionNumberCounter -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) Decrement() PatternFlowIpv4OptionsCustomTypeOptionNumberCounter { - if obj.obj.Decrement == nil { - obj.setChoice(PatternFlowIpv4OptionsCustomTypeOptionNumberChoice.DECREMENT) - } - if obj.decrementHolder == nil { - obj.decrementHolder = &patternFlowIpv4OptionsCustomTypeOptionNumberCounter{obj: obj.obj.Decrement} - } - return obj.decrementHolder } -// description is TBD -// Decrement returns a PatternFlowIpv4OptionsCustomTypeOptionNumberCounter -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) HasDecrement() bool { - return obj.obj.Decrement != nil +// Identifies the type of tunneling technology being signalled. Initially defined in RFC5512 and extended in RFC9012. Some of the important tunnel types include 1 L2TPv3 over IP [RFC9012], +// 2 GRE [RFC9012] +// 7 IP in IP [RFC9012] +// 8 VXLAN Encapsulation [RFC8365] +// 9 NVGRE Encapsulation [RFC8365] +// 10 MPLS Encapsulation [RFC8365] +// 15 SR TE Policy Type [draft-ietf-idr-segment-routing-te-policy] +// 19 Geneve Encapsulation [RFC8926] +// TunnelType returns a uint32 +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) HasTunnelType() bool { + return obj.obj.TunnelType != nil } -// description is TBD -// SetDecrement sets the PatternFlowIpv4OptionsCustomTypeOptionNumberCounter value in the PatternFlowIpv4OptionsCustomTypeOptionNumber object -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) SetDecrement(value PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) PatternFlowIpv4OptionsCustomTypeOptionNumber { - obj.setChoice(PatternFlowIpv4OptionsCustomTypeOptionNumberChoice.DECREMENT) - obj.decrementHolder = nil - obj.obj.Decrement = value.msg() +// Identifies the type of tunneling technology being signalled. Initially defined in RFC5512 and extended in RFC9012. Some of the important tunnel types include 1 L2TPv3 over IP [RFC9012], +// 2 GRE [RFC9012] +// 7 IP in IP [RFC9012] +// 8 VXLAN Encapsulation [RFC8365] +// 9 NVGRE Encapsulation [RFC8365] +// 10 MPLS Encapsulation [RFC8365] +// 15 SR TE Policy Type [draft-ietf-idr-segment-routing-te-policy] +// 19 Geneve Encapsulation [RFC8926] +// SetTunnelType sets the uint32 value in the BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation object +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) SetTunnelType(value uint32) BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation { + obj.obj.TunnelType = &value return obj } -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) validateObj(vObj *validation, set_default bool) { +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Value != nil { + if obj.obj.TunnelType != nil { - if *obj.obj.Value > 31 { + if *obj.obj.TunnelType > 65535 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4OptionsCustomTypeOptionNumber.Value <= 31 but Got %d", *obj.obj.Value)) - } - - } - - if obj.obj.Values != nil { - - for _, item := range obj.obj.Values { - if item > 31 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("min(uint32) <= PatternFlowIpv4OptionsCustomTypeOptionNumber.Values <= 31 but Got %d", item)) - } - + fmt.Sprintf("0 <= BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation.TunnelType <= 65535 but Got %d", *obj.obj.TunnelType)) } } - if obj.obj.Increment != nil { - - obj.Increment().validateObj(vObj, set_default) - } - - if obj.obj.Decrement != nil { - - obj.Decrement().validateObj(vObj, set_default) - } - } -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumber) setDefault() { - if obj.obj.Choice == nil { - obj.setChoice(PatternFlowIpv4OptionsCustomTypeOptionNumberChoice.VALUE) - +func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) setDefault() { + if obj.obj.Reserved == nil { + obj.SetReserved(0) + } + if obj.obj.TunnelType == nil { + obj.SetTunnelType(1) } } -// ***** IsisLspPrefixAttributes ***** -type isisLspPrefixAttributes struct { +// ***** BgpExtendedCommunityTransitiveEvpnTypeRouterMac ***** +type bgpExtendedCommunityTransitiveEvpnTypeRouterMac struct { validation - obj *otg.IsisLspPrefixAttributes - marshaller marshalIsisLspPrefixAttributes - unMarshaller unMarshalIsisLspPrefixAttributes + obj *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac + marshaller marshalBgpExtendedCommunityTransitiveEvpnTypeRouterMac + unMarshaller unMarshalBgpExtendedCommunityTransitiveEvpnTypeRouterMac } -func NewIsisLspPrefixAttributes() IsisLspPrefixAttributes { - obj := isisLspPrefixAttributes{obj: &otg.IsisLspPrefixAttributes{}} +func NewBgpExtendedCommunityTransitiveEvpnTypeRouterMac() BgpExtendedCommunityTransitiveEvpnTypeRouterMac { + obj := bgpExtendedCommunityTransitiveEvpnTypeRouterMac{obj: &otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac{}} obj.setDefault() return &obj } -func (obj *isisLspPrefixAttributes) msg() *otg.IsisLspPrefixAttributes { +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) msg() *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac { return obj.obj } -func (obj *isisLspPrefixAttributes) setMsg(msg *otg.IsisLspPrefixAttributes) IsisLspPrefixAttributes { +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) setMsg(msg *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac) BgpExtendedCommunityTransitiveEvpnTypeRouterMac { proto.Merge(obj.obj, msg) return obj } -type marshalisisLspPrefixAttributes struct { - obj *isisLspPrefixAttributes +type marshalbgpExtendedCommunityTransitiveEvpnTypeRouterMac struct { + obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac } -type marshalIsisLspPrefixAttributes interface { - // ToProto marshals IsisLspPrefixAttributes to protobuf object *otg.IsisLspPrefixAttributes - ToProto() (*otg.IsisLspPrefixAttributes, error) - // ToPbText marshals IsisLspPrefixAttributes to protobuf text +type marshalBgpExtendedCommunityTransitiveEvpnTypeRouterMac interface { + // ToProto marshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac to protobuf object *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac + ToProto() (*otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac, error) + // ToPbText marshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac to protobuf text ToPbText() (string, error) - // ToYaml marshals IsisLspPrefixAttributes to YAML text + // ToYaml marshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac to YAML text ToYaml() (string, error) - // ToJson marshals IsisLspPrefixAttributes to JSON text + // ToJson marshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac to JSON text ToJson() (string, error) } -type unMarshalisisLspPrefixAttributes struct { - obj *isisLspPrefixAttributes +type unMarshalbgpExtendedCommunityTransitiveEvpnTypeRouterMac struct { + obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac } -type unMarshalIsisLspPrefixAttributes interface { - // FromProto unmarshals IsisLspPrefixAttributes from protobuf object *otg.IsisLspPrefixAttributes - FromProto(msg *otg.IsisLspPrefixAttributes) (IsisLspPrefixAttributes, error) - // FromPbText unmarshals IsisLspPrefixAttributes from protobuf text +type unMarshalBgpExtendedCommunityTransitiveEvpnTypeRouterMac interface { + // FromProto unmarshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac from protobuf object *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac + FromProto(msg *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac) (BgpExtendedCommunityTransitiveEvpnTypeRouterMac, error) + // FromPbText unmarshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac from protobuf text FromPbText(value string) error - // FromYaml unmarshals IsisLspPrefixAttributes from YAML text + // FromYaml unmarshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac from YAML text FromYaml(value string) error - // FromJson unmarshals IsisLspPrefixAttributes from JSON text + // FromJson unmarshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac from JSON text FromJson(value string) error } -func (obj *isisLspPrefixAttributes) Marshal() marshalIsisLspPrefixAttributes { +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) Marshal() marshalBgpExtendedCommunityTransitiveEvpnTypeRouterMac { if obj.marshaller == nil { - obj.marshaller = &marshalisisLspPrefixAttributes{obj: obj} + obj.marshaller = &marshalbgpExtendedCommunityTransitiveEvpnTypeRouterMac{obj: obj} } return obj.marshaller } -func (obj *isisLspPrefixAttributes) Unmarshal() unMarshalIsisLspPrefixAttributes { +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) Unmarshal() unMarshalBgpExtendedCommunityTransitiveEvpnTypeRouterMac { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalisisLspPrefixAttributes{obj: obj} + obj.unMarshaller = &unMarshalbgpExtendedCommunityTransitiveEvpnTypeRouterMac{obj: obj} } return obj.unMarshaller } -func (m *marshalisisLspPrefixAttributes) ToProto() (*otg.IsisLspPrefixAttributes, error) { +func (m *marshalbgpExtendedCommunityTransitiveEvpnTypeRouterMac) ToProto() (*otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -338354,7 +350674,7 @@ func (m *marshalisisLspPrefixAttributes) ToProto() (*otg.IsisLspPrefixAttributes return m.obj.msg(), nil } -func (m *unMarshalisisLspPrefixAttributes) FromProto(msg *otg.IsisLspPrefixAttributes) (IsisLspPrefixAttributes, error) { +func (m *unMarshalbgpExtendedCommunityTransitiveEvpnTypeRouterMac) FromProto(msg *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac) (BgpExtendedCommunityTransitiveEvpnTypeRouterMac, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -338363,7 +350683,7 @@ func (m *unMarshalisisLspPrefixAttributes) FromProto(msg *otg.IsisLspPrefixAttri return newObj, nil } -func (m *marshalisisLspPrefixAttributes) ToPbText() (string, error) { +func (m *marshalbgpExtendedCommunityTransitiveEvpnTypeRouterMac) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -338375,7 +350695,7 @@ func (m *marshalisisLspPrefixAttributes) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalisisLspPrefixAttributes) FromPbText(value string) error { +func (m *unMarshalbgpExtendedCommunityTransitiveEvpnTypeRouterMac) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj @@ -338388,7 +350708,7 @@ func (m *unMarshalisisLspPrefixAttributes) FromPbText(value string) error { return retObj } -func (m *marshalisisLspPrefixAttributes) ToYaml() (string, error) { +func (m *marshalbgpExtendedCommunityTransitiveEvpnTypeRouterMac) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -338409,7 +350729,7 @@ func (m *marshalisisLspPrefixAttributes) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalisisLspPrefixAttributes) FromYaml(value string) error { +func (m *unMarshalbgpExtendedCommunityTransitiveEvpnTypeRouterMac) FromYaml(value string) error { if value == "" { value = "{}" } @@ -338434,7 +350754,7 @@ func (m *unMarshalisisLspPrefixAttributes) FromYaml(value string) error { return nil } -func (m *marshalisisLspPrefixAttributes) ToJson() (string, error) { +func (m *marshalbgpExtendedCommunityTransitiveEvpnTypeRouterMac) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -338452,7 +350772,7 @@ func (m *marshalisisLspPrefixAttributes) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalisisLspPrefixAttributes) FromJson(value string) error { +func (m *unMarshalbgpExtendedCommunityTransitiveEvpnTypeRouterMac) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -338473,19 +350793,19 @@ func (m *unMarshalisisLspPrefixAttributes) FromJson(value string) error { return nil } -func (obj *isisLspPrefixAttributes) validateToAndFrom() error { +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *isisLspPrefixAttributes) validate() error { +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *isisLspPrefixAttributes) String() string { +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -338493,12 +350813,12 @@ func (obj *isisLspPrefixAttributes) String() string { return str } -func (obj *isisLspPrefixAttributes) Clone() (IsisLspPrefixAttributes, error) { +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) Clone() (BgpExtendedCommunityTransitiveEvpnTypeRouterMac, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewIsisLspPrefixAttributes() + newObj := NewBgpExtendedCommunityTransitiveEvpnTypeRouterMac() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -338510,195 +350830,150 @@ func (obj *isisLspPrefixAttributes) Clone() (IsisLspPrefixAttributes, error) { return newObj, nil } -// IsisLspPrefixAttributes is this contains the properties of ISIS Prefix attributes for the extended IPv4 and IPv6 reachability. https://www.rfc-editor.org/rfc/rfc7794.html -type IsisLspPrefixAttributes interface { +// BgpExtendedCommunityTransitiveEvpnTypeRouterMac is the Router MAC EVPN Community is defined in RFC9135 and normally sent only for EVPN Type-2 Routes . It is sent with sub-type 0x03. +type BgpExtendedCommunityTransitiveEvpnTypeRouterMac interface { Validation - // msg marshals IsisLspPrefixAttributes to protobuf object *otg.IsisLspPrefixAttributes + // msg marshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac to protobuf object *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac // and doesn't set defaults - msg() *otg.IsisLspPrefixAttributes - // setMsg unmarshals IsisLspPrefixAttributes from protobuf object *otg.IsisLspPrefixAttributes + msg() *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac + // setMsg unmarshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac from protobuf object *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac // and doesn't set defaults - setMsg(*otg.IsisLspPrefixAttributes) IsisLspPrefixAttributes + setMsg(*otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac) BgpExtendedCommunityTransitiveEvpnTypeRouterMac // provides marshal interface - Marshal() marshalIsisLspPrefixAttributes + Marshal() marshalBgpExtendedCommunityTransitiveEvpnTypeRouterMac // provides unmarshal interface - Unmarshal() unMarshalIsisLspPrefixAttributes - // validate validates IsisLspPrefixAttributes + Unmarshal() unMarshalBgpExtendedCommunityTransitiveEvpnTypeRouterMac + // validate validates BgpExtendedCommunityTransitiveEvpnTypeRouterMac validate() error // A stringer function String() string // Clones the object - Clone() (IsisLspPrefixAttributes, error) + Clone() (BgpExtendedCommunityTransitiveEvpnTypeRouterMac, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // XFlag returns bool, set in IsisLspPrefixAttributes. - XFlag() bool - // SetXFlag assigns bool provided by user to IsisLspPrefixAttributes - SetXFlag(value bool) IsisLspPrefixAttributes - // HasXFlag checks if XFlag has been set in IsisLspPrefixAttributes - HasXFlag() bool - // RFlag returns bool, set in IsisLspPrefixAttributes. - RFlag() bool - // SetRFlag assigns bool provided by user to IsisLspPrefixAttributes - SetRFlag(value bool) IsisLspPrefixAttributes - // HasRFlag checks if RFlag has been set in IsisLspPrefixAttributes - HasRFlag() bool - // NFlag returns bool, set in IsisLspPrefixAttributes. - NFlag() bool - // SetNFlag assigns bool provided by user to IsisLspPrefixAttributes - SetNFlag(value bool) IsisLspPrefixAttributes - // HasNFlag checks if NFlag has been set in IsisLspPrefixAttributes - HasNFlag() bool -} - -// External Prefix Flag (Bit 0) -// XFlag returns a bool -func (obj *isisLspPrefixAttributes) XFlag() bool { - - return *obj.obj.XFlag - -} - -// External Prefix Flag (Bit 0) -// XFlag returns a bool -func (obj *isisLspPrefixAttributes) HasXFlag() bool { - return obj.obj.XFlag != nil -} - -// External Prefix Flag (Bit 0) -// SetXFlag sets the bool value in the IsisLspPrefixAttributes object -func (obj *isisLspPrefixAttributes) SetXFlag(value bool) IsisLspPrefixAttributes { - - obj.obj.XFlag = &value - return obj + // RouterMac returns string, set in BgpExtendedCommunityTransitiveEvpnTypeRouterMac. + RouterMac() string + // SetRouterMac assigns string provided by user to BgpExtendedCommunityTransitiveEvpnTypeRouterMac + SetRouterMac(value string) BgpExtendedCommunityTransitiveEvpnTypeRouterMac + // HasRouterMac checks if RouterMac has been set in BgpExtendedCommunityTransitiveEvpnTypeRouterMac + HasRouterMac() bool } -// Re-advertisement Flag (Bit 1) -// RFlag returns a bool -func (obj *isisLspPrefixAttributes) RFlag() bool { +// MAC Address of the PE Router. +// RouterMac returns a string +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) RouterMac() string { - return *obj.obj.RFlag + return *obj.obj.RouterMac } -// Re-advertisement Flag (Bit 1) -// RFlag returns a bool -func (obj *isisLspPrefixAttributes) HasRFlag() bool { - return obj.obj.RFlag != nil +// MAC Address of the PE Router. +// RouterMac returns a string +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) HasRouterMac() bool { + return obj.obj.RouterMac != nil } -// Re-advertisement Flag (Bit 1) -// SetRFlag sets the bool value in the IsisLspPrefixAttributes object -func (obj *isisLspPrefixAttributes) SetRFlag(value bool) IsisLspPrefixAttributes { +// MAC Address of the PE Router. +// SetRouterMac sets the string value in the BgpExtendedCommunityTransitiveEvpnTypeRouterMac object +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) SetRouterMac(value string) BgpExtendedCommunityTransitiveEvpnTypeRouterMac { - obj.obj.RFlag = &value + obj.obj.RouterMac = &value return obj } -// Node Flag (Bit 2) -// NFlag returns a bool -func (obj *isisLspPrefixAttributes) NFlag() bool { - - return *obj.obj.NFlag - -} - -// Node Flag (Bit 2) -// NFlag returns a bool -func (obj *isisLspPrefixAttributes) HasNFlag() bool { - return obj.obj.NFlag != nil -} +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } -// Node Flag (Bit 2) -// SetNFlag sets the bool value in the IsisLspPrefixAttributes object -func (obj *isisLspPrefixAttributes) SetNFlag(value bool) IsisLspPrefixAttributes { + if obj.obj.RouterMac != nil { - obj.obj.NFlag = &value - return obj -} + err := obj.validateMac(obj.RouterMac()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpExtendedCommunityTransitiveEvpnTypeRouterMac.RouterMac")) + } -func (obj *isisLspPrefixAttributes) validateObj(vObj *validation, set_default bool) { - if set_default { - obj.setDefault() } } -func (obj *isisLspPrefixAttributes) setDefault() { +func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) setDefault() { + if obj.obj.RouterMac == nil { + obj.SetRouterMac("0:0:0:0:0:0") + } } -// ***** BgpV4EviVxlanBroadcastDomain ***** -type bgpV4EviVxlanBroadcastDomain struct { +// ***** BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth ***** +type bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth struct { validation - obj *otg.BgpV4EviVxlanBroadcastDomain - marshaller marshalBgpV4EviVxlanBroadcastDomain - unMarshaller unMarshalBgpV4EviVxlanBroadcastDomain - cmacIpRangeHolder BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter + obj *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + marshaller marshalBgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + unMarshaller unMarshalBgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth } -func NewBgpV4EviVxlanBroadcastDomain() BgpV4EviVxlanBroadcastDomain { - obj := bgpV4EviVxlanBroadcastDomain{obj: &otg.BgpV4EviVxlanBroadcastDomain{}} +func NewBgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth() BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth { + obj := bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth{obj: &otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth{}} obj.setDefault() return &obj } -func (obj *bgpV4EviVxlanBroadcastDomain) msg() *otg.BgpV4EviVxlanBroadcastDomain { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) msg() *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth { return obj.obj } -func (obj *bgpV4EviVxlanBroadcastDomain) setMsg(msg *otg.BgpV4EviVxlanBroadcastDomain) BgpV4EviVxlanBroadcastDomain { - obj.setNil() +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) setMsg(msg *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth { + proto.Merge(obj.obj, msg) return obj } -type marshalbgpV4EviVxlanBroadcastDomain struct { - obj *bgpV4EviVxlanBroadcastDomain +type marshalbgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth struct { + obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth } -type marshalBgpV4EviVxlanBroadcastDomain interface { - // ToProto marshals BgpV4EviVxlanBroadcastDomain to protobuf object *otg.BgpV4EviVxlanBroadcastDomain - ToProto() (*otg.BgpV4EviVxlanBroadcastDomain, error) - // ToPbText marshals BgpV4EviVxlanBroadcastDomain to protobuf text +type marshalBgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth interface { + // ToProto marshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth to protobuf object *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + ToProto() (*otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth, error) + // ToPbText marshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpV4EviVxlanBroadcastDomain to YAML text + // ToYaml marshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth to YAML text ToYaml() (string, error) - // ToJson marshals BgpV4EviVxlanBroadcastDomain to JSON text + // ToJson marshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth to JSON text ToJson() (string, error) } -type unMarshalbgpV4EviVxlanBroadcastDomain struct { - obj *bgpV4EviVxlanBroadcastDomain +type unMarshalbgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth struct { + obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth } -type unMarshalBgpV4EviVxlanBroadcastDomain interface { - // FromProto unmarshals BgpV4EviVxlanBroadcastDomain from protobuf object *otg.BgpV4EviVxlanBroadcastDomain - FromProto(msg *otg.BgpV4EviVxlanBroadcastDomain) (BgpV4EviVxlanBroadcastDomain, error) - // FromPbText unmarshals BgpV4EviVxlanBroadcastDomain from protobuf text +type unMarshalBgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth interface { + // FromProto unmarshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth from protobuf object *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + FromProto(msg *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) (BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth, error) + // FromPbText unmarshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpV4EviVxlanBroadcastDomain from YAML text + // FromYaml unmarshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth from YAML text FromYaml(value string) error - // FromJson unmarshals BgpV4EviVxlanBroadcastDomain from JSON text + // FromJson unmarshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth from JSON text FromJson(value string) error } -func (obj *bgpV4EviVxlanBroadcastDomain) Marshal() marshalBgpV4EviVxlanBroadcastDomain { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Marshal() marshalBgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth { if obj.marshaller == nil { - obj.marshaller = &marshalbgpV4EviVxlanBroadcastDomain{obj: obj} + obj.marshaller = &marshalbgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth{obj: obj} } return obj.marshaller } -func (obj *bgpV4EviVxlanBroadcastDomain) Unmarshal() unMarshalBgpV4EviVxlanBroadcastDomain { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Unmarshal() unMarshalBgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpV4EviVxlanBroadcastDomain{obj: obj} + obj.unMarshaller = &unMarshalbgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpV4EviVxlanBroadcastDomain) ToProto() (*otg.BgpV4EviVxlanBroadcastDomain, error) { +func (m *marshalbgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) ToProto() (*otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -338706,7 +350981,7 @@ func (m *marshalbgpV4EviVxlanBroadcastDomain) ToProto() (*otg.BgpV4EviVxlanBroad return m.obj.msg(), nil } -func (m *unMarshalbgpV4EviVxlanBroadcastDomain) FromProto(msg *otg.BgpV4EviVxlanBroadcastDomain) (BgpV4EviVxlanBroadcastDomain, error) { +func (m *unMarshalbgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) FromProto(msg *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) (BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -338715,7 +350990,7 @@ func (m *unMarshalbgpV4EviVxlanBroadcastDomain) FromProto(msg *otg.BgpV4EviVxlan return newObj, nil } -func (m *marshalbgpV4EviVxlanBroadcastDomain) ToPbText() (string, error) { +func (m *marshalbgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -338727,12 +351002,12 @@ func (m *marshalbgpV4EviVxlanBroadcastDomain) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalbgpV4EviVxlanBroadcastDomain) FromPbText(value string) error { +func (m *unMarshalbgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - m.obj.setNil() + vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -338740,7 +351015,7 @@ func (m *unMarshalbgpV4EviVxlanBroadcastDomain) FromPbText(value string) error { return retObj } -func (m *marshalbgpV4EviVxlanBroadcastDomain) ToYaml() (string, error) { +func (m *marshalbgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -338761,7 +351036,7 @@ func (m *marshalbgpV4EviVxlanBroadcastDomain) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalbgpV4EviVxlanBroadcastDomain) FromYaml(value string) error { +func (m *unMarshalbgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) FromYaml(value string) error { if value == "" { value = "{}" } @@ -338778,7 +351053,7 @@ func (m *unMarshalbgpV4EviVxlanBroadcastDomain) FromYaml(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - m.obj.setNil() + vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -338786,7 +351061,7 @@ func (m *unMarshalbgpV4EviVxlanBroadcastDomain) FromYaml(value string) error { return nil } -func (m *marshalbgpV4EviVxlanBroadcastDomain) ToJson() (string, error) { +func (m *marshalbgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -338804,7 +351079,7 @@ func (m *marshalbgpV4EviVxlanBroadcastDomain) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalbgpV4EviVxlanBroadcastDomain) FromJson(value string) error { +func (m *unMarshalbgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -338817,7 +351092,7 @@ func (m *unMarshalbgpV4EviVxlanBroadcastDomain) FromJson(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - m.obj.setNil() + err := m.obj.validateToAndFrom() if err != nil { return err @@ -338825,19 +351100,19 @@ func (m *unMarshalbgpV4EviVxlanBroadcastDomain) FromJson(value string) error { return nil } -func (obj *bgpV4EviVxlanBroadcastDomain) validateToAndFrom() error { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpV4EviVxlanBroadcastDomain) validate() error { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpV4EviVxlanBroadcastDomain) String() string { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -338845,12 +351120,12 @@ func (obj *bgpV4EviVxlanBroadcastDomain) String() string { return str } -func (obj *bgpV4EviVxlanBroadcastDomain) Clone() (BgpV4EviVxlanBroadcastDomain, error) { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Clone() (BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpV4EviVxlanBroadcastDomain() + newObj := NewBgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -338862,286 +351137,193 @@ func (obj *bgpV4EviVxlanBroadcastDomain) Clone() (BgpV4EviVxlanBroadcastDomain, return newObj, nil } -func (obj *bgpV4EviVxlanBroadcastDomain) setNil() { - obj.cmacIpRangeHolder = nil - obj.validationErrors = nil - obj.warnings = nil - obj.constraints = make(map[string]map[string]Constraints) -} - -// BgpV4EviVxlanBroadcastDomain is configuration for Broadcast Domains per EVI. -type BgpV4EviVxlanBroadcastDomain interface { +// BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth is the Link Bandwidth Extended Community attribute is defined in draft-ietf-idr-link-bandwidth. It is sent with sub-type as 0x04. +type BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth interface { Validation - // msg marshals BgpV4EviVxlanBroadcastDomain to protobuf object *otg.BgpV4EviVxlanBroadcastDomain + // msg marshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth to protobuf object *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth // and doesn't set defaults - msg() *otg.BgpV4EviVxlanBroadcastDomain - // setMsg unmarshals BgpV4EviVxlanBroadcastDomain from protobuf object *otg.BgpV4EviVxlanBroadcastDomain + msg() *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + // setMsg unmarshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth from protobuf object *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth // and doesn't set defaults - setMsg(*otg.BgpV4EviVxlanBroadcastDomain) BgpV4EviVxlanBroadcastDomain + setMsg(*otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth // provides marshal interface - Marshal() marshalBgpV4EviVxlanBroadcastDomain + Marshal() marshalBgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth // provides unmarshal interface - Unmarshal() unMarshalBgpV4EviVxlanBroadcastDomain - // validate validates BgpV4EviVxlanBroadcastDomain + Unmarshal() unMarshalBgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + // validate validates BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth validate() error // A stringer function String() string // Clones the object - Clone() (BgpV4EviVxlanBroadcastDomain, error) + Clone() (BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // CmacIpRange returns BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIterIter, set in BgpV4EviVxlanBroadcastDomain - CmacIpRange() BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter - // EthernetTagId returns uint32, set in BgpV4EviVxlanBroadcastDomain. - EthernetTagId() uint32 - // SetEthernetTagId assigns uint32 provided by user to BgpV4EviVxlanBroadcastDomain - SetEthernetTagId(value uint32) BgpV4EviVxlanBroadcastDomain - // HasEthernetTagId checks if EthernetTagId has been set in BgpV4EviVxlanBroadcastDomain - HasEthernetTagId() bool - // VlanAwareService returns bool, set in BgpV4EviVxlanBroadcastDomain. - VlanAwareService() bool - // SetVlanAwareService assigns bool provided by user to BgpV4EviVxlanBroadcastDomain - SetVlanAwareService(value bool) BgpV4EviVxlanBroadcastDomain - // HasVlanAwareService checks if VlanAwareService has been set in BgpV4EviVxlanBroadcastDomain - HasVlanAwareService() bool - setNil() -} - -// This contains the list of Customer MAC/IP Ranges to be configured per Broadcast Domain. -// -// Advertises following route - -// Type 2 - MAC/IP Advertisement Route. -// CmacIpRange returns a []BgpCMacIpRange -func (obj *bgpV4EviVxlanBroadcastDomain) CmacIpRange() BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { - if len(obj.obj.CmacIpRange) == 0 { - obj.obj.CmacIpRange = []*otg.BgpCMacIpRange{} - } - if obj.cmacIpRangeHolder == nil { - obj.cmacIpRangeHolder = newBgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter(&obj.obj.CmacIpRange).setMsg(obj) - } - return obj.cmacIpRangeHolder -} - -type bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter struct { - obj *bgpV4EviVxlanBroadcastDomain - bgpCMacIpRangeSlice []BgpCMacIpRange - fieldPtr *[]*otg.BgpCMacIpRange -} - -func newBgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter(ptr *[]*otg.BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { - return &bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter{fieldPtr: ptr} -} - -type BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter interface { - setMsg(*bgpV4EviVxlanBroadcastDomain) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter - Items() []BgpCMacIpRange - Add() BgpCMacIpRange - Append(items ...BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter - Set(index int, newObj BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter - Clear() BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter - clearHolderSlice() BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter - appendHolderSlice(item BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter -} - -func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) setMsg(msg *bgpV4EviVxlanBroadcastDomain) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { - obj.clearHolderSlice() - for _, val := range *obj.fieldPtr { - obj.appendHolderSlice(&bgpCMacIpRange{obj: val}) - } - obj.obj = msg - return obj -} - -func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) Items() []BgpCMacIpRange { - return obj.bgpCMacIpRangeSlice -} - -func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) Add() BgpCMacIpRange { - newObj := &otg.BgpCMacIpRange{} - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - newLibObj := &bgpCMacIpRange{obj: newObj} - newLibObj.setDefault() - obj.bgpCMacIpRangeSlice = append(obj.bgpCMacIpRangeSlice, newLibObj) - return newLibObj -} - -func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) Append(items ...BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { - for _, item := range items { - newObj := item.msg() - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - obj.bgpCMacIpRangeSlice = append(obj.bgpCMacIpRangeSlice, item) - } - return obj -} - -func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) Set(index int, newObj BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { - (*obj.fieldPtr)[index] = newObj.msg() - obj.bgpCMacIpRangeSlice[index] = newObj - return obj -} -func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) Clear() BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { - if len(*obj.fieldPtr) > 0 { - *obj.fieldPtr = []*otg.BgpCMacIpRange{} - obj.bgpCMacIpRangeSlice = []BgpCMacIpRange{} - } - return obj -} -func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) clearHolderSlice() BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { - if len(obj.bgpCMacIpRangeSlice) > 0 { - obj.bgpCMacIpRangeSlice = []BgpCMacIpRange{} - } - return obj -} -func (obj *bgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter) appendHolderSlice(item BgpCMacIpRange) BgpV4EviVxlanBroadcastDomainBgpCMacIpRangeIter { - obj.bgpCMacIpRangeSlice = append(obj.bgpCMacIpRangeSlice, item) - return obj + // Global2ByteAs returns uint32, set in BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth. + Global2ByteAs() uint32 + // SetGlobal2ByteAs assigns uint32 provided by user to BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + SetGlobal2ByteAs(value uint32) BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + // HasGlobal2ByteAs checks if Global2ByteAs has been set in BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + HasGlobal2ByteAs() bool + // Bandwidth returns float32, set in BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth. + Bandwidth() float32 + // SetBandwidth assigns float32 provided by user to BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + SetBandwidth(value float32) BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + // HasBandwidth checks if Bandwidth has been set in BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + HasBandwidth() bool } -// The Ethernet Tag ID of the Broadcast Domain. -// EthernetTagId returns a uint32 -func (obj *bgpV4EviVxlanBroadcastDomain) EthernetTagId() uint32 { +// The value of the Global Administrator subfield should represent the Autonomous System of the router that attaches the Link Bandwidth Community. If four octet AS numbering scheme is used, AS_TRANS (23456) should be used. +// Global2ByteAs returns a uint32 +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Global2ByteAs() uint32 { - return *obj.obj.EthernetTagId + return *obj.obj.Global_2ByteAs } -// The Ethernet Tag ID of the Broadcast Domain. -// EthernetTagId returns a uint32 -func (obj *bgpV4EviVxlanBroadcastDomain) HasEthernetTagId() bool { - return obj.obj.EthernetTagId != nil +// The value of the Global Administrator subfield should represent the Autonomous System of the router that attaches the Link Bandwidth Community. If four octet AS numbering scheme is used, AS_TRANS (23456) should be used. +// Global2ByteAs returns a uint32 +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) HasGlobal2ByteAs() bool { + return obj.obj.Global_2ByteAs != nil } -// The Ethernet Tag ID of the Broadcast Domain. -// SetEthernetTagId sets the uint32 value in the BgpV4EviVxlanBroadcastDomain object -func (obj *bgpV4EviVxlanBroadcastDomain) SetEthernetTagId(value uint32) BgpV4EviVxlanBroadcastDomain { +// The value of the Global Administrator subfield should represent the Autonomous System of the router that attaches the Link Bandwidth Community. If four octet AS numbering scheme is used, AS_TRANS (23456) should be used. +// SetGlobal2ByteAs sets the uint32 value in the BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth object +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) SetGlobal2ByteAs(value uint32) BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth { - obj.obj.EthernetTagId = &value + obj.obj.Global_2ByteAs = &value return obj } -// VLAN-Aware service to be enabled or disabled. -// VlanAwareService returns a bool -func (obj *bgpV4EviVxlanBroadcastDomain) VlanAwareService() bool { +// Bandwidth of the link in bytes per second. ( 1 Kbps is 1000 bytes per second and 1 Mbps is 1000 Kbps per second ) +// Bandwidth returns a float32 +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Bandwidth() float32 { - return *obj.obj.VlanAwareService + return *obj.obj.Bandwidth } -// VLAN-Aware service to be enabled or disabled. -// VlanAwareService returns a bool -func (obj *bgpV4EviVxlanBroadcastDomain) HasVlanAwareService() bool { - return obj.obj.VlanAwareService != nil +// Bandwidth of the link in bytes per second. ( 1 Kbps is 1000 bytes per second and 1 Mbps is 1000 Kbps per second ) +// Bandwidth returns a float32 +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) HasBandwidth() bool { + return obj.obj.Bandwidth != nil } -// VLAN-Aware service to be enabled or disabled. -// SetVlanAwareService sets the bool value in the BgpV4EviVxlanBroadcastDomain object -func (obj *bgpV4EviVxlanBroadcastDomain) SetVlanAwareService(value bool) BgpV4EviVxlanBroadcastDomain { +// Bandwidth of the link in bytes per second. ( 1 Kbps is 1000 bytes per second and 1 Mbps is 1000 Kbps per second ) +// SetBandwidth sets the float32 value in the BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth object +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) SetBandwidth(value float32) BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth { - obj.obj.VlanAwareService = &value + obj.obj.Bandwidth = &value return obj } -func (obj *bgpV4EviVxlanBroadcastDomain) validateObj(vObj *validation, set_default bool) { +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if len(obj.obj.CmacIpRange) != 0 { + if obj.obj.Global_2ByteAs != nil { - if set_default { - obj.CmacIpRange().clearHolderSlice() - for _, item := range obj.obj.CmacIpRange { - obj.CmacIpRange().appendHolderSlice(&bgpCMacIpRange{obj: item}) - } - } - for _, item := range obj.CmacIpRange().Items() { - item.validateObj(vObj, set_default) + if *obj.obj.Global_2ByteAs > 65535 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth.Global_2ByteAs <= 65535 but Got %d", *obj.obj.Global_2ByteAs)) } } } -func (obj *bgpV4EviVxlanBroadcastDomain) setDefault() { - if obj.obj.EthernetTagId == nil { - obj.SetEthernetTagId(0) +func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) setDefault() { + if obj.obj.Global_2ByteAs == nil { + obj.SetGlobal2ByteAs(100) } - if obj.obj.VlanAwareService == nil { - obj.SetVlanAwareService(false) + if obj.obj.Bandwidth == nil { + obj.SetBandwidth(0) } } -// ***** BgpRouteDistinguisher ***** -type bgpRouteDistinguisher struct { +// ***** BgpSrteSegment ***** +type bgpSrteSegment struct { validation - obj *otg.BgpRouteDistinguisher - marshaller marshalBgpRouteDistinguisher - unMarshaller unMarshalBgpRouteDistinguisher + obj *otg.BgpSrteSegment + marshaller marshalBgpSrteSegment + unMarshaller unMarshalBgpSrteSegment + typeAHolder BgpSrteSegmentATypeSubTlv + typeBHolder BgpSrteSegmentBTypeSubTlv + typeCHolder BgpSrteSegmentCTypeSubTlv + typeDHolder BgpSrteSegmentDTypeSubTlv + typeEHolder BgpSrteSegmentETypeSubTlv + typeFHolder BgpSrteSegmentFTypeSubTlv + typeGHolder BgpSrteSegmentGTypeSubTlv + typeHHolder BgpSrteSegmentHTypeSubTlv + typeIHolder BgpSrteSegmentITypeSubTlv + typeJHolder BgpSrteSegmentJTypeSubTlv + typeKHolder BgpSrteSegmentKTypeSubTlv } -func NewBgpRouteDistinguisher() BgpRouteDistinguisher { - obj := bgpRouteDistinguisher{obj: &otg.BgpRouteDistinguisher{}} +func NewBgpSrteSegment() BgpSrteSegment { + obj := bgpSrteSegment{obj: &otg.BgpSrteSegment{}} obj.setDefault() return &obj } -func (obj *bgpRouteDistinguisher) msg() *otg.BgpRouteDistinguisher { +func (obj *bgpSrteSegment) msg() *otg.BgpSrteSegment { return obj.obj } -func (obj *bgpRouteDistinguisher) setMsg(msg *otg.BgpRouteDistinguisher) BgpRouteDistinguisher { - +func (obj *bgpSrteSegment) setMsg(msg *otg.BgpSrteSegment) BgpSrteSegment { + obj.setNil() proto.Merge(obj.obj, msg) return obj } -type marshalbgpRouteDistinguisher struct { - obj *bgpRouteDistinguisher +type marshalbgpSrteSegment struct { + obj *bgpSrteSegment } -type marshalBgpRouteDistinguisher interface { - // ToProto marshals BgpRouteDistinguisher to protobuf object *otg.BgpRouteDistinguisher - ToProto() (*otg.BgpRouteDistinguisher, error) - // ToPbText marshals BgpRouteDistinguisher to protobuf text +type marshalBgpSrteSegment interface { + // ToProto marshals BgpSrteSegment to protobuf object *otg.BgpSrteSegment + ToProto() (*otg.BgpSrteSegment, error) + // ToPbText marshals BgpSrteSegment to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpRouteDistinguisher to YAML text + // ToYaml marshals BgpSrteSegment to YAML text ToYaml() (string, error) - // ToJson marshals BgpRouteDistinguisher to JSON text + // ToJson marshals BgpSrteSegment to JSON text ToJson() (string, error) } -type unMarshalbgpRouteDistinguisher struct { - obj *bgpRouteDistinguisher +type unMarshalbgpSrteSegment struct { + obj *bgpSrteSegment } -type unMarshalBgpRouteDistinguisher interface { - // FromProto unmarshals BgpRouteDistinguisher from protobuf object *otg.BgpRouteDistinguisher - FromProto(msg *otg.BgpRouteDistinguisher) (BgpRouteDistinguisher, error) - // FromPbText unmarshals BgpRouteDistinguisher from protobuf text +type unMarshalBgpSrteSegment interface { + // FromProto unmarshals BgpSrteSegment from protobuf object *otg.BgpSrteSegment + FromProto(msg *otg.BgpSrteSegment) (BgpSrteSegment, error) + // FromPbText unmarshals BgpSrteSegment from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpRouteDistinguisher from YAML text + // FromYaml unmarshals BgpSrteSegment from YAML text FromYaml(value string) error - // FromJson unmarshals BgpRouteDistinguisher from JSON text + // FromJson unmarshals BgpSrteSegment from JSON text FromJson(value string) error } -func (obj *bgpRouteDistinguisher) Marshal() marshalBgpRouteDistinguisher { +func (obj *bgpSrteSegment) Marshal() marshalBgpSrteSegment { if obj.marshaller == nil { - obj.marshaller = &marshalbgpRouteDistinguisher{obj: obj} + obj.marshaller = &marshalbgpSrteSegment{obj: obj} } return obj.marshaller } -func (obj *bgpRouteDistinguisher) Unmarshal() unMarshalBgpRouteDistinguisher { +func (obj *bgpSrteSegment) Unmarshal() unMarshalBgpSrteSegment { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpRouteDistinguisher{obj: obj} + obj.unMarshaller = &unMarshalbgpSrteSegment{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpRouteDistinguisher) ToProto() (*otg.BgpRouteDistinguisher, error) { +func (m *marshalbgpSrteSegment) ToProto() (*otg.BgpSrteSegment, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -339149,7 +351331,7 @@ func (m *marshalbgpRouteDistinguisher) ToProto() (*otg.BgpRouteDistinguisher, er return m.obj.msg(), nil } -func (m *unMarshalbgpRouteDistinguisher) FromProto(msg *otg.BgpRouteDistinguisher) (BgpRouteDistinguisher, error) { +func (m *unMarshalbgpSrteSegment) FromProto(msg *otg.BgpSrteSegment) (BgpSrteSegment, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -339158,7 +351340,7 @@ func (m *unMarshalbgpRouteDistinguisher) FromProto(msg *otg.BgpRouteDistinguishe return newObj, nil } -func (m *marshalbgpRouteDistinguisher) ToPbText() (string, error) { +func (m *marshalbgpSrteSegment) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -339170,12 +351352,12 @@ func (m *marshalbgpRouteDistinguisher) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalbgpRouteDistinguisher) FromPbText(value string) error { +func (m *unMarshalbgpSrteSegment) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -339183,7 +351365,7 @@ func (m *unMarshalbgpRouteDistinguisher) FromPbText(value string) error { return retObj } -func (m *marshalbgpRouteDistinguisher) ToYaml() (string, error) { +func (m *marshalbgpSrteSegment) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -339204,7 +351386,7 @@ func (m *marshalbgpRouteDistinguisher) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalbgpRouteDistinguisher) FromYaml(value string) error { +func (m *unMarshalbgpSrteSegment) FromYaml(value string) error { if value == "" { value = "{}" } @@ -339221,7 +351403,7 @@ func (m *unMarshalbgpRouteDistinguisher) FromYaml(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -339229,7 +351411,7 @@ func (m *unMarshalbgpRouteDistinguisher) FromYaml(value string) error { return nil } -func (m *marshalbgpRouteDistinguisher) ToJson() (string, error) { +func (m *marshalbgpSrteSegment) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -339247,7 +351429,7 @@ func (m *marshalbgpRouteDistinguisher) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalbgpRouteDistinguisher) FromJson(value string) error { +func (m *unMarshalbgpSrteSegment) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -339260,7 +351442,7 @@ func (m *unMarshalbgpRouteDistinguisher) FromJson(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() err := m.obj.validateToAndFrom() if err != nil { return err @@ -339268,19 +351450,19 @@ func (m *unMarshalbgpRouteDistinguisher) FromJson(value string) error { return nil } -func (obj *bgpRouteDistinguisher) validateToAndFrom() error { +func (obj *bgpSrteSegment) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpRouteDistinguisher) validate() error { +func (obj *bgpSrteSegment) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpRouteDistinguisher) String() string { +func (obj *bgpSrteSegment) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -339288,12 +351470,12 @@ func (obj *bgpRouteDistinguisher) String() string { return str } -func (obj *bgpRouteDistinguisher) Clone() (BgpRouteDistinguisher, error) { +func (obj *bgpSrteSegment) Clone() (BgpSrteSegment, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpRouteDistinguisher() + newObj := NewBgpSrteSegment() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -339305,558 +351487,690 @@ func (obj *bgpRouteDistinguisher) Clone() (BgpRouteDistinguisher, error) { return newObj, nil } -// BgpRouteDistinguisher is bGP Route Distinguisher. -type BgpRouteDistinguisher interface { +func (obj *bgpSrteSegment) setNil() { + obj.typeAHolder = nil + obj.typeBHolder = nil + obj.typeCHolder = nil + obj.typeDHolder = nil + obj.typeEHolder = nil + obj.typeFHolder = nil + obj.typeGHolder = nil + obj.typeHHolder = nil + obj.typeIHolder = nil + obj.typeJHolder = nil + obj.typeKHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// BgpSrteSegment is a Segment sub-TLV describes a single segment in a segment list i.e., a single element of the explicit path. The Segment sub-TLVs are optional. +type BgpSrteSegment interface { Validation - // msg marshals BgpRouteDistinguisher to protobuf object *otg.BgpRouteDistinguisher + // msg marshals BgpSrteSegment to protobuf object *otg.BgpSrteSegment // and doesn't set defaults - msg() *otg.BgpRouteDistinguisher - // setMsg unmarshals BgpRouteDistinguisher from protobuf object *otg.BgpRouteDistinguisher + msg() *otg.BgpSrteSegment + // setMsg unmarshals BgpSrteSegment from protobuf object *otg.BgpSrteSegment // and doesn't set defaults - setMsg(*otg.BgpRouteDistinguisher) BgpRouteDistinguisher + setMsg(*otg.BgpSrteSegment) BgpSrteSegment // provides marshal interface - Marshal() marshalBgpRouteDistinguisher + Marshal() marshalBgpSrteSegment // provides unmarshal interface - Unmarshal() unMarshalBgpRouteDistinguisher - // validate validates BgpRouteDistinguisher + Unmarshal() unMarshalBgpSrteSegment + // validate validates BgpSrteSegment validate() error // A stringer function String() string // Clones the object - Clone() (BgpRouteDistinguisher, error) + Clone() (BgpSrteSegment, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // RdType returns BgpRouteDistinguisherRdTypeEnum, set in BgpRouteDistinguisher - RdType() BgpRouteDistinguisherRdTypeEnum - // SetRdType assigns BgpRouteDistinguisherRdTypeEnum provided by user to BgpRouteDistinguisher - SetRdType(value BgpRouteDistinguisherRdTypeEnum) BgpRouteDistinguisher - // HasRdType checks if RdType has been set in BgpRouteDistinguisher - HasRdType() bool - // AutoConfigRdIpAddr returns bool, set in BgpRouteDistinguisher. - AutoConfigRdIpAddr() bool - // SetAutoConfigRdIpAddr assigns bool provided by user to BgpRouteDistinguisher - SetAutoConfigRdIpAddr(value bool) BgpRouteDistinguisher - // HasAutoConfigRdIpAddr checks if AutoConfigRdIpAddr has been set in BgpRouteDistinguisher - HasAutoConfigRdIpAddr() bool - // RdValue returns string, set in BgpRouteDistinguisher. - RdValue() string - // SetRdValue assigns string provided by user to BgpRouteDistinguisher - SetRdValue(value string) BgpRouteDistinguisher - // HasRdValue checks if RdValue has been set in BgpRouteDistinguisher - HasRdValue() bool + // SegmentType returns BgpSrteSegmentSegmentTypeEnum, set in BgpSrteSegment + SegmentType() BgpSrteSegmentSegmentTypeEnum + // SetSegmentType assigns BgpSrteSegmentSegmentTypeEnum provided by user to BgpSrteSegment + SetSegmentType(value BgpSrteSegmentSegmentTypeEnum) BgpSrteSegment + // TypeA returns BgpSrteSegmentATypeSubTlv, set in BgpSrteSegment. + // BgpSrteSegmentATypeSubTlv is type A: SID only, in the form of MPLS Label. + TypeA() BgpSrteSegmentATypeSubTlv + // SetTypeA assigns BgpSrteSegmentATypeSubTlv provided by user to BgpSrteSegment. + // BgpSrteSegmentATypeSubTlv is type A: SID only, in the form of MPLS Label. + SetTypeA(value BgpSrteSegmentATypeSubTlv) BgpSrteSegment + // HasTypeA checks if TypeA has been set in BgpSrteSegment + HasTypeA() bool + // TypeB returns BgpSrteSegmentBTypeSubTlv, set in BgpSrteSegment. + // BgpSrteSegmentBTypeSubTlv is type B: SID only, in the form of IPv6 address. + TypeB() BgpSrteSegmentBTypeSubTlv + // SetTypeB assigns BgpSrteSegmentBTypeSubTlv provided by user to BgpSrteSegment. + // BgpSrteSegmentBTypeSubTlv is type B: SID only, in the form of IPv6 address. + SetTypeB(value BgpSrteSegmentBTypeSubTlv) BgpSrteSegment + // HasTypeB checks if TypeB has been set in BgpSrteSegment + HasTypeB() bool + // TypeC returns BgpSrteSegmentCTypeSubTlv, set in BgpSrteSegment. + // BgpSrteSegmentCTypeSubTlv is type C: IPv4 Node Address with optional SID. + TypeC() BgpSrteSegmentCTypeSubTlv + // SetTypeC assigns BgpSrteSegmentCTypeSubTlv provided by user to BgpSrteSegment. + // BgpSrteSegmentCTypeSubTlv is type C: IPv4 Node Address with optional SID. + SetTypeC(value BgpSrteSegmentCTypeSubTlv) BgpSrteSegment + // HasTypeC checks if TypeC has been set in BgpSrteSegment + HasTypeC() bool + // TypeD returns BgpSrteSegmentDTypeSubTlv, set in BgpSrteSegment. + // BgpSrteSegmentDTypeSubTlv is type D: IPv6 Node Address with optional SID for SR MPLS. + TypeD() BgpSrteSegmentDTypeSubTlv + // SetTypeD assigns BgpSrteSegmentDTypeSubTlv provided by user to BgpSrteSegment. + // BgpSrteSegmentDTypeSubTlv is type D: IPv6 Node Address with optional SID for SR MPLS. + SetTypeD(value BgpSrteSegmentDTypeSubTlv) BgpSrteSegment + // HasTypeD checks if TypeD has been set in BgpSrteSegment + HasTypeD() bool + // TypeE returns BgpSrteSegmentETypeSubTlv, set in BgpSrteSegment. + // BgpSrteSegmentETypeSubTlv is type E: IPv4 Address and Local Interface ID with optional SID + TypeE() BgpSrteSegmentETypeSubTlv + // SetTypeE assigns BgpSrteSegmentETypeSubTlv provided by user to BgpSrteSegment. + // BgpSrteSegmentETypeSubTlv is type E: IPv4 Address and Local Interface ID with optional SID + SetTypeE(value BgpSrteSegmentETypeSubTlv) BgpSrteSegment + // HasTypeE checks if TypeE has been set in BgpSrteSegment + HasTypeE() bool + // TypeF returns BgpSrteSegmentFTypeSubTlv, set in BgpSrteSegment. + // BgpSrteSegmentFTypeSubTlv is type F: IPv4 Local and Remote addresses with optional SID. + TypeF() BgpSrteSegmentFTypeSubTlv + // SetTypeF assigns BgpSrteSegmentFTypeSubTlv provided by user to BgpSrteSegment. + // BgpSrteSegmentFTypeSubTlv is type F: IPv4 Local and Remote addresses with optional SID. + SetTypeF(value BgpSrteSegmentFTypeSubTlv) BgpSrteSegment + // HasTypeF checks if TypeF has been set in BgpSrteSegment + HasTypeF() bool + // TypeG returns BgpSrteSegmentGTypeSubTlv, set in BgpSrteSegment. + // BgpSrteSegmentGTypeSubTlv is type G: IPv6 Address, Interface ID for local and remote pair with optional SID for SR MPLS. + TypeG() BgpSrteSegmentGTypeSubTlv + // SetTypeG assigns BgpSrteSegmentGTypeSubTlv provided by user to BgpSrteSegment. + // BgpSrteSegmentGTypeSubTlv is type G: IPv6 Address, Interface ID for local and remote pair with optional SID for SR MPLS. + SetTypeG(value BgpSrteSegmentGTypeSubTlv) BgpSrteSegment + // HasTypeG checks if TypeG has been set in BgpSrteSegment + HasTypeG() bool + // TypeH returns BgpSrteSegmentHTypeSubTlv, set in BgpSrteSegment. + // BgpSrteSegmentHTypeSubTlv is type H: IPv6 Local and Remote addresses with optional SID for SR MPLS. + TypeH() BgpSrteSegmentHTypeSubTlv + // SetTypeH assigns BgpSrteSegmentHTypeSubTlv provided by user to BgpSrteSegment. + // BgpSrteSegmentHTypeSubTlv is type H: IPv6 Local and Remote addresses with optional SID for SR MPLS. + SetTypeH(value BgpSrteSegmentHTypeSubTlv) BgpSrteSegment + // HasTypeH checks if TypeH has been set in BgpSrteSegment + HasTypeH() bool + // TypeI returns BgpSrteSegmentITypeSubTlv, set in BgpSrteSegment. + // BgpSrteSegmentITypeSubTlv is type I: IPv6 Node Address with optional SRv6 SID. + TypeI() BgpSrteSegmentITypeSubTlv + // SetTypeI assigns BgpSrteSegmentITypeSubTlv provided by user to BgpSrteSegment. + // BgpSrteSegmentITypeSubTlv is type I: IPv6 Node Address with optional SRv6 SID. + SetTypeI(value BgpSrteSegmentITypeSubTlv) BgpSrteSegment + // HasTypeI checks if TypeI has been set in BgpSrteSegment + HasTypeI() bool + // TypeJ returns BgpSrteSegmentJTypeSubTlv, set in BgpSrteSegment. + // BgpSrteSegmentJTypeSubTlv is type J: IPv6 Address, Interface ID for local and remote pair for SRv6 with optional SID. + TypeJ() BgpSrteSegmentJTypeSubTlv + // SetTypeJ assigns BgpSrteSegmentJTypeSubTlv provided by user to BgpSrteSegment. + // BgpSrteSegmentJTypeSubTlv is type J: IPv6 Address, Interface ID for local and remote pair for SRv6 with optional SID. + SetTypeJ(value BgpSrteSegmentJTypeSubTlv) BgpSrteSegment + // HasTypeJ checks if TypeJ has been set in BgpSrteSegment + HasTypeJ() bool + // TypeK returns BgpSrteSegmentKTypeSubTlv, set in BgpSrteSegment. + // BgpSrteSegmentKTypeSubTlv is type K: IPv6 Local and Remote addresses for SRv6 with optional SID. + TypeK() BgpSrteSegmentKTypeSubTlv + // SetTypeK assigns BgpSrteSegmentKTypeSubTlv provided by user to BgpSrteSegment. + // BgpSrteSegmentKTypeSubTlv is type K: IPv6 Local and Remote addresses for SRv6 with optional SID. + SetTypeK(value BgpSrteSegmentKTypeSubTlv) BgpSrteSegment + // HasTypeK checks if TypeK has been set in BgpSrteSegment + HasTypeK() bool + // Name returns string, set in BgpSrteSegment. + Name() string + // SetName assigns string provided by user to BgpSrteSegment + SetName(value string) BgpSrteSegment + // Active returns bool, set in BgpSrteSegment. + Active() bool + // SetActive assigns bool provided by user to BgpSrteSegment + SetActive(value bool) BgpSrteSegment + // HasActive checks if Active has been set in BgpSrteSegment + HasActive() bool + setNil() } -type BgpRouteDistinguisherRdTypeEnum string +type BgpSrteSegmentSegmentTypeEnum string -// Enum of RdType on BgpRouteDistinguisher -var BgpRouteDistinguisherRdType = struct { - AS_2OCTET BgpRouteDistinguisherRdTypeEnum - IPV4_ADDRESS BgpRouteDistinguisherRdTypeEnum - AS_4OCTET BgpRouteDistinguisherRdTypeEnum +// Enum of SegmentType on BgpSrteSegment +var BgpSrteSegmentSegmentType = struct { + TYPE_A BgpSrteSegmentSegmentTypeEnum + TYPE_B BgpSrteSegmentSegmentTypeEnum + TYPE_C BgpSrteSegmentSegmentTypeEnum + TYPE_D BgpSrteSegmentSegmentTypeEnum + TYPE_E BgpSrteSegmentSegmentTypeEnum + TYPE_F BgpSrteSegmentSegmentTypeEnum + TYPE_G BgpSrteSegmentSegmentTypeEnum + TYPE_H BgpSrteSegmentSegmentTypeEnum + TYPE_I BgpSrteSegmentSegmentTypeEnum + TYPE_J BgpSrteSegmentSegmentTypeEnum + TYPE_K BgpSrteSegmentSegmentTypeEnum }{ - AS_2OCTET: BgpRouteDistinguisherRdTypeEnum("as_2octet"), - IPV4_ADDRESS: BgpRouteDistinguisherRdTypeEnum("ipv4_address"), - AS_4OCTET: BgpRouteDistinguisherRdTypeEnum("as_4octet"), -} - -func (obj *bgpRouteDistinguisher) RdType() BgpRouteDistinguisherRdTypeEnum { - return BgpRouteDistinguisherRdTypeEnum(obj.obj.RdType.Enum().String()) + TYPE_A: BgpSrteSegmentSegmentTypeEnum("type_a"), + TYPE_B: BgpSrteSegmentSegmentTypeEnum("type_b"), + TYPE_C: BgpSrteSegmentSegmentTypeEnum("type_c"), + TYPE_D: BgpSrteSegmentSegmentTypeEnum("type_d"), + TYPE_E: BgpSrteSegmentSegmentTypeEnum("type_e"), + TYPE_F: BgpSrteSegmentSegmentTypeEnum("type_f"), + TYPE_G: BgpSrteSegmentSegmentTypeEnum("type_g"), + TYPE_H: BgpSrteSegmentSegmentTypeEnum("type_h"), + TYPE_I: BgpSrteSegmentSegmentTypeEnum("type_i"), + TYPE_J: BgpSrteSegmentSegmentTypeEnum("type_j"), + TYPE_K: BgpSrteSegmentSegmentTypeEnum("type_k"), } -// Route Distinguisher Type field of 2 Byte. -// - as_2octet: Two-Octet AS Specific Extended Community (RFC 4360). -// - ipv4_address: IPv4 Address Specific Extended Community (RFC 4360). -// - as_4octet: 4-Octet AS Specific Extended Community (RFC 5668). -// RdType returns a string -func (obj *bgpRouteDistinguisher) HasRdType() bool { - return obj.obj.RdType != nil +func (obj *bgpSrteSegment) SegmentType() BgpSrteSegmentSegmentTypeEnum { + return BgpSrteSegmentSegmentTypeEnum(obj.obj.SegmentType.Enum().String()) } -func (obj *bgpRouteDistinguisher) SetRdType(value BgpRouteDistinguisherRdTypeEnum) BgpRouteDistinguisher { - intValue, ok := otg.BgpRouteDistinguisher_RdType_Enum_value[string(value)] +func (obj *bgpSrteSegment) SetSegmentType(value BgpSrteSegmentSegmentTypeEnum) BgpSrteSegment { + intValue, ok := otg.BgpSrteSegment_SegmentType_Enum_value[string(value)] if !ok { obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( - "%s is not a valid choice on BgpRouteDistinguisherRdTypeEnum", string(value))) + "%s is not a valid choice on BgpSrteSegmentSegmentTypeEnum", string(value))) return obj } - enumValue := otg.BgpRouteDistinguisher_RdType_Enum(intValue) - obj.obj.RdType = &enumValue + enumValue := otg.BgpSrteSegment_SegmentType_Enum(intValue) + obj.obj.SegmentType = &enumValue return obj } -// Allow to automatically configure RD IP address from local ip. -// AutoConfigRdIpAddr returns a bool -func (obj *bgpRouteDistinguisher) AutoConfigRdIpAddr() bool { +// description is TBD +// TypeA returns a BgpSrteSegmentATypeSubTlv +func (obj *bgpSrteSegment) TypeA() BgpSrteSegmentATypeSubTlv { + if obj.obj.TypeA == nil { + obj.obj.TypeA = NewBgpSrteSegmentATypeSubTlv().msg() + } + if obj.typeAHolder == nil { + obj.typeAHolder = &bgpSrteSegmentATypeSubTlv{obj: obj.obj.TypeA} + } + return obj.typeAHolder +} - return *obj.obj.AutoConfigRdIpAddr +// description is TBD +// TypeA returns a BgpSrteSegmentATypeSubTlv +func (obj *bgpSrteSegment) HasTypeA() bool { + return obj.obj.TypeA != nil +} + +// description is TBD +// SetTypeA sets the BgpSrteSegmentATypeSubTlv value in the BgpSrteSegment object +func (obj *bgpSrteSegment) SetTypeA(value BgpSrteSegmentATypeSubTlv) BgpSrteSegment { + obj.typeAHolder = nil + obj.obj.TypeA = value.msg() + + return obj } -// Allow to automatically configure RD IP address from local ip. -// AutoConfigRdIpAddr returns a bool -func (obj *bgpRouteDistinguisher) HasAutoConfigRdIpAddr() bool { - return obj.obj.AutoConfigRdIpAddr != nil +// description is TBD +// TypeB returns a BgpSrteSegmentBTypeSubTlv +func (obj *bgpSrteSegment) TypeB() BgpSrteSegmentBTypeSubTlv { + if obj.obj.TypeB == nil { + obj.obj.TypeB = NewBgpSrteSegmentBTypeSubTlv().msg() + } + if obj.typeBHolder == nil { + obj.typeBHolder = &bgpSrteSegmentBTypeSubTlv{obj: obj.obj.TypeB} + } + return obj.typeBHolder } -// Allow to automatically configure RD IP address from local ip. -// SetAutoConfigRdIpAddr sets the bool value in the BgpRouteDistinguisher object -func (obj *bgpRouteDistinguisher) SetAutoConfigRdIpAddr(value bool) BgpRouteDistinguisher { +// description is TBD +// TypeB returns a BgpSrteSegmentBTypeSubTlv +func (obj *bgpSrteSegment) HasTypeB() bool { + return obj.obj.TypeB != nil +} + +// description is TBD +// SetTypeB sets the BgpSrteSegmentBTypeSubTlv value in the BgpSrteSegment object +func (obj *bgpSrteSegment) SetTypeB(value BgpSrteSegmentBTypeSubTlv) BgpSrteSegment { + + obj.typeBHolder = nil + obj.obj.TypeB = value.msg() - obj.obj.AutoConfigRdIpAddr = &value return obj } -// Colon separated Extended Community value of 6 Bytes - "AS number: Value". Example - for the as_2octet or as_4octet "60005:100", for ipv4_address "1.1.1.1:100" -// RdValue returns a string -func (obj *bgpRouteDistinguisher) RdValue() string { +// description is TBD +// TypeC returns a BgpSrteSegmentCTypeSubTlv +func (obj *bgpSrteSegment) TypeC() BgpSrteSegmentCTypeSubTlv { + if obj.obj.TypeC == nil { + obj.obj.TypeC = NewBgpSrteSegmentCTypeSubTlv().msg() + } + if obj.typeCHolder == nil { + obj.typeCHolder = &bgpSrteSegmentCTypeSubTlv{obj: obj.obj.TypeC} + } + return obj.typeCHolder +} - return *obj.obj.RdValue +// description is TBD +// TypeC returns a BgpSrteSegmentCTypeSubTlv +func (obj *bgpSrteSegment) HasTypeC() bool { + return obj.obj.TypeC != nil +} + +// description is TBD +// SetTypeC sets the BgpSrteSegmentCTypeSubTlv value in the BgpSrteSegment object +func (obj *bgpSrteSegment) SetTypeC(value BgpSrteSegmentCTypeSubTlv) BgpSrteSegment { + + obj.typeCHolder = nil + obj.obj.TypeC = value.msg() + return obj } -// Colon separated Extended Community value of 6 Bytes - "AS number: Value". Example - for the as_2octet or as_4octet "60005:100", for ipv4_address "1.1.1.1:100" -// RdValue returns a string -func (obj *bgpRouteDistinguisher) HasRdValue() bool { - return obj.obj.RdValue != nil +// description is TBD +// TypeD returns a BgpSrteSegmentDTypeSubTlv +func (obj *bgpSrteSegment) TypeD() BgpSrteSegmentDTypeSubTlv { + if obj.obj.TypeD == nil { + obj.obj.TypeD = NewBgpSrteSegmentDTypeSubTlv().msg() + } + if obj.typeDHolder == nil { + obj.typeDHolder = &bgpSrteSegmentDTypeSubTlv{obj: obj.obj.TypeD} + } + return obj.typeDHolder +} + +// description is TBD +// TypeD returns a BgpSrteSegmentDTypeSubTlv +func (obj *bgpSrteSegment) HasTypeD() bool { + return obj.obj.TypeD != nil +} + +// description is TBD +// SetTypeD sets the BgpSrteSegmentDTypeSubTlv value in the BgpSrteSegment object +func (obj *bgpSrteSegment) SetTypeD(value BgpSrteSegmentDTypeSubTlv) BgpSrteSegment { + + obj.typeDHolder = nil + obj.obj.TypeD = value.msg() + + return obj +} + +// description is TBD +// TypeE returns a BgpSrteSegmentETypeSubTlv +func (obj *bgpSrteSegment) TypeE() BgpSrteSegmentETypeSubTlv { + if obj.obj.TypeE == nil { + obj.obj.TypeE = NewBgpSrteSegmentETypeSubTlv().msg() + } + if obj.typeEHolder == nil { + obj.typeEHolder = &bgpSrteSegmentETypeSubTlv{obj: obj.obj.TypeE} + } + return obj.typeEHolder +} + +// description is TBD +// TypeE returns a BgpSrteSegmentETypeSubTlv +func (obj *bgpSrteSegment) HasTypeE() bool { + return obj.obj.TypeE != nil +} + +// description is TBD +// SetTypeE sets the BgpSrteSegmentETypeSubTlv value in the BgpSrteSegment object +func (obj *bgpSrteSegment) SetTypeE(value BgpSrteSegmentETypeSubTlv) BgpSrteSegment { + + obj.typeEHolder = nil + obj.obj.TypeE = value.msg() + + return obj +} + +// description is TBD +// TypeF returns a BgpSrteSegmentFTypeSubTlv +func (obj *bgpSrteSegment) TypeF() BgpSrteSegmentFTypeSubTlv { + if obj.obj.TypeF == nil { + obj.obj.TypeF = NewBgpSrteSegmentFTypeSubTlv().msg() + } + if obj.typeFHolder == nil { + obj.typeFHolder = &bgpSrteSegmentFTypeSubTlv{obj: obj.obj.TypeF} + } + return obj.typeFHolder +} + +// description is TBD +// TypeF returns a BgpSrteSegmentFTypeSubTlv +func (obj *bgpSrteSegment) HasTypeF() bool { + return obj.obj.TypeF != nil +} + +// description is TBD +// SetTypeF sets the BgpSrteSegmentFTypeSubTlv value in the BgpSrteSegment object +func (obj *bgpSrteSegment) SetTypeF(value BgpSrteSegmentFTypeSubTlv) BgpSrteSegment { + + obj.typeFHolder = nil + obj.obj.TypeF = value.msg() + + return obj +} + +// description is TBD +// TypeG returns a BgpSrteSegmentGTypeSubTlv +func (obj *bgpSrteSegment) TypeG() BgpSrteSegmentGTypeSubTlv { + if obj.obj.TypeG == nil { + obj.obj.TypeG = NewBgpSrteSegmentGTypeSubTlv().msg() + } + if obj.typeGHolder == nil { + obj.typeGHolder = &bgpSrteSegmentGTypeSubTlv{obj: obj.obj.TypeG} + } + return obj.typeGHolder } -// Colon separated Extended Community value of 6 Bytes - "AS number: Value". Example - for the as_2octet or as_4octet "60005:100", for ipv4_address "1.1.1.1:100" -// SetRdValue sets the string value in the BgpRouteDistinguisher object -func (obj *bgpRouteDistinguisher) SetRdValue(value string) BgpRouteDistinguisher { +// description is TBD +// TypeG returns a BgpSrteSegmentGTypeSubTlv +func (obj *bgpSrteSegment) HasTypeG() bool { + return obj.obj.TypeG != nil +} + +// description is TBD +// SetTypeG sets the BgpSrteSegmentGTypeSubTlv value in the BgpSrteSegment object +func (obj *bgpSrteSegment) SetTypeG(value BgpSrteSegmentGTypeSubTlv) BgpSrteSegment { + + obj.typeGHolder = nil + obj.obj.TypeG = value.msg() + + return obj +} + +// description is TBD +// TypeH returns a BgpSrteSegmentHTypeSubTlv +func (obj *bgpSrteSegment) TypeH() BgpSrteSegmentHTypeSubTlv { + if obj.obj.TypeH == nil { + obj.obj.TypeH = NewBgpSrteSegmentHTypeSubTlv().msg() + } + if obj.typeHHolder == nil { + obj.typeHHolder = &bgpSrteSegmentHTypeSubTlv{obj: obj.obj.TypeH} + } + return obj.typeHHolder +} + +// description is TBD +// TypeH returns a BgpSrteSegmentHTypeSubTlv +func (obj *bgpSrteSegment) HasTypeH() bool { + return obj.obj.TypeH != nil +} + +// description is TBD +// SetTypeH sets the BgpSrteSegmentHTypeSubTlv value in the BgpSrteSegment object +func (obj *bgpSrteSegment) SetTypeH(value BgpSrteSegmentHTypeSubTlv) BgpSrteSegment { + + obj.typeHHolder = nil + obj.obj.TypeH = value.msg() + + return obj +} + +// description is TBD +// TypeI returns a BgpSrteSegmentITypeSubTlv +func (obj *bgpSrteSegment) TypeI() BgpSrteSegmentITypeSubTlv { + if obj.obj.TypeI == nil { + obj.obj.TypeI = NewBgpSrteSegmentITypeSubTlv().msg() + } + if obj.typeIHolder == nil { + obj.typeIHolder = &bgpSrteSegmentITypeSubTlv{obj: obj.obj.TypeI} + } + return obj.typeIHolder +} + +// description is TBD +// TypeI returns a BgpSrteSegmentITypeSubTlv +func (obj *bgpSrteSegment) HasTypeI() bool { + return obj.obj.TypeI != nil +} + +// description is TBD +// SetTypeI sets the BgpSrteSegmentITypeSubTlv value in the BgpSrteSegment object +func (obj *bgpSrteSegment) SetTypeI(value BgpSrteSegmentITypeSubTlv) BgpSrteSegment { + + obj.typeIHolder = nil + obj.obj.TypeI = value.msg() - obj.obj.RdValue = &value return obj } -func (obj *bgpRouteDistinguisher) validateObj(vObj *validation, set_default bool) { - if set_default { - obj.setDefault() +// description is TBD +// TypeJ returns a BgpSrteSegmentJTypeSubTlv +func (obj *bgpSrteSegment) TypeJ() BgpSrteSegmentJTypeSubTlv { + if obj.obj.TypeJ == nil { + obj.obj.TypeJ = NewBgpSrteSegmentJTypeSubTlv().msg() } + if obj.typeJHolder == nil { + obj.typeJHolder = &bgpSrteSegmentJTypeSubTlv{obj: obj.obj.TypeJ} + } + return obj.typeJHolder +} +// description is TBD +// TypeJ returns a BgpSrteSegmentJTypeSubTlv +func (obj *bgpSrteSegment) HasTypeJ() bool { + return obj.obj.TypeJ != nil } -func (obj *bgpRouteDistinguisher) setDefault() { - if obj.obj.RdType == nil { - obj.SetRdType(BgpRouteDistinguisherRdType.AS_2OCTET) +// description is TBD +// SetTypeJ sets the BgpSrteSegmentJTypeSubTlv value in the BgpSrteSegment object +func (obj *bgpSrteSegment) SetTypeJ(value BgpSrteSegmentJTypeSubTlv) BgpSrteSegment { - } - if obj.obj.AutoConfigRdIpAddr == nil { - obj.SetAutoConfigRdIpAddr(false) - } + obj.typeJHolder = nil + obj.obj.TypeJ = value.msg() + return obj } -// ***** BgpRouteTarget ***** -type bgpRouteTarget struct { - validation - obj *otg.BgpRouteTarget - marshaller marshalBgpRouteTarget - unMarshaller unMarshalBgpRouteTarget +// description is TBD +// TypeK returns a BgpSrteSegmentKTypeSubTlv +func (obj *bgpSrteSegment) TypeK() BgpSrteSegmentKTypeSubTlv { + if obj.obj.TypeK == nil { + obj.obj.TypeK = NewBgpSrteSegmentKTypeSubTlv().msg() + } + if obj.typeKHolder == nil { + obj.typeKHolder = &bgpSrteSegmentKTypeSubTlv{obj: obj.obj.TypeK} + } + return obj.typeKHolder } -func NewBgpRouteTarget() BgpRouteTarget { - obj := bgpRouteTarget{obj: &otg.BgpRouteTarget{}} - obj.setDefault() - return &obj +// description is TBD +// TypeK returns a BgpSrteSegmentKTypeSubTlv +func (obj *bgpSrteSegment) HasTypeK() bool { + return obj.obj.TypeK != nil } -func (obj *bgpRouteTarget) msg() *otg.BgpRouteTarget { - return obj.obj -} +// description is TBD +// SetTypeK sets the BgpSrteSegmentKTypeSubTlv value in the BgpSrteSegment object +func (obj *bgpSrteSegment) SetTypeK(value BgpSrteSegmentKTypeSubTlv) BgpSrteSegment { -func (obj *bgpRouteTarget) setMsg(msg *otg.BgpRouteTarget) BgpRouteTarget { + obj.typeKHolder = nil + obj.obj.TypeK = value.msg() - proto.Merge(obj.obj, msg) return obj } -type marshalbgpRouteTarget struct { - obj *bgpRouteTarget -} +// Globally unique name of an object. It also serves as the primary key for arrays of objects. +// Name returns a string +func (obj *bgpSrteSegment) Name() string { -type marshalBgpRouteTarget interface { - // ToProto marshals BgpRouteTarget to protobuf object *otg.BgpRouteTarget - ToProto() (*otg.BgpRouteTarget, error) - // ToPbText marshals BgpRouteTarget to protobuf text - ToPbText() (string, error) - // ToYaml marshals BgpRouteTarget to YAML text - ToYaml() (string, error) - // ToJson marshals BgpRouteTarget to JSON text - ToJson() (string, error) -} + return *obj.obj.Name -type unMarshalbgpRouteTarget struct { - obj *bgpRouteTarget } -type unMarshalBgpRouteTarget interface { - // FromProto unmarshals BgpRouteTarget from protobuf object *otg.BgpRouteTarget - FromProto(msg *otg.BgpRouteTarget) (BgpRouteTarget, error) - // FromPbText unmarshals BgpRouteTarget from protobuf text - FromPbText(value string) error - // FromYaml unmarshals BgpRouteTarget from YAML text - FromYaml(value string) error - // FromJson unmarshals BgpRouteTarget from JSON text - FromJson(value string) error -} +// Globally unique name of an object. It also serves as the primary key for arrays of objects. +// SetName sets the string value in the BgpSrteSegment object +func (obj *bgpSrteSegment) SetName(value string) BgpSrteSegment { -func (obj *bgpRouteTarget) Marshal() marshalBgpRouteTarget { - if obj.marshaller == nil { - obj.marshaller = &marshalbgpRouteTarget{obj: obj} - } - return obj.marshaller + obj.obj.Name = &value + return obj } -func (obj *bgpRouteTarget) Unmarshal() unMarshalBgpRouteTarget { - if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpRouteTarget{obj: obj} - } - return obj.unMarshaller -} +// If enabled means that this part of the configuration including any active 'children' nodes will be advertised to peer. If disabled, this means that though config is present, it is not taking any part of the test but can be activated at run-time to advertise just this part of the configuration to the peer. +// Active returns a bool +func (obj *bgpSrteSegment) Active() bool { -func (m *marshalbgpRouteTarget) ToProto() (*otg.BgpRouteTarget, error) { - err := m.obj.validateToAndFrom() - if err != nil { - return nil, err - } - return m.obj.msg(), nil -} + return *obj.obj.Active -func (m *unMarshalbgpRouteTarget) FromProto(msg *otg.BgpRouteTarget) (BgpRouteTarget, error) { - newObj := m.obj.setMsg(msg) - err := newObj.validateToAndFrom() - if err != nil { - return nil, err - } - return newObj, nil } -func (m *marshalbgpRouteTarget) ToPbText() (string, error) { - vErr := m.obj.validateToAndFrom() - if vErr != nil { - return "", vErr - } - protoMarshal, err := proto.Marshal(m.obj.msg()) - if err != nil { - return "", err - } - return string(protoMarshal), nil +// If enabled means that this part of the configuration including any active 'children' nodes will be advertised to peer. If disabled, this means that though config is present, it is not taking any part of the test but can be activated at run-time to advertise just this part of the configuration to the peer. +// Active returns a bool +func (obj *bgpSrteSegment) HasActive() bool { + return obj.obj.Active != nil } -func (m *unMarshalbgpRouteTarget) FromPbText(value string) error { - retObj := proto.Unmarshal([]byte(value), m.obj.msg()) - if retObj != nil { - return retObj - } +// If enabled means that this part of the configuration including any active 'children' nodes will be advertised to peer. If disabled, this means that though config is present, it is not taking any part of the test but can be activated at run-time to advertise just this part of the configuration to the peer. +// SetActive sets the bool value in the BgpSrteSegment object +func (obj *bgpSrteSegment) SetActive(value bool) BgpSrteSegment { - vErr := m.obj.validateToAndFrom() - if vErr != nil { - return vErr - } - return retObj + obj.obj.Active = &value + return obj } -func (m *marshalbgpRouteTarget) ToYaml() (string, error) { - vErr := m.obj.validateToAndFrom() - if vErr != nil { - return "", vErr - } - opts := protojson.MarshalOptions{ - UseProtoNames: true, - AllowPartial: true, - EmitUnpopulated: false, - } - data, err := opts.Marshal(m.obj.msg()) - if err != nil { - return "", err - } - data, err = yaml.JSONToYAML(data) - if err != nil { - return "", err +func (obj *bgpSrteSegment) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() } - return string(data), nil -} -func (m *unMarshalbgpRouteTarget) FromYaml(value string) error { - if value == "" { - value = "{}" - } - data, err := yaml.YAMLToJSON([]byte(value)) - if err != nil { - return err - } - opts := protojson.UnmarshalOptions{ - AllowPartial: true, - DiscardUnknown: false, - } - uError := opts.Unmarshal([]byte(data), m.obj.msg()) - if uError != nil { - return fmt.Errorf("unmarshal error %s", strings.Replace( - uError.Error(), "\u00a0", " ", -1)[7:]) + // SegmentType is required + if obj.obj.SegmentType == nil { + vObj.validationErrors = append(vObj.validationErrors, "SegmentType is required field on interface BgpSrteSegment") } - vErr := m.obj.validateToAndFrom() - if vErr != nil { - return vErr - } - return nil -} + if obj.obj.TypeA != nil { -func (m *marshalbgpRouteTarget) ToJson() (string, error) { - vErr := m.obj.validateToAndFrom() - if vErr != nil { - return "", vErr - } - opts := protojson.MarshalOptions{ - UseProtoNames: true, - AllowPartial: true, - EmitUnpopulated: false, - Indent: " ", - } - data, err := opts.Marshal(m.obj.msg()) - if err != nil { - return "", err + obj.TypeA().validateObj(vObj, set_default) } - return string(data), nil -} -func (m *unMarshalbgpRouteTarget) FromJson(value string) error { - opts := protojson.UnmarshalOptions{ - AllowPartial: true, - DiscardUnknown: false, - } - if value == "" { - value = "{}" - } - uError := opts.Unmarshal([]byte(value), m.obj.msg()) - if uError != nil { - return fmt.Errorf("unmarshal error %s", strings.Replace( - uError.Error(), "\u00a0", " ", -1)[7:]) - } + if obj.obj.TypeB != nil { - err := m.obj.validateToAndFrom() - if err != nil { - return err + obj.TypeB().validateObj(vObj, set_default) } - return nil -} - -func (obj *bgpRouteTarget) validateToAndFrom() error { - // emptyVars() - obj.validateObj(&obj.validation, true) - return obj.validationResult() -} -func (obj *bgpRouteTarget) validate() error { - // emptyVars() - obj.validateObj(&obj.validation, false) - return obj.validationResult() -} + if obj.obj.TypeC != nil { -func (obj *bgpRouteTarget) String() string { - str, err := obj.Marshal().ToYaml() - if err != nil { - return err.Error() + obj.TypeC().validateObj(vObj, set_default) } - return str -} -func (obj *bgpRouteTarget) Clone() (BgpRouteTarget, error) { - vErr := obj.validate() - if vErr != nil { - return nil, vErr - } - newObj := NewBgpRouteTarget() - data, err := proto.Marshal(obj.msg()) - if err != nil { - return nil, err - } - pbErr := proto.Unmarshal(data, newObj.msg()) - if pbErr != nil { - return nil, pbErr + if obj.obj.TypeD != nil { + + obj.TypeD().validateObj(vObj, set_default) } - return newObj, nil -} -// BgpRouteTarget is bGP Route Target. -type BgpRouteTarget interface { - Validation - // msg marshals BgpRouteTarget to protobuf object *otg.BgpRouteTarget - // and doesn't set defaults - msg() *otg.BgpRouteTarget - // setMsg unmarshals BgpRouteTarget from protobuf object *otg.BgpRouteTarget - // and doesn't set defaults - setMsg(*otg.BgpRouteTarget) BgpRouteTarget - // provides marshal interface - Marshal() marshalBgpRouteTarget - // provides unmarshal interface - Unmarshal() unMarshalBgpRouteTarget - // validate validates BgpRouteTarget - validate() error - // A stringer function - String() string - // Clones the object - Clone() (BgpRouteTarget, error) - validateToAndFrom() error - validateObj(vObj *validation, set_default bool) - setDefault() - // RtType returns BgpRouteTargetRtTypeEnum, set in BgpRouteTarget - RtType() BgpRouteTargetRtTypeEnum - // SetRtType assigns BgpRouteTargetRtTypeEnum provided by user to BgpRouteTarget - SetRtType(value BgpRouteTargetRtTypeEnum) BgpRouteTarget - // HasRtType checks if RtType has been set in BgpRouteTarget - HasRtType() bool - // RtValue returns string, set in BgpRouteTarget. - RtValue() string - // SetRtValue assigns string provided by user to BgpRouteTarget - SetRtValue(value string) BgpRouteTarget - // HasRtValue checks if RtValue has been set in BgpRouteTarget - HasRtValue() bool -} + if obj.obj.TypeE != nil { -type BgpRouteTargetRtTypeEnum string + obj.TypeE().validateObj(vObj, set_default) + } -// Enum of RtType on BgpRouteTarget -var BgpRouteTargetRtType = struct { - AS_2OCTET BgpRouteTargetRtTypeEnum - IPV4_ADDRESS BgpRouteTargetRtTypeEnum - AS_4OCTET BgpRouteTargetRtTypeEnum -}{ - AS_2OCTET: BgpRouteTargetRtTypeEnum("as_2octet"), - IPV4_ADDRESS: BgpRouteTargetRtTypeEnum("ipv4_address"), - AS_4OCTET: BgpRouteTargetRtTypeEnum("as_4octet"), -} + if obj.obj.TypeF != nil { -func (obj *bgpRouteTarget) RtType() BgpRouteTargetRtTypeEnum { - return BgpRouteTargetRtTypeEnum(obj.obj.RtType.Enum().String()) -} + obj.TypeF().validateObj(vObj, set_default) + } -// Extended Community Type field of 2 Byte. -// - as_2octet: Two-Octet AS Specific Extended Community (RFC 4360). -// - ipv4_address: IPv4 Address Specific Extended Community (RFC 4360). -// - as_4octet: 4-Octet AS Specific Extended Community (RFC 5668). -// RtType returns a string -func (obj *bgpRouteTarget) HasRtType() bool { - return obj.obj.RtType != nil -} + if obj.obj.TypeG != nil { -func (obj *bgpRouteTarget) SetRtType(value BgpRouteTargetRtTypeEnum) BgpRouteTarget { - intValue, ok := otg.BgpRouteTarget_RtType_Enum_value[string(value)] - if !ok { - obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( - "%s is not a valid choice on BgpRouteTargetRtTypeEnum", string(value))) - return obj + obj.TypeG().validateObj(vObj, set_default) } - enumValue := otg.BgpRouteTarget_RtType_Enum(intValue) - obj.obj.RtType = &enumValue - return obj -} + if obj.obj.TypeH != nil { -// Colon separated Extended Community value of 6 Bytes - AS number: Assigned Number. Example - for the as_2octet or as_4octet "60005:100", for ipv4_address "1.1.1.1:100" -// RtValue returns a string -func (obj *bgpRouteTarget) RtValue() string { + obj.TypeH().validateObj(vObj, set_default) + } - return *obj.obj.RtValue + if obj.obj.TypeI != nil { -} + obj.TypeI().validateObj(vObj, set_default) + } -// Colon separated Extended Community value of 6 Bytes - AS number: Assigned Number. Example - for the as_2octet or as_4octet "60005:100", for ipv4_address "1.1.1.1:100" -// RtValue returns a string -func (obj *bgpRouteTarget) HasRtValue() bool { - return obj.obj.RtValue != nil -} + if obj.obj.TypeJ != nil { -// Colon separated Extended Community value of 6 Bytes - AS number: Assigned Number. Example - for the as_2octet or as_4octet "60005:100", for ipv4_address "1.1.1.1:100" -// SetRtValue sets the string value in the BgpRouteTarget object -func (obj *bgpRouteTarget) SetRtValue(value string) BgpRouteTarget { + obj.TypeJ().validateObj(vObj, set_default) + } - obj.obj.RtValue = &value - return obj -} + if obj.obj.TypeK != nil { -func (obj *bgpRouteTarget) validateObj(vObj *validation, set_default bool) { - if set_default { - obj.setDefault() + obj.TypeK().validateObj(vObj, set_default) } + // Name is required + if obj.obj.Name == nil { + vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface BgpSrteSegment") + } } -func (obj *bgpRouteTarget) setDefault() { +func (obj *bgpSrteSegment) setDefault() { + if obj.obj.Active == nil { + obj.SetActive(true) + } } -// ***** BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget ***** -type bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget struct { +// ***** BgpV6EviVxlanBroadcastDomain ***** +type bgpV6EviVxlanBroadcastDomain struct { validation - obj *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget - marshaller marshalBgpExtendedCommunityTransitive2OctetAsTypeRouteTarget - unMarshaller unMarshalBgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + obj *otg.BgpV6EviVxlanBroadcastDomain + marshaller marshalBgpV6EviVxlanBroadcastDomain + unMarshaller unMarshalBgpV6EviVxlanBroadcastDomain + cmacIpRangeHolder BgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter } -func NewBgpExtendedCommunityTransitive2OctetAsTypeRouteTarget() BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget { - obj := bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget{obj: &otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget{}} +func NewBgpV6EviVxlanBroadcastDomain() BgpV6EviVxlanBroadcastDomain { + obj := bgpV6EviVxlanBroadcastDomain{obj: &otg.BgpV6EviVxlanBroadcastDomain{}} obj.setDefault() return &obj } -func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) msg() *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget { +func (obj *bgpV6EviVxlanBroadcastDomain) msg() *otg.BgpV6EviVxlanBroadcastDomain { return obj.obj } -func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) setMsg(msg *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget { - +func (obj *bgpV6EviVxlanBroadcastDomain) setMsg(msg *otg.BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBroadcastDomain { + obj.setNil() proto.Merge(obj.obj, msg) return obj } -type marshalbgpExtendedCommunityTransitive2OctetAsTypeRouteTarget struct { - obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget +type marshalbgpV6EviVxlanBroadcastDomain struct { + obj *bgpV6EviVxlanBroadcastDomain } -type marshalBgpExtendedCommunityTransitive2OctetAsTypeRouteTarget interface { - // ToProto marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget to protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget - ToProto() (*otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget, error) - // ToPbText marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget to protobuf text +type marshalBgpV6EviVxlanBroadcastDomain interface { + // ToProto marshals BgpV6EviVxlanBroadcastDomain to protobuf object *otg.BgpV6EviVxlanBroadcastDomain + ToProto() (*otg.BgpV6EviVxlanBroadcastDomain, error) + // ToPbText marshals BgpV6EviVxlanBroadcastDomain to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget to YAML text + // ToYaml marshals BgpV6EviVxlanBroadcastDomain to YAML text ToYaml() (string, error) - // ToJson marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget to JSON text + // ToJson marshals BgpV6EviVxlanBroadcastDomain to JSON text ToJson() (string, error) } -type unMarshalbgpExtendedCommunityTransitive2OctetAsTypeRouteTarget struct { - obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget +type unMarshalbgpV6EviVxlanBroadcastDomain struct { + obj *bgpV6EviVxlanBroadcastDomain } -type unMarshalBgpExtendedCommunityTransitive2OctetAsTypeRouteTarget interface { - // FromProto unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget from protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget - FromProto(msg *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) (BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget, error) - // FromPbText unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget from protobuf text +type unMarshalBgpV6EviVxlanBroadcastDomain interface { + // FromProto unmarshals BgpV6EviVxlanBroadcastDomain from protobuf object *otg.BgpV6EviVxlanBroadcastDomain + FromProto(msg *otg.BgpV6EviVxlanBroadcastDomain) (BgpV6EviVxlanBroadcastDomain, error) + // FromPbText unmarshals BgpV6EviVxlanBroadcastDomain from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget from YAML text + // FromYaml unmarshals BgpV6EviVxlanBroadcastDomain from YAML text FromYaml(value string) error - // FromJson unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget from JSON text + // FromJson unmarshals BgpV6EviVxlanBroadcastDomain from JSON text FromJson(value string) error } -func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) Marshal() marshalBgpExtendedCommunityTransitive2OctetAsTypeRouteTarget { +func (obj *bgpV6EviVxlanBroadcastDomain) Marshal() marshalBgpV6EviVxlanBroadcastDomain { if obj.marshaller == nil { - obj.marshaller = &marshalbgpExtendedCommunityTransitive2OctetAsTypeRouteTarget{obj: obj} + obj.marshaller = &marshalbgpV6EviVxlanBroadcastDomain{obj: obj} } return obj.marshaller } -func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) Unmarshal() unMarshalBgpExtendedCommunityTransitive2OctetAsTypeRouteTarget { +func (obj *bgpV6EviVxlanBroadcastDomain) Unmarshal() unMarshalBgpV6EviVxlanBroadcastDomain { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpExtendedCommunityTransitive2OctetAsTypeRouteTarget{obj: obj} + obj.unMarshaller = &unMarshalbgpV6EviVxlanBroadcastDomain{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) ToProto() (*otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget, error) { +func (m *marshalbgpV6EviVxlanBroadcastDomain) ToProto() (*otg.BgpV6EviVxlanBroadcastDomain, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -339864,7 +352178,7 @@ func (m *marshalbgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) ToProto() return m.obj.msg(), nil } -func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) FromProto(msg *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) (BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget, error) { +func (m *unMarshalbgpV6EviVxlanBroadcastDomain) FromProto(msg *otg.BgpV6EviVxlanBroadcastDomain) (BgpV6EviVxlanBroadcastDomain, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -339873,7 +352187,7 @@ func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) FromPro return newObj, nil } -func (m *marshalbgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) ToPbText() (string, error) { +func (m *marshalbgpV6EviVxlanBroadcastDomain) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -339885,12 +352199,12 @@ func (m *marshalbgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) ToPbText( return string(protoMarshal), nil } -func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) FromPbText(value string) error { +func (m *unMarshalbgpV6EviVxlanBroadcastDomain) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -339898,7 +352212,7 @@ func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) FromPbT return retObj } -func (m *marshalbgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) ToYaml() (string, error) { +func (m *marshalbgpV6EviVxlanBroadcastDomain) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -339919,7 +352233,7 @@ func (m *marshalbgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) ToYaml() return string(data), nil } -func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) FromYaml(value string) error { +func (m *unMarshalbgpV6EviVxlanBroadcastDomain) FromYaml(value string) error { if value == "" { value = "{}" } @@ -339936,7 +352250,7 @@ func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) FromYam return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -339944,7 +352258,7 @@ func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) FromYam return nil } -func (m *marshalbgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) ToJson() (string, error) { +func (m *marshalbgpV6EviVxlanBroadcastDomain) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -339962,7 +352276,7 @@ func (m *marshalbgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) ToJson() return string(data), nil } -func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) FromJson(value string) error { +func (m *unMarshalbgpV6EviVxlanBroadcastDomain) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -339975,7 +352289,7 @@ func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) FromJso return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() err := m.obj.validateToAndFrom() if err != nil { return err @@ -339983,19 +352297,19 @@ func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) FromJso return nil } -func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) validateToAndFrom() error { +func (obj *bgpV6EviVxlanBroadcastDomain) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) validate() error { +func (obj *bgpV6EviVxlanBroadcastDomain) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) String() string { +func (obj *bgpV6EviVxlanBroadcastDomain) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -340003,12 +352317,12 @@ func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) String() strin return str } -func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) Clone() (BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget, error) { +func (obj *bgpV6EviVxlanBroadcastDomain) Clone() (BgpV6EviVxlanBroadcastDomain, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpExtendedCommunityTransitive2OctetAsTypeRouteTarget() + newObj := NewBgpV6EviVxlanBroadcastDomain() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -340020,182 +352334,286 @@ func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) Clone() (BgpEx return newObj, nil } -// BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget is the Route Target Community identifies one or more routers that may receive a set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02. -type BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget interface { +func (obj *bgpV6EviVxlanBroadcastDomain) setNil() { + obj.cmacIpRangeHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// BgpV6EviVxlanBroadcastDomain is configuration for Broadcast Domains per EVI. +type BgpV6EviVxlanBroadcastDomain interface { Validation - // msg marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget to protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + // msg marshals BgpV6EviVxlanBroadcastDomain to protobuf object *otg.BgpV6EviVxlanBroadcastDomain // and doesn't set defaults - msg() *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget - // setMsg unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget from protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + msg() *otg.BgpV6EviVxlanBroadcastDomain + // setMsg unmarshals BgpV6EviVxlanBroadcastDomain from protobuf object *otg.BgpV6EviVxlanBroadcastDomain // and doesn't set defaults - setMsg(*otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + setMsg(*otg.BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBroadcastDomain // provides marshal interface - Marshal() marshalBgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + Marshal() marshalBgpV6EviVxlanBroadcastDomain // provides unmarshal interface - Unmarshal() unMarshalBgpExtendedCommunityTransitive2OctetAsTypeRouteTarget - // validate validates BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + Unmarshal() unMarshalBgpV6EviVxlanBroadcastDomain + // validate validates BgpV6EviVxlanBroadcastDomain validate() error // A stringer function String() string // Clones the object - Clone() (BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget, error) + Clone() (BgpV6EviVxlanBroadcastDomain, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Global2ByteAs returns uint32, set in BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget. - Global2ByteAs() uint32 - // SetGlobal2ByteAs assigns uint32 provided by user to BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget - SetGlobal2ByteAs(value uint32) BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget - // HasGlobal2ByteAs checks if Global2ByteAs has been set in BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget - HasGlobal2ByteAs() bool - // Local4ByteAdmin returns uint32, set in BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget. - Local4ByteAdmin() uint32 - // SetLocal4ByteAdmin assigns uint32 provided by user to BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget - SetLocal4ByteAdmin(value uint32) BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget - // HasLocal4ByteAdmin checks if Local4ByteAdmin has been set in BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget - HasLocal4ByteAdmin() bool + // CmacIpRange returns BgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIterIter, set in BgpV6EviVxlanBroadcastDomain + CmacIpRange() BgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter + // EthernetTagId returns uint32, set in BgpV6EviVxlanBroadcastDomain. + EthernetTagId() uint32 + // SetEthernetTagId assigns uint32 provided by user to BgpV6EviVxlanBroadcastDomain + SetEthernetTagId(value uint32) BgpV6EviVxlanBroadcastDomain + // HasEthernetTagId checks if EthernetTagId has been set in BgpV6EviVxlanBroadcastDomain + HasEthernetTagId() bool + // VlanAwareService returns bool, set in BgpV6EviVxlanBroadcastDomain. + VlanAwareService() bool + // SetVlanAwareService assigns bool provided by user to BgpV6EviVxlanBroadcastDomain + SetVlanAwareService(value bool) BgpV6EviVxlanBroadcastDomain + // HasVlanAwareService checks if VlanAwareService has been set in BgpV6EviVxlanBroadcastDomain + HasVlanAwareService() bool + setNil() } -// The two octet IANA assigned AS value assigned to the Autonomous System. -// Global2ByteAs returns a uint32 -func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) Global2ByteAs() uint32 { +// This contains the list of Customer MAC/IP Ranges to be configured per Broadcast Domain. +// +// Advertises following route - +// Type 2 - MAC/IP Advertisement Route. +// CmacIpRange returns a []BgpCMacIpRange +func (obj *bgpV6EviVxlanBroadcastDomain) CmacIpRange() BgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter { + if len(obj.obj.CmacIpRange) == 0 { + obj.obj.CmacIpRange = []*otg.BgpCMacIpRange{} + } + if obj.cmacIpRangeHolder == nil { + obj.cmacIpRangeHolder = newBgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter(&obj.obj.CmacIpRange).setMsg(obj) + } + return obj.cmacIpRangeHolder +} - return *obj.obj.Global_2ByteAs +type bgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter struct { + obj *bgpV6EviVxlanBroadcastDomain + bgpCMacIpRangeSlice []BgpCMacIpRange + fieldPtr *[]*otg.BgpCMacIpRange +} +func newBgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter(ptr *[]*otg.BgpCMacIpRange) BgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter { + return &bgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter{fieldPtr: ptr} } -// The two octet IANA assigned AS value assigned to the Autonomous System. -// Global2ByteAs returns a uint32 -func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) HasGlobal2ByteAs() bool { - return obj.obj.Global_2ByteAs != nil +type BgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter interface { + setMsg(*bgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter + Items() []BgpCMacIpRange + Add() BgpCMacIpRange + Append(items ...BgpCMacIpRange) BgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter + Set(index int, newObj BgpCMacIpRange) BgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter + Clear() BgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter + clearHolderSlice() BgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter + appendHolderSlice(item BgpCMacIpRange) BgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter } -// The two octet IANA assigned AS value assigned to the Autonomous System. -// SetGlobal2ByteAs sets the uint32 value in the BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget object -func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) SetGlobal2ByteAs(value uint32) BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget { +func (obj *bgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter) setMsg(msg *bgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&bgpCMacIpRange{obj: val}) + } + obj.obj = msg + return obj +} - obj.obj.Global_2ByteAs = &value +func (obj *bgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter) Items() []BgpCMacIpRange { + return obj.bgpCMacIpRangeSlice +} + +func (obj *bgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter) Add() BgpCMacIpRange { + newObj := &otg.BgpCMacIpRange{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &bgpCMacIpRange{obj: newObj} + newLibObj.setDefault() + obj.bgpCMacIpRangeSlice = append(obj.bgpCMacIpRangeSlice, newLibObj) + return newLibObj +} + +func (obj *bgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter) Append(items ...BgpCMacIpRange) BgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter { + for _, item := range items { + newObj := item.msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.bgpCMacIpRangeSlice = append(obj.bgpCMacIpRangeSlice, item) + } return obj } -// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. -// Local4ByteAdmin returns a uint32 -func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) Local4ByteAdmin() uint32 { +func (obj *bgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter) Set(index int, newObj BgpCMacIpRange) BgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter { + (*obj.fieldPtr)[index] = newObj.msg() + obj.bgpCMacIpRangeSlice[index] = newObj + return obj +} +func (obj *bgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter) Clear() BgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.BgpCMacIpRange{} + obj.bgpCMacIpRangeSlice = []BgpCMacIpRange{} + } + return obj +} +func (obj *bgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter) clearHolderSlice() BgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter { + if len(obj.bgpCMacIpRangeSlice) > 0 { + obj.bgpCMacIpRangeSlice = []BgpCMacIpRange{} + } + return obj +} +func (obj *bgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter) appendHolderSlice(item BgpCMacIpRange) BgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter { + obj.bgpCMacIpRangeSlice = append(obj.bgpCMacIpRangeSlice, item) + return obj +} - return *obj.obj.Local_4ByteAdmin +// The Ethernet Tag ID of the Broadcast Domain. +// EthernetTagId returns a uint32 +func (obj *bgpV6EviVxlanBroadcastDomain) EthernetTagId() uint32 { + + return *obj.obj.EthernetTagId } -// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. -// Local4ByteAdmin returns a uint32 -func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) HasLocal4ByteAdmin() bool { - return obj.obj.Local_4ByteAdmin != nil +// The Ethernet Tag ID of the Broadcast Domain. +// EthernetTagId returns a uint32 +func (obj *bgpV6EviVxlanBroadcastDomain) HasEthernetTagId() bool { + return obj.obj.EthernetTagId != nil } -// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. -// SetLocal4ByteAdmin sets the uint32 value in the BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget object -func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) SetLocal4ByteAdmin(value uint32) BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget { +// The Ethernet Tag ID of the Broadcast Domain. +// SetEthernetTagId sets the uint32 value in the BgpV6EviVxlanBroadcastDomain object +func (obj *bgpV6EviVxlanBroadcastDomain) SetEthernetTagId(value uint32) BgpV6EviVxlanBroadcastDomain { - obj.obj.Local_4ByteAdmin = &value + obj.obj.EthernetTagId = &value return obj } -func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) validateObj(vObj *validation, set_default bool) { +// VLAN-Aware service to be enabled or disabled. +// VlanAwareService returns a bool +func (obj *bgpV6EviVxlanBroadcastDomain) VlanAwareService() bool { + + return *obj.obj.VlanAwareService + +} + +// VLAN-Aware service to be enabled or disabled. +// VlanAwareService returns a bool +func (obj *bgpV6EviVxlanBroadcastDomain) HasVlanAwareService() bool { + return obj.obj.VlanAwareService != nil +} + +// VLAN-Aware service to be enabled or disabled. +// SetVlanAwareService sets the bool value in the BgpV6EviVxlanBroadcastDomain object +func (obj *bgpV6EviVxlanBroadcastDomain) SetVlanAwareService(value bool) BgpV6EviVxlanBroadcastDomain { + + obj.obj.VlanAwareService = &value + return obj +} + +func (obj *bgpV6EviVxlanBroadcastDomain) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Global_2ByteAs != nil { + if len(obj.obj.CmacIpRange) != 0 { - if *obj.obj.Global_2ByteAs > 65535 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget.Global_2ByteAs <= 65535 but Got %d", *obj.obj.Global_2ByteAs)) + if set_default { + obj.CmacIpRange().clearHolderSlice() + for _, item := range obj.obj.CmacIpRange { + obj.CmacIpRange().appendHolderSlice(&bgpCMacIpRange{obj: item}) + } + } + for _, item := range obj.CmacIpRange().Items() { + item.validateObj(vObj, set_default) } } } -func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) setDefault() { - if obj.obj.Global_2ByteAs == nil { - obj.SetGlobal2ByteAs(100) +func (obj *bgpV6EviVxlanBroadcastDomain) setDefault() { + if obj.obj.EthernetTagId == nil { + obj.SetEthernetTagId(0) } - if obj.obj.Local_4ByteAdmin == nil { - obj.SetLocal4ByteAdmin(1) + if obj.obj.VlanAwareService == nil { + obj.SetVlanAwareService(false) } } -// ***** BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin ***** -type bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin struct { +// ***** PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter ***** +type patternFlowIpv4OptionsCustomTypeCopiedFlagCounter struct { validation - obj *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin - marshaller marshalBgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin - unMarshaller unMarshalBgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + obj *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter + marshaller marshalPatternFlowIpv4OptionsCustomTypeCopiedFlagCounter + unMarshaller unMarshalPatternFlowIpv4OptionsCustomTypeCopiedFlagCounter } -func NewBgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin() BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin { - obj := bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin{obj: &otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin{}} +func NewPatternFlowIpv4OptionsCustomTypeCopiedFlagCounter() PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter { + obj := patternFlowIpv4OptionsCustomTypeCopiedFlagCounter{obj: &otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter{}} obj.setDefault() return &obj } -func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) msg() *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin { +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) msg() *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter { return obj.obj } -func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) setMsg(msg *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin { +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) setMsg(msg *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter { proto.Merge(obj.obj, msg) return obj } -type marshalbgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin struct { - obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin +type marshalpatternFlowIpv4OptionsCustomTypeCopiedFlagCounter struct { + obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter } -type marshalBgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin interface { - // ToProto marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin to protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin - ToProto() (*otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin, error) - // ToPbText marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin to protobuf text +type marshalPatternFlowIpv4OptionsCustomTypeCopiedFlagCounter interface { + // ToProto marshals PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter to protobuf object *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter + ToProto() (*otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter, error) + // ToPbText marshals PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin to YAML text + // ToYaml marshals PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter to YAML text ToYaml() (string, error) - // ToJson marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin to JSON text + // ToJson marshals PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter to JSON text ToJson() (string, error) } -type unMarshalbgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin struct { - obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin +type unMarshalpatternFlowIpv4OptionsCustomTypeCopiedFlagCounter struct { + obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter } -type unMarshalBgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin interface { - // FromProto unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin from protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin - FromProto(msg *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) (BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin, error) - // FromPbText unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin from protobuf text +type unMarshalPatternFlowIpv4OptionsCustomTypeCopiedFlagCounter interface { + // FromProto unmarshals PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter from protobuf object *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter + FromProto(msg *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) (PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter, error) + // FromPbText unmarshals PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin from YAML text + // FromYaml unmarshals PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter from YAML text FromYaml(value string) error - // FromJson unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin from JSON text + // FromJson unmarshals PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter from JSON text FromJson(value string) error } -func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) Marshal() marshalBgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin { +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) Marshal() marshalPatternFlowIpv4OptionsCustomTypeCopiedFlagCounter { if obj.marshaller == nil { - obj.marshaller = &marshalbgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin{obj: obj} + obj.marshaller = &marshalpatternFlowIpv4OptionsCustomTypeCopiedFlagCounter{obj: obj} } return obj.marshaller } -func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) Unmarshal() unMarshalBgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin { +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) Unmarshal() unMarshalPatternFlowIpv4OptionsCustomTypeCopiedFlagCounter { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin{obj: obj} + obj.unMarshaller = &unMarshalpatternFlowIpv4OptionsCustomTypeCopiedFlagCounter{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) ToProto() (*otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin, error) { +func (m *marshalpatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) ToProto() (*otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -340203,7 +352621,7 @@ func (m *marshalbgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) ToProto() return m.obj.msg(), nil } -func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) FromProto(msg *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) (BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin, error) { +func (m *unMarshalpatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) FromProto(msg *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) (PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -340212,7 +352630,7 @@ func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) FromPro return newObj, nil } -func (m *marshalbgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) ToPbText() (string, error) { +func (m *marshalpatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -340224,7 +352642,7 @@ func (m *marshalbgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) ToPbText( return string(protoMarshal), nil } -func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) FromPbText(value string) error { +func (m *unMarshalpatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj @@ -340237,7 +352655,7 @@ func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) FromPbT return retObj } -func (m *marshalbgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) ToYaml() (string, error) { +func (m *marshalpatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -340258,7 +352676,7 @@ func (m *marshalbgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) ToYaml() return string(data), nil } -func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) FromYaml(value string) error { +func (m *unMarshalpatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) FromYaml(value string) error { if value == "" { value = "{}" } @@ -340283,7 +352701,7 @@ func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) FromYam return nil } -func (m *marshalbgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) ToJson() (string, error) { +func (m *marshalpatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -340301,7 +352719,7 @@ func (m *marshalbgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) ToJson() return string(data), nil } -func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) FromJson(value string) error { +func (m *unMarshalpatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -340322,19 +352740,19 @@ func (m *unMarshalbgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) FromJso return nil } -func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) validateToAndFrom() error { +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) validate() error { +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) String() string { +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -340342,12 +352760,12 @@ func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) String() strin return str } -func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) Clone() (BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin, error) { +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) Clone() (PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin() + newObj := NewPatternFlowIpv4OptionsCustomTypeCopiedFlagCounter() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -340359,182 +352777,233 @@ func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) Clone() (BgpEx return newObj, nil } -// BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin is the Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP. It is sent with sub-type as 0x03 . -type BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin interface { +// PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter is integer counter pattern +type PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter interface { Validation - // msg marshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin to protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + // msg marshals PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter to protobuf object *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter // and doesn't set defaults - msg() *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin - // setMsg unmarshals BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin from protobuf object *otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + msg() *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter + // setMsg unmarshals PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter from protobuf object *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter // and doesn't set defaults - setMsg(*otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + setMsg(*otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter // provides marshal interface - Marshal() marshalBgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + Marshal() marshalPatternFlowIpv4OptionsCustomTypeCopiedFlagCounter // provides unmarshal interface - Unmarshal() unMarshalBgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin - // validate validates BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + Unmarshal() unMarshalPatternFlowIpv4OptionsCustomTypeCopiedFlagCounter + // validate validates PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter validate() error // A stringer function String() string // Clones the object - Clone() (BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin, error) + Clone() (PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Global2ByteAs returns uint32, set in BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin. - Global2ByteAs() uint32 - // SetGlobal2ByteAs assigns uint32 provided by user to BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin - SetGlobal2ByteAs(value uint32) BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin - // HasGlobal2ByteAs checks if Global2ByteAs has been set in BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin - HasGlobal2ByteAs() bool - // Local4ByteAdmin returns uint32, set in BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin. - Local4ByteAdmin() uint32 - // SetLocal4ByteAdmin assigns uint32 provided by user to BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin - SetLocal4ByteAdmin(value uint32) BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin - // HasLocal4ByteAdmin checks if Local4ByteAdmin has been set in BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin - HasLocal4ByteAdmin() bool + // Start returns uint32, set in PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter. + Start() uint32 + // SetStart assigns uint32 provided by user to PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter + SetStart(value uint32) PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter + // HasStart checks if Start has been set in PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter + HasStart() bool + // Step returns uint32, set in PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter. + Step() uint32 + // SetStep assigns uint32 provided by user to PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter + SetStep(value uint32) PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter + // HasStep checks if Step has been set in PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter + HasStep() bool + // Count returns uint32, set in PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter. + Count() uint32 + // SetCount assigns uint32 provided by user to PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter + SetCount(value uint32) PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter + // HasCount checks if Count has been set in PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter + HasCount() bool } -// The two octet IANA assigned AS value assigned to the Autonomous System. -// Global2ByteAs returns a uint32 -func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) Global2ByteAs() uint32 { +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) Start() uint32 { - return *obj.obj.Global_2ByteAs + return *obj.obj.Start } -// The two octet IANA assigned AS value assigned to the Autonomous System. -// Global2ByteAs returns a uint32 -func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) HasGlobal2ByteAs() bool { - return obj.obj.Global_2ByteAs != nil +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) HasStart() bool { + return obj.obj.Start != nil } -// The two octet IANA assigned AS value assigned to the Autonomous System. -// SetGlobal2ByteAs sets the uint32 value in the BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin object -func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) SetGlobal2ByteAs(value uint32) BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin { +// description is TBD +// SetStart sets the uint32 value in the PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter object +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) SetStart(value uint32) PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter { - obj.obj.Global_2ByteAs = &value + obj.obj.Start = &value return obj } -// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. -// Local4ByteAdmin returns a uint32 -func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) Local4ByteAdmin() uint32 { +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) Step() uint32 { - return *obj.obj.Local_4ByteAdmin + return *obj.obj.Step } -// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. -// Local4ByteAdmin returns a uint32 -func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) HasLocal4ByteAdmin() bool { - return obj.obj.Local_4ByteAdmin != nil +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) HasStep() bool { + return obj.obj.Step != nil } -// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. -// SetLocal4ByteAdmin sets the uint32 value in the BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin object -func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) SetLocal4ByteAdmin(value uint32) BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin { +// description is TBD +// SetStep sets the uint32 value in the PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter object +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) SetStep(value uint32) PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter { - obj.obj.Local_4ByteAdmin = &value + obj.obj.Step = &value return obj } -func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) validateObj(vObj *validation, set_default bool) { +// description is TBD +// Count returns a uint32 +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) Count() uint32 { + + return *obj.obj.Count + +} + +// description is TBD +// Count returns a uint32 +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) HasCount() bool { + return obj.obj.Count != nil +} + +// description is TBD +// SetCount sets the uint32 value in the PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter object +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) SetCount(value uint32) PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter { + + obj.obj.Count = &value + return obj +} + +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Global_2ByteAs != nil { + if obj.obj.Start != nil { - if *obj.obj.Global_2ByteAs > 65535 { + if *obj.obj.Start > 1 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin.Global_2ByteAs <= 65535 but Got %d", *obj.obj.Global_2ByteAs)) + fmt.Sprintf("0 <= PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter.Start <= 1 but Got %d", *obj.obj.Start)) + } + + } + + if obj.obj.Step != nil { + + if *obj.obj.Step > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter.Step <= 1 but Got %d", *obj.obj.Step)) + } + + } + + if obj.obj.Count != nil { + + if *obj.obj.Count > 1 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter.Count <= 1 but Got %d", *obj.obj.Count)) } } } -func (obj *bgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) setDefault() { - if obj.obj.Global_2ByteAs == nil { - obj.SetGlobal2ByteAs(100) +func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) setDefault() { + if obj.obj.Start == nil { + obj.SetStart(0) } - if obj.obj.Local_4ByteAdmin == nil { - obj.SetLocal4ByteAdmin(1) + if obj.obj.Step == nil { + obj.SetStep(1) + } + if obj.obj.Count == nil { + obj.SetCount(1) } } -// ***** BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget ***** -type bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget struct { +// ***** PatternFlowIpv4OptionsCustomTypeOptionClassCounter ***** +type patternFlowIpv4OptionsCustomTypeOptionClassCounter struct { validation - obj *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget - marshaller marshalBgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget - unMarshaller unMarshalBgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + obj *otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter + marshaller marshalPatternFlowIpv4OptionsCustomTypeOptionClassCounter + unMarshaller unMarshalPatternFlowIpv4OptionsCustomTypeOptionClassCounter } -func NewBgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget() BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget { - obj := bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget{obj: &otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget{}} +func NewPatternFlowIpv4OptionsCustomTypeOptionClassCounter() PatternFlowIpv4OptionsCustomTypeOptionClassCounter { + obj := patternFlowIpv4OptionsCustomTypeOptionClassCounter{obj: &otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter{}} obj.setDefault() return &obj } -func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) msg() *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget { +func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) msg() *otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter { return obj.obj } -func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) setMsg(msg *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget { +func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) setMsg(msg *otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter) PatternFlowIpv4OptionsCustomTypeOptionClassCounter { proto.Merge(obj.obj, msg) return obj } -type marshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget struct { - obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget +type marshalpatternFlowIpv4OptionsCustomTypeOptionClassCounter struct { + obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter } -type marshalBgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget interface { - // ToProto marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget to protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget - ToProto() (*otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget, error) - // ToPbText marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget to protobuf text +type marshalPatternFlowIpv4OptionsCustomTypeOptionClassCounter interface { + // ToProto marshals PatternFlowIpv4OptionsCustomTypeOptionClassCounter to protobuf object *otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter + ToProto() (*otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter, error) + // ToPbText marshals PatternFlowIpv4OptionsCustomTypeOptionClassCounter to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget to YAML text + // ToYaml marshals PatternFlowIpv4OptionsCustomTypeOptionClassCounter to YAML text ToYaml() (string, error) - // ToJson marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget to JSON text + // ToJson marshals PatternFlowIpv4OptionsCustomTypeOptionClassCounter to JSON text ToJson() (string, error) } -type unMarshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget struct { - obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget +type unMarshalpatternFlowIpv4OptionsCustomTypeOptionClassCounter struct { + obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter } -type unMarshalBgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget interface { - // FromProto unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget from protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget - FromProto(msg *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) (BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget, error) - // FromPbText unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget from protobuf text +type unMarshalPatternFlowIpv4OptionsCustomTypeOptionClassCounter interface { + // FromProto unmarshals PatternFlowIpv4OptionsCustomTypeOptionClassCounter from protobuf object *otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter + FromProto(msg *otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter) (PatternFlowIpv4OptionsCustomTypeOptionClassCounter, error) + // FromPbText unmarshals PatternFlowIpv4OptionsCustomTypeOptionClassCounter from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget from YAML text + // FromYaml unmarshals PatternFlowIpv4OptionsCustomTypeOptionClassCounter from YAML text FromYaml(value string) error - // FromJson unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget from JSON text + // FromJson unmarshals PatternFlowIpv4OptionsCustomTypeOptionClassCounter from JSON text FromJson(value string) error } -func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) Marshal() marshalBgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget { +func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) Marshal() marshalPatternFlowIpv4OptionsCustomTypeOptionClassCounter { if obj.marshaller == nil { - obj.marshaller = &marshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget{obj: obj} + obj.marshaller = &marshalpatternFlowIpv4OptionsCustomTypeOptionClassCounter{obj: obj} } return obj.marshaller } -func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) Unmarshal() unMarshalBgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget { +func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) Unmarshal() unMarshalPatternFlowIpv4OptionsCustomTypeOptionClassCounter { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget{obj: obj} + obj.unMarshaller = &unMarshalpatternFlowIpv4OptionsCustomTypeOptionClassCounter{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) ToProto() (*otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget, error) { +func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionClassCounter) ToProto() (*otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -340542,7 +353011,7 @@ func (m *marshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) ToProt return m.obj.msg(), nil } -func (m *unMarshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) FromProto(msg *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) (BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget, error) { +func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionClassCounter) FromProto(msg *otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter) (PatternFlowIpv4OptionsCustomTypeOptionClassCounter, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -340551,7 +353020,7 @@ func (m *unMarshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) From return newObj, nil } -func (m *marshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) ToPbText() (string, error) { +func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionClassCounter) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -340563,7 +353032,7 @@ func (m *marshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) ToPbTe return string(protoMarshal), nil } -func (m *unMarshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) FromPbText(value string) error { +func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionClassCounter) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj @@ -340576,7 +353045,7 @@ func (m *unMarshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) From return retObj } -func (m *marshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) ToYaml() (string, error) { +func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionClassCounter) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -340597,7 +353066,7 @@ func (m *marshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) ToYaml return string(data), nil } -func (m *unMarshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) FromYaml(value string) error { +func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionClassCounter) FromYaml(value string) error { if value == "" { value = "{}" } @@ -340622,7 +353091,7 @@ func (m *unMarshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) From return nil } -func (m *marshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) ToJson() (string, error) { +func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionClassCounter) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -340640,7 +353109,7 @@ func (m *marshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) ToJson return string(data), nil } -func (m *unMarshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) FromJson(value string) error { +func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionClassCounter) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -340661,19 +353130,19 @@ func (m *unMarshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) From return nil } -func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) validateToAndFrom() error { +func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) validate() error { +func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) String() string { +func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -340681,12 +353150,12 @@ func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) String() st return str } -func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) Clone() (BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget, error) { +func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) Clone() (PatternFlowIpv4OptionsCustomTypeOptionClassCounter, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget() + newObj := NewPatternFlowIpv4OptionsCustomTypeOptionClassCounter() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -340698,191 +353167,233 @@ func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) Clone() (Bg return newObj, nil } -// BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget is the Route Target Community identifies one or more routers that may receive a set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02. -type BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget interface { +// PatternFlowIpv4OptionsCustomTypeOptionClassCounter is integer counter pattern +type PatternFlowIpv4OptionsCustomTypeOptionClassCounter interface { Validation - // msg marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget to protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + // msg marshals PatternFlowIpv4OptionsCustomTypeOptionClassCounter to protobuf object *otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter // and doesn't set defaults - msg() *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget - // setMsg unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget from protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + msg() *otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter + // setMsg unmarshals PatternFlowIpv4OptionsCustomTypeOptionClassCounter from protobuf object *otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter // and doesn't set defaults - setMsg(*otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + setMsg(*otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter) PatternFlowIpv4OptionsCustomTypeOptionClassCounter // provides marshal interface - Marshal() marshalBgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + Marshal() marshalPatternFlowIpv4OptionsCustomTypeOptionClassCounter // provides unmarshal interface - Unmarshal() unMarshalBgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget - // validate validates BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + Unmarshal() unMarshalPatternFlowIpv4OptionsCustomTypeOptionClassCounter + // validate validates PatternFlowIpv4OptionsCustomTypeOptionClassCounter validate() error // A stringer function String() string // Clones the object - Clone() (BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget, error) + Clone() (PatternFlowIpv4OptionsCustomTypeOptionClassCounter, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // GlobalIpv4Admin returns string, set in BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget. - GlobalIpv4Admin() string - // SetGlobalIpv4Admin assigns string provided by user to BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget - SetGlobalIpv4Admin(value string) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget - // HasGlobalIpv4Admin checks if GlobalIpv4Admin has been set in BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget - HasGlobalIpv4Admin() bool - // Local2ByteAdmin returns uint32, set in BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget. - Local2ByteAdmin() uint32 - // SetLocal2ByteAdmin assigns uint32 provided by user to BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget - SetLocal2ByteAdmin(value uint32) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget - // HasLocal2ByteAdmin checks if Local2ByteAdmin has been set in BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget - HasLocal2ByteAdmin() bool + // Start returns uint32, set in PatternFlowIpv4OptionsCustomTypeOptionClassCounter. + Start() uint32 + // SetStart assigns uint32 provided by user to PatternFlowIpv4OptionsCustomTypeOptionClassCounter + SetStart(value uint32) PatternFlowIpv4OptionsCustomTypeOptionClassCounter + // HasStart checks if Start has been set in PatternFlowIpv4OptionsCustomTypeOptionClassCounter + HasStart() bool + // Step returns uint32, set in PatternFlowIpv4OptionsCustomTypeOptionClassCounter. + Step() uint32 + // SetStep assigns uint32 provided by user to PatternFlowIpv4OptionsCustomTypeOptionClassCounter + SetStep(value uint32) PatternFlowIpv4OptionsCustomTypeOptionClassCounter + // HasStep checks if Step has been set in PatternFlowIpv4OptionsCustomTypeOptionClassCounter + HasStep() bool + // Count returns uint32, set in PatternFlowIpv4OptionsCustomTypeOptionClassCounter. + Count() uint32 + // SetCount assigns uint32 provided by user to PatternFlowIpv4OptionsCustomTypeOptionClassCounter + SetCount(value uint32) PatternFlowIpv4OptionsCustomTypeOptionClassCounter + // HasCount checks if Count has been set in PatternFlowIpv4OptionsCustomTypeOptionClassCounter + HasCount() bool } -// An IPv4 unicast address assigned by one of the Internet registries. -// GlobalIpv4Admin returns a string -func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) GlobalIpv4Admin() string { +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) Start() uint32 { - return *obj.obj.GlobalIpv4Admin + return *obj.obj.Start } -// An IPv4 unicast address assigned by one of the Internet registries. -// GlobalIpv4Admin returns a string -func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) HasGlobalIpv4Admin() bool { - return obj.obj.GlobalIpv4Admin != nil +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) HasStart() bool { + return obj.obj.Start != nil } -// An IPv4 unicast address assigned by one of the Internet registries. -// SetGlobalIpv4Admin sets the string value in the BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget object -func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) SetGlobalIpv4Admin(value string) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget { +// description is TBD +// SetStart sets the uint32 value in the PatternFlowIpv4OptionsCustomTypeOptionClassCounter object +func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) SetStart(value uint32) PatternFlowIpv4OptionsCustomTypeOptionClassCounter { - obj.obj.GlobalIpv4Admin = &value + obj.obj.Start = &value return obj } -// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority. -// Local2ByteAdmin returns a uint32 -func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) Local2ByteAdmin() uint32 { +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) Step() uint32 { - return *obj.obj.Local_2ByteAdmin + return *obj.obj.Step } -// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority. -// Local2ByteAdmin returns a uint32 -func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) HasLocal2ByteAdmin() bool { - return obj.obj.Local_2ByteAdmin != nil +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) HasStep() bool { + return obj.obj.Step != nil } -// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority. -// SetLocal2ByteAdmin sets the uint32 value in the BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget object -func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) SetLocal2ByteAdmin(value uint32) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget { +// description is TBD +// SetStep sets the uint32 value in the PatternFlowIpv4OptionsCustomTypeOptionClassCounter object +func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) SetStep(value uint32) PatternFlowIpv4OptionsCustomTypeOptionClassCounter { - obj.obj.Local_2ByteAdmin = &value + obj.obj.Step = &value return obj } -func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) validateObj(vObj *validation, set_default bool) { +// description is TBD +// Count returns a uint32 +func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) Count() uint32 { + + return *obj.obj.Count + +} + +// description is TBD +// Count returns a uint32 +func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) HasCount() bool { + return obj.obj.Count != nil +} + +// description is TBD +// SetCount sets the uint32 value in the PatternFlowIpv4OptionsCustomTypeOptionClassCounter object +func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) SetCount(value uint32) PatternFlowIpv4OptionsCustomTypeOptionClassCounter { + + obj.obj.Count = &value + return obj +} + +func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.GlobalIpv4Admin != nil { + if obj.obj.Start != nil { - err := obj.validateIpv4(obj.GlobalIpv4Admin()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget.GlobalIpv4Admin")) + if *obj.obj.Start > 3 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4OptionsCustomTypeOptionClassCounter.Start <= 3 but Got %d", *obj.obj.Start)) } } - if obj.obj.Local_2ByteAdmin != nil { + if obj.obj.Step != nil { - if *obj.obj.Local_2ByteAdmin > 65535 { + if *obj.obj.Step > 3 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget.Local_2ByteAdmin <= 65535 but Got %d", *obj.obj.Local_2ByteAdmin)) + fmt.Sprintf("0 <= PatternFlowIpv4OptionsCustomTypeOptionClassCounter.Step <= 3 but Got %d", *obj.obj.Step)) + } + + } + + if obj.obj.Count != nil { + + if *obj.obj.Count > 3 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4OptionsCustomTypeOptionClassCounter.Count <= 3 but Got %d", *obj.obj.Count)) } } } -func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) setDefault() { - if obj.obj.GlobalIpv4Admin == nil { - obj.SetGlobalIpv4Admin("0.0.0.0") +func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) setDefault() { + if obj.obj.Start == nil { + obj.SetStart(0) } - if obj.obj.Local_2ByteAdmin == nil { - obj.SetLocal2ByteAdmin(1) + if obj.obj.Step == nil { + obj.SetStep(1) + } + if obj.obj.Count == nil { + obj.SetCount(1) } } -// ***** BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin ***** -type bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin struct { +// ***** PatternFlowIpv4OptionsCustomTypeOptionNumberCounter ***** +type patternFlowIpv4OptionsCustomTypeOptionNumberCounter struct { validation - obj *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin - marshaller marshalBgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin - unMarshaller unMarshalBgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + obj *otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter + marshaller marshalPatternFlowIpv4OptionsCustomTypeOptionNumberCounter + unMarshaller unMarshalPatternFlowIpv4OptionsCustomTypeOptionNumberCounter } -func NewBgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin() BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin { - obj := bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin{obj: &otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin{}} +func NewPatternFlowIpv4OptionsCustomTypeOptionNumberCounter() PatternFlowIpv4OptionsCustomTypeOptionNumberCounter { + obj := patternFlowIpv4OptionsCustomTypeOptionNumberCounter{obj: &otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter{}} obj.setDefault() return &obj } -func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) msg() *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin { +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) msg() *otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter { return obj.obj } -func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) setMsg(msg *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin { +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) setMsg(msg *otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) PatternFlowIpv4OptionsCustomTypeOptionNumberCounter { proto.Merge(obj.obj, msg) return obj } -type marshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin struct { - obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin +type marshalpatternFlowIpv4OptionsCustomTypeOptionNumberCounter struct { + obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter } -type marshalBgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin interface { - // ToProto marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin to protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin - ToProto() (*otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin, error) - // ToPbText marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin to protobuf text +type marshalPatternFlowIpv4OptionsCustomTypeOptionNumberCounter interface { + // ToProto marshals PatternFlowIpv4OptionsCustomTypeOptionNumberCounter to protobuf object *otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter + ToProto() (*otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter, error) + // ToPbText marshals PatternFlowIpv4OptionsCustomTypeOptionNumberCounter to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin to YAML text + // ToYaml marshals PatternFlowIpv4OptionsCustomTypeOptionNumberCounter to YAML text ToYaml() (string, error) - // ToJson marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin to JSON text + // ToJson marshals PatternFlowIpv4OptionsCustomTypeOptionNumberCounter to JSON text ToJson() (string, error) } -type unMarshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin struct { - obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin +type unMarshalpatternFlowIpv4OptionsCustomTypeOptionNumberCounter struct { + obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter } -type unMarshalBgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin interface { - // FromProto unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin from protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin - FromProto(msg *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) (BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin, error) - // FromPbText unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin from protobuf text +type unMarshalPatternFlowIpv4OptionsCustomTypeOptionNumberCounter interface { + // FromProto unmarshals PatternFlowIpv4OptionsCustomTypeOptionNumberCounter from protobuf object *otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter + FromProto(msg *otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) (PatternFlowIpv4OptionsCustomTypeOptionNumberCounter, error) + // FromPbText unmarshals PatternFlowIpv4OptionsCustomTypeOptionNumberCounter from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin from YAML text + // FromYaml unmarshals PatternFlowIpv4OptionsCustomTypeOptionNumberCounter from YAML text FromYaml(value string) error - // FromJson unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin from JSON text + // FromJson unmarshals PatternFlowIpv4OptionsCustomTypeOptionNumberCounter from JSON text FromJson(value string) error } -func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) Marshal() marshalBgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin { +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) Marshal() marshalPatternFlowIpv4OptionsCustomTypeOptionNumberCounter { if obj.marshaller == nil { - obj.marshaller = &marshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin{obj: obj} + obj.marshaller = &marshalpatternFlowIpv4OptionsCustomTypeOptionNumberCounter{obj: obj} } return obj.marshaller } -func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) Unmarshal() unMarshalBgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin { +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) Unmarshal() unMarshalPatternFlowIpv4OptionsCustomTypeOptionNumberCounter { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin{obj: obj} + obj.unMarshaller = &unMarshalpatternFlowIpv4OptionsCustomTypeOptionNumberCounter{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) ToProto() (*otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin, error) { +func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionNumberCounter) ToProto() (*otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -340890,7 +353401,7 @@ func (m *marshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) ToProt return m.obj.msg(), nil } -func (m *unMarshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) FromProto(msg *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) (BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin, error) { +func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionNumberCounter) FromProto(msg *otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) (PatternFlowIpv4OptionsCustomTypeOptionNumberCounter, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -340899,7 +353410,7 @@ func (m *unMarshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) From return newObj, nil } -func (m *marshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) ToPbText() (string, error) { +func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionNumberCounter) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -340911,7 +353422,7 @@ func (m *marshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) ToPbTe return string(protoMarshal), nil } -func (m *unMarshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) FromPbText(value string) error { +func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionNumberCounter) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj @@ -340924,7 +353435,7 @@ func (m *unMarshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) From return retObj } -func (m *marshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) ToYaml() (string, error) { +func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionNumberCounter) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -340945,7 +353456,7 @@ func (m *marshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) ToYaml return string(data), nil } -func (m *unMarshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) FromYaml(value string) error { +func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionNumberCounter) FromYaml(value string) error { if value == "" { value = "{}" } @@ -340970,7 +353481,7 @@ func (m *unMarshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) From return nil } -func (m *marshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) ToJson() (string, error) { +func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionNumberCounter) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -340988,7 +353499,7 @@ func (m *marshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) ToJson return string(data), nil } -func (m *unMarshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) FromJson(value string) error { +func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionNumberCounter) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -341009,19 +353520,19 @@ func (m *unMarshalbgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) From return nil } -func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) validateToAndFrom() error { +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) validate() error { +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) String() string { +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -341029,12 +353540,12 @@ func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) String() st return str } -func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) Clone() (BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin, error) { +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) Clone() (PatternFlowIpv4OptionsCustomTypeOptionNumberCounter, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin() + newObj := NewPatternFlowIpv4OptionsCustomTypeOptionNumberCounter() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -341046,191 +353557,235 @@ func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) Clone() (Bg return newObj, nil } -// BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin is the Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP It is sent with sub-type as 0x03. -type BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin interface { +// PatternFlowIpv4OptionsCustomTypeOptionNumberCounter is integer counter pattern +type PatternFlowIpv4OptionsCustomTypeOptionNumberCounter interface { Validation - // msg marshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin to protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + // msg marshals PatternFlowIpv4OptionsCustomTypeOptionNumberCounter to protobuf object *otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter // and doesn't set defaults - msg() *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin - // setMsg unmarshals BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin from protobuf object *otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + msg() *otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter + // setMsg unmarshals PatternFlowIpv4OptionsCustomTypeOptionNumberCounter from protobuf object *otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter // and doesn't set defaults - setMsg(*otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + setMsg(*otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) PatternFlowIpv4OptionsCustomTypeOptionNumberCounter // provides marshal interface - Marshal() marshalBgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + Marshal() marshalPatternFlowIpv4OptionsCustomTypeOptionNumberCounter // provides unmarshal interface - Unmarshal() unMarshalBgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin - // validate validates BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + Unmarshal() unMarshalPatternFlowIpv4OptionsCustomTypeOptionNumberCounter + // validate validates PatternFlowIpv4OptionsCustomTypeOptionNumberCounter validate() error // A stringer function String() string // Clones the object - Clone() (BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin, error) + Clone() (PatternFlowIpv4OptionsCustomTypeOptionNumberCounter, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // GlobalIpv4Admin returns string, set in BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin. - GlobalIpv4Admin() string - // SetGlobalIpv4Admin assigns string provided by user to BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin - SetGlobalIpv4Admin(value string) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin - // HasGlobalIpv4Admin checks if GlobalIpv4Admin has been set in BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin - HasGlobalIpv4Admin() bool - // Local2ByteAdmin returns uint32, set in BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin. - Local2ByteAdmin() uint32 - // SetLocal2ByteAdmin assigns uint32 provided by user to BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin - SetLocal2ByteAdmin(value uint32) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin - // HasLocal2ByteAdmin checks if Local2ByteAdmin has been set in BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin - HasLocal2ByteAdmin() bool + // Start returns uint32, set in PatternFlowIpv4OptionsCustomTypeOptionNumberCounter. + Start() uint32 + // SetStart assigns uint32 provided by user to PatternFlowIpv4OptionsCustomTypeOptionNumberCounter + SetStart(value uint32) PatternFlowIpv4OptionsCustomTypeOptionNumberCounter + // HasStart checks if Start has been set in PatternFlowIpv4OptionsCustomTypeOptionNumberCounter + HasStart() bool + // Step returns uint32, set in PatternFlowIpv4OptionsCustomTypeOptionNumberCounter. + Step() uint32 + // SetStep assigns uint32 provided by user to PatternFlowIpv4OptionsCustomTypeOptionNumberCounter + SetStep(value uint32) PatternFlowIpv4OptionsCustomTypeOptionNumberCounter + // HasStep checks if Step has been set in PatternFlowIpv4OptionsCustomTypeOptionNumberCounter + HasStep() bool + // Count returns uint32, set in PatternFlowIpv4OptionsCustomTypeOptionNumberCounter. + Count() uint32 + // SetCount assigns uint32 provided by user to PatternFlowIpv4OptionsCustomTypeOptionNumberCounter + SetCount(value uint32) PatternFlowIpv4OptionsCustomTypeOptionNumberCounter + // HasCount checks if Count has been set in PatternFlowIpv4OptionsCustomTypeOptionNumberCounter + HasCount() bool } -// An IPv4 unicast address assigned by one of the Internet registries. -// GlobalIpv4Admin returns a string -func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) GlobalIpv4Admin() string { +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) Start() uint32 { - return *obj.obj.GlobalIpv4Admin + return *obj.obj.Start } -// An IPv4 unicast address assigned by one of the Internet registries. -// GlobalIpv4Admin returns a string -func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) HasGlobalIpv4Admin() bool { - return obj.obj.GlobalIpv4Admin != nil +// description is TBD +// Start returns a uint32 +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) HasStart() bool { + return obj.obj.Start != nil } -// An IPv4 unicast address assigned by one of the Internet registries. -// SetGlobalIpv4Admin sets the string value in the BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin object -func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) SetGlobalIpv4Admin(value string) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin { +// description is TBD +// SetStart sets the uint32 value in the PatternFlowIpv4OptionsCustomTypeOptionNumberCounter object +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) SetStart(value uint32) PatternFlowIpv4OptionsCustomTypeOptionNumberCounter { - obj.obj.GlobalIpv4Admin = &value + obj.obj.Start = &value return obj } -// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority. -// Local2ByteAdmin returns a uint32 -func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) Local2ByteAdmin() uint32 { +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) Step() uint32 { - return *obj.obj.Local_2ByteAdmin + return *obj.obj.Step } -// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority. -// Local2ByteAdmin returns a uint32 -func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) HasLocal2ByteAdmin() bool { - return obj.obj.Local_2ByteAdmin != nil +// description is TBD +// Step returns a uint32 +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) HasStep() bool { + return obj.obj.Step != nil } -// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the IP address carried in the Global Administrator sub-field has been assigned by an appropriate authority. -// SetLocal2ByteAdmin sets the uint32 value in the BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin object -func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) SetLocal2ByteAdmin(value uint32) BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin { +// description is TBD +// SetStep sets the uint32 value in the PatternFlowIpv4OptionsCustomTypeOptionNumberCounter object +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) SetStep(value uint32) PatternFlowIpv4OptionsCustomTypeOptionNumberCounter { - obj.obj.Local_2ByteAdmin = &value + obj.obj.Step = &value return obj } -func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) validateObj(vObj *validation, set_default bool) { +// description is TBD +// Count returns a uint32 +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) Count() uint32 { + + return *obj.obj.Count + +} + +// description is TBD +// Count returns a uint32 +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) HasCount() bool { + return obj.obj.Count != nil +} + +// description is TBD +// SetCount sets the uint32 value in the PatternFlowIpv4OptionsCustomTypeOptionNumberCounter object +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) SetCount(value uint32) PatternFlowIpv4OptionsCustomTypeOptionNumberCounter { + + obj.obj.Count = &value + return obj +} + +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.GlobalIpv4Admin != nil { + if obj.obj.Start != nil { - err := obj.validateIpv4(obj.GlobalIpv4Admin()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin.GlobalIpv4Admin")) + if *obj.obj.Start > 31 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4OptionsCustomTypeOptionNumberCounter.Start <= 31 but Got %d", *obj.obj.Start)) } } - if obj.obj.Local_2ByteAdmin != nil { + if obj.obj.Step != nil { - if *obj.obj.Local_2ByteAdmin > 65535 { + if *obj.obj.Step > 31 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin.Local_2ByteAdmin <= 65535 but Got %d", *obj.obj.Local_2ByteAdmin)) + fmt.Sprintf("0 <= PatternFlowIpv4OptionsCustomTypeOptionNumberCounter.Step <= 31 but Got %d", *obj.obj.Step)) + } + + } + + if obj.obj.Count != nil { + + if *obj.obj.Count > 31 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= PatternFlowIpv4OptionsCustomTypeOptionNumberCounter.Count <= 31 but Got %d", *obj.obj.Count)) } } } -func (obj *bgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) setDefault() { - if obj.obj.GlobalIpv4Admin == nil { - obj.SetGlobalIpv4Admin("0.0.0.0") +func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) setDefault() { + if obj.obj.Start == nil { + obj.SetStart(0) } - if obj.obj.Local_2ByteAdmin == nil { - obj.SetLocal2ByteAdmin(1) + if obj.obj.Step == nil { + obj.SetStep(1) + } + if obj.obj.Count == nil { + obj.SetCount(1) } } -// ***** BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget ***** -type bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget struct { +// ***** PatternFlowSnmpv2CVariableBindingValueIntegerValue ***** +type patternFlowSnmpv2CVariableBindingValueIntegerValue struct { validation - obj *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget - marshaller marshalBgpExtendedCommunityTransitive4OctetAsTypeRouteTarget - unMarshaller unMarshalBgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + obj *otg.PatternFlowSnmpv2CVariableBindingValueIntegerValue + marshaller marshalPatternFlowSnmpv2CVariableBindingValueIntegerValue + unMarshaller unMarshalPatternFlowSnmpv2CVariableBindingValueIntegerValue + incrementHolder PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter + decrementHolder PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter } -func NewBgpExtendedCommunityTransitive4OctetAsTypeRouteTarget() BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget { - obj := bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget{obj: &otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget{}} +func NewPatternFlowSnmpv2CVariableBindingValueIntegerValue() PatternFlowSnmpv2CVariableBindingValueIntegerValue { + obj := patternFlowSnmpv2CVariableBindingValueIntegerValue{obj: &otg.PatternFlowSnmpv2CVariableBindingValueIntegerValue{}} obj.setDefault() return &obj } -func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) msg() *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget { +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValue) msg() *otg.PatternFlowSnmpv2CVariableBindingValueIntegerValue { return obj.obj } -func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) setMsg(msg *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget { - +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValue) setMsg(msg *otg.PatternFlowSnmpv2CVariableBindingValueIntegerValue) PatternFlowSnmpv2CVariableBindingValueIntegerValue { + obj.setNil() proto.Merge(obj.obj, msg) return obj } -type marshalbgpExtendedCommunityTransitive4OctetAsTypeRouteTarget struct { - obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget +type marshalpatternFlowSnmpv2CVariableBindingValueIntegerValue struct { + obj *patternFlowSnmpv2CVariableBindingValueIntegerValue } -type marshalBgpExtendedCommunityTransitive4OctetAsTypeRouteTarget interface { - // ToProto marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget to protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget - ToProto() (*otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget, error) - // ToPbText marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget to protobuf text +type marshalPatternFlowSnmpv2CVariableBindingValueIntegerValue interface { + // ToProto marshals PatternFlowSnmpv2CVariableBindingValueIntegerValue to protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueIntegerValue + ToProto() (*otg.PatternFlowSnmpv2CVariableBindingValueIntegerValue, error) + // ToPbText marshals PatternFlowSnmpv2CVariableBindingValueIntegerValue to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget to YAML text + // ToYaml marshals PatternFlowSnmpv2CVariableBindingValueIntegerValue to YAML text ToYaml() (string, error) - // ToJson marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget to JSON text + // ToJson marshals PatternFlowSnmpv2CVariableBindingValueIntegerValue to JSON text ToJson() (string, error) } -type unMarshalbgpExtendedCommunityTransitive4OctetAsTypeRouteTarget struct { - obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget +type unMarshalpatternFlowSnmpv2CVariableBindingValueIntegerValue struct { + obj *patternFlowSnmpv2CVariableBindingValueIntegerValue } -type unMarshalBgpExtendedCommunityTransitive4OctetAsTypeRouteTarget interface { - // FromProto unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget from protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget - FromProto(msg *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) (BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget, error) - // FromPbText unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget from protobuf text +type unMarshalPatternFlowSnmpv2CVariableBindingValueIntegerValue interface { + // FromProto unmarshals PatternFlowSnmpv2CVariableBindingValueIntegerValue from protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueIntegerValue + FromProto(msg *otg.PatternFlowSnmpv2CVariableBindingValueIntegerValue) (PatternFlowSnmpv2CVariableBindingValueIntegerValue, error) + // FromPbText unmarshals PatternFlowSnmpv2CVariableBindingValueIntegerValue from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget from YAML text + // FromYaml unmarshals PatternFlowSnmpv2CVariableBindingValueIntegerValue from YAML text FromYaml(value string) error - // FromJson unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget from JSON text + // FromJson unmarshals PatternFlowSnmpv2CVariableBindingValueIntegerValue from JSON text FromJson(value string) error } -func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) Marshal() marshalBgpExtendedCommunityTransitive4OctetAsTypeRouteTarget { +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValue) Marshal() marshalPatternFlowSnmpv2CVariableBindingValueIntegerValue { if obj.marshaller == nil { - obj.marshaller = &marshalbgpExtendedCommunityTransitive4OctetAsTypeRouteTarget{obj: obj} + obj.marshaller = &marshalpatternFlowSnmpv2CVariableBindingValueIntegerValue{obj: obj} } return obj.marshaller } -func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) Unmarshal() unMarshalBgpExtendedCommunityTransitive4OctetAsTypeRouteTarget { +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValue) Unmarshal() unMarshalPatternFlowSnmpv2CVariableBindingValueIntegerValue { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpExtendedCommunityTransitive4OctetAsTypeRouteTarget{obj: obj} + obj.unMarshaller = &unMarshalpatternFlowSnmpv2CVariableBindingValueIntegerValue{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) ToProto() (*otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueIntegerValue) ToProto() (*otg.PatternFlowSnmpv2CVariableBindingValueIntegerValue, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -341238,7 +353793,7 @@ func (m *marshalbgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) ToProto() return m.obj.msg(), nil } -func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) FromProto(msg *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) (BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget, error) { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueIntegerValue) FromProto(msg *otg.PatternFlowSnmpv2CVariableBindingValueIntegerValue) (PatternFlowSnmpv2CVariableBindingValueIntegerValue, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -341247,7 +353802,7 @@ func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) FromPro return newObj, nil } -func (m *marshalbgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) ToPbText() (string, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueIntegerValue) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -341259,12 +353814,12 @@ func (m *marshalbgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) ToPbText( return string(protoMarshal), nil } -func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) FromPbText(value string) error { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueIntegerValue) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -341272,7 +353827,7 @@ func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) FromPbT return retObj } -func (m *marshalbgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) ToYaml() (string, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueIntegerValue) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -341293,7 +353848,7 @@ func (m *marshalbgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) ToYaml() return string(data), nil } -func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) FromYaml(value string) error { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueIntegerValue) FromYaml(value string) error { if value == "" { value = "{}" } @@ -341310,7 +353865,7 @@ func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) FromYam return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -341318,7 +353873,7 @@ func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) FromYam return nil } -func (m *marshalbgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) ToJson() (string, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueIntegerValue) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -341336,7 +353891,7 @@ func (m *marshalbgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) ToJson() return string(data), nil } -func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) FromJson(value string) error { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueIntegerValue) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -341349,7 +353904,7 @@ func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) FromJso return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() err := m.obj.validateToAndFrom() if err != nil { return err @@ -341357,19 +353912,19 @@ func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) FromJso return nil } -func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) validateToAndFrom() error { +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValue) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) validate() error { +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValue) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) String() string { +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValue) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -341377,12 +353932,12 @@ func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) String() strin return str } -func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) Clone() (BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget, error) { +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValue) Clone() (PatternFlowSnmpv2CVariableBindingValueIntegerValue, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpExtendedCommunityTransitive4OctetAsTypeRouteTarget() + newObj := NewPatternFlowSnmpv2CVariableBindingValueIntegerValue() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -341394,182 +353949,328 @@ func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) Clone() (BgpEx return newObj, nil } -// BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget is the Route Target Community identifies one or more routers that may receive a set of routes (that carry this Community) carried by BGP. It is sent with sub-type as 0x02 -type BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget interface { +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValue) setNil() { + obj.incrementHolder = nil + obj.decrementHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// PatternFlowSnmpv2CVariableBindingValueIntegerValue is integer value returned for the requested OID. +type PatternFlowSnmpv2CVariableBindingValueIntegerValue interface { Validation - // msg marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget to protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + // msg marshals PatternFlowSnmpv2CVariableBindingValueIntegerValue to protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueIntegerValue // and doesn't set defaults - msg() *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget - // setMsg unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget from protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + msg() *otg.PatternFlowSnmpv2CVariableBindingValueIntegerValue + // setMsg unmarshals PatternFlowSnmpv2CVariableBindingValueIntegerValue from protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueIntegerValue // and doesn't set defaults - setMsg(*otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + setMsg(*otg.PatternFlowSnmpv2CVariableBindingValueIntegerValue) PatternFlowSnmpv2CVariableBindingValueIntegerValue // provides marshal interface - Marshal() marshalBgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + Marshal() marshalPatternFlowSnmpv2CVariableBindingValueIntegerValue // provides unmarshal interface - Unmarshal() unMarshalBgpExtendedCommunityTransitive4OctetAsTypeRouteTarget - // validate validates BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + Unmarshal() unMarshalPatternFlowSnmpv2CVariableBindingValueIntegerValue + // validate validates PatternFlowSnmpv2CVariableBindingValueIntegerValue validate() error // A stringer function String() string // Clones the object - Clone() (BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget, error) + Clone() (PatternFlowSnmpv2CVariableBindingValueIntegerValue, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Global4ByteAs returns uint32, set in BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget. - Global4ByteAs() uint32 - // SetGlobal4ByteAs assigns uint32 provided by user to BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget - SetGlobal4ByteAs(value uint32) BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget - // HasGlobal4ByteAs checks if Global4ByteAs has been set in BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget - HasGlobal4ByteAs() bool - // Local2ByteAdmin returns uint32, set in BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget. - Local2ByteAdmin() uint32 - // SetLocal2ByteAdmin assigns uint32 provided by user to BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget - SetLocal2ByteAdmin(value uint32) BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget - // HasLocal2ByteAdmin checks if Local2ByteAdmin has been set in BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget - HasLocal2ByteAdmin() bool + // Choice returns PatternFlowSnmpv2CVariableBindingValueIntegerValueChoiceEnum, set in PatternFlowSnmpv2CVariableBindingValueIntegerValue + Choice() PatternFlowSnmpv2CVariableBindingValueIntegerValueChoiceEnum + // setChoice assigns PatternFlowSnmpv2CVariableBindingValueIntegerValueChoiceEnum provided by user to PatternFlowSnmpv2CVariableBindingValueIntegerValue + setChoice(value PatternFlowSnmpv2CVariableBindingValueIntegerValueChoiceEnum) PatternFlowSnmpv2CVariableBindingValueIntegerValue + // HasChoice checks if Choice has been set in PatternFlowSnmpv2CVariableBindingValueIntegerValue + HasChoice() bool + // Value returns int32, set in PatternFlowSnmpv2CVariableBindingValueIntegerValue. + Value() int32 + // SetValue assigns int32 provided by user to PatternFlowSnmpv2CVariableBindingValueIntegerValue + SetValue(value int32) PatternFlowSnmpv2CVariableBindingValueIntegerValue + // HasValue checks if Value has been set in PatternFlowSnmpv2CVariableBindingValueIntegerValue + HasValue() bool + // Values returns []int32, set in PatternFlowSnmpv2CVariableBindingValueIntegerValue. + Values() []int32 + // SetValues assigns []int32 provided by user to PatternFlowSnmpv2CVariableBindingValueIntegerValue + SetValues(value []int32) PatternFlowSnmpv2CVariableBindingValueIntegerValue + // Increment returns PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter, set in PatternFlowSnmpv2CVariableBindingValueIntegerValue. + Increment() PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter + // SetIncrement assigns PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter provided by user to PatternFlowSnmpv2CVariableBindingValueIntegerValue. + SetIncrement(value PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) PatternFlowSnmpv2CVariableBindingValueIntegerValue + // HasIncrement checks if Increment has been set in PatternFlowSnmpv2CVariableBindingValueIntegerValue + HasIncrement() bool + // Decrement returns PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter, set in PatternFlowSnmpv2CVariableBindingValueIntegerValue. + Decrement() PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter + // SetDecrement assigns PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter provided by user to PatternFlowSnmpv2CVariableBindingValueIntegerValue. + SetDecrement(value PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) PatternFlowSnmpv2CVariableBindingValueIntegerValue + // HasDecrement checks if Decrement has been set in PatternFlowSnmpv2CVariableBindingValueIntegerValue + HasDecrement() bool + setNil() } -// The four octet IANA assigned AS value assigned to the Autonomous System. -// Global4ByteAs returns a uint32 -func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) Global4ByteAs() uint32 { +type PatternFlowSnmpv2CVariableBindingValueIntegerValueChoiceEnum string - return *obj.obj.Global_4ByteAs +// Enum of Choice on PatternFlowSnmpv2CVariableBindingValueIntegerValue +var PatternFlowSnmpv2CVariableBindingValueIntegerValueChoice = struct { + VALUE PatternFlowSnmpv2CVariableBindingValueIntegerValueChoiceEnum + VALUES PatternFlowSnmpv2CVariableBindingValueIntegerValueChoiceEnum + INCREMENT PatternFlowSnmpv2CVariableBindingValueIntegerValueChoiceEnum + DECREMENT PatternFlowSnmpv2CVariableBindingValueIntegerValueChoiceEnum +}{ + VALUE: PatternFlowSnmpv2CVariableBindingValueIntegerValueChoiceEnum("value"), + VALUES: PatternFlowSnmpv2CVariableBindingValueIntegerValueChoiceEnum("values"), + INCREMENT: PatternFlowSnmpv2CVariableBindingValueIntegerValueChoiceEnum("increment"), + DECREMENT: PatternFlowSnmpv2CVariableBindingValueIntegerValueChoiceEnum("decrement"), +} +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValue) Choice() PatternFlowSnmpv2CVariableBindingValueIntegerValueChoiceEnum { + return PatternFlowSnmpv2CVariableBindingValueIntegerValueChoiceEnum(obj.obj.Choice.Enum().String()) } -// The four octet IANA assigned AS value assigned to the Autonomous System. -// Global4ByteAs returns a uint32 -func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) HasGlobal4ByteAs() bool { - return obj.obj.Global_4ByteAs != nil +// description is TBD +// Choice returns a string +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValue) HasChoice() bool { + return obj.obj.Choice != nil } -// The four octet IANA assigned AS value assigned to the Autonomous System. -// SetGlobal4ByteAs sets the uint32 value in the BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget object -func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) SetGlobal4ByteAs(value uint32) BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget { +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValue) setChoice(value PatternFlowSnmpv2CVariableBindingValueIntegerValueChoiceEnum) PatternFlowSnmpv2CVariableBindingValueIntegerValue { + intValue, ok := otg.PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on PatternFlowSnmpv2CVariableBindingValueIntegerValueChoiceEnum", string(value))) + return obj + } + enumValue := otg.PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.Decrement = nil + obj.decrementHolder = nil + obj.obj.Increment = nil + obj.incrementHolder = nil + obj.obj.Values = nil + obj.obj.Value = nil + + if value == PatternFlowSnmpv2CVariableBindingValueIntegerValueChoice.VALUE { + defaultValue := int32(0) + obj.obj.Value = &defaultValue + } + + if value == PatternFlowSnmpv2CVariableBindingValueIntegerValueChoice.VALUES { + defaultValue := []int32{0} + obj.obj.Values = defaultValue + } + + if value == PatternFlowSnmpv2CVariableBindingValueIntegerValueChoice.INCREMENT { + obj.obj.Increment = NewPatternFlowSnmpv2CVariableBindingValueIntegerValueCounter().msg() + } + + if value == PatternFlowSnmpv2CVariableBindingValueIntegerValueChoice.DECREMENT { + obj.obj.Decrement = NewPatternFlowSnmpv2CVariableBindingValueIntegerValueCounter().msg() + } - obj.obj.Global_4ByteAs = &value return obj } -// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. -// Local2ByteAdmin returns a uint32 -func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) Local2ByteAdmin() uint32 { +// description is TBD +// Value returns a int32 +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValue) Value() int32 { - return *obj.obj.Local_2ByteAdmin + if obj.obj.Value == nil { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueIntegerValueChoice.VALUE) + } + + return *obj.obj.Value } -// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. -// Local2ByteAdmin returns a uint32 -func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) HasLocal2ByteAdmin() bool { - return obj.obj.Local_2ByteAdmin != nil +// description is TBD +// Value returns a int32 +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValue) HasValue() bool { + return obj.obj.Value != nil } -// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. -// SetLocal2ByteAdmin sets the uint32 value in the BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget object -func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) SetLocal2ByteAdmin(value uint32) BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget { +// description is TBD +// SetValue sets the int32 value in the PatternFlowSnmpv2CVariableBindingValueIntegerValue object +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValue) SetValue(value int32) PatternFlowSnmpv2CVariableBindingValueIntegerValue { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueIntegerValueChoice.VALUE) + obj.obj.Value = &value + return obj +} + +// description is TBD +// Values returns a []int32 +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValue) Values() []int32 { + if obj.obj.Values == nil { + obj.SetValues([]int32{0}) + } + return obj.obj.Values +} + +// description is TBD +// SetValues sets the []int32 value in the PatternFlowSnmpv2CVariableBindingValueIntegerValue object +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValue) SetValues(value []int32) PatternFlowSnmpv2CVariableBindingValueIntegerValue { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueIntegerValueChoice.VALUES) + if obj.obj.Values == nil { + obj.obj.Values = make([]int32, 0) + } + obj.obj.Values = value - obj.obj.Local_2ByteAdmin = &value return obj } -func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) validateObj(vObj *validation, set_default bool) { +// description is TBD +// Increment returns a PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValue) Increment() PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter { + if obj.obj.Increment == nil { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueIntegerValueChoice.INCREMENT) + } + if obj.incrementHolder == nil { + obj.incrementHolder = &patternFlowSnmpv2CVariableBindingValueIntegerValueCounter{obj: obj.obj.Increment} + } + return obj.incrementHolder +} + +// description is TBD +// Increment returns a PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValue) HasIncrement() bool { + return obj.obj.Increment != nil +} + +// description is TBD +// SetIncrement sets the PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter value in the PatternFlowSnmpv2CVariableBindingValueIntegerValue object +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValue) SetIncrement(value PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) PatternFlowSnmpv2CVariableBindingValueIntegerValue { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueIntegerValueChoice.INCREMENT) + obj.incrementHolder = nil + obj.obj.Increment = value.msg() + + return obj +} + +// description is TBD +// Decrement returns a PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValue) Decrement() PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter { + if obj.obj.Decrement == nil { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueIntegerValueChoice.DECREMENT) + } + if obj.decrementHolder == nil { + obj.decrementHolder = &patternFlowSnmpv2CVariableBindingValueIntegerValueCounter{obj: obj.obj.Decrement} + } + return obj.decrementHolder +} + +// description is TBD +// Decrement returns a PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValue) HasDecrement() bool { + return obj.obj.Decrement != nil +} + +// description is TBD +// SetDecrement sets the PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter value in the PatternFlowSnmpv2CVariableBindingValueIntegerValue object +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValue) SetDecrement(value PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) PatternFlowSnmpv2CVariableBindingValueIntegerValue { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueIntegerValueChoice.DECREMENT) + obj.decrementHolder = nil + obj.obj.Decrement = value.msg() + + return obj +} + +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValue) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Local_2ByteAdmin != nil { + if obj.obj.Increment != nil { - if *obj.obj.Local_2ByteAdmin > 65535 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget.Local_2ByteAdmin <= 65535 but Got %d", *obj.obj.Local_2ByteAdmin)) - } + obj.Increment().validateObj(vObj, set_default) + } + if obj.obj.Decrement != nil { + + obj.Decrement().validateObj(vObj, set_default) } } -func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) setDefault() { - if obj.obj.Global_4ByteAs == nil { - obj.SetGlobal4ByteAs(100) - } - if obj.obj.Local_2ByteAdmin == nil { - obj.SetLocal2ByteAdmin(1) +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValue) setDefault() { + if obj.obj.Choice == nil { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueIntegerValueChoice.VALUE) + } } -// ***** BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin ***** -type bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin struct { +// ***** PatternFlowSnmpv2CVariableBindingValueIpAddressValue ***** +type patternFlowSnmpv2CVariableBindingValueIpAddressValue struct { validation - obj *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin - marshaller marshalBgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin - unMarshaller unMarshalBgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + obj *otg.PatternFlowSnmpv2CVariableBindingValueIpAddressValue + marshaller marshalPatternFlowSnmpv2CVariableBindingValueIpAddressValue + unMarshaller unMarshalPatternFlowSnmpv2CVariableBindingValueIpAddressValue + incrementHolder PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter + decrementHolder PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter } -func NewBgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin() BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin { - obj := bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin{obj: &otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin{}} +func NewPatternFlowSnmpv2CVariableBindingValueIpAddressValue() PatternFlowSnmpv2CVariableBindingValueIpAddressValue { + obj := patternFlowSnmpv2CVariableBindingValueIpAddressValue{obj: &otg.PatternFlowSnmpv2CVariableBindingValueIpAddressValue{}} obj.setDefault() return &obj } -func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) msg() *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin { +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValue) msg() *otg.PatternFlowSnmpv2CVariableBindingValueIpAddressValue { return obj.obj } -func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) setMsg(msg *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin { - +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValue) setMsg(msg *otg.PatternFlowSnmpv2CVariableBindingValueIpAddressValue) PatternFlowSnmpv2CVariableBindingValueIpAddressValue { + obj.setNil() proto.Merge(obj.obj, msg) return obj } -type marshalbgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin struct { - obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin +type marshalpatternFlowSnmpv2CVariableBindingValueIpAddressValue struct { + obj *patternFlowSnmpv2CVariableBindingValueIpAddressValue } -type marshalBgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin interface { - // ToProto marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin to protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin - ToProto() (*otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin, error) - // ToPbText marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin to protobuf text +type marshalPatternFlowSnmpv2CVariableBindingValueIpAddressValue interface { + // ToProto marshals PatternFlowSnmpv2CVariableBindingValueIpAddressValue to protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueIpAddressValue + ToProto() (*otg.PatternFlowSnmpv2CVariableBindingValueIpAddressValue, error) + // ToPbText marshals PatternFlowSnmpv2CVariableBindingValueIpAddressValue to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin to YAML text + // ToYaml marshals PatternFlowSnmpv2CVariableBindingValueIpAddressValue to YAML text ToYaml() (string, error) - // ToJson marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin to JSON text + // ToJson marshals PatternFlowSnmpv2CVariableBindingValueIpAddressValue to JSON text ToJson() (string, error) } -type unMarshalbgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin struct { - obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin +type unMarshalpatternFlowSnmpv2CVariableBindingValueIpAddressValue struct { + obj *patternFlowSnmpv2CVariableBindingValueIpAddressValue } -type unMarshalBgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin interface { - // FromProto unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin from protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin - FromProto(msg *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) (BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin, error) - // FromPbText unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin from protobuf text +type unMarshalPatternFlowSnmpv2CVariableBindingValueIpAddressValue interface { + // FromProto unmarshals PatternFlowSnmpv2CVariableBindingValueIpAddressValue from protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueIpAddressValue + FromProto(msg *otg.PatternFlowSnmpv2CVariableBindingValueIpAddressValue) (PatternFlowSnmpv2CVariableBindingValueIpAddressValue, error) + // FromPbText unmarshals PatternFlowSnmpv2CVariableBindingValueIpAddressValue from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin from YAML text + // FromYaml unmarshals PatternFlowSnmpv2CVariableBindingValueIpAddressValue from YAML text FromYaml(value string) error - // FromJson unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin from JSON text + // FromJson unmarshals PatternFlowSnmpv2CVariableBindingValueIpAddressValue from JSON text FromJson(value string) error } -func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) Marshal() marshalBgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin { +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValue) Marshal() marshalPatternFlowSnmpv2CVariableBindingValueIpAddressValue { if obj.marshaller == nil { - obj.marshaller = &marshalbgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin{obj: obj} + obj.marshaller = &marshalpatternFlowSnmpv2CVariableBindingValueIpAddressValue{obj: obj} } return obj.marshaller } -func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) Unmarshal() unMarshalBgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin { +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValue) Unmarshal() unMarshalPatternFlowSnmpv2CVariableBindingValueIpAddressValue { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin{obj: obj} + obj.unMarshaller = &unMarshalpatternFlowSnmpv2CVariableBindingValueIpAddressValue{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) ToProto() (*otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueIpAddressValue) ToProto() (*otg.PatternFlowSnmpv2CVariableBindingValueIpAddressValue, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -341577,7 +354278,7 @@ func (m *marshalbgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) ToProto() return m.obj.msg(), nil } -func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) FromProto(msg *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) (BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin, error) { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueIpAddressValue) FromProto(msg *otg.PatternFlowSnmpv2CVariableBindingValueIpAddressValue) (PatternFlowSnmpv2CVariableBindingValueIpAddressValue, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -341586,7 +354287,7 @@ func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) FromPro return newObj, nil } -func (m *marshalbgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) ToPbText() (string, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueIpAddressValue) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -341598,12 +354299,12 @@ func (m *marshalbgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) ToPbText( return string(protoMarshal), nil } -func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) FromPbText(value string) error { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueIpAddressValue) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -341611,7 +354312,7 @@ func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) FromPbT return retObj } -func (m *marshalbgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) ToYaml() (string, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueIpAddressValue) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -341632,7 +354333,7 @@ func (m *marshalbgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) ToYaml() return string(data), nil } -func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) FromYaml(value string) error { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueIpAddressValue) FromYaml(value string) error { if value == "" { value = "{}" } @@ -341649,7 +354350,7 @@ func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) FromYam return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -341657,7 +354358,7 @@ func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) FromYam return nil } -func (m *marshalbgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) ToJson() (string, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueIpAddressValue) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -341675,7 +354376,7 @@ func (m *marshalbgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) ToJson() return string(data), nil } -func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) FromJson(value string) error { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueIpAddressValue) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -341688,7 +354389,7 @@ func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) FromJso return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() err := m.obj.validateToAndFrom() if err != nil { return err @@ -341696,19 +354397,19 @@ func (m *unMarshalbgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) FromJso return nil } -func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) validateToAndFrom() error { +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValue) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) validate() error { +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValue) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) String() string { +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValue) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -341716,12 +354417,12 @@ func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) String() strin return str } -func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) Clone() (BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin, error) { +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValue) Clone() (PatternFlowSnmpv2CVariableBindingValueIpAddressValue, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin() + newObj := NewPatternFlowSnmpv2CVariableBindingValueIpAddressValue() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -341733,182 +354434,346 @@ func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) Clone() (BgpEx return newObj, nil } -// BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin is the Route Origin Community identifies one or more routers that inject a set of routes (that carry this Community) into BGP. It is sent with sub-type as 0x03. -type BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin interface { +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValue) setNil() { + obj.incrementHolder = nil + obj.decrementHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// PatternFlowSnmpv2CVariableBindingValueIpAddressValue is iPv4 address returned for the requested OID. +type PatternFlowSnmpv2CVariableBindingValueIpAddressValue interface { Validation - // msg marshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin to protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + // msg marshals PatternFlowSnmpv2CVariableBindingValueIpAddressValue to protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueIpAddressValue // and doesn't set defaults - msg() *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin - // setMsg unmarshals BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin from protobuf object *otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + msg() *otg.PatternFlowSnmpv2CVariableBindingValueIpAddressValue + // setMsg unmarshals PatternFlowSnmpv2CVariableBindingValueIpAddressValue from protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueIpAddressValue // and doesn't set defaults - setMsg(*otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + setMsg(*otg.PatternFlowSnmpv2CVariableBindingValueIpAddressValue) PatternFlowSnmpv2CVariableBindingValueIpAddressValue // provides marshal interface - Marshal() marshalBgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + Marshal() marshalPatternFlowSnmpv2CVariableBindingValueIpAddressValue // provides unmarshal interface - Unmarshal() unMarshalBgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin - // validate validates BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + Unmarshal() unMarshalPatternFlowSnmpv2CVariableBindingValueIpAddressValue + // validate validates PatternFlowSnmpv2CVariableBindingValueIpAddressValue validate() error // A stringer function String() string // Clones the object - Clone() (BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin, error) + Clone() (PatternFlowSnmpv2CVariableBindingValueIpAddressValue, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Global4ByteAs returns uint32, set in BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin. - Global4ByteAs() uint32 - // SetGlobal4ByteAs assigns uint32 provided by user to BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin - SetGlobal4ByteAs(value uint32) BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin - // HasGlobal4ByteAs checks if Global4ByteAs has been set in BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin - HasGlobal4ByteAs() bool - // Local2ByteAdmin returns uint32, set in BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin. - Local2ByteAdmin() uint32 - // SetLocal2ByteAdmin assigns uint32 provided by user to BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin - SetLocal2ByteAdmin(value uint32) BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin - // HasLocal2ByteAdmin checks if Local2ByteAdmin has been set in BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin - HasLocal2ByteAdmin() bool + // Choice returns PatternFlowSnmpv2CVariableBindingValueIpAddressValueChoiceEnum, set in PatternFlowSnmpv2CVariableBindingValueIpAddressValue + Choice() PatternFlowSnmpv2CVariableBindingValueIpAddressValueChoiceEnum + // setChoice assigns PatternFlowSnmpv2CVariableBindingValueIpAddressValueChoiceEnum provided by user to PatternFlowSnmpv2CVariableBindingValueIpAddressValue + setChoice(value PatternFlowSnmpv2CVariableBindingValueIpAddressValueChoiceEnum) PatternFlowSnmpv2CVariableBindingValueIpAddressValue + // HasChoice checks if Choice has been set in PatternFlowSnmpv2CVariableBindingValueIpAddressValue + HasChoice() bool + // Value returns string, set in PatternFlowSnmpv2CVariableBindingValueIpAddressValue. + Value() string + // SetValue assigns string provided by user to PatternFlowSnmpv2CVariableBindingValueIpAddressValue + SetValue(value string) PatternFlowSnmpv2CVariableBindingValueIpAddressValue + // HasValue checks if Value has been set in PatternFlowSnmpv2CVariableBindingValueIpAddressValue + HasValue() bool + // Values returns []string, set in PatternFlowSnmpv2CVariableBindingValueIpAddressValue. + Values() []string + // SetValues assigns []string provided by user to PatternFlowSnmpv2CVariableBindingValueIpAddressValue + SetValues(value []string) PatternFlowSnmpv2CVariableBindingValueIpAddressValue + // Increment returns PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter, set in PatternFlowSnmpv2CVariableBindingValueIpAddressValue. + Increment() PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter + // SetIncrement assigns PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter provided by user to PatternFlowSnmpv2CVariableBindingValueIpAddressValue. + SetIncrement(value PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) PatternFlowSnmpv2CVariableBindingValueIpAddressValue + // HasIncrement checks if Increment has been set in PatternFlowSnmpv2CVariableBindingValueIpAddressValue + HasIncrement() bool + // Decrement returns PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter, set in PatternFlowSnmpv2CVariableBindingValueIpAddressValue. + Decrement() PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter + // SetDecrement assigns PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter provided by user to PatternFlowSnmpv2CVariableBindingValueIpAddressValue. + SetDecrement(value PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) PatternFlowSnmpv2CVariableBindingValueIpAddressValue + // HasDecrement checks if Decrement has been set in PatternFlowSnmpv2CVariableBindingValueIpAddressValue + HasDecrement() bool + setNil() } -// The four octet IANA assigned AS value assigned to the Autonomous System. -// Global4ByteAs returns a uint32 -func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) Global4ByteAs() uint32 { +type PatternFlowSnmpv2CVariableBindingValueIpAddressValueChoiceEnum string - return *obj.obj.Global_4ByteAs +// Enum of Choice on PatternFlowSnmpv2CVariableBindingValueIpAddressValue +var PatternFlowSnmpv2CVariableBindingValueIpAddressValueChoice = struct { + VALUE PatternFlowSnmpv2CVariableBindingValueIpAddressValueChoiceEnum + VALUES PatternFlowSnmpv2CVariableBindingValueIpAddressValueChoiceEnum + INCREMENT PatternFlowSnmpv2CVariableBindingValueIpAddressValueChoiceEnum + DECREMENT PatternFlowSnmpv2CVariableBindingValueIpAddressValueChoiceEnum +}{ + VALUE: PatternFlowSnmpv2CVariableBindingValueIpAddressValueChoiceEnum("value"), + VALUES: PatternFlowSnmpv2CVariableBindingValueIpAddressValueChoiceEnum("values"), + INCREMENT: PatternFlowSnmpv2CVariableBindingValueIpAddressValueChoiceEnum("increment"), + DECREMENT: PatternFlowSnmpv2CVariableBindingValueIpAddressValueChoiceEnum("decrement"), +} +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValue) Choice() PatternFlowSnmpv2CVariableBindingValueIpAddressValueChoiceEnum { + return PatternFlowSnmpv2CVariableBindingValueIpAddressValueChoiceEnum(obj.obj.Choice.Enum().String()) } -// The four octet IANA assigned AS value assigned to the Autonomous System. -// Global4ByteAs returns a uint32 -func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) HasGlobal4ByteAs() bool { - return obj.obj.Global_4ByteAs != nil +// description is TBD +// Choice returns a string +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValue) HasChoice() bool { + return obj.obj.Choice != nil } -// The four octet IANA assigned AS value assigned to the Autonomous System. -// SetGlobal4ByteAs sets the uint32 value in the BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin object -func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) SetGlobal4ByteAs(value uint32) BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin { +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValue) setChoice(value PatternFlowSnmpv2CVariableBindingValueIpAddressValueChoiceEnum) PatternFlowSnmpv2CVariableBindingValueIpAddressValue { + intValue, ok := otg.PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on PatternFlowSnmpv2CVariableBindingValueIpAddressValueChoiceEnum", string(value))) + return obj + } + enumValue := otg.PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.Decrement = nil + obj.decrementHolder = nil + obj.obj.Increment = nil + obj.incrementHolder = nil + obj.obj.Values = nil + obj.obj.Value = nil + + if value == PatternFlowSnmpv2CVariableBindingValueIpAddressValueChoice.VALUE { + defaultValue := "0.0.0.0" + obj.obj.Value = &defaultValue + } + + if value == PatternFlowSnmpv2CVariableBindingValueIpAddressValueChoice.VALUES { + defaultValue := []string{"0.0.0.0"} + obj.obj.Values = defaultValue + } + + if value == PatternFlowSnmpv2CVariableBindingValueIpAddressValueChoice.INCREMENT { + obj.obj.Increment = NewPatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter().msg() + } + + if value == PatternFlowSnmpv2CVariableBindingValueIpAddressValueChoice.DECREMENT { + obj.obj.Decrement = NewPatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter().msg() + } - obj.obj.Global_4ByteAs = &value return obj } -// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. -// Local2ByteAdmin returns a uint32 -func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) Local2ByteAdmin() uint32 { +// description is TBD +// Value returns a string +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValue) Value() string { - return *obj.obj.Local_2ByteAdmin + if obj.obj.Value == nil { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueIpAddressValueChoice.VALUE) + } + + return *obj.obj.Value } -// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. -// Local2ByteAdmin returns a uint32 -func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) HasLocal2ByteAdmin() bool { - return obj.obj.Local_2ByteAdmin != nil +// description is TBD +// Value returns a string +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValue) HasValue() bool { + return obj.obj.Value != nil } -// The Local Administrator sub-field contains a number from a numbering space that is administered by the organization to which the Autonomous System number carried in the Global Administrator sub-field has been assigned by an appropriate authority. -// SetLocal2ByteAdmin sets the uint32 value in the BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin object -func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) SetLocal2ByteAdmin(value uint32) BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin { +// description is TBD +// SetValue sets the string value in the PatternFlowSnmpv2CVariableBindingValueIpAddressValue object +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValue) SetValue(value string) PatternFlowSnmpv2CVariableBindingValueIpAddressValue { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueIpAddressValueChoice.VALUE) + obj.obj.Value = &value + return obj +} + +// description is TBD +// Values returns a []string +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValue) Values() []string { + if obj.obj.Values == nil { + obj.SetValues([]string{"0.0.0.0"}) + } + return obj.obj.Values +} + +// description is TBD +// SetValues sets the []string value in the PatternFlowSnmpv2CVariableBindingValueIpAddressValue object +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValue) SetValues(value []string) PatternFlowSnmpv2CVariableBindingValueIpAddressValue { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueIpAddressValueChoice.VALUES) + if obj.obj.Values == nil { + obj.obj.Values = make([]string, 0) + } + obj.obj.Values = value - obj.obj.Local_2ByteAdmin = &value return obj } -func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) validateObj(vObj *validation, set_default bool) { +// description is TBD +// Increment returns a PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValue) Increment() PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter { + if obj.obj.Increment == nil { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueIpAddressValueChoice.INCREMENT) + } + if obj.incrementHolder == nil { + obj.incrementHolder = &patternFlowSnmpv2CVariableBindingValueIpAddressValueCounter{obj: obj.obj.Increment} + } + return obj.incrementHolder +} + +// description is TBD +// Increment returns a PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValue) HasIncrement() bool { + return obj.obj.Increment != nil +} + +// description is TBD +// SetIncrement sets the PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter value in the PatternFlowSnmpv2CVariableBindingValueIpAddressValue object +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValue) SetIncrement(value PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) PatternFlowSnmpv2CVariableBindingValueIpAddressValue { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueIpAddressValueChoice.INCREMENT) + obj.incrementHolder = nil + obj.obj.Increment = value.msg() + + return obj +} + +// description is TBD +// Decrement returns a PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValue) Decrement() PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter { + if obj.obj.Decrement == nil { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueIpAddressValueChoice.DECREMENT) + } + if obj.decrementHolder == nil { + obj.decrementHolder = &patternFlowSnmpv2CVariableBindingValueIpAddressValueCounter{obj: obj.obj.Decrement} + } + return obj.decrementHolder +} + +// description is TBD +// Decrement returns a PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValue) HasDecrement() bool { + return obj.obj.Decrement != nil +} + +// description is TBD +// SetDecrement sets the PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter value in the PatternFlowSnmpv2CVariableBindingValueIpAddressValue object +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValue) SetDecrement(value PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) PatternFlowSnmpv2CVariableBindingValueIpAddressValue { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueIpAddressValueChoice.DECREMENT) + obj.decrementHolder = nil + obj.obj.Decrement = value.msg() + + return obj +} + +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValue) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Local_2ByteAdmin != nil { + if obj.obj.Value != nil { - if *obj.obj.Local_2ByteAdmin > 65535 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin.Local_2ByteAdmin <= 65535 but Got %d", *obj.obj.Local_2ByteAdmin)) + err := obj.validateIpv4(obj.Value()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on PatternFlowSnmpv2CVariableBindingValueIpAddressValue.Value")) } } -} + if obj.obj.Values != nil { + + err := obj.validateIpv4Slice(obj.Values()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on PatternFlowSnmpv2CVariableBindingValueIpAddressValue.Values")) + } -func (obj *bgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) setDefault() { - if obj.obj.Global_4ByteAs == nil { - obj.SetGlobal4ByteAs(100) } - if obj.obj.Local_2ByteAdmin == nil { - obj.SetLocal2ByteAdmin(1) + + if obj.obj.Increment != nil { + + obj.Increment().validateObj(vObj, set_default) + } + + if obj.obj.Decrement != nil { + + obj.Decrement().validateObj(vObj, set_default) } } -// ***** BgpExtendedCommunityTransitiveOpaqueTypeColor ***** -type bgpExtendedCommunityTransitiveOpaqueTypeColor struct { +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValue) setDefault() { + if obj.obj.Choice == nil { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueIpAddressValueChoice.VALUE) + + } + +} + +// ***** PatternFlowSnmpv2CVariableBindingValueCounterValue ***** +type patternFlowSnmpv2CVariableBindingValueCounterValue struct { validation - obj *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor - marshaller marshalBgpExtendedCommunityTransitiveOpaqueTypeColor - unMarshaller unMarshalBgpExtendedCommunityTransitiveOpaqueTypeColor + obj *otg.PatternFlowSnmpv2CVariableBindingValueCounterValue + marshaller marshalPatternFlowSnmpv2CVariableBindingValueCounterValue + unMarshaller unMarshalPatternFlowSnmpv2CVariableBindingValueCounterValue + incrementHolder PatternFlowSnmpv2CVariableBindingValueCounterValueCounter + decrementHolder PatternFlowSnmpv2CVariableBindingValueCounterValueCounter } -func NewBgpExtendedCommunityTransitiveOpaqueTypeColor() BgpExtendedCommunityTransitiveOpaqueTypeColor { - obj := bgpExtendedCommunityTransitiveOpaqueTypeColor{obj: &otg.BgpExtendedCommunityTransitiveOpaqueTypeColor{}} +func NewPatternFlowSnmpv2CVariableBindingValueCounterValue() PatternFlowSnmpv2CVariableBindingValueCounterValue { + obj := patternFlowSnmpv2CVariableBindingValueCounterValue{obj: &otg.PatternFlowSnmpv2CVariableBindingValueCounterValue{}} obj.setDefault() return &obj } -func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) msg() *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor { +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValue) msg() *otg.PatternFlowSnmpv2CVariableBindingValueCounterValue { return obj.obj } -func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) setMsg(msg *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor) BgpExtendedCommunityTransitiveOpaqueTypeColor { - +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValue) setMsg(msg *otg.PatternFlowSnmpv2CVariableBindingValueCounterValue) PatternFlowSnmpv2CVariableBindingValueCounterValue { + obj.setNil() proto.Merge(obj.obj, msg) return obj } -type marshalbgpExtendedCommunityTransitiveOpaqueTypeColor struct { - obj *bgpExtendedCommunityTransitiveOpaqueTypeColor +type marshalpatternFlowSnmpv2CVariableBindingValueCounterValue struct { + obj *patternFlowSnmpv2CVariableBindingValueCounterValue } -type marshalBgpExtendedCommunityTransitiveOpaqueTypeColor interface { - // ToProto marshals BgpExtendedCommunityTransitiveOpaqueTypeColor to protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor - ToProto() (*otg.BgpExtendedCommunityTransitiveOpaqueTypeColor, error) - // ToPbText marshals BgpExtendedCommunityTransitiveOpaqueTypeColor to protobuf text +type marshalPatternFlowSnmpv2CVariableBindingValueCounterValue interface { + // ToProto marshals PatternFlowSnmpv2CVariableBindingValueCounterValue to protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueCounterValue + ToProto() (*otg.PatternFlowSnmpv2CVariableBindingValueCounterValue, error) + // ToPbText marshals PatternFlowSnmpv2CVariableBindingValueCounterValue to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpExtendedCommunityTransitiveOpaqueTypeColor to YAML text + // ToYaml marshals PatternFlowSnmpv2CVariableBindingValueCounterValue to YAML text ToYaml() (string, error) - // ToJson marshals BgpExtendedCommunityTransitiveOpaqueTypeColor to JSON text + // ToJson marshals PatternFlowSnmpv2CVariableBindingValueCounterValue to JSON text ToJson() (string, error) } -type unMarshalbgpExtendedCommunityTransitiveOpaqueTypeColor struct { - obj *bgpExtendedCommunityTransitiveOpaqueTypeColor +type unMarshalpatternFlowSnmpv2CVariableBindingValueCounterValue struct { + obj *patternFlowSnmpv2CVariableBindingValueCounterValue } -type unMarshalBgpExtendedCommunityTransitiveOpaqueTypeColor interface { - // FromProto unmarshals BgpExtendedCommunityTransitiveOpaqueTypeColor from protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor - FromProto(msg *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor) (BgpExtendedCommunityTransitiveOpaqueTypeColor, error) - // FromPbText unmarshals BgpExtendedCommunityTransitiveOpaqueTypeColor from protobuf text +type unMarshalPatternFlowSnmpv2CVariableBindingValueCounterValue interface { + // FromProto unmarshals PatternFlowSnmpv2CVariableBindingValueCounterValue from protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueCounterValue + FromProto(msg *otg.PatternFlowSnmpv2CVariableBindingValueCounterValue) (PatternFlowSnmpv2CVariableBindingValueCounterValue, error) + // FromPbText unmarshals PatternFlowSnmpv2CVariableBindingValueCounterValue from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpExtendedCommunityTransitiveOpaqueTypeColor from YAML text + // FromYaml unmarshals PatternFlowSnmpv2CVariableBindingValueCounterValue from YAML text FromYaml(value string) error - // FromJson unmarshals BgpExtendedCommunityTransitiveOpaqueTypeColor from JSON text + // FromJson unmarshals PatternFlowSnmpv2CVariableBindingValueCounterValue from JSON text FromJson(value string) error } -func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) Marshal() marshalBgpExtendedCommunityTransitiveOpaqueTypeColor { +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValue) Marshal() marshalPatternFlowSnmpv2CVariableBindingValueCounterValue { if obj.marshaller == nil { - obj.marshaller = &marshalbgpExtendedCommunityTransitiveOpaqueTypeColor{obj: obj} + obj.marshaller = &marshalpatternFlowSnmpv2CVariableBindingValueCounterValue{obj: obj} } return obj.marshaller } -func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) Unmarshal() unMarshalBgpExtendedCommunityTransitiveOpaqueTypeColor { +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValue) Unmarshal() unMarshalPatternFlowSnmpv2CVariableBindingValueCounterValue { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpExtendedCommunityTransitiveOpaqueTypeColor{obj: obj} + obj.unMarshaller = &unMarshalpatternFlowSnmpv2CVariableBindingValueCounterValue{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpExtendedCommunityTransitiveOpaqueTypeColor) ToProto() (*otg.BgpExtendedCommunityTransitiveOpaqueTypeColor, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueCounterValue) ToProto() (*otg.PatternFlowSnmpv2CVariableBindingValueCounterValue, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -341916,7 +354781,7 @@ func (m *marshalbgpExtendedCommunityTransitiveOpaqueTypeColor) ToProto() (*otg.B return m.obj.msg(), nil } -func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueTypeColor) FromProto(msg *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor) (BgpExtendedCommunityTransitiveOpaqueTypeColor, error) { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueCounterValue) FromProto(msg *otg.PatternFlowSnmpv2CVariableBindingValueCounterValue) (PatternFlowSnmpv2CVariableBindingValueCounterValue, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -341925,7 +354790,7 @@ func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueTypeColor) FromProto(msg * return newObj, nil } -func (m *marshalbgpExtendedCommunityTransitiveOpaqueTypeColor) ToPbText() (string, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueCounterValue) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -341937,12 +354802,12 @@ func (m *marshalbgpExtendedCommunityTransitiveOpaqueTypeColor) ToPbText() (strin return string(protoMarshal), nil } -func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueTypeColor) FromPbText(value string) error { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueCounterValue) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -341950,7 +354815,7 @@ func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueTypeColor) FromPbText(valu return retObj } -func (m *marshalbgpExtendedCommunityTransitiveOpaqueTypeColor) ToYaml() (string, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueCounterValue) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -341971,7 +354836,7 @@ func (m *marshalbgpExtendedCommunityTransitiveOpaqueTypeColor) ToYaml() (string, return string(data), nil } -func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueTypeColor) FromYaml(value string) error { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueCounterValue) FromYaml(value string) error { if value == "" { value = "{}" } @@ -341988,7 +354853,7 @@ func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueTypeColor) FromYaml(value return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -341996,7 +354861,7 @@ func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueTypeColor) FromYaml(value return nil } -func (m *marshalbgpExtendedCommunityTransitiveOpaqueTypeColor) ToJson() (string, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueCounterValue) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -342014,7 +354879,7 @@ func (m *marshalbgpExtendedCommunityTransitiveOpaqueTypeColor) ToJson() (string, return string(data), nil } -func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueTypeColor) FromJson(value string) error { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueCounterValue) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -342027,7 +354892,7 @@ func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueTypeColor) FromJson(value return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() err := m.obj.validateToAndFrom() if err != nil { return err @@ -342035,19 +354900,19 @@ func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueTypeColor) FromJson(value return nil } -func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) validateToAndFrom() error { +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValue) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) validate() error { +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValue) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) String() string { +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValue) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -342055,12 +354920,12 @@ func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) String() string { return str } -func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) Clone() (BgpExtendedCommunityTransitiveOpaqueTypeColor, error) { +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValue) Clone() (PatternFlowSnmpv2CVariableBindingValueCounterValue, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpExtendedCommunityTransitiveOpaqueTypeColor() + newObj := NewPatternFlowSnmpv2CVariableBindingValueCounterValue() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -342072,182 +354937,328 @@ func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) Clone() (BgpExtendedCo return newObj, nil } -// BgpExtendedCommunityTransitiveOpaqueTypeColor is the Color Community contains locally administrator defined 'color' value which is used in conjunction with Encapsulation attribute to decide whether a data packet can be transmitted on a certain tunnel or not. It is defined in RFC9012 and sent with sub-type as 0x0b. -type BgpExtendedCommunityTransitiveOpaqueTypeColor interface { +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValue) setNil() { + obj.incrementHolder = nil + obj.decrementHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// PatternFlowSnmpv2CVariableBindingValueCounterValue is counter returned for the requested OID. +type PatternFlowSnmpv2CVariableBindingValueCounterValue interface { Validation - // msg marshals BgpExtendedCommunityTransitiveOpaqueTypeColor to protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor + // msg marshals PatternFlowSnmpv2CVariableBindingValueCounterValue to protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueCounterValue // and doesn't set defaults - msg() *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor - // setMsg unmarshals BgpExtendedCommunityTransitiveOpaqueTypeColor from protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueTypeColor + msg() *otg.PatternFlowSnmpv2CVariableBindingValueCounterValue + // setMsg unmarshals PatternFlowSnmpv2CVariableBindingValueCounterValue from protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueCounterValue // and doesn't set defaults - setMsg(*otg.BgpExtendedCommunityTransitiveOpaqueTypeColor) BgpExtendedCommunityTransitiveOpaqueTypeColor + setMsg(*otg.PatternFlowSnmpv2CVariableBindingValueCounterValue) PatternFlowSnmpv2CVariableBindingValueCounterValue // provides marshal interface - Marshal() marshalBgpExtendedCommunityTransitiveOpaqueTypeColor + Marshal() marshalPatternFlowSnmpv2CVariableBindingValueCounterValue // provides unmarshal interface - Unmarshal() unMarshalBgpExtendedCommunityTransitiveOpaqueTypeColor - // validate validates BgpExtendedCommunityTransitiveOpaqueTypeColor + Unmarshal() unMarshalPatternFlowSnmpv2CVariableBindingValueCounterValue + // validate validates PatternFlowSnmpv2CVariableBindingValueCounterValue validate() error // A stringer function String() string // Clones the object - Clone() (BgpExtendedCommunityTransitiveOpaqueTypeColor, error) + Clone() (PatternFlowSnmpv2CVariableBindingValueCounterValue, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Flags returns uint32, set in BgpExtendedCommunityTransitiveOpaqueTypeColor. - Flags() uint32 - // SetFlags assigns uint32 provided by user to BgpExtendedCommunityTransitiveOpaqueTypeColor - SetFlags(value uint32) BgpExtendedCommunityTransitiveOpaqueTypeColor - // HasFlags checks if Flags has been set in BgpExtendedCommunityTransitiveOpaqueTypeColor - HasFlags() bool - // Color returns uint32, set in BgpExtendedCommunityTransitiveOpaqueTypeColor. - Color() uint32 - // SetColor assigns uint32 provided by user to BgpExtendedCommunityTransitiveOpaqueTypeColor - SetColor(value uint32) BgpExtendedCommunityTransitiveOpaqueTypeColor - // HasColor checks if Color has been set in BgpExtendedCommunityTransitiveOpaqueTypeColor - HasColor() bool + // Choice returns PatternFlowSnmpv2CVariableBindingValueCounterValueChoiceEnum, set in PatternFlowSnmpv2CVariableBindingValueCounterValue + Choice() PatternFlowSnmpv2CVariableBindingValueCounterValueChoiceEnum + // setChoice assigns PatternFlowSnmpv2CVariableBindingValueCounterValueChoiceEnum provided by user to PatternFlowSnmpv2CVariableBindingValueCounterValue + setChoice(value PatternFlowSnmpv2CVariableBindingValueCounterValueChoiceEnum) PatternFlowSnmpv2CVariableBindingValueCounterValue + // HasChoice checks if Choice has been set in PatternFlowSnmpv2CVariableBindingValueCounterValue + HasChoice() bool + // Value returns uint32, set in PatternFlowSnmpv2CVariableBindingValueCounterValue. + Value() uint32 + // SetValue assigns uint32 provided by user to PatternFlowSnmpv2CVariableBindingValueCounterValue + SetValue(value uint32) PatternFlowSnmpv2CVariableBindingValueCounterValue + // HasValue checks if Value has been set in PatternFlowSnmpv2CVariableBindingValueCounterValue + HasValue() bool + // Values returns []uint32, set in PatternFlowSnmpv2CVariableBindingValueCounterValue. + Values() []uint32 + // SetValues assigns []uint32 provided by user to PatternFlowSnmpv2CVariableBindingValueCounterValue + SetValues(value []uint32) PatternFlowSnmpv2CVariableBindingValueCounterValue + // Increment returns PatternFlowSnmpv2CVariableBindingValueCounterValueCounter, set in PatternFlowSnmpv2CVariableBindingValueCounterValue. + Increment() PatternFlowSnmpv2CVariableBindingValueCounterValueCounter + // SetIncrement assigns PatternFlowSnmpv2CVariableBindingValueCounterValueCounter provided by user to PatternFlowSnmpv2CVariableBindingValueCounterValue. + SetIncrement(value PatternFlowSnmpv2CVariableBindingValueCounterValueCounter) PatternFlowSnmpv2CVariableBindingValueCounterValue + // HasIncrement checks if Increment has been set in PatternFlowSnmpv2CVariableBindingValueCounterValue + HasIncrement() bool + // Decrement returns PatternFlowSnmpv2CVariableBindingValueCounterValueCounter, set in PatternFlowSnmpv2CVariableBindingValueCounterValue. + Decrement() PatternFlowSnmpv2CVariableBindingValueCounterValueCounter + // SetDecrement assigns PatternFlowSnmpv2CVariableBindingValueCounterValueCounter provided by user to PatternFlowSnmpv2CVariableBindingValueCounterValue. + SetDecrement(value PatternFlowSnmpv2CVariableBindingValueCounterValueCounter) PatternFlowSnmpv2CVariableBindingValueCounterValue + // HasDecrement checks if Decrement has been set in PatternFlowSnmpv2CVariableBindingValueCounterValue + HasDecrement() bool + setNil() +} + +type PatternFlowSnmpv2CVariableBindingValueCounterValueChoiceEnum string + +// Enum of Choice on PatternFlowSnmpv2CVariableBindingValueCounterValue +var PatternFlowSnmpv2CVariableBindingValueCounterValueChoice = struct { + VALUE PatternFlowSnmpv2CVariableBindingValueCounterValueChoiceEnum + VALUES PatternFlowSnmpv2CVariableBindingValueCounterValueChoiceEnum + INCREMENT PatternFlowSnmpv2CVariableBindingValueCounterValueChoiceEnum + DECREMENT PatternFlowSnmpv2CVariableBindingValueCounterValueChoiceEnum +}{ + VALUE: PatternFlowSnmpv2CVariableBindingValueCounterValueChoiceEnum("value"), + VALUES: PatternFlowSnmpv2CVariableBindingValueCounterValueChoiceEnum("values"), + INCREMENT: PatternFlowSnmpv2CVariableBindingValueCounterValueChoiceEnum("increment"), + DECREMENT: PatternFlowSnmpv2CVariableBindingValueCounterValueChoiceEnum("decrement"), +} + +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValue) Choice() PatternFlowSnmpv2CVariableBindingValueCounterValueChoiceEnum { + return PatternFlowSnmpv2CVariableBindingValueCounterValueChoiceEnum(obj.obj.Choice.Enum().String()) +} + +// description is TBD +// Choice returns a string +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValue) HasChoice() bool { + return obj.obj.Choice != nil +} + +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValue) setChoice(value PatternFlowSnmpv2CVariableBindingValueCounterValueChoiceEnum) PatternFlowSnmpv2CVariableBindingValueCounterValue { + intValue, ok := otg.PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on PatternFlowSnmpv2CVariableBindingValueCounterValueChoiceEnum", string(value))) + return obj + } + enumValue := otg.PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.Decrement = nil + obj.decrementHolder = nil + obj.obj.Increment = nil + obj.incrementHolder = nil + obj.obj.Values = nil + obj.obj.Value = nil + + if value == PatternFlowSnmpv2CVariableBindingValueCounterValueChoice.VALUE { + defaultValue := uint32(0) + obj.obj.Value = &defaultValue + } + + if value == PatternFlowSnmpv2CVariableBindingValueCounterValueChoice.VALUES { + defaultValue := []uint32{0} + obj.obj.Values = defaultValue + } + + if value == PatternFlowSnmpv2CVariableBindingValueCounterValueChoice.INCREMENT { + obj.obj.Increment = NewPatternFlowSnmpv2CVariableBindingValueCounterValueCounter().msg() + } + + if value == PatternFlowSnmpv2CVariableBindingValueCounterValueChoice.DECREMENT { + obj.obj.Decrement = NewPatternFlowSnmpv2CVariableBindingValueCounterValueCounter().msg() + } + + return obj +} + +// description is TBD +// Value returns a uint32 +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValue) Value() uint32 { + + if obj.obj.Value == nil { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueCounterValueChoice.VALUE) + } + + return *obj.obj.Value + +} + +// description is TBD +// Value returns a uint32 +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValue) HasValue() bool { + return obj.obj.Value != nil +} + +// description is TBD +// SetValue sets the uint32 value in the PatternFlowSnmpv2CVariableBindingValueCounterValue object +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValue) SetValue(value uint32) PatternFlowSnmpv2CVariableBindingValueCounterValue { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueCounterValueChoice.VALUE) + obj.obj.Value = &value + return obj +} + +// description is TBD +// Values returns a []uint32 +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValue) Values() []uint32 { + if obj.obj.Values == nil { + obj.SetValues([]uint32{0}) + } + return obj.obj.Values } -// Two octet flag values. -// Flags returns a uint32 -func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) Flags() uint32 { +// description is TBD +// SetValues sets the []uint32 value in the PatternFlowSnmpv2CVariableBindingValueCounterValue object +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValue) SetValues(value []uint32) PatternFlowSnmpv2CVariableBindingValueCounterValue { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueCounterValueChoice.VALUES) + if obj.obj.Values == nil { + obj.obj.Values = make([]uint32, 0) + } + obj.obj.Values = value - return *obj.obj.Flags + return obj +} +// description is TBD +// Increment returns a PatternFlowSnmpv2CVariableBindingValueCounterValueCounter +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValue) Increment() PatternFlowSnmpv2CVariableBindingValueCounterValueCounter { + if obj.obj.Increment == nil { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueCounterValueChoice.INCREMENT) + } + if obj.incrementHolder == nil { + obj.incrementHolder = &patternFlowSnmpv2CVariableBindingValueCounterValueCounter{obj: obj.obj.Increment} + } + return obj.incrementHolder } -// Two octet flag values. -// Flags returns a uint32 -func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) HasFlags() bool { - return obj.obj.Flags != nil +// description is TBD +// Increment returns a PatternFlowSnmpv2CVariableBindingValueCounterValueCounter +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValue) HasIncrement() bool { + return obj.obj.Increment != nil } -// Two octet flag values. -// SetFlags sets the uint32 value in the BgpExtendedCommunityTransitiveOpaqueTypeColor object -func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) SetFlags(value uint32) BgpExtendedCommunityTransitiveOpaqueTypeColor { +// description is TBD +// SetIncrement sets the PatternFlowSnmpv2CVariableBindingValueCounterValueCounter value in the PatternFlowSnmpv2CVariableBindingValueCounterValue object +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValue) SetIncrement(value PatternFlowSnmpv2CVariableBindingValueCounterValueCounter) PatternFlowSnmpv2CVariableBindingValueCounterValue { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueCounterValueChoice.INCREMENT) + obj.incrementHolder = nil + obj.obj.Increment = value.msg() - obj.obj.Flags = &value return obj } -// The color value is user defined and configured locally and used to determine whether a data packet can be transmitted on a certain tunnel or not in conjunction with the Encapsulation attribute. It is defined in RFC9012. -// Color returns a uint32 -func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) Color() uint32 { - - return *obj.obj.Color - +// description is TBD +// Decrement returns a PatternFlowSnmpv2CVariableBindingValueCounterValueCounter +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValue) Decrement() PatternFlowSnmpv2CVariableBindingValueCounterValueCounter { + if obj.obj.Decrement == nil { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueCounterValueChoice.DECREMENT) + } + if obj.decrementHolder == nil { + obj.decrementHolder = &patternFlowSnmpv2CVariableBindingValueCounterValueCounter{obj: obj.obj.Decrement} + } + return obj.decrementHolder } -// The color value is user defined and configured locally and used to determine whether a data packet can be transmitted on a certain tunnel or not in conjunction with the Encapsulation attribute. It is defined in RFC9012. -// Color returns a uint32 -func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) HasColor() bool { - return obj.obj.Color != nil +// description is TBD +// Decrement returns a PatternFlowSnmpv2CVariableBindingValueCounterValueCounter +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValue) HasDecrement() bool { + return obj.obj.Decrement != nil } -// The color value is user defined and configured locally and used to determine whether a data packet can be transmitted on a certain tunnel or not in conjunction with the Encapsulation attribute. It is defined in RFC9012. -// SetColor sets the uint32 value in the BgpExtendedCommunityTransitiveOpaqueTypeColor object -func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) SetColor(value uint32) BgpExtendedCommunityTransitiveOpaqueTypeColor { +// description is TBD +// SetDecrement sets the PatternFlowSnmpv2CVariableBindingValueCounterValueCounter value in the PatternFlowSnmpv2CVariableBindingValueCounterValue object +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValue) SetDecrement(value PatternFlowSnmpv2CVariableBindingValueCounterValueCounter) PatternFlowSnmpv2CVariableBindingValueCounterValue { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueCounterValueChoice.DECREMENT) + obj.decrementHolder = nil + obj.obj.Decrement = value.msg() - obj.obj.Color = &value return obj } -func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValue) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Flags != nil { + if obj.obj.Increment != nil { - if *obj.obj.Flags > 65535 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= BgpExtendedCommunityTransitiveOpaqueTypeColor.Flags <= 65535 but Got %d", *obj.obj.Flags)) - } + obj.Increment().validateObj(vObj, set_default) + } + + if obj.obj.Decrement != nil { + obj.Decrement().validateObj(vObj, set_default) } } -func (obj *bgpExtendedCommunityTransitiveOpaqueTypeColor) setDefault() { - if obj.obj.Flags == nil { - obj.SetFlags(0) - } - if obj.obj.Color == nil { - obj.SetColor(0) +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValue) setDefault() { + if obj.obj.Choice == nil { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueCounterValueChoice.VALUE) + } } -// ***** BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation ***** -type bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation struct { +// ***** PatternFlowSnmpv2CVariableBindingValueTimeticksValue ***** +type patternFlowSnmpv2CVariableBindingValueTimeticksValue struct { validation - obj *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation - marshaller marshalBgpExtendedCommunityTransitiveOpaqueTypeEncapsulation - unMarshaller unMarshalBgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + obj *otg.PatternFlowSnmpv2CVariableBindingValueTimeticksValue + marshaller marshalPatternFlowSnmpv2CVariableBindingValueTimeticksValue + unMarshaller unMarshalPatternFlowSnmpv2CVariableBindingValueTimeticksValue + incrementHolder PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter + decrementHolder PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter } -func NewBgpExtendedCommunityTransitiveOpaqueTypeEncapsulation() BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation { - obj := bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation{obj: &otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation{}} +func NewPatternFlowSnmpv2CVariableBindingValueTimeticksValue() PatternFlowSnmpv2CVariableBindingValueTimeticksValue { + obj := patternFlowSnmpv2CVariableBindingValueTimeticksValue{obj: &otg.PatternFlowSnmpv2CVariableBindingValueTimeticksValue{}} obj.setDefault() return &obj } -func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) msg() *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation { +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValue) msg() *otg.PatternFlowSnmpv2CVariableBindingValueTimeticksValue { return obj.obj } -func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) setMsg(msg *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation { - +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValue) setMsg(msg *otg.PatternFlowSnmpv2CVariableBindingValueTimeticksValue) PatternFlowSnmpv2CVariableBindingValueTimeticksValue { + obj.setNil() proto.Merge(obj.obj, msg) return obj } -type marshalbgpExtendedCommunityTransitiveOpaqueTypeEncapsulation struct { - obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation +type marshalpatternFlowSnmpv2CVariableBindingValueTimeticksValue struct { + obj *patternFlowSnmpv2CVariableBindingValueTimeticksValue } -type marshalBgpExtendedCommunityTransitiveOpaqueTypeEncapsulation interface { - // ToProto marshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation to protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation - ToProto() (*otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation, error) - // ToPbText marshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation to protobuf text +type marshalPatternFlowSnmpv2CVariableBindingValueTimeticksValue interface { + // ToProto marshals PatternFlowSnmpv2CVariableBindingValueTimeticksValue to protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueTimeticksValue + ToProto() (*otg.PatternFlowSnmpv2CVariableBindingValueTimeticksValue, error) + // ToPbText marshals PatternFlowSnmpv2CVariableBindingValueTimeticksValue to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation to YAML text + // ToYaml marshals PatternFlowSnmpv2CVariableBindingValueTimeticksValue to YAML text ToYaml() (string, error) - // ToJson marshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation to JSON text + // ToJson marshals PatternFlowSnmpv2CVariableBindingValueTimeticksValue to JSON text ToJson() (string, error) } -type unMarshalbgpExtendedCommunityTransitiveOpaqueTypeEncapsulation struct { - obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation +type unMarshalpatternFlowSnmpv2CVariableBindingValueTimeticksValue struct { + obj *patternFlowSnmpv2CVariableBindingValueTimeticksValue } -type unMarshalBgpExtendedCommunityTransitiveOpaqueTypeEncapsulation interface { - // FromProto unmarshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation from protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation - FromProto(msg *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) (BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation, error) - // FromPbText unmarshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation from protobuf text +type unMarshalPatternFlowSnmpv2CVariableBindingValueTimeticksValue interface { + // FromProto unmarshals PatternFlowSnmpv2CVariableBindingValueTimeticksValue from protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueTimeticksValue + FromProto(msg *otg.PatternFlowSnmpv2CVariableBindingValueTimeticksValue) (PatternFlowSnmpv2CVariableBindingValueTimeticksValue, error) + // FromPbText unmarshals PatternFlowSnmpv2CVariableBindingValueTimeticksValue from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation from YAML text + // FromYaml unmarshals PatternFlowSnmpv2CVariableBindingValueTimeticksValue from YAML text FromYaml(value string) error - // FromJson unmarshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation from JSON text + // FromJson unmarshals PatternFlowSnmpv2CVariableBindingValueTimeticksValue from JSON text FromJson(value string) error } -func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) Marshal() marshalBgpExtendedCommunityTransitiveOpaqueTypeEncapsulation { +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValue) Marshal() marshalPatternFlowSnmpv2CVariableBindingValueTimeticksValue { if obj.marshaller == nil { - obj.marshaller = &marshalbgpExtendedCommunityTransitiveOpaqueTypeEncapsulation{obj: obj} + obj.marshaller = &marshalpatternFlowSnmpv2CVariableBindingValueTimeticksValue{obj: obj} } return obj.marshaller } -func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) Unmarshal() unMarshalBgpExtendedCommunityTransitiveOpaqueTypeEncapsulation { +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValue) Unmarshal() unMarshalPatternFlowSnmpv2CVariableBindingValueTimeticksValue { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpExtendedCommunityTransitiveOpaqueTypeEncapsulation{obj: obj} + obj.unMarshaller = &unMarshalpatternFlowSnmpv2CVariableBindingValueTimeticksValue{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) ToProto() (*otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueTimeticksValue) ToProto() (*otg.PatternFlowSnmpv2CVariableBindingValueTimeticksValue, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -342255,7 +355266,7 @@ func (m *marshalbgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) ToProto() return m.obj.msg(), nil } -func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) FromProto(msg *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) (BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation, error) { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueTimeticksValue) FromProto(msg *otg.PatternFlowSnmpv2CVariableBindingValueTimeticksValue) (PatternFlowSnmpv2CVariableBindingValueTimeticksValue, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -342264,7 +355275,7 @@ func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) FromPro return newObj, nil } -func (m *marshalbgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) ToPbText() (string, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueTimeticksValue) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -342276,12 +355287,12 @@ func (m *marshalbgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) ToPbText( return string(protoMarshal), nil } -func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) FromPbText(value string) error { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueTimeticksValue) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -342289,7 +355300,7 @@ func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) FromPbT return retObj } -func (m *marshalbgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) ToYaml() (string, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueTimeticksValue) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -342310,7 +355321,7 @@ func (m *marshalbgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) ToYaml() return string(data), nil } -func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) FromYaml(value string) error { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueTimeticksValue) FromYaml(value string) error { if value == "" { value = "{}" } @@ -342327,7 +355338,7 @@ func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) FromYam return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -342335,7 +355346,7 @@ func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) FromYam return nil } -func (m *marshalbgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) ToJson() (string, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueTimeticksValue) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -342353,7 +355364,7 @@ func (m *marshalbgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) ToJson() return string(data), nil } -func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) FromJson(value string) error { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueTimeticksValue) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -342366,7 +355377,7 @@ func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) FromJso return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() err := m.obj.validateToAndFrom() if err != nil { return err @@ -342374,19 +355385,19 @@ func (m *unMarshalbgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) FromJso return nil } -func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) validateToAndFrom() error { +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValue) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) validate() error { +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValue) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) String() string { +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValue) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -342394,12 +355405,12 @@ func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) String() strin return str } -func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) Clone() (BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation, error) { +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValue) Clone() (PatternFlowSnmpv2CVariableBindingValueTimeticksValue, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpExtendedCommunityTransitiveOpaqueTypeEncapsulation() + newObj := NewPatternFlowSnmpv2CVariableBindingValueTimeticksValue() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -342411,203 +355422,328 @@ func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) Clone() (BgpEx return newObj, nil } -// BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation is this identifies the type of tunneling technology being signalled. It is defined in RFC9012 and sent with sub-type as 0x0c. -type BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation interface { +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValue) setNil() { + obj.incrementHolder = nil + obj.decrementHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// PatternFlowSnmpv2CVariableBindingValueTimeticksValue is timeticks returned for the requested OID. +type PatternFlowSnmpv2CVariableBindingValueTimeticksValue interface { Validation - // msg marshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation to protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + // msg marshals PatternFlowSnmpv2CVariableBindingValueTimeticksValue to protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueTimeticksValue // and doesn't set defaults - msg() *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation - // setMsg unmarshals BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation from protobuf object *otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + msg() *otg.PatternFlowSnmpv2CVariableBindingValueTimeticksValue + // setMsg unmarshals PatternFlowSnmpv2CVariableBindingValueTimeticksValue from protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueTimeticksValue // and doesn't set defaults - setMsg(*otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + setMsg(*otg.PatternFlowSnmpv2CVariableBindingValueTimeticksValue) PatternFlowSnmpv2CVariableBindingValueTimeticksValue // provides marshal interface - Marshal() marshalBgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + Marshal() marshalPatternFlowSnmpv2CVariableBindingValueTimeticksValue // provides unmarshal interface - Unmarshal() unMarshalBgpExtendedCommunityTransitiveOpaqueTypeEncapsulation - // validate validates BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + Unmarshal() unMarshalPatternFlowSnmpv2CVariableBindingValueTimeticksValue + // validate validates PatternFlowSnmpv2CVariableBindingValueTimeticksValue validate() error // A stringer function String() string // Clones the object - Clone() (BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation, error) + Clone() (PatternFlowSnmpv2CVariableBindingValueTimeticksValue, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Reserved returns uint32, set in BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation. - Reserved() uint32 - // SetReserved assigns uint32 provided by user to BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation - SetReserved(value uint32) BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation - // HasReserved checks if Reserved has been set in BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation - HasReserved() bool - // TunnelType returns uint32, set in BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation. - TunnelType() uint32 - // SetTunnelType assigns uint32 provided by user to BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation - SetTunnelType(value uint32) BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation - // HasTunnelType checks if TunnelType has been set in BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation - HasTunnelType() bool + // Choice returns PatternFlowSnmpv2CVariableBindingValueTimeticksValueChoiceEnum, set in PatternFlowSnmpv2CVariableBindingValueTimeticksValue + Choice() PatternFlowSnmpv2CVariableBindingValueTimeticksValueChoiceEnum + // setChoice assigns PatternFlowSnmpv2CVariableBindingValueTimeticksValueChoiceEnum provided by user to PatternFlowSnmpv2CVariableBindingValueTimeticksValue + setChoice(value PatternFlowSnmpv2CVariableBindingValueTimeticksValueChoiceEnum) PatternFlowSnmpv2CVariableBindingValueTimeticksValue + // HasChoice checks if Choice has been set in PatternFlowSnmpv2CVariableBindingValueTimeticksValue + HasChoice() bool + // Value returns uint32, set in PatternFlowSnmpv2CVariableBindingValueTimeticksValue. + Value() uint32 + // SetValue assigns uint32 provided by user to PatternFlowSnmpv2CVariableBindingValueTimeticksValue + SetValue(value uint32) PatternFlowSnmpv2CVariableBindingValueTimeticksValue + // HasValue checks if Value has been set in PatternFlowSnmpv2CVariableBindingValueTimeticksValue + HasValue() bool + // Values returns []uint32, set in PatternFlowSnmpv2CVariableBindingValueTimeticksValue. + Values() []uint32 + // SetValues assigns []uint32 provided by user to PatternFlowSnmpv2CVariableBindingValueTimeticksValue + SetValues(value []uint32) PatternFlowSnmpv2CVariableBindingValueTimeticksValue + // Increment returns PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter, set in PatternFlowSnmpv2CVariableBindingValueTimeticksValue. + Increment() PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter + // SetIncrement assigns PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter provided by user to PatternFlowSnmpv2CVariableBindingValueTimeticksValue. + SetIncrement(value PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) PatternFlowSnmpv2CVariableBindingValueTimeticksValue + // HasIncrement checks if Increment has been set in PatternFlowSnmpv2CVariableBindingValueTimeticksValue + HasIncrement() bool + // Decrement returns PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter, set in PatternFlowSnmpv2CVariableBindingValueTimeticksValue. + Decrement() PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter + // SetDecrement assigns PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter provided by user to PatternFlowSnmpv2CVariableBindingValueTimeticksValue. + SetDecrement(value PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) PatternFlowSnmpv2CVariableBindingValueTimeticksValue + // HasDecrement checks if Decrement has been set in PatternFlowSnmpv2CVariableBindingValueTimeticksValue + HasDecrement() bool + setNil() } -// Four bytes of reserved values. Normally set to 0 on transmit and ignored on receive. -// Reserved returns a uint32 -func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) Reserved() uint32 { +type PatternFlowSnmpv2CVariableBindingValueTimeticksValueChoiceEnum string - return *obj.obj.Reserved +// Enum of Choice on PatternFlowSnmpv2CVariableBindingValueTimeticksValue +var PatternFlowSnmpv2CVariableBindingValueTimeticksValueChoice = struct { + VALUE PatternFlowSnmpv2CVariableBindingValueTimeticksValueChoiceEnum + VALUES PatternFlowSnmpv2CVariableBindingValueTimeticksValueChoiceEnum + INCREMENT PatternFlowSnmpv2CVariableBindingValueTimeticksValueChoiceEnum + DECREMENT PatternFlowSnmpv2CVariableBindingValueTimeticksValueChoiceEnum +}{ + VALUE: PatternFlowSnmpv2CVariableBindingValueTimeticksValueChoiceEnum("value"), + VALUES: PatternFlowSnmpv2CVariableBindingValueTimeticksValueChoiceEnum("values"), + INCREMENT: PatternFlowSnmpv2CVariableBindingValueTimeticksValueChoiceEnum("increment"), + DECREMENT: PatternFlowSnmpv2CVariableBindingValueTimeticksValueChoiceEnum("decrement"), +} +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValue) Choice() PatternFlowSnmpv2CVariableBindingValueTimeticksValueChoiceEnum { + return PatternFlowSnmpv2CVariableBindingValueTimeticksValueChoiceEnum(obj.obj.Choice.Enum().String()) } -// Four bytes of reserved values. Normally set to 0 on transmit and ignored on receive. -// Reserved returns a uint32 -func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) HasReserved() bool { - return obj.obj.Reserved != nil +// description is TBD +// Choice returns a string +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValue) HasChoice() bool { + return obj.obj.Choice != nil } -// Four bytes of reserved values. Normally set to 0 on transmit and ignored on receive. -// SetReserved sets the uint32 value in the BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation object -func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) SetReserved(value uint32) BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation { +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValue) setChoice(value PatternFlowSnmpv2CVariableBindingValueTimeticksValueChoiceEnum) PatternFlowSnmpv2CVariableBindingValueTimeticksValue { + intValue, ok := otg.PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on PatternFlowSnmpv2CVariableBindingValueTimeticksValueChoiceEnum", string(value))) + return obj + } + enumValue := otg.PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.Decrement = nil + obj.decrementHolder = nil + obj.obj.Increment = nil + obj.incrementHolder = nil + obj.obj.Values = nil + obj.obj.Value = nil + + if value == PatternFlowSnmpv2CVariableBindingValueTimeticksValueChoice.VALUE { + defaultValue := uint32(0) + obj.obj.Value = &defaultValue + } + + if value == PatternFlowSnmpv2CVariableBindingValueTimeticksValueChoice.VALUES { + defaultValue := []uint32{0} + obj.obj.Values = defaultValue + } + + if value == PatternFlowSnmpv2CVariableBindingValueTimeticksValueChoice.INCREMENT { + obj.obj.Increment = NewPatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter().msg() + } + + if value == PatternFlowSnmpv2CVariableBindingValueTimeticksValueChoice.DECREMENT { + obj.obj.Decrement = NewPatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter().msg() + } - obj.obj.Reserved = &value return obj } -// Identifies the type of tunneling technology being signalled. Initially defined in RFC5512 and extended in RFC9012. Some of the important tunnel types include 1 L2TPv3 over IP [RFC9012], -// 2 GRE [RFC9012] -// 7 IP in IP [RFC9012] -// 8 VXLAN Encapsulation [RFC8365] -// 9 NVGRE Encapsulation [RFC8365] -// 10 MPLS Encapsulation [RFC8365] -// 15 SR TE Policy Type [draft-ietf-idr-segment-routing-te-policy] -// 19 Geneve Encapsulation [RFC8926] -// TunnelType returns a uint32 -func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) TunnelType() uint32 { +// description is TBD +// Value returns a uint32 +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValue) Value() uint32 { - return *obj.obj.TunnelType + if obj.obj.Value == nil { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueTimeticksValueChoice.VALUE) + } + + return *obj.obj.Value } -// Identifies the type of tunneling technology being signalled. Initially defined in RFC5512 and extended in RFC9012. Some of the important tunnel types include 1 L2TPv3 over IP [RFC9012], -// 2 GRE [RFC9012] -// 7 IP in IP [RFC9012] -// 8 VXLAN Encapsulation [RFC8365] -// 9 NVGRE Encapsulation [RFC8365] -// 10 MPLS Encapsulation [RFC8365] -// 15 SR TE Policy Type [draft-ietf-idr-segment-routing-te-policy] -// 19 Geneve Encapsulation [RFC8926] -// TunnelType returns a uint32 -func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) HasTunnelType() bool { - return obj.obj.TunnelType != nil +// description is TBD +// Value returns a uint32 +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValue) HasValue() bool { + return obj.obj.Value != nil } -// Identifies the type of tunneling technology being signalled. Initially defined in RFC5512 and extended in RFC9012. Some of the important tunnel types include 1 L2TPv3 over IP [RFC9012], -// 2 GRE [RFC9012] -// 7 IP in IP [RFC9012] -// 8 VXLAN Encapsulation [RFC8365] -// 9 NVGRE Encapsulation [RFC8365] -// 10 MPLS Encapsulation [RFC8365] -// 15 SR TE Policy Type [draft-ietf-idr-segment-routing-te-policy] -// 19 Geneve Encapsulation [RFC8926] -// SetTunnelType sets the uint32 value in the BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation object -func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) SetTunnelType(value uint32) BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation { +// description is TBD +// SetValue sets the uint32 value in the PatternFlowSnmpv2CVariableBindingValueTimeticksValue object +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValue) SetValue(value uint32) PatternFlowSnmpv2CVariableBindingValueTimeticksValue { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueTimeticksValueChoice.VALUE) + obj.obj.Value = &value + return obj +} + +// description is TBD +// Values returns a []uint32 +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValue) Values() []uint32 { + if obj.obj.Values == nil { + obj.SetValues([]uint32{0}) + } + return obj.obj.Values +} + +// description is TBD +// SetValues sets the []uint32 value in the PatternFlowSnmpv2CVariableBindingValueTimeticksValue object +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValue) SetValues(value []uint32) PatternFlowSnmpv2CVariableBindingValueTimeticksValue { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueTimeticksValueChoice.VALUES) + if obj.obj.Values == nil { + obj.obj.Values = make([]uint32, 0) + } + obj.obj.Values = value - obj.obj.TunnelType = &value return obj } -func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) validateObj(vObj *validation, set_default bool) { +// description is TBD +// Increment returns a PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValue) Increment() PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter { + if obj.obj.Increment == nil { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueTimeticksValueChoice.INCREMENT) + } + if obj.incrementHolder == nil { + obj.incrementHolder = &patternFlowSnmpv2CVariableBindingValueTimeticksValueCounter{obj: obj.obj.Increment} + } + return obj.incrementHolder +} + +// description is TBD +// Increment returns a PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValue) HasIncrement() bool { + return obj.obj.Increment != nil +} + +// description is TBD +// SetIncrement sets the PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter value in the PatternFlowSnmpv2CVariableBindingValueTimeticksValue object +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValue) SetIncrement(value PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) PatternFlowSnmpv2CVariableBindingValueTimeticksValue { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueTimeticksValueChoice.INCREMENT) + obj.incrementHolder = nil + obj.obj.Increment = value.msg() + + return obj +} + +// description is TBD +// Decrement returns a PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValue) Decrement() PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter { + if obj.obj.Decrement == nil { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueTimeticksValueChoice.DECREMENT) + } + if obj.decrementHolder == nil { + obj.decrementHolder = &patternFlowSnmpv2CVariableBindingValueTimeticksValueCounter{obj: obj.obj.Decrement} + } + return obj.decrementHolder +} + +// description is TBD +// Decrement returns a PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValue) HasDecrement() bool { + return obj.obj.Decrement != nil +} + +// description is TBD +// SetDecrement sets the PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter value in the PatternFlowSnmpv2CVariableBindingValueTimeticksValue object +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValue) SetDecrement(value PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) PatternFlowSnmpv2CVariableBindingValueTimeticksValue { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueTimeticksValueChoice.DECREMENT) + obj.decrementHolder = nil + obj.obj.Decrement = value.msg() + + return obj +} + +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValue) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.TunnelType != nil { + if obj.obj.Increment != nil { - if *obj.obj.TunnelType > 65535 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation.TunnelType <= 65535 but Got %d", *obj.obj.TunnelType)) - } + obj.Increment().validateObj(vObj, set_default) + } + + if obj.obj.Decrement != nil { + obj.Decrement().validateObj(vObj, set_default) } } -func (obj *bgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) setDefault() { - if obj.obj.Reserved == nil { - obj.SetReserved(0) - } - if obj.obj.TunnelType == nil { - obj.SetTunnelType(1) +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValue) setDefault() { + if obj.obj.Choice == nil { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueTimeticksValueChoice.VALUE) + } } -// ***** BgpExtendedCommunityTransitiveEvpnTypeRouterMac ***** -type bgpExtendedCommunityTransitiveEvpnTypeRouterMac struct { +// ***** PatternFlowSnmpv2CVariableBindingValueBigCounterValue ***** +type patternFlowSnmpv2CVariableBindingValueBigCounterValue struct { validation - obj *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac - marshaller marshalBgpExtendedCommunityTransitiveEvpnTypeRouterMac - unMarshaller unMarshalBgpExtendedCommunityTransitiveEvpnTypeRouterMac + obj *otg.PatternFlowSnmpv2CVariableBindingValueBigCounterValue + marshaller marshalPatternFlowSnmpv2CVariableBindingValueBigCounterValue + unMarshaller unMarshalPatternFlowSnmpv2CVariableBindingValueBigCounterValue + incrementHolder PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter + decrementHolder PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter } -func NewBgpExtendedCommunityTransitiveEvpnTypeRouterMac() BgpExtendedCommunityTransitiveEvpnTypeRouterMac { - obj := bgpExtendedCommunityTransitiveEvpnTypeRouterMac{obj: &otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac{}} +func NewPatternFlowSnmpv2CVariableBindingValueBigCounterValue() PatternFlowSnmpv2CVariableBindingValueBigCounterValue { + obj := patternFlowSnmpv2CVariableBindingValueBigCounterValue{obj: &otg.PatternFlowSnmpv2CVariableBindingValueBigCounterValue{}} obj.setDefault() return &obj } -func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) msg() *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac { +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValue) msg() *otg.PatternFlowSnmpv2CVariableBindingValueBigCounterValue { return obj.obj } -func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) setMsg(msg *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac) BgpExtendedCommunityTransitiveEvpnTypeRouterMac { - +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValue) setMsg(msg *otg.PatternFlowSnmpv2CVariableBindingValueBigCounterValue) PatternFlowSnmpv2CVariableBindingValueBigCounterValue { + obj.setNil() proto.Merge(obj.obj, msg) return obj } -type marshalbgpExtendedCommunityTransitiveEvpnTypeRouterMac struct { - obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac +type marshalpatternFlowSnmpv2CVariableBindingValueBigCounterValue struct { + obj *patternFlowSnmpv2CVariableBindingValueBigCounterValue } -type marshalBgpExtendedCommunityTransitiveEvpnTypeRouterMac interface { - // ToProto marshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac to protobuf object *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac - ToProto() (*otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac, error) - // ToPbText marshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac to protobuf text +type marshalPatternFlowSnmpv2CVariableBindingValueBigCounterValue interface { + // ToProto marshals PatternFlowSnmpv2CVariableBindingValueBigCounterValue to protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueBigCounterValue + ToProto() (*otg.PatternFlowSnmpv2CVariableBindingValueBigCounterValue, error) + // ToPbText marshals PatternFlowSnmpv2CVariableBindingValueBigCounterValue to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac to YAML text + // ToYaml marshals PatternFlowSnmpv2CVariableBindingValueBigCounterValue to YAML text ToYaml() (string, error) - // ToJson marshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac to JSON text + // ToJson marshals PatternFlowSnmpv2CVariableBindingValueBigCounterValue to JSON text ToJson() (string, error) } -type unMarshalbgpExtendedCommunityTransitiveEvpnTypeRouterMac struct { - obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac +type unMarshalpatternFlowSnmpv2CVariableBindingValueBigCounterValue struct { + obj *patternFlowSnmpv2CVariableBindingValueBigCounterValue } -type unMarshalBgpExtendedCommunityTransitiveEvpnTypeRouterMac interface { - // FromProto unmarshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac from protobuf object *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac - FromProto(msg *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac) (BgpExtendedCommunityTransitiveEvpnTypeRouterMac, error) - // FromPbText unmarshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac from protobuf text +type unMarshalPatternFlowSnmpv2CVariableBindingValueBigCounterValue interface { + // FromProto unmarshals PatternFlowSnmpv2CVariableBindingValueBigCounterValue from protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueBigCounterValue + FromProto(msg *otg.PatternFlowSnmpv2CVariableBindingValueBigCounterValue) (PatternFlowSnmpv2CVariableBindingValueBigCounterValue, error) + // FromPbText unmarshals PatternFlowSnmpv2CVariableBindingValueBigCounterValue from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac from YAML text + // FromYaml unmarshals PatternFlowSnmpv2CVariableBindingValueBigCounterValue from YAML text FromYaml(value string) error - // FromJson unmarshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac from JSON text + // FromJson unmarshals PatternFlowSnmpv2CVariableBindingValueBigCounterValue from JSON text FromJson(value string) error } -func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) Marshal() marshalBgpExtendedCommunityTransitiveEvpnTypeRouterMac { +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValue) Marshal() marshalPatternFlowSnmpv2CVariableBindingValueBigCounterValue { if obj.marshaller == nil { - obj.marshaller = &marshalbgpExtendedCommunityTransitiveEvpnTypeRouterMac{obj: obj} + obj.marshaller = &marshalpatternFlowSnmpv2CVariableBindingValueBigCounterValue{obj: obj} } return obj.marshaller } -func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) Unmarshal() unMarshalBgpExtendedCommunityTransitiveEvpnTypeRouterMac { +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValue) Unmarshal() unMarshalPatternFlowSnmpv2CVariableBindingValueBigCounterValue { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpExtendedCommunityTransitiveEvpnTypeRouterMac{obj: obj} + obj.unMarshaller = &unMarshalpatternFlowSnmpv2CVariableBindingValueBigCounterValue{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpExtendedCommunityTransitiveEvpnTypeRouterMac) ToProto() (*otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueBigCounterValue) ToProto() (*otg.PatternFlowSnmpv2CVariableBindingValueBigCounterValue, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -342615,7 +355751,7 @@ func (m *marshalbgpExtendedCommunityTransitiveEvpnTypeRouterMac) ToProto() (*otg return m.obj.msg(), nil } -func (m *unMarshalbgpExtendedCommunityTransitiveEvpnTypeRouterMac) FromProto(msg *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac) (BgpExtendedCommunityTransitiveEvpnTypeRouterMac, error) { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueBigCounterValue) FromProto(msg *otg.PatternFlowSnmpv2CVariableBindingValueBigCounterValue) (PatternFlowSnmpv2CVariableBindingValueBigCounterValue, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -342624,7 +355760,7 @@ func (m *unMarshalbgpExtendedCommunityTransitiveEvpnTypeRouterMac) FromProto(msg return newObj, nil } -func (m *marshalbgpExtendedCommunityTransitiveEvpnTypeRouterMac) ToPbText() (string, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueBigCounterValue) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -342636,12 +355772,12 @@ func (m *marshalbgpExtendedCommunityTransitiveEvpnTypeRouterMac) ToPbText() (str return string(protoMarshal), nil } -func (m *unMarshalbgpExtendedCommunityTransitiveEvpnTypeRouterMac) FromPbText(value string) error { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueBigCounterValue) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -342649,7 +355785,7 @@ func (m *unMarshalbgpExtendedCommunityTransitiveEvpnTypeRouterMac) FromPbText(va return retObj } -func (m *marshalbgpExtendedCommunityTransitiveEvpnTypeRouterMac) ToYaml() (string, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueBigCounterValue) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -342670,7 +355806,7 @@ func (m *marshalbgpExtendedCommunityTransitiveEvpnTypeRouterMac) ToYaml() (strin return string(data), nil } -func (m *unMarshalbgpExtendedCommunityTransitiveEvpnTypeRouterMac) FromYaml(value string) error { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueBigCounterValue) FromYaml(value string) error { if value == "" { value = "{}" } @@ -342687,7 +355823,7 @@ func (m *unMarshalbgpExtendedCommunityTransitiveEvpnTypeRouterMac) FromYaml(valu return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -342695,7 +355831,7 @@ func (m *unMarshalbgpExtendedCommunityTransitiveEvpnTypeRouterMac) FromYaml(valu return nil } -func (m *marshalbgpExtendedCommunityTransitiveEvpnTypeRouterMac) ToJson() (string, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueBigCounterValue) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -342713,7 +355849,7 @@ func (m *marshalbgpExtendedCommunityTransitiveEvpnTypeRouterMac) ToJson() (strin return string(data), nil } -func (m *unMarshalbgpExtendedCommunityTransitiveEvpnTypeRouterMac) FromJson(value string) error { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueBigCounterValue) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -342726,7 +355862,7 @@ func (m *unMarshalbgpExtendedCommunityTransitiveEvpnTypeRouterMac) FromJson(valu return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() err := m.obj.validateToAndFrom() if err != nil { return err @@ -342734,19 +355870,19 @@ func (m *unMarshalbgpExtendedCommunityTransitiveEvpnTypeRouterMac) FromJson(valu return nil } -func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) validateToAndFrom() error { +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValue) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) validate() error { +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValue) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) String() string { +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValue) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -342754,12 +355890,12 @@ func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) String() string { return str } -func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) Clone() (BgpExtendedCommunityTransitiveEvpnTypeRouterMac, error) { +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValue) Clone() (PatternFlowSnmpv2CVariableBindingValueBigCounterValue, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpExtendedCommunityTransitiveEvpnTypeRouterMac() + newObj := NewPatternFlowSnmpv2CVariableBindingValueBigCounterValue() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -342771,150 +355907,328 @@ func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) Clone() (BgpExtended return newObj, nil } -// BgpExtendedCommunityTransitiveEvpnTypeRouterMac is the Router MAC EVPN Community is defined in RFC9135 and normally sent only for EVPN Type-2 Routes . It is sent with sub-type 0x03. -type BgpExtendedCommunityTransitiveEvpnTypeRouterMac interface { +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValue) setNil() { + obj.incrementHolder = nil + obj.decrementHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// PatternFlowSnmpv2CVariableBindingValueBigCounterValue is big counter returned for the requested OID. +type PatternFlowSnmpv2CVariableBindingValueBigCounterValue interface { Validation - // msg marshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac to protobuf object *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac + // msg marshals PatternFlowSnmpv2CVariableBindingValueBigCounterValue to protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueBigCounterValue // and doesn't set defaults - msg() *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac - // setMsg unmarshals BgpExtendedCommunityTransitiveEvpnTypeRouterMac from protobuf object *otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac + msg() *otg.PatternFlowSnmpv2CVariableBindingValueBigCounterValue + // setMsg unmarshals PatternFlowSnmpv2CVariableBindingValueBigCounterValue from protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueBigCounterValue // and doesn't set defaults - setMsg(*otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac) BgpExtendedCommunityTransitiveEvpnTypeRouterMac + setMsg(*otg.PatternFlowSnmpv2CVariableBindingValueBigCounterValue) PatternFlowSnmpv2CVariableBindingValueBigCounterValue // provides marshal interface - Marshal() marshalBgpExtendedCommunityTransitiveEvpnTypeRouterMac + Marshal() marshalPatternFlowSnmpv2CVariableBindingValueBigCounterValue // provides unmarshal interface - Unmarshal() unMarshalBgpExtendedCommunityTransitiveEvpnTypeRouterMac - // validate validates BgpExtendedCommunityTransitiveEvpnTypeRouterMac + Unmarshal() unMarshalPatternFlowSnmpv2CVariableBindingValueBigCounterValue + // validate validates PatternFlowSnmpv2CVariableBindingValueBigCounterValue validate() error // A stringer function String() string // Clones the object - Clone() (BgpExtendedCommunityTransitiveEvpnTypeRouterMac, error) + Clone() (PatternFlowSnmpv2CVariableBindingValueBigCounterValue, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // RouterMac returns string, set in BgpExtendedCommunityTransitiveEvpnTypeRouterMac. - RouterMac() string - // SetRouterMac assigns string provided by user to BgpExtendedCommunityTransitiveEvpnTypeRouterMac - SetRouterMac(value string) BgpExtendedCommunityTransitiveEvpnTypeRouterMac - // HasRouterMac checks if RouterMac has been set in BgpExtendedCommunityTransitiveEvpnTypeRouterMac - HasRouterMac() bool + // Choice returns PatternFlowSnmpv2CVariableBindingValueBigCounterValueChoiceEnum, set in PatternFlowSnmpv2CVariableBindingValueBigCounterValue + Choice() PatternFlowSnmpv2CVariableBindingValueBigCounterValueChoiceEnum + // setChoice assigns PatternFlowSnmpv2CVariableBindingValueBigCounterValueChoiceEnum provided by user to PatternFlowSnmpv2CVariableBindingValueBigCounterValue + setChoice(value PatternFlowSnmpv2CVariableBindingValueBigCounterValueChoiceEnum) PatternFlowSnmpv2CVariableBindingValueBigCounterValue + // HasChoice checks if Choice has been set in PatternFlowSnmpv2CVariableBindingValueBigCounterValue + HasChoice() bool + // Value returns uint64, set in PatternFlowSnmpv2CVariableBindingValueBigCounterValue. + Value() uint64 + // SetValue assigns uint64 provided by user to PatternFlowSnmpv2CVariableBindingValueBigCounterValue + SetValue(value uint64) PatternFlowSnmpv2CVariableBindingValueBigCounterValue + // HasValue checks if Value has been set in PatternFlowSnmpv2CVariableBindingValueBigCounterValue + HasValue() bool + // Values returns []uint64, set in PatternFlowSnmpv2CVariableBindingValueBigCounterValue. + Values() []uint64 + // SetValues assigns []uint64 provided by user to PatternFlowSnmpv2CVariableBindingValueBigCounterValue + SetValues(value []uint64) PatternFlowSnmpv2CVariableBindingValueBigCounterValue + // Increment returns PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter, set in PatternFlowSnmpv2CVariableBindingValueBigCounterValue. + Increment() PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter + // SetIncrement assigns PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter provided by user to PatternFlowSnmpv2CVariableBindingValueBigCounterValue. + SetIncrement(value PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) PatternFlowSnmpv2CVariableBindingValueBigCounterValue + // HasIncrement checks if Increment has been set in PatternFlowSnmpv2CVariableBindingValueBigCounterValue + HasIncrement() bool + // Decrement returns PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter, set in PatternFlowSnmpv2CVariableBindingValueBigCounterValue. + Decrement() PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter + // SetDecrement assigns PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter provided by user to PatternFlowSnmpv2CVariableBindingValueBigCounterValue. + SetDecrement(value PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) PatternFlowSnmpv2CVariableBindingValueBigCounterValue + // HasDecrement checks if Decrement has been set in PatternFlowSnmpv2CVariableBindingValueBigCounterValue + HasDecrement() bool + setNil() } -// MAC Address of the PE Router. -// RouterMac returns a string -func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) RouterMac() string { +type PatternFlowSnmpv2CVariableBindingValueBigCounterValueChoiceEnum string - return *obj.obj.RouterMac +// Enum of Choice on PatternFlowSnmpv2CVariableBindingValueBigCounterValue +var PatternFlowSnmpv2CVariableBindingValueBigCounterValueChoice = struct { + VALUE PatternFlowSnmpv2CVariableBindingValueBigCounterValueChoiceEnum + VALUES PatternFlowSnmpv2CVariableBindingValueBigCounterValueChoiceEnum + INCREMENT PatternFlowSnmpv2CVariableBindingValueBigCounterValueChoiceEnum + DECREMENT PatternFlowSnmpv2CVariableBindingValueBigCounterValueChoiceEnum +}{ + VALUE: PatternFlowSnmpv2CVariableBindingValueBigCounterValueChoiceEnum("value"), + VALUES: PatternFlowSnmpv2CVariableBindingValueBigCounterValueChoiceEnum("values"), + INCREMENT: PatternFlowSnmpv2CVariableBindingValueBigCounterValueChoiceEnum("increment"), + DECREMENT: PatternFlowSnmpv2CVariableBindingValueBigCounterValueChoiceEnum("decrement"), +} +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValue) Choice() PatternFlowSnmpv2CVariableBindingValueBigCounterValueChoiceEnum { + return PatternFlowSnmpv2CVariableBindingValueBigCounterValueChoiceEnum(obj.obj.Choice.Enum().String()) } -// MAC Address of the PE Router. -// RouterMac returns a string -func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) HasRouterMac() bool { - return obj.obj.RouterMac != nil +// description is TBD +// Choice returns a string +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValue) HasChoice() bool { + return obj.obj.Choice != nil } -// MAC Address of the PE Router. -// SetRouterMac sets the string value in the BgpExtendedCommunityTransitiveEvpnTypeRouterMac object -func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) SetRouterMac(value string) BgpExtendedCommunityTransitiveEvpnTypeRouterMac { +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValue) setChoice(value PatternFlowSnmpv2CVariableBindingValueBigCounterValueChoiceEnum) PatternFlowSnmpv2CVariableBindingValueBigCounterValue { + intValue, ok := otg.PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on PatternFlowSnmpv2CVariableBindingValueBigCounterValueChoiceEnum", string(value))) + return obj + } + enumValue := otg.PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.Decrement = nil + obj.decrementHolder = nil + obj.obj.Increment = nil + obj.incrementHolder = nil + obj.obj.Values = nil + obj.obj.Value = nil + + if value == PatternFlowSnmpv2CVariableBindingValueBigCounterValueChoice.VALUE { + defaultValue := uint64(0) + obj.obj.Value = &defaultValue + } + + if value == PatternFlowSnmpv2CVariableBindingValueBigCounterValueChoice.VALUES { + defaultValue := []uint64{0} + obj.obj.Values = defaultValue + } + + if value == PatternFlowSnmpv2CVariableBindingValueBigCounterValueChoice.INCREMENT { + obj.obj.Increment = NewPatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter().msg() + } + + if value == PatternFlowSnmpv2CVariableBindingValueBigCounterValueChoice.DECREMENT { + obj.obj.Decrement = NewPatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter().msg() + } - obj.obj.RouterMac = &value return obj } -func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) validateObj(vObj *validation, set_default bool) { +// description is TBD +// Value returns a uint64 +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValue) Value() uint64 { + + if obj.obj.Value == nil { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueBigCounterValueChoice.VALUE) + } + + return *obj.obj.Value + +} + +// description is TBD +// Value returns a uint64 +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValue) HasValue() bool { + return obj.obj.Value != nil +} + +// description is TBD +// SetValue sets the uint64 value in the PatternFlowSnmpv2CVariableBindingValueBigCounterValue object +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValue) SetValue(value uint64) PatternFlowSnmpv2CVariableBindingValueBigCounterValue { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueBigCounterValueChoice.VALUE) + obj.obj.Value = &value + return obj +} + +// description is TBD +// Values returns a []uint64 +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValue) Values() []uint64 { + if obj.obj.Values == nil { + obj.SetValues([]uint64{0}) + } + return obj.obj.Values +} + +// description is TBD +// SetValues sets the []uint64 value in the PatternFlowSnmpv2CVariableBindingValueBigCounterValue object +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValue) SetValues(value []uint64) PatternFlowSnmpv2CVariableBindingValueBigCounterValue { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueBigCounterValueChoice.VALUES) + if obj.obj.Values == nil { + obj.obj.Values = make([]uint64, 0) + } + obj.obj.Values = value + + return obj +} + +// description is TBD +// Increment returns a PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValue) Increment() PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter { + if obj.obj.Increment == nil { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueBigCounterValueChoice.INCREMENT) + } + if obj.incrementHolder == nil { + obj.incrementHolder = &patternFlowSnmpv2CVariableBindingValueBigCounterValueCounter{obj: obj.obj.Increment} + } + return obj.incrementHolder +} + +// description is TBD +// Increment returns a PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValue) HasIncrement() bool { + return obj.obj.Increment != nil +} + +// description is TBD +// SetIncrement sets the PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter value in the PatternFlowSnmpv2CVariableBindingValueBigCounterValue object +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValue) SetIncrement(value PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) PatternFlowSnmpv2CVariableBindingValueBigCounterValue { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueBigCounterValueChoice.INCREMENT) + obj.incrementHolder = nil + obj.obj.Increment = value.msg() + + return obj +} + +// description is TBD +// Decrement returns a PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValue) Decrement() PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter { + if obj.obj.Decrement == nil { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueBigCounterValueChoice.DECREMENT) + } + if obj.decrementHolder == nil { + obj.decrementHolder = &patternFlowSnmpv2CVariableBindingValueBigCounterValueCounter{obj: obj.obj.Decrement} + } + return obj.decrementHolder +} + +// description is TBD +// Decrement returns a PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValue) HasDecrement() bool { + return obj.obj.Decrement != nil +} + +// description is TBD +// SetDecrement sets the PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter value in the PatternFlowSnmpv2CVariableBindingValueBigCounterValue object +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValue) SetDecrement(value PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) PatternFlowSnmpv2CVariableBindingValueBigCounterValue { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueBigCounterValueChoice.DECREMENT) + obj.decrementHolder = nil + obj.obj.Decrement = value.msg() + + return obj +} + +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValue) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.RouterMac != nil { + if obj.obj.Increment != nil { - err := obj.validateMac(obj.RouterMac()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpExtendedCommunityTransitiveEvpnTypeRouterMac.RouterMac")) - } + obj.Increment().validateObj(vObj, set_default) + } + + if obj.obj.Decrement != nil { + obj.Decrement().validateObj(vObj, set_default) } } -func (obj *bgpExtendedCommunityTransitiveEvpnTypeRouterMac) setDefault() { - if obj.obj.RouterMac == nil { - obj.SetRouterMac("0:0:0:0:0:0") +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValue) setDefault() { + if obj.obj.Choice == nil { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueBigCounterValueChoice.VALUE) + } } -// ***** BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth ***** -type bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth struct { +// ***** PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue ***** +type patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue struct { validation - obj *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth - marshaller marshalBgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth - unMarshaller unMarshalBgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + obj *otg.PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue + marshaller marshalPatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue + unMarshaller unMarshalPatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue + incrementHolder PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter + decrementHolder PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter } -func NewBgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth() BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth { - obj := bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth{obj: &otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth{}} +func NewPatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue() PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue { + obj := patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue{obj: &otg.PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue{}} obj.setDefault() return &obj } -func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) msg() *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth { +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) msg() *otg.PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue { return obj.obj } -func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) setMsg(msg *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth { - +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) setMsg(msg *otg.PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue { + obj.setNil() proto.Merge(obj.obj, msg) return obj } -type marshalbgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth struct { - obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth +type marshalpatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue struct { + obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue } -type marshalBgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth interface { - // ToProto marshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth to protobuf object *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth - ToProto() (*otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth, error) - // ToPbText marshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth to protobuf text +type marshalPatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue interface { + // ToProto marshals PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue to protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue + ToProto() (*otg.PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue, error) + // ToPbText marshals PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth to YAML text + // ToYaml marshals PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue to YAML text ToYaml() (string, error) - // ToJson marshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth to JSON text + // ToJson marshals PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue to JSON text ToJson() (string, error) } -type unMarshalbgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth struct { - obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth +type unMarshalpatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue struct { + obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue } -type unMarshalBgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth interface { - // FromProto unmarshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth from protobuf object *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth - FromProto(msg *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) (BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth, error) - // FromPbText unmarshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth from protobuf text +type unMarshalPatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue interface { + // FromProto unmarshals PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue from protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue + FromProto(msg *otg.PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) (PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue, error) + // FromPbText unmarshals PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth from YAML text + // FromYaml unmarshals PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue from YAML text FromYaml(value string) error - // FromJson unmarshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth from JSON text + // FromJson unmarshals PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue from JSON text FromJson(value string) error } -func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Marshal() marshalBgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth { +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) Marshal() marshalPatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue { if obj.marshaller == nil { - obj.marshaller = &marshalbgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth{obj: obj} + obj.marshaller = &marshalpatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue{obj: obj} } return obj.marshaller } -func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Unmarshal() unMarshalBgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth { +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) Unmarshal() unMarshalPatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth{obj: obj} + obj.unMarshaller = &unMarshalpatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) ToProto() (*otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) ToProto() (*otg.PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -342922,7 +356236,7 @@ func (m *marshalbgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) ToPr return m.obj.msg(), nil } -func (m *unMarshalbgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) FromProto(msg *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) (BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth, error) { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) FromProto(msg *otg.PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) (PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -342931,7 +356245,7 @@ func (m *unMarshalbgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Fr return newObj, nil } -func (m *marshalbgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) ToPbText() (string, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -342943,12 +356257,12 @@ func (m *marshalbgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) ToPb return string(protoMarshal), nil } -func (m *unMarshalbgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) FromPbText(value string) error { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -342956,7 +356270,7 @@ func (m *unMarshalbgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Fr return retObj } -func (m *marshalbgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) ToYaml() (string, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -342977,7 +356291,7 @@ func (m *marshalbgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) ToYa return string(data), nil } -func (m *unMarshalbgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) FromYaml(value string) error { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) FromYaml(value string) error { if value == "" { value = "{}" } @@ -342994,7 +356308,7 @@ func (m *unMarshalbgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Fr return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -343002,7 +356316,7 @@ func (m *unMarshalbgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Fr return nil } -func (m *marshalbgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) ToJson() (string, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -343020,7 +356334,7 @@ func (m *marshalbgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) ToJs return string(data), nil } -func (m *unMarshalbgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) FromJson(value string) error { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -343033,7 +356347,7 @@ func (m *unMarshalbgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Fr return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() err := m.obj.validateToAndFrom() if err != nil { return err @@ -343041,19 +356355,19 @@ func (m *unMarshalbgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Fr return nil } -func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) validateToAndFrom() error { +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) validate() error { +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) String() string { +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -343061,12 +356375,12 @@ func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) String() return str } -func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Clone() (BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth, error) { +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) Clone() (PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth() + newObj := NewPatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -343078,193 +356392,333 @@ func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Clone() ( return newObj, nil } -// BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth is the Link Bandwidth Extended Community attribute is defined in draft-ietf-idr-link-bandwidth. It is sent with sub-type as 0x04. -type BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth interface { +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) setNil() { + obj.incrementHolder = nil + obj.decrementHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue is unsigned integer value returned for the requested OID. +type PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue interface { Validation - // msg marshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth to protobuf object *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + // msg marshals PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue to protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue // and doesn't set defaults - msg() *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth - // setMsg unmarshals BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth from protobuf object *otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + msg() *otg.PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue + // setMsg unmarshals PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue from protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue // and doesn't set defaults - setMsg(*otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + setMsg(*otg.PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue // provides marshal interface - Marshal() marshalBgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + Marshal() marshalPatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue // provides unmarshal interface - Unmarshal() unMarshalBgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth - // validate validates BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + Unmarshal() unMarshalPatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue + // validate validates PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue validate() error // A stringer function String() string // Clones the object - Clone() (BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth, error) + Clone() (PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Global2ByteAs returns uint32, set in BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth. - Global2ByteAs() uint32 - // SetGlobal2ByteAs assigns uint32 provided by user to BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth - SetGlobal2ByteAs(value uint32) BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth - // HasGlobal2ByteAs checks if Global2ByteAs has been set in BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth - HasGlobal2ByteAs() bool - // Bandwidth returns float32, set in BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth. - Bandwidth() float32 - // SetBandwidth assigns float32 provided by user to BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth - SetBandwidth(value float32) BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth - // HasBandwidth checks if Bandwidth has been set in BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth - HasBandwidth() bool + // Choice returns PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueChoiceEnum, set in PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue + Choice() PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueChoiceEnum + // setChoice assigns PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueChoiceEnum provided by user to PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue + setChoice(value PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueChoiceEnum) PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue + // HasChoice checks if Choice has been set in PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue + HasChoice() bool + // Value returns uint32, set in PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue. + Value() uint32 + // SetValue assigns uint32 provided by user to PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue + SetValue(value uint32) PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue + // HasValue checks if Value has been set in PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue + HasValue() bool + // Values returns []uint32, set in PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue. + Values() []uint32 + // SetValues assigns []uint32 provided by user to PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue + SetValues(value []uint32) PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue + // Increment returns PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter, set in PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue. + Increment() PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter + // SetIncrement assigns PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter provided by user to PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue. + SetIncrement(value PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue + // HasIncrement checks if Increment has been set in PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue + HasIncrement() bool + // Decrement returns PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter, set in PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue. + Decrement() PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter + // SetDecrement assigns PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter provided by user to PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue. + SetDecrement(value PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue + // HasDecrement checks if Decrement has been set in PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue + HasDecrement() bool + setNil() } -// The value of the Global Administrator subfield should represent the Autonomous System of the router that attaches the Link Bandwidth Community. If four octet AS numbering scheme is used, AS_TRANS (23456) should be used. -// Global2ByteAs returns a uint32 -func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Global2ByteAs() uint32 { +type PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueChoiceEnum string - return *obj.obj.Global_2ByteAs +// Enum of Choice on PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue +var PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueChoice = struct { + VALUE PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueChoiceEnum + VALUES PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueChoiceEnum + INCREMENT PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueChoiceEnum + DECREMENT PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueChoiceEnum +}{ + VALUE: PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueChoiceEnum("value"), + VALUES: PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueChoiceEnum("values"), + INCREMENT: PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueChoiceEnum("increment"), + DECREMENT: PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueChoiceEnum("decrement"), +} +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) Choice() PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueChoiceEnum { + return PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueChoiceEnum(obj.obj.Choice.Enum().String()) } -// The value of the Global Administrator subfield should represent the Autonomous System of the router that attaches the Link Bandwidth Community. If four octet AS numbering scheme is used, AS_TRANS (23456) should be used. -// Global2ByteAs returns a uint32 -func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) HasGlobal2ByteAs() bool { - return obj.obj.Global_2ByteAs != nil +// description is TBD +// Choice returns a string +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) HasChoice() bool { + return obj.obj.Choice != nil } -// The value of the Global Administrator subfield should represent the Autonomous System of the router that attaches the Link Bandwidth Community. If four octet AS numbering scheme is used, AS_TRANS (23456) should be used. -// SetGlobal2ByteAs sets the uint32 value in the BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth object -func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) SetGlobal2ByteAs(value uint32) BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth { +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) setChoice(value PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueChoiceEnum) PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue { + intValue, ok := otg.PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueChoiceEnum", string(value))) + return obj + } + enumValue := otg.PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.Decrement = nil + obj.decrementHolder = nil + obj.obj.Increment = nil + obj.incrementHolder = nil + obj.obj.Values = nil + obj.obj.Value = nil + + if value == PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueChoice.VALUE { + defaultValue := uint32(0) + obj.obj.Value = &defaultValue + } + + if value == PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueChoice.VALUES { + defaultValue := []uint32{0} + obj.obj.Values = defaultValue + } + + if value == PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueChoice.INCREMENT { + obj.obj.Increment = NewPatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter().msg() + } + + if value == PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueChoice.DECREMENT { + obj.obj.Decrement = NewPatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter().msg() + } - obj.obj.Global_2ByteAs = &value return obj } -// Bandwidth of the link in bytes per second. ( 1 Kbps is 1000 bytes per second and 1 Mbps is 1000 Kbps per second ) -// Bandwidth returns a float32 -func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Bandwidth() float32 { +// description is TBD +// Value returns a uint32 +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) Value() uint32 { - return *obj.obj.Bandwidth + if obj.obj.Value == nil { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueChoice.VALUE) + } + + return *obj.obj.Value } -// Bandwidth of the link in bytes per second. ( 1 Kbps is 1000 bytes per second and 1 Mbps is 1000 Kbps per second ) -// Bandwidth returns a float32 -func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) HasBandwidth() bool { - return obj.obj.Bandwidth != nil +// description is TBD +// Value returns a uint32 +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) HasValue() bool { + return obj.obj.Value != nil } -// Bandwidth of the link in bytes per second. ( 1 Kbps is 1000 bytes per second and 1 Mbps is 1000 Kbps per second ) -// SetBandwidth sets the float32 value in the BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth object -func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) SetBandwidth(value float32) BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth { +// description is TBD +// SetValue sets the uint32 value in the PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue object +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) SetValue(value uint32) PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueChoice.VALUE) + obj.obj.Value = &value + return obj +} + +// description is TBD +// Values returns a []uint32 +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) Values() []uint32 { + if obj.obj.Values == nil { + obj.SetValues([]uint32{0}) + } + return obj.obj.Values +} + +// description is TBD +// SetValues sets the []uint32 value in the PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue object +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) SetValues(value []uint32) PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueChoice.VALUES) + if obj.obj.Values == nil { + obj.obj.Values = make([]uint32, 0) + } + obj.obj.Values = value - obj.obj.Bandwidth = &value return obj } -func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) validateObj(vObj *validation, set_default bool) { +// description is TBD +// Increment returns a PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) Increment() PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter { + if obj.obj.Increment == nil { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueChoice.INCREMENT) + } + if obj.incrementHolder == nil { + obj.incrementHolder = &patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter{obj: obj.obj.Increment} + } + return obj.incrementHolder +} + +// description is TBD +// Increment returns a PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) HasIncrement() bool { + return obj.obj.Increment != nil +} + +// description is TBD +// SetIncrement sets the PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter value in the PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue object +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) SetIncrement(value PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueChoice.INCREMENT) + obj.incrementHolder = nil + obj.obj.Increment = value.msg() + + return obj +} + +// description is TBD +// Decrement returns a PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) Decrement() PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter { + if obj.obj.Decrement == nil { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueChoice.DECREMENT) + } + if obj.decrementHolder == nil { + obj.decrementHolder = &patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter{obj: obj.obj.Decrement} + } + return obj.decrementHolder +} + +// description is TBD +// Decrement returns a PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) HasDecrement() bool { + return obj.obj.Decrement != nil +} + +// description is TBD +// SetDecrement sets the PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter value in the PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue object +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) SetDecrement(value PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueChoice.DECREMENT) + obj.decrementHolder = nil + obj.obj.Decrement = value.msg() + + return obj +} + +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Global_2ByteAs != nil { + if obj.obj.Increment != nil { - if *obj.obj.Global_2ByteAs > 65535 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth.Global_2ByteAs <= 65535 but Got %d", *obj.obj.Global_2ByteAs)) - } + obj.Increment().validateObj(vObj, set_default) + } + + if obj.obj.Decrement != nil { + obj.Decrement().validateObj(vObj, set_default) } } -func (obj *bgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) setDefault() { - if obj.obj.Global_2ByteAs == nil { - obj.SetGlobal2ByteAs(100) - } - if obj.obj.Bandwidth == nil { - obj.SetBandwidth(0) +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) setDefault() { + if obj.obj.Choice == nil { + obj.setChoice(PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueChoice.VALUE) + } } -// ***** BgpSrteSegment ***** -type bgpSrteSegment struct { +// ***** BgpCMacIpRange ***** +type bgpCMacIpRange struct { validation - obj *otg.BgpSrteSegment - marshaller marshalBgpSrteSegment - unMarshaller unMarshalBgpSrteSegment - typeAHolder BgpSrteSegmentATypeSubTlv - typeBHolder BgpSrteSegmentBTypeSubTlv - typeCHolder BgpSrteSegmentCTypeSubTlv - typeDHolder BgpSrteSegmentDTypeSubTlv - typeEHolder BgpSrteSegmentETypeSubTlv - typeFHolder BgpSrteSegmentFTypeSubTlv - typeGHolder BgpSrteSegmentGTypeSubTlv - typeHHolder BgpSrteSegmentHTypeSubTlv - typeIHolder BgpSrteSegmentITypeSubTlv - typeJHolder BgpSrteSegmentJTypeSubTlv - typeKHolder BgpSrteSegmentKTypeSubTlv + obj *otg.BgpCMacIpRange + marshaller marshalBgpCMacIpRange + unMarshaller unMarshalBgpCMacIpRange + macAddressesHolder MACRouteAddress + ipv4AddressesHolder V4RouteAddress + ipv6AddressesHolder V6RouteAddress + advancedHolder BgpRouteAdvanced + communitiesHolder BgpCMacIpRangeBgpCommunityIter + extCommunitiesHolder BgpCMacIpRangeBgpExtCommunityIter + asPathHolder BgpAsPath } -func NewBgpSrteSegment() BgpSrteSegment { - obj := bgpSrteSegment{obj: &otg.BgpSrteSegment{}} +func NewBgpCMacIpRange() BgpCMacIpRange { + obj := bgpCMacIpRange{obj: &otg.BgpCMacIpRange{}} obj.setDefault() return &obj } -func (obj *bgpSrteSegment) msg() *otg.BgpSrteSegment { +func (obj *bgpCMacIpRange) msg() *otg.BgpCMacIpRange { return obj.obj } -func (obj *bgpSrteSegment) setMsg(msg *otg.BgpSrteSegment) BgpSrteSegment { +func (obj *bgpCMacIpRange) setMsg(msg *otg.BgpCMacIpRange) BgpCMacIpRange { obj.setNil() proto.Merge(obj.obj, msg) return obj } -type marshalbgpSrteSegment struct { - obj *bgpSrteSegment +type marshalbgpCMacIpRange struct { + obj *bgpCMacIpRange } -type marshalBgpSrteSegment interface { - // ToProto marshals BgpSrteSegment to protobuf object *otg.BgpSrteSegment - ToProto() (*otg.BgpSrteSegment, error) - // ToPbText marshals BgpSrteSegment to protobuf text +type marshalBgpCMacIpRange interface { + // ToProto marshals BgpCMacIpRange to protobuf object *otg.BgpCMacIpRange + ToProto() (*otg.BgpCMacIpRange, error) + // ToPbText marshals BgpCMacIpRange to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpSrteSegment to YAML text + // ToYaml marshals BgpCMacIpRange to YAML text ToYaml() (string, error) - // ToJson marshals BgpSrteSegment to JSON text + // ToJson marshals BgpCMacIpRange to JSON text ToJson() (string, error) } -type unMarshalbgpSrteSegment struct { - obj *bgpSrteSegment +type unMarshalbgpCMacIpRange struct { + obj *bgpCMacIpRange } -type unMarshalBgpSrteSegment interface { - // FromProto unmarshals BgpSrteSegment from protobuf object *otg.BgpSrteSegment - FromProto(msg *otg.BgpSrteSegment) (BgpSrteSegment, error) - // FromPbText unmarshals BgpSrteSegment from protobuf text +type unMarshalBgpCMacIpRange interface { + // FromProto unmarshals BgpCMacIpRange from protobuf object *otg.BgpCMacIpRange + FromProto(msg *otg.BgpCMacIpRange) (BgpCMacIpRange, error) + // FromPbText unmarshals BgpCMacIpRange from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpSrteSegment from YAML text + // FromYaml unmarshals BgpCMacIpRange from YAML text FromYaml(value string) error - // FromJson unmarshals BgpSrteSegment from JSON text + // FromJson unmarshals BgpCMacIpRange from JSON text FromJson(value string) error } -func (obj *bgpSrteSegment) Marshal() marshalBgpSrteSegment { +func (obj *bgpCMacIpRange) Marshal() marshalBgpCMacIpRange { if obj.marshaller == nil { - obj.marshaller = &marshalbgpSrteSegment{obj: obj} + obj.marshaller = &marshalbgpCMacIpRange{obj: obj} } return obj.marshaller } -func (obj *bgpSrteSegment) Unmarshal() unMarshalBgpSrteSegment { +func (obj *bgpCMacIpRange) Unmarshal() unMarshalBgpCMacIpRange { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpSrteSegment{obj: obj} + obj.unMarshaller = &unMarshalbgpCMacIpRange{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpSrteSegment) ToProto() (*otg.BgpSrteSegment, error) { +func (m *marshalbgpCMacIpRange) ToProto() (*otg.BgpCMacIpRange, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -343272,7 +356726,7 @@ func (m *marshalbgpSrteSegment) ToProto() (*otg.BgpSrteSegment, error) { return m.obj.msg(), nil } -func (m *unMarshalbgpSrteSegment) FromProto(msg *otg.BgpSrteSegment) (BgpSrteSegment, error) { +func (m *unMarshalbgpCMacIpRange) FromProto(msg *otg.BgpCMacIpRange) (BgpCMacIpRange, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -343281,7 +356735,7 @@ func (m *unMarshalbgpSrteSegment) FromProto(msg *otg.BgpSrteSegment) (BgpSrteSeg return newObj, nil } -func (m *marshalbgpSrteSegment) ToPbText() (string, error) { +func (m *marshalbgpCMacIpRange) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -343293,7 +356747,7 @@ func (m *marshalbgpSrteSegment) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalbgpSrteSegment) FromPbText(value string) error { +func (m *unMarshalbgpCMacIpRange) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj @@ -343306,7 +356760,7 @@ func (m *unMarshalbgpSrteSegment) FromPbText(value string) error { return retObj } -func (m *marshalbgpSrteSegment) ToYaml() (string, error) { +func (m *marshalbgpCMacIpRange) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -343327,7 +356781,7 @@ func (m *marshalbgpSrteSegment) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrteSegment) FromYaml(value string) error { +func (m *unMarshalbgpCMacIpRange) FromYaml(value string) error { if value == "" { value = "{}" } @@ -343352,7 +356806,7 @@ func (m *unMarshalbgpSrteSegment) FromYaml(value string) error { return nil } -func (m *marshalbgpSrteSegment) ToJson() (string, error) { +func (m *marshalbgpCMacIpRange) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -343370,7 +356824,7 @@ func (m *marshalbgpSrteSegment) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrteSegment) FromJson(value string) error { +func (m *unMarshalbgpCMacIpRange) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -343391,727 +356845,713 @@ func (m *unMarshalbgpSrteSegment) FromJson(value string) error { return nil } -func (obj *bgpSrteSegment) validateToAndFrom() error { +func (obj *bgpCMacIpRange) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpSrteSegment) validate() error { +func (obj *bgpCMacIpRange) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) - return obj.validationResult() -} - -func (obj *bgpSrteSegment) String() string { - str, err := obj.Marshal().ToYaml() - if err != nil { - return err.Error() - } - return str -} - -func (obj *bgpSrteSegment) Clone() (BgpSrteSegment, error) { - vErr := obj.validate() - if vErr != nil { - return nil, vErr - } - newObj := NewBgpSrteSegment() - data, err := proto.Marshal(obj.msg()) - if err != nil { - return nil, err - } - pbErr := proto.Unmarshal(data, newObj.msg()) - if pbErr != nil { - return nil, pbErr - } - return newObj, nil -} - -func (obj *bgpSrteSegment) setNil() { - obj.typeAHolder = nil - obj.typeBHolder = nil - obj.typeCHolder = nil - obj.typeDHolder = nil - obj.typeEHolder = nil - obj.typeFHolder = nil - obj.typeGHolder = nil - obj.typeHHolder = nil - obj.typeIHolder = nil - obj.typeJHolder = nil - obj.typeKHolder = nil - obj.validationErrors = nil - obj.warnings = nil - obj.constraints = make(map[string]map[string]Constraints) -} - -// BgpSrteSegment is a Segment sub-TLV describes a single segment in a segment list i.e., a single element of the explicit path. The Segment sub-TLVs are optional. -type BgpSrteSegment interface { - Validation - // msg marshals BgpSrteSegment to protobuf object *otg.BgpSrteSegment - // and doesn't set defaults - msg() *otg.BgpSrteSegment - // setMsg unmarshals BgpSrteSegment from protobuf object *otg.BgpSrteSegment - // and doesn't set defaults - setMsg(*otg.BgpSrteSegment) BgpSrteSegment - // provides marshal interface - Marshal() marshalBgpSrteSegment - // provides unmarshal interface - Unmarshal() unMarshalBgpSrteSegment - // validate validates BgpSrteSegment - validate() error - // A stringer function - String() string - // Clones the object - Clone() (BgpSrteSegment, error) - validateToAndFrom() error - validateObj(vObj *validation, set_default bool) - setDefault() - // SegmentType returns BgpSrteSegmentSegmentTypeEnum, set in BgpSrteSegment - SegmentType() BgpSrteSegmentSegmentTypeEnum - // SetSegmentType assigns BgpSrteSegmentSegmentTypeEnum provided by user to BgpSrteSegment - SetSegmentType(value BgpSrteSegmentSegmentTypeEnum) BgpSrteSegment - // TypeA returns BgpSrteSegmentATypeSubTlv, set in BgpSrteSegment. - // BgpSrteSegmentATypeSubTlv is type A: SID only, in the form of MPLS Label. - TypeA() BgpSrteSegmentATypeSubTlv - // SetTypeA assigns BgpSrteSegmentATypeSubTlv provided by user to BgpSrteSegment. - // BgpSrteSegmentATypeSubTlv is type A: SID only, in the form of MPLS Label. - SetTypeA(value BgpSrteSegmentATypeSubTlv) BgpSrteSegment - // HasTypeA checks if TypeA has been set in BgpSrteSegment - HasTypeA() bool - // TypeB returns BgpSrteSegmentBTypeSubTlv, set in BgpSrteSegment. - // BgpSrteSegmentBTypeSubTlv is type B: SID only, in the form of IPv6 address. - TypeB() BgpSrteSegmentBTypeSubTlv - // SetTypeB assigns BgpSrteSegmentBTypeSubTlv provided by user to BgpSrteSegment. - // BgpSrteSegmentBTypeSubTlv is type B: SID only, in the form of IPv6 address. - SetTypeB(value BgpSrteSegmentBTypeSubTlv) BgpSrteSegment - // HasTypeB checks if TypeB has been set in BgpSrteSegment - HasTypeB() bool - // TypeC returns BgpSrteSegmentCTypeSubTlv, set in BgpSrteSegment. - // BgpSrteSegmentCTypeSubTlv is type C: IPv4 Node Address with optional SID. - TypeC() BgpSrteSegmentCTypeSubTlv - // SetTypeC assigns BgpSrteSegmentCTypeSubTlv provided by user to BgpSrteSegment. - // BgpSrteSegmentCTypeSubTlv is type C: IPv4 Node Address with optional SID. - SetTypeC(value BgpSrteSegmentCTypeSubTlv) BgpSrteSegment - // HasTypeC checks if TypeC has been set in BgpSrteSegment - HasTypeC() bool - // TypeD returns BgpSrteSegmentDTypeSubTlv, set in BgpSrteSegment. - // BgpSrteSegmentDTypeSubTlv is type D: IPv6 Node Address with optional SID for SR MPLS. - TypeD() BgpSrteSegmentDTypeSubTlv - // SetTypeD assigns BgpSrteSegmentDTypeSubTlv provided by user to BgpSrteSegment. - // BgpSrteSegmentDTypeSubTlv is type D: IPv6 Node Address with optional SID for SR MPLS. - SetTypeD(value BgpSrteSegmentDTypeSubTlv) BgpSrteSegment - // HasTypeD checks if TypeD has been set in BgpSrteSegment - HasTypeD() bool - // TypeE returns BgpSrteSegmentETypeSubTlv, set in BgpSrteSegment. - // BgpSrteSegmentETypeSubTlv is type E: IPv4 Address and Local Interface ID with optional SID - TypeE() BgpSrteSegmentETypeSubTlv - // SetTypeE assigns BgpSrteSegmentETypeSubTlv provided by user to BgpSrteSegment. - // BgpSrteSegmentETypeSubTlv is type E: IPv4 Address and Local Interface ID with optional SID - SetTypeE(value BgpSrteSegmentETypeSubTlv) BgpSrteSegment - // HasTypeE checks if TypeE has been set in BgpSrteSegment - HasTypeE() bool - // TypeF returns BgpSrteSegmentFTypeSubTlv, set in BgpSrteSegment. - // BgpSrteSegmentFTypeSubTlv is type F: IPv4 Local and Remote addresses with optional SID. - TypeF() BgpSrteSegmentFTypeSubTlv - // SetTypeF assigns BgpSrteSegmentFTypeSubTlv provided by user to BgpSrteSegment. - // BgpSrteSegmentFTypeSubTlv is type F: IPv4 Local and Remote addresses with optional SID. - SetTypeF(value BgpSrteSegmentFTypeSubTlv) BgpSrteSegment - // HasTypeF checks if TypeF has been set in BgpSrteSegment - HasTypeF() bool - // TypeG returns BgpSrteSegmentGTypeSubTlv, set in BgpSrteSegment. - // BgpSrteSegmentGTypeSubTlv is type G: IPv6 Address, Interface ID for local and remote pair with optional SID for SR MPLS. - TypeG() BgpSrteSegmentGTypeSubTlv - // SetTypeG assigns BgpSrteSegmentGTypeSubTlv provided by user to BgpSrteSegment. - // BgpSrteSegmentGTypeSubTlv is type G: IPv6 Address, Interface ID for local and remote pair with optional SID for SR MPLS. - SetTypeG(value BgpSrteSegmentGTypeSubTlv) BgpSrteSegment - // HasTypeG checks if TypeG has been set in BgpSrteSegment - HasTypeG() bool - // TypeH returns BgpSrteSegmentHTypeSubTlv, set in BgpSrteSegment. - // BgpSrteSegmentHTypeSubTlv is type H: IPv6 Local and Remote addresses with optional SID for SR MPLS. - TypeH() BgpSrteSegmentHTypeSubTlv - // SetTypeH assigns BgpSrteSegmentHTypeSubTlv provided by user to BgpSrteSegment. - // BgpSrteSegmentHTypeSubTlv is type H: IPv6 Local and Remote addresses with optional SID for SR MPLS. - SetTypeH(value BgpSrteSegmentHTypeSubTlv) BgpSrteSegment - // HasTypeH checks if TypeH has been set in BgpSrteSegment - HasTypeH() bool - // TypeI returns BgpSrteSegmentITypeSubTlv, set in BgpSrteSegment. - // BgpSrteSegmentITypeSubTlv is type I: IPv6 Node Address with optional SRv6 SID. - TypeI() BgpSrteSegmentITypeSubTlv - // SetTypeI assigns BgpSrteSegmentITypeSubTlv provided by user to BgpSrteSegment. - // BgpSrteSegmentITypeSubTlv is type I: IPv6 Node Address with optional SRv6 SID. - SetTypeI(value BgpSrteSegmentITypeSubTlv) BgpSrteSegment - // HasTypeI checks if TypeI has been set in BgpSrteSegment - HasTypeI() bool - // TypeJ returns BgpSrteSegmentJTypeSubTlv, set in BgpSrteSegment. - // BgpSrteSegmentJTypeSubTlv is type J: IPv6 Address, Interface ID for local and remote pair for SRv6 with optional SID. - TypeJ() BgpSrteSegmentJTypeSubTlv - // SetTypeJ assigns BgpSrteSegmentJTypeSubTlv provided by user to BgpSrteSegment. - // BgpSrteSegmentJTypeSubTlv is type J: IPv6 Address, Interface ID for local and remote pair for SRv6 with optional SID. - SetTypeJ(value BgpSrteSegmentJTypeSubTlv) BgpSrteSegment - // HasTypeJ checks if TypeJ has been set in BgpSrteSegment - HasTypeJ() bool - // TypeK returns BgpSrteSegmentKTypeSubTlv, set in BgpSrteSegment. - // BgpSrteSegmentKTypeSubTlv is type K: IPv6 Local and Remote addresses for SRv6 with optional SID. - TypeK() BgpSrteSegmentKTypeSubTlv - // SetTypeK assigns BgpSrteSegmentKTypeSubTlv provided by user to BgpSrteSegment. - // BgpSrteSegmentKTypeSubTlv is type K: IPv6 Local and Remote addresses for SRv6 with optional SID. - SetTypeK(value BgpSrteSegmentKTypeSubTlv) BgpSrteSegment - // HasTypeK checks if TypeK has been set in BgpSrteSegment - HasTypeK() bool - // Name returns string, set in BgpSrteSegment. - Name() string - // SetName assigns string provided by user to BgpSrteSegment - SetName(value string) BgpSrteSegment - // Active returns bool, set in BgpSrteSegment. - Active() bool - // SetActive assigns bool provided by user to BgpSrteSegment - SetActive(value bool) BgpSrteSegment - // HasActive checks if Active has been set in BgpSrteSegment - HasActive() bool - setNil() + return obj.validationResult() } -type BgpSrteSegmentSegmentTypeEnum string - -// Enum of SegmentType on BgpSrteSegment -var BgpSrteSegmentSegmentType = struct { - TYPE_A BgpSrteSegmentSegmentTypeEnum - TYPE_B BgpSrteSegmentSegmentTypeEnum - TYPE_C BgpSrteSegmentSegmentTypeEnum - TYPE_D BgpSrteSegmentSegmentTypeEnum - TYPE_E BgpSrteSegmentSegmentTypeEnum - TYPE_F BgpSrteSegmentSegmentTypeEnum - TYPE_G BgpSrteSegmentSegmentTypeEnum - TYPE_H BgpSrteSegmentSegmentTypeEnum - TYPE_I BgpSrteSegmentSegmentTypeEnum - TYPE_J BgpSrteSegmentSegmentTypeEnum - TYPE_K BgpSrteSegmentSegmentTypeEnum -}{ - TYPE_A: BgpSrteSegmentSegmentTypeEnum("type_a"), - TYPE_B: BgpSrteSegmentSegmentTypeEnum("type_b"), - TYPE_C: BgpSrteSegmentSegmentTypeEnum("type_c"), - TYPE_D: BgpSrteSegmentSegmentTypeEnum("type_d"), - TYPE_E: BgpSrteSegmentSegmentTypeEnum("type_e"), - TYPE_F: BgpSrteSegmentSegmentTypeEnum("type_f"), - TYPE_G: BgpSrteSegmentSegmentTypeEnum("type_g"), - TYPE_H: BgpSrteSegmentSegmentTypeEnum("type_h"), - TYPE_I: BgpSrteSegmentSegmentTypeEnum("type_i"), - TYPE_J: BgpSrteSegmentSegmentTypeEnum("type_j"), - TYPE_K: BgpSrteSegmentSegmentTypeEnum("type_k"), +func (obj *bgpCMacIpRange) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str } -func (obj *bgpSrteSegment) SegmentType() BgpSrteSegmentSegmentTypeEnum { - return BgpSrteSegmentSegmentTypeEnum(obj.obj.SegmentType.Enum().String()) +func (obj *bgpCMacIpRange) Clone() (BgpCMacIpRange, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewBgpCMacIpRange() + data, err := proto.Marshal(obj.msg()) + if err != nil { + return nil, err + } + pbErr := proto.Unmarshal(data, newObj.msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil } -func (obj *bgpSrteSegment) SetSegmentType(value BgpSrteSegmentSegmentTypeEnum) BgpSrteSegment { - intValue, ok := otg.BgpSrteSegment_SegmentType_Enum_value[string(value)] - if !ok { - obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( - "%s is not a valid choice on BgpSrteSegmentSegmentTypeEnum", string(value))) - return obj - } - enumValue := otg.BgpSrteSegment_SegmentType_Enum(intValue) - obj.obj.SegmentType = &enumValue +func (obj *bgpCMacIpRange) setNil() { + obj.macAddressesHolder = nil + obj.ipv4AddressesHolder = nil + obj.ipv6AddressesHolder = nil + obj.advancedHolder = nil + obj.communitiesHolder = nil + obj.extCommunitiesHolder = nil + obj.asPathHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} - return obj +// BgpCMacIpRange is configuration for MAC/IP Ranges per Broadcast Domain. +// +// Advertises following route - +// +// Type 2 - MAC/IP Advertisement Route. +type BgpCMacIpRange interface { + Validation + // msg marshals BgpCMacIpRange to protobuf object *otg.BgpCMacIpRange + // and doesn't set defaults + msg() *otg.BgpCMacIpRange + // setMsg unmarshals BgpCMacIpRange from protobuf object *otg.BgpCMacIpRange + // and doesn't set defaults + setMsg(*otg.BgpCMacIpRange) BgpCMacIpRange + // provides marshal interface + Marshal() marshalBgpCMacIpRange + // provides unmarshal interface + Unmarshal() unMarshalBgpCMacIpRange + // validate validates BgpCMacIpRange + validate() error + // A stringer function + String() string + // Clones the object + Clone() (BgpCMacIpRange, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // MacAddresses returns MACRouteAddress, set in BgpCMacIpRange. + // MACRouteAddress is a container for MAC route addresses. + MacAddresses() MACRouteAddress + // SetMacAddresses assigns MACRouteAddress provided by user to BgpCMacIpRange. + // MACRouteAddress is a container for MAC route addresses. + SetMacAddresses(value MACRouteAddress) BgpCMacIpRange + // HasMacAddresses checks if MacAddresses has been set in BgpCMacIpRange + HasMacAddresses() bool + // L2Vni returns uint32, set in BgpCMacIpRange. + L2Vni() uint32 + // SetL2Vni assigns uint32 provided by user to BgpCMacIpRange + SetL2Vni(value uint32) BgpCMacIpRange + // HasL2Vni checks if L2Vni has been set in BgpCMacIpRange + HasL2Vni() bool + // Ipv4Addresses returns V4RouteAddress, set in BgpCMacIpRange. + // V4RouteAddress is a container for IPv4 route addresses. + Ipv4Addresses() V4RouteAddress + // SetIpv4Addresses assigns V4RouteAddress provided by user to BgpCMacIpRange. + // V4RouteAddress is a container for IPv4 route addresses. + SetIpv4Addresses(value V4RouteAddress) BgpCMacIpRange + // HasIpv4Addresses checks if Ipv4Addresses has been set in BgpCMacIpRange + HasIpv4Addresses() bool + // Ipv6Addresses returns V6RouteAddress, set in BgpCMacIpRange. + // V6RouteAddress is a container for IPv6 route addresses. + Ipv6Addresses() V6RouteAddress + // SetIpv6Addresses assigns V6RouteAddress provided by user to BgpCMacIpRange. + // V6RouteAddress is a container for IPv6 route addresses. + SetIpv6Addresses(value V6RouteAddress) BgpCMacIpRange + // HasIpv6Addresses checks if Ipv6Addresses has been set in BgpCMacIpRange + HasIpv6Addresses() bool + // L3Vni returns uint32, set in BgpCMacIpRange. + L3Vni() uint32 + // SetL3Vni assigns uint32 provided by user to BgpCMacIpRange + SetL3Vni(value uint32) BgpCMacIpRange + // HasL3Vni checks if L3Vni has been set in BgpCMacIpRange + HasL3Vni() bool + // IncludeDefaultGateway returns bool, set in BgpCMacIpRange. + IncludeDefaultGateway() bool + // SetIncludeDefaultGateway assigns bool provided by user to BgpCMacIpRange + SetIncludeDefaultGateway(value bool) BgpCMacIpRange + // HasIncludeDefaultGateway checks if IncludeDefaultGateway has been set in BgpCMacIpRange + HasIncludeDefaultGateway() bool + // Advanced returns BgpRouteAdvanced, set in BgpCMacIpRange. + // BgpRouteAdvanced is configuration for advanced BGP route range settings. + Advanced() BgpRouteAdvanced + // SetAdvanced assigns BgpRouteAdvanced provided by user to BgpCMacIpRange. + // BgpRouteAdvanced is configuration for advanced BGP route range settings. + SetAdvanced(value BgpRouteAdvanced) BgpCMacIpRange + // HasAdvanced checks if Advanced has been set in BgpCMacIpRange + HasAdvanced() bool + // Communities returns BgpCMacIpRangeBgpCommunityIterIter, set in BgpCMacIpRange + Communities() BgpCMacIpRangeBgpCommunityIter + // ExtCommunities returns BgpCMacIpRangeBgpExtCommunityIterIter, set in BgpCMacIpRange + ExtCommunities() BgpCMacIpRangeBgpExtCommunityIter + // AsPath returns BgpAsPath, set in BgpCMacIpRange. + // BgpAsPath is this attribute identifies the autonomous systems through which routing information carried in this UPDATE message has passed. This contains the configuration of how to include the Local AS in the AS path attribute of the MP REACH NLRI. It also contains optional configuration of additional AS Path Segments that can be included in the AS Path attribute. The AS Path consists of a Set or Sequence of Autonomous Systems (AS) numbers that a routing information passes through to reach the destination. + AsPath() BgpAsPath + // SetAsPath assigns BgpAsPath provided by user to BgpCMacIpRange. + // BgpAsPath is this attribute identifies the autonomous systems through which routing information carried in this UPDATE message has passed. This contains the configuration of how to include the Local AS in the AS path attribute of the MP REACH NLRI. It also contains optional configuration of additional AS Path Segments that can be included in the AS Path attribute. The AS Path consists of a Set or Sequence of Autonomous Systems (AS) numbers that a routing information passes through to reach the destination. + SetAsPath(value BgpAsPath) BgpCMacIpRange + // HasAsPath checks if AsPath has been set in BgpCMacIpRange + HasAsPath() bool + // Name returns string, set in BgpCMacIpRange. + Name() string + // SetName assigns string provided by user to BgpCMacIpRange + SetName(value string) BgpCMacIpRange + setNil() } -// description is TBD -// TypeA returns a BgpSrteSegmentATypeSubTlv -func (obj *bgpSrteSegment) TypeA() BgpSrteSegmentATypeSubTlv { - if obj.obj.TypeA == nil { - obj.obj.TypeA = NewBgpSrteSegmentATypeSubTlv().msg() +// Host MAC address range per Broadcast Domain. +// MacAddresses returns a MACRouteAddress +func (obj *bgpCMacIpRange) MacAddresses() MACRouteAddress { + if obj.obj.MacAddresses == nil { + obj.obj.MacAddresses = NewMACRouteAddress().msg() } - if obj.typeAHolder == nil { - obj.typeAHolder = &bgpSrteSegmentATypeSubTlv{obj: obj.obj.TypeA} + if obj.macAddressesHolder == nil { + obj.macAddressesHolder = &mACRouteAddress{obj: obj.obj.MacAddresses} } - return obj.typeAHolder + return obj.macAddressesHolder } -// description is TBD -// TypeA returns a BgpSrteSegmentATypeSubTlv -func (obj *bgpSrteSegment) HasTypeA() bool { - return obj.obj.TypeA != nil +// Host MAC address range per Broadcast Domain. +// MacAddresses returns a MACRouteAddress +func (obj *bgpCMacIpRange) HasMacAddresses() bool { + return obj.obj.MacAddresses != nil } -// description is TBD -// SetTypeA sets the BgpSrteSegmentATypeSubTlv value in the BgpSrteSegment object -func (obj *bgpSrteSegment) SetTypeA(value BgpSrteSegmentATypeSubTlv) BgpSrteSegment { +// Host MAC address range per Broadcast Domain. +// SetMacAddresses sets the MACRouteAddress value in the BgpCMacIpRange object +func (obj *bgpCMacIpRange) SetMacAddresses(value MACRouteAddress) BgpCMacIpRange { - obj.typeAHolder = nil - obj.obj.TypeA = value.msg() + obj.macAddressesHolder = nil + obj.obj.MacAddresses = value.msg() return obj } -// description is TBD -// TypeB returns a BgpSrteSegmentBTypeSubTlv -func (obj *bgpSrteSegment) TypeB() BgpSrteSegmentBTypeSubTlv { - if obj.obj.TypeB == nil { - obj.obj.TypeB = NewBgpSrteSegmentBTypeSubTlv().msg() - } - if obj.typeBHolder == nil { - obj.typeBHolder = &bgpSrteSegmentBTypeSubTlv{obj: obj.obj.TypeB} - } - return obj.typeBHolder -} +// Layer 2 Virtual Network Identifier (L2VNI) to be advertised with MAC/IP Advertisement Route (Type 2) +// L2Vni returns a uint32 +func (obj *bgpCMacIpRange) L2Vni() uint32 { + + return *obj.obj.L2Vni -// description is TBD -// TypeB returns a BgpSrteSegmentBTypeSubTlv -func (obj *bgpSrteSegment) HasTypeB() bool { - return obj.obj.TypeB != nil } -// description is TBD -// SetTypeB sets the BgpSrteSegmentBTypeSubTlv value in the BgpSrteSegment object -func (obj *bgpSrteSegment) SetTypeB(value BgpSrteSegmentBTypeSubTlv) BgpSrteSegment { +// Layer 2 Virtual Network Identifier (L2VNI) to be advertised with MAC/IP Advertisement Route (Type 2) +// L2Vni returns a uint32 +func (obj *bgpCMacIpRange) HasL2Vni() bool { + return obj.obj.L2Vni != nil +} - obj.typeBHolder = nil - obj.obj.TypeB = value.msg() +// Layer 2 Virtual Network Identifier (L2VNI) to be advertised with MAC/IP Advertisement Route (Type 2) +// SetL2Vni sets the uint32 value in the BgpCMacIpRange object +func (obj *bgpCMacIpRange) SetL2Vni(value uint32) BgpCMacIpRange { + obj.obj.L2Vni = &value return obj } -// description is TBD -// TypeC returns a BgpSrteSegmentCTypeSubTlv -func (obj *bgpSrteSegment) TypeC() BgpSrteSegmentCTypeSubTlv { - if obj.obj.TypeC == nil { - obj.obj.TypeC = NewBgpSrteSegmentCTypeSubTlv().msg() +// Host IPv4 address range per Broadcast Domain. +// Ipv4Addresses returns a V4RouteAddress +func (obj *bgpCMacIpRange) Ipv4Addresses() V4RouteAddress { + if obj.obj.Ipv4Addresses == nil { + obj.obj.Ipv4Addresses = NewV4RouteAddress().msg() } - if obj.typeCHolder == nil { - obj.typeCHolder = &bgpSrteSegmentCTypeSubTlv{obj: obj.obj.TypeC} + if obj.ipv4AddressesHolder == nil { + obj.ipv4AddressesHolder = &v4RouteAddress{obj: obj.obj.Ipv4Addresses} } - return obj.typeCHolder + return obj.ipv4AddressesHolder } -// description is TBD -// TypeC returns a BgpSrteSegmentCTypeSubTlv -func (obj *bgpSrteSegment) HasTypeC() bool { - return obj.obj.TypeC != nil +// Host IPv4 address range per Broadcast Domain. +// Ipv4Addresses returns a V4RouteAddress +func (obj *bgpCMacIpRange) HasIpv4Addresses() bool { + return obj.obj.Ipv4Addresses != nil } -// description is TBD -// SetTypeC sets the BgpSrteSegmentCTypeSubTlv value in the BgpSrteSegment object -func (obj *bgpSrteSegment) SetTypeC(value BgpSrteSegmentCTypeSubTlv) BgpSrteSegment { +// Host IPv4 address range per Broadcast Domain. +// SetIpv4Addresses sets the V4RouteAddress value in the BgpCMacIpRange object +func (obj *bgpCMacIpRange) SetIpv4Addresses(value V4RouteAddress) BgpCMacIpRange { - obj.typeCHolder = nil - obj.obj.TypeC = value.msg() + obj.ipv4AddressesHolder = nil + obj.obj.Ipv4Addresses = value.msg() return obj } -// description is TBD -// TypeD returns a BgpSrteSegmentDTypeSubTlv -func (obj *bgpSrteSegment) TypeD() BgpSrteSegmentDTypeSubTlv { - if obj.obj.TypeD == nil { - obj.obj.TypeD = NewBgpSrteSegmentDTypeSubTlv().msg() +// Host IPv6 address range per Broadcast Domain. +// Ipv6Addresses returns a V6RouteAddress +func (obj *bgpCMacIpRange) Ipv6Addresses() V6RouteAddress { + if obj.obj.Ipv6Addresses == nil { + obj.obj.Ipv6Addresses = NewV6RouteAddress().msg() } - if obj.typeDHolder == nil { - obj.typeDHolder = &bgpSrteSegmentDTypeSubTlv{obj: obj.obj.TypeD} + if obj.ipv6AddressesHolder == nil { + obj.ipv6AddressesHolder = &v6RouteAddress{obj: obj.obj.Ipv6Addresses} } - return obj.typeDHolder + return obj.ipv6AddressesHolder } -// description is TBD -// TypeD returns a BgpSrteSegmentDTypeSubTlv -func (obj *bgpSrteSegment) HasTypeD() bool { - return obj.obj.TypeD != nil +// Host IPv6 address range per Broadcast Domain. +// Ipv6Addresses returns a V6RouteAddress +func (obj *bgpCMacIpRange) HasIpv6Addresses() bool { + return obj.obj.Ipv6Addresses != nil } -// description is TBD -// SetTypeD sets the BgpSrteSegmentDTypeSubTlv value in the BgpSrteSegment object -func (obj *bgpSrteSegment) SetTypeD(value BgpSrteSegmentDTypeSubTlv) BgpSrteSegment { +// Host IPv6 address range per Broadcast Domain. +// SetIpv6Addresses sets the V6RouteAddress value in the BgpCMacIpRange object +func (obj *bgpCMacIpRange) SetIpv6Addresses(value V6RouteAddress) BgpCMacIpRange { - obj.typeDHolder = nil - obj.obj.TypeD = value.msg() + obj.ipv6AddressesHolder = nil + obj.obj.Ipv6Addresses = value.msg() return obj } -// description is TBD -// TypeE returns a BgpSrteSegmentETypeSubTlv -func (obj *bgpSrteSegment) TypeE() BgpSrteSegmentETypeSubTlv { - if obj.obj.TypeE == nil { - obj.obj.TypeE = NewBgpSrteSegmentETypeSubTlv().msg() - } - if obj.typeEHolder == nil { - obj.typeEHolder = &bgpSrteSegmentETypeSubTlv{obj: obj.obj.TypeE} - } - return obj.typeEHolder -} +// Layer 3 Virtual Network Identifier (L3VNI) to be advertised with MAC/IP Advertisement Route (Type 2). +// L3Vni returns a uint32 +func (obj *bgpCMacIpRange) L3Vni() uint32 { + + return *obj.obj.L3Vni -// description is TBD -// TypeE returns a BgpSrteSegmentETypeSubTlv -func (obj *bgpSrteSegment) HasTypeE() bool { - return obj.obj.TypeE != nil } -// description is TBD -// SetTypeE sets the BgpSrteSegmentETypeSubTlv value in the BgpSrteSegment object -func (obj *bgpSrteSegment) SetTypeE(value BgpSrteSegmentETypeSubTlv) BgpSrteSegment { +// Layer 3 Virtual Network Identifier (L3VNI) to be advertised with MAC/IP Advertisement Route (Type 2). +// L3Vni returns a uint32 +func (obj *bgpCMacIpRange) HasL3Vni() bool { + return obj.obj.L3Vni != nil +} - obj.typeEHolder = nil - obj.obj.TypeE = value.msg() +// Layer 3 Virtual Network Identifier (L3VNI) to be advertised with MAC/IP Advertisement Route (Type 2). +// SetL3Vni sets the uint32 value in the BgpCMacIpRange object +func (obj *bgpCMacIpRange) SetL3Vni(value uint32) BgpCMacIpRange { + obj.obj.L3Vni = &value return obj } -// description is TBD -// TypeF returns a BgpSrteSegmentFTypeSubTlv -func (obj *bgpSrteSegment) TypeF() BgpSrteSegmentFTypeSubTlv { - if obj.obj.TypeF == nil { - obj.obj.TypeF = NewBgpSrteSegmentFTypeSubTlv().msg() - } - if obj.typeFHolder == nil { - obj.typeFHolder = &bgpSrteSegmentFTypeSubTlv{obj: obj.obj.TypeF} - } - return obj.typeFHolder -} +// Include default Gateway Extended Community in MAC/IP Advertisement Route (Type 2). +// IncludeDefaultGateway returns a bool +func (obj *bgpCMacIpRange) IncludeDefaultGateway() bool { + + return *obj.obj.IncludeDefaultGateway -// description is TBD -// TypeF returns a BgpSrteSegmentFTypeSubTlv -func (obj *bgpSrteSegment) HasTypeF() bool { - return obj.obj.TypeF != nil } -// description is TBD -// SetTypeF sets the BgpSrteSegmentFTypeSubTlv value in the BgpSrteSegment object -func (obj *bgpSrteSegment) SetTypeF(value BgpSrteSegmentFTypeSubTlv) BgpSrteSegment { +// Include default Gateway Extended Community in MAC/IP Advertisement Route (Type 2). +// IncludeDefaultGateway returns a bool +func (obj *bgpCMacIpRange) HasIncludeDefaultGateway() bool { + return obj.obj.IncludeDefaultGateway != nil +} - obj.typeFHolder = nil - obj.obj.TypeF = value.msg() +// Include default Gateway Extended Community in MAC/IP Advertisement Route (Type 2). +// SetIncludeDefaultGateway sets the bool value in the BgpCMacIpRange object +func (obj *bgpCMacIpRange) SetIncludeDefaultGateway(value bool) BgpCMacIpRange { + obj.obj.IncludeDefaultGateway = &value return obj } // description is TBD -// TypeG returns a BgpSrteSegmentGTypeSubTlv -func (obj *bgpSrteSegment) TypeG() BgpSrteSegmentGTypeSubTlv { - if obj.obj.TypeG == nil { - obj.obj.TypeG = NewBgpSrteSegmentGTypeSubTlv().msg() +// Advanced returns a BgpRouteAdvanced +func (obj *bgpCMacIpRange) Advanced() BgpRouteAdvanced { + if obj.obj.Advanced == nil { + obj.obj.Advanced = NewBgpRouteAdvanced().msg() } - if obj.typeGHolder == nil { - obj.typeGHolder = &bgpSrteSegmentGTypeSubTlv{obj: obj.obj.TypeG} + if obj.advancedHolder == nil { + obj.advancedHolder = &bgpRouteAdvanced{obj: obj.obj.Advanced} } - return obj.typeGHolder + return obj.advancedHolder } // description is TBD -// TypeG returns a BgpSrteSegmentGTypeSubTlv -func (obj *bgpSrteSegment) HasTypeG() bool { - return obj.obj.TypeG != nil +// Advanced returns a BgpRouteAdvanced +func (obj *bgpCMacIpRange) HasAdvanced() bool { + return obj.obj.Advanced != nil } // description is TBD -// SetTypeG sets the BgpSrteSegmentGTypeSubTlv value in the BgpSrteSegment object -func (obj *bgpSrteSegment) SetTypeG(value BgpSrteSegmentGTypeSubTlv) BgpSrteSegment { +// SetAdvanced sets the BgpRouteAdvanced value in the BgpCMacIpRange object +func (obj *bgpCMacIpRange) SetAdvanced(value BgpRouteAdvanced) BgpCMacIpRange { - obj.typeGHolder = nil - obj.obj.TypeG = value.msg() + obj.advancedHolder = nil + obj.obj.Advanced = value.msg() return obj } -// description is TBD -// TypeH returns a BgpSrteSegmentHTypeSubTlv -func (obj *bgpSrteSegment) TypeH() BgpSrteSegmentHTypeSubTlv { - if obj.obj.TypeH == nil { - obj.obj.TypeH = NewBgpSrteSegmentHTypeSubTlv().msg() +// Optional community settings. +// Communities returns a []BgpCommunity +func (obj *bgpCMacIpRange) Communities() BgpCMacIpRangeBgpCommunityIter { + if len(obj.obj.Communities) == 0 { + obj.obj.Communities = []*otg.BgpCommunity{} } - if obj.typeHHolder == nil { - obj.typeHHolder = &bgpSrteSegmentHTypeSubTlv{obj: obj.obj.TypeH} + if obj.communitiesHolder == nil { + obj.communitiesHolder = newBgpCMacIpRangeBgpCommunityIter(&obj.obj.Communities).setMsg(obj) } - return obj.typeHHolder + return obj.communitiesHolder } -// description is TBD -// TypeH returns a BgpSrteSegmentHTypeSubTlv -func (obj *bgpSrteSegment) HasTypeH() bool { - return obj.obj.TypeH != nil +type bgpCMacIpRangeBgpCommunityIter struct { + obj *bgpCMacIpRange + bgpCommunitySlice []BgpCommunity + fieldPtr *[]*otg.BgpCommunity } -// description is TBD -// SetTypeH sets the BgpSrteSegmentHTypeSubTlv value in the BgpSrteSegment object -func (obj *bgpSrteSegment) SetTypeH(value BgpSrteSegmentHTypeSubTlv) BgpSrteSegment { +func newBgpCMacIpRangeBgpCommunityIter(ptr *[]*otg.BgpCommunity) BgpCMacIpRangeBgpCommunityIter { + return &bgpCMacIpRangeBgpCommunityIter{fieldPtr: ptr} +} - obj.typeHHolder = nil - obj.obj.TypeH = value.msg() +type BgpCMacIpRangeBgpCommunityIter interface { + setMsg(*bgpCMacIpRange) BgpCMacIpRangeBgpCommunityIter + Items() []BgpCommunity + Add() BgpCommunity + Append(items ...BgpCommunity) BgpCMacIpRangeBgpCommunityIter + Set(index int, newObj BgpCommunity) BgpCMacIpRangeBgpCommunityIter + Clear() BgpCMacIpRangeBgpCommunityIter + clearHolderSlice() BgpCMacIpRangeBgpCommunityIter + appendHolderSlice(item BgpCommunity) BgpCMacIpRangeBgpCommunityIter +} +func (obj *bgpCMacIpRangeBgpCommunityIter) setMsg(msg *bgpCMacIpRange) BgpCMacIpRangeBgpCommunityIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&bgpCommunity{obj: val}) + } + obj.obj = msg return obj } -// description is TBD -// TypeI returns a BgpSrteSegmentITypeSubTlv -func (obj *bgpSrteSegment) TypeI() BgpSrteSegmentITypeSubTlv { - if obj.obj.TypeI == nil { - obj.obj.TypeI = NewBgpSrteSegmentITypeSubTlv().msg() +func (obj *bgpCMacIpRangeBgpCommunityIter) Items() []BgpCommunity { + return obj.bgpCommunitySlice +} + +func (obj *bgpCMacIpRangeBgpCommunityIter) Add() BgpCommunity { + newObj := &otg.BgpCommunity{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &bgpCommunity{obj: newObj} + newLibObj.setDefault() + obj.bgpCommunitySlice = append(obj.bgpCommunitySlice, newLibObj) + return newLibObj +} + +func (obj *bgpCMacIpRangeBgpCommunityIter) Append(items ...BgpCommunity) BgpCMacIpRangeBgpCommunityIter { + for _, item := range items { + newObj := item.msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.bgpCommunitySlice = append(obj.bgpCommunitySlice, item) } - if obj.typeIHolder == nil { - obj.typeIHolder = &bgpSrteSegmentITypeSubTlv{obj: obj.obj.TypeI} + return obj +} + +func (obj *bgpCMacIpRangeBgpCommunityIter) Set(index int, newObj BgpCommunity) BgpCMacIpRangeBgpCommunityIter { + (*obj.fieldPtr)[index] = newObj.msg() + obj.bgpCommunitySlice[index] = newObj + return obj +} +func (obj *bgpCMacIpRangeBgpCommunityIter) Clear() BgpCMacIpRangeBgpCommunityIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.BgpCommunity{} + obj.bgpCommunitySlice = []BgpCommunity{} } - return obj.typeIHolder + return obj +} +func (obj *bgpCMacIpRangeBgpCommunityIter) clearHolderSlice() BgpCMacIpRangeBgpCommunityIter { + if len(obj.bgpCommunitySlice) > 0 { + obj.bgpCommunitySlice = []BgpCommunity{} + } + return obj +} +func (obj *bgpCMacIpRangeBgpCommunityIter) appendHolderSlice(item BgpCommunity) BgpCMacIpRangeBgpCommunityIter { + obj.bgpCommunitySlice = append(obj.bgpCommunitySlice, item) + return obj } -// description is TBD -// TypeI returns a BgpSrteSegmentITypeSubTlv -func (obj *bgpSrteSegment) HasTypeI() bool { - return obj.obj.TypeI != nil +// Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two byte local administrator id. When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for administrator_ipv4_address is a four byte IPv4 address followed by a two byte local administrator id. When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from IANA's "ETHER TYPES" registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format. When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates occur for the same MAC address. +// ExtCommunities returns a []BgpExtCommunity +func (obj *bgpCMacIpRange) ExtCommunities() BgpCMacIpRangeBgpExtCommunityIter { + if len(obj.obj.ExtCommunities) == 0 { + obj.obj.ExtCommunities = []*otg.BgpExtCommunity{} + } + if obj.extCommunitiesHolder == nil { + obj.extCommunitiesHolder = newBgpCMacIpRangeBgpExtCommunityIter(&obj.obj.ExtCommunities).setMsg(obj) + } + return obj.extCommunitiesHolder } -// description is TBD -// SetTypeI sets the BgpSrteSegmentITypeSubTlv value in the BgpSrteSegment object -func (obj *bgpSrteSegment) SetTypeI(value BgpSrteSegmentITypeSubTlv) BgpSrteSegment { +type bgpCMacIpRangeBgpExtCommunityIter struct { + obj *bgpCMacIpRange + bgpExtCommunitySlice []BgpExtCommunity + fieldPtr *[]*otg.BgpExtCommunity +} - obj.typeIHolder = nil - obj.obj.TypeI = value.msg() +func newBgpCMacIpRangeBgpExtCommunityIter(ptr *[]*otg.BgpExtCommunity) BgpCMacIpRangeBgpExtCommunityIter { + return &bgpCMacIpRangeBgpExtCommunityIter{fieldPtr: ptr} +} - return obj +type BgpCMacIpRangeBgpExtCommunityIter interface { + setMsg(*bgpCMacIpRange) BgpCMacIpRangeBgpExtCommunityIter + Items() []BgpExtCommunity + Add() BgpExtCommunity + Append(items ...BgpExtCommunity) BgpCMacIpRangeBgpExtCommunityIter + Set(index int, newObj BgpExtCommunity) BgpCMacIpRangeBgpExtCommunityIter + Clear() BgpCMacIpRangeBgpExtCommunityIter + clearHolderSlice() BgpCMacIpRangeBgpExtCommunityIter + appendHolderSlice(item BgpExtCommunity) BgpCMacIpRangeBgpExtCommunityIter } -// description is TBD -// TypeJ returns a BgpSrteSegmentJTypeSubTlv -func (obj *bgpSrteSegment) TypeJ() BgpSrteSegmentJTypeSubTlv { - if obj.obj.TypeJ == nil { - obj.obj.TypeJ = NewBgpSrteSegmentJTypeSubTlv().msg() - } - if obj.typeJHolder == nil { - obj.typeJHolder = &bgpSrteSegmentJTypeSubTlv{obj: obj.obj.TypeJ} +func (obj *bgpCMacIpRangeBgpExtCommunityIter) setMsg(msg *bgpCMacIpRange) BgpCMacIpRangeBgpExtCommunityIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&bgpExtCommunity{obj: val}) } - return obj.typeJHolder + obj.obj = msg + return obj } -// description is TBD -// TypeJ returns a BgpSrteSegmentJTypeSubTlv -func (obj *bgpSrteSegment) HasTypeJ() bool { - return obj.obj.TypeJ != nil +func (obj *bgpCMacIpRangeBgpExtCommunityIter) Items() []BgpExtCommunity { + return obj.bgpExtCommunitySlice } -// description is TBD -// SetTypeJ sets the BgpSrteSegmentJTypeSubTlv value in the BgpSrteSegment object -func (obj *bgpSrteSegment) SetTypeJ(value BgpSrteSegmentJTypeSubTlv) BgpSrteSegment { +func (obj *bgpCMacIpRangeBgpExtCommunityIter) Add() BgpExtCommunity { + newObj := &otg.BgpExtCommunity{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &bgpExtCommunity{obj: newObj} + newLibObj.setDefault() + obj.bgpExtCommunitySlice = append(obj.bgpExtCommunitySlice, newLibObj) + return newLibObj +} - obj.typeJHolder = nil - obj.obj.TypeJ = value.msg() +func (obj *bgpCMacIpRangeBgpExtCommunityIter) Append(items ...BgpExtCommunity) BgpCMacIpRangeBgpExtCommunityIter { + for _, item := range items { + newObj := item.msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.bgpExtCommunitySlice = append(obj.bgpExtCommunitySlice, item) + } + return obj +} +func (obj *bgpCMacIpRangeBgpExtCommunityIter) Set(index int, newObj BgpExtCommunity) BgpCMacIpRangeBgpExtCommunityIter { + (*obj.fieldPtr)[index] = newObj.msg() + obj.bgpExtCommunitySlice[index] = newObj + return obj +} +func (obj *bgpCMacIpRangeBgpExtCommunityIter) Clear() BgpCMacIpRangeBgpExtCommunityIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.BgpExtCommunity{} + obj.bgpExtCommunitySlice = []BgpExtCommunity{} + } + return obj +} +func (obj *bgpCMacIpRangeBgpExtCommunityIter) clearHolderSlice() BgpCMacIpRangeBgpExtCommunityIter { + if len(obj.bgpExtCommunitySlice) > 0 { + obj.bgpExtCommunitySlice = []BgpExtCommunity{} + } + return obj +} +func (obj *bgpCMacIpRangeBgpExtCommunityIter) appendHolderSlice(item BgpExtCommunity) BgpCMacIpRangeBgpExtCommunityIter { + obj.bgpExtCommunitySlice = append(obj.bgpExtCommunitySlice, item) return obj } -// description is TBD -// TypeK returns a BgpSrteSegmentKTypeSubTlv -func (obj *bgpSrteSegment) TypeK() BgpSrteSegmentKTypeSubTlv { - if obj.obj.TypeK == nil { - obj.obj.TypeK = NewBgpSrteSegmentKTypeSubTlv().msg() +// Optional AS PATH settings. +// AsPath returns a BgpAsPath +func (obj *bgpCMacIpRange) AsPath() BgpAsPath { + if obj.obj.AsPath == nil { + obj.obj.AsPath = NewBgpAsPath().msg() } - if obj.typeKHolder == nil { - obj.typeKHolder = &bgpSrteSegmentKTypeSubTlv{obj: obj.obj.TypeK} + if obj.asPathHolder == nil { + obj.asPathHolder = &bgpAsPath{obj: obj.obj.AsPath} } - return obj.typeKHolder + return obj.asPathHolder } -// description is TBD -// TypeK returns a BgpSrteSegmentKTypeSubTlv -func (obj *bgpSrteSegment) HasTypeK() bool { - return obj.obj.TypeK != nil +// Optional AS PATH settings. +// AsPath returns a BgpAsPath +func (obj *bgpCMacIpRange) HasAsPath() bool { + return obj.obj.AsPath != nil } -// description is TBD -// SetTypeK sets the BgpSrteSegmentKTypeSubTlv value in the BgpSrteSegment object -func (obj *bgpSrteSegment) SetTypeK(value BgpSrteSegmentKTypeSubTlv) BgpSrteSegment { +// Optional AS PATH settings. +// SetAsPath sets the BgpAsPath value in the BgpCMacIpRange object +func (obj *bgpCMacIpRange) SetAsPath(value BgpAsPath) BgpCMacIpRange { - obj.typeKHolder = nil - obj.obj.TypeK = value.msg() + obj.asPathHolder = nil + obj.obj.AsPath = value.msg() return obj } // Globally unique name of an object. It also serves as the primary key for arrays of objects. // Name returns a string -func (obj *bgpSrteSegment) Name() string { +func (obj *bgpCMacIpRange) Name() string { return *obj.obj.Name } // Globally unique name of an object. It also serves as the primary key for arrays of objects. -// SetName sets the string value in the BgpSrteSegment object -func (obj *bgpSrteSegment) SetName(value string) BgpSrteSegment { +// SetName sets the string value in the BgpCMacIpRange object +func (obj *bgpCMacIpRange) SetName(value string) BgpCMacIpRange { obj.obj.Name = &value return obj } -// If enabled means that this part of the configuration including any active 'children' nodes will be advertised to peer. If disabled, this means that though config is present, it is not taking any part of the test but can be activated at run-time to advertise just this part of the configuration to the peer. -// Active returns a bool -func (obj *bgpSrteSegment) Active() bool { - - return *obj.obj.Active - -} - -// If enabled means that this part of the configuration including any active 'children' nodes will be advertised to peer. If disabled, this means that though config is present, it is not taking any part of the test but can be activated at run-time to advertise just this part of the configuration to the peer. -// Active returns a bool -func (obj *bgpSrteSegment) HasActive() bool { - return obj.obj.Active != nil -} - -// If enabled means that this part of the configuration including any active 'children' nodes will be advertised to peer. If disabled, this means that though config is present, it is not taking any part of the test but can be activated at run-time to advertise just this part of the configuration to the peer. -// SetActive sets the bool value in the BgpSrteSegment object -func (obj *bgpSrteSegment) SetActive(value bool) BgpSrteSegment { - - obj.obj.Active = &value - return obj -} - -func (obj *bgpSrteSegment) validateObj(vObj *validation, set_default bool) { +func (obj *bgpCMacIpRange) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - // SegmentType is required - if obj.obj.SegmentType == nil { - vObj.validationErrors = append(vObj.validationErrors, "SegmentType is required field on interface BgpSrteSegment") - } - - if obj.obj.TypeA != nil { + if obj.obj.MacAddresses != nil { - obj.TypeA().validateObj(vObj, set_default) + obj.MacAddresses().validateObj(vObj, set_default) } - if obj.obj.TypeB != nil { - - obj.TypeB().validateObj(vObj, set_default) - } + if obj.obj.L2Vni != nil { - if obj.obj.TypeC != nil { + if *obj.obj.L2Vni > 16777215 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= BgpCMacIpRange.L2Vni <= 16777215 but Got %d", *obj.obj.L2Vni)) + } - obj.TypeC().validateObj(vObj, set_default) } - if obj.obj.TypeD != nil { + if obj.obj.Ipv4Addresses != nil { - obj.TypeD().validateObj(vObj, set_default) + obj.Ipv4Addresses().validateObj(vObj, set_default) } - if obj.obj.TypeE != nil { + if obj.obj.Ipv6Addresses != nil { - obj.TypeE().validateObj(vObj, set_default) + obj.Ipv6Addresses().validateObj(vObj, set_default) } - if obj.obj.TypeF != nil { - - obj.TypeF().validateObj(vObj, set_default) - } + if obj.obj.L3Vni != nil { - if obj.obj.TypeG != nil { + if *obj.obj.L3Vni > 16777215 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= BgpCMacIpRange.L3Vni <= 16777215 but Got %d", *obj.obj.L3Vni)) + } - obj.TypeG().validateObj(vObj, set_default) } - if obj.obj.TypeH != nil { + if obj.obj.Advanced != nil { - obj.TypeH().validateObj(vObj, set_default) + obj.Advanced().validateObj(vObj, set_default) } - if obj.obj.TypeI != nil { + if len(obj.obj.Communities) != 0 { + + if set_default { + obj.Communities().clearHolderSlice() + for _, item := range obj.obj.Communities { + obj.Communities().appendHolderSlice(&bgpCommunity{obj: item}) + } + } + for _, item := range obj.Communities().Items() { + item.validateObj(vObj, set_default) + } - obj.TypeI().validateObj(vObj, set_default) } - if obj.obj.TypeJ != nil { + if len(obj.obj.ExtCommunities) != 0 { + + if set_default { + obj.ExtCommunities().clearHolderSlice() + for _, item := range obj.obj.ExtCommunities { + obj.ExtCommunities().appendHolderSlice(&bgpExtCommunity{obj: item}) + } + } + for _, item := range obj.ExtCommunities().Items() { + item.validateObj(vObj, set_default) + } - obj.TypeJ().validateObj(vObj, set_default) } - if obj.obj.TypeK != nil { + if obj.obj.AsPath != nil { - obj.TypeK().validateObj(vObj, set_default) + obj.AsPath().validateObj(vObj, set_default) } // Name is required if obj.obj.Name == nil { - vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface BgpSrteSegment") + vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface BgpCMacIpRange") } } -func (obj *bgpSrteSegment) setDefault() { - if obj.obj.Active == nil { - obj.SetActive(true) +func (obj *bgpCMacIpRange) setDefault() { + if obj.obj.L2Vni == nil { + obj.SetL2Vni(0) + } + if obj.obj.L3Vni == nil { + obj.SetL3Vni(0) + } + if obj.obj.IncludeDefaultGateway == nil { + obj.SetIncludeDefaultGateway(false) } } -// ***** BgpV6EviVxlanBroadcastDomain ***** -type bgpV6EviVxlanBroadcastDomain struct { +// ***** BgpSrteSegmentATypeSubTlv ***** +type bgpSrteSegmentATypeSubTlv struct { validation - obj *otg.BgpV6EviVxlanBroadcastDomain - marshaller marshalBgpV6EviVxlanBroadcastDomain - unMarshaller unMarshalBgpV6EviVxlanBroadcastDomain - cmacIpRangeHolder BgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter + obj *otg.BgpSrteSegmentATypeSubTlv + marshaller marshalBgpSrteSegmentATypeSubTlv + unMarshaller unMarshalBgpSrteSegmentATypeSubTlv } -func NewBgpV6EviVxlanBroadcastDomain() BgpV6EviVxlanBroadcastDomain { - obj := bgpV6EviVxlanBroadcastDomain{obj: &otg.BgpV6EviVxlanBroadcastDomain{}} +func NewBgpSrteSegmentATypeSubTlv() BgpSrteSegmentATypeSubTlv { + obj := bgpSrteSegmentATypeSubTlv{obj: &otg.BgpSrteSegmentATypeSubTlv{}} obj.setDefault() return &obj } -func (obj *bgpV6EviVxlanBroadcastDomain) msg() *otg.BgpV6EviVxlanBroadcastDomain { +func (obj *bgpSrteSegmentATypeSubTlv) msg() *otg.BgpSrteSegmentATypeSubTlv { return obj.obj } -func (obj *bgpV6EviVxlanBroadcastDomain) setMsg(msg *otg.BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBroadcastDomain { - obj.setNil() +func (obj *bgpSrteSegmentATypeSubTlv) setMsg(msg *otg.BgpSrteSegmentATypeSubTlv) BgpSrteSegmentATypeSubTlv { + proto.Merge(obj.obj, msg) return obj } -type marshalbgpV6EviVxlanBroadcastDomain struct { - obj *bgpV6EviVxlanBroadcastDomain +type marshalbgpSrteSegmentATypeSubTlv struct { + obj *bgpSrteSegmentATypeSubTlv } -type marshalBgpV6EviVxlanBroadcastDomain interface { - // ToProto marshals BgpV6EviVxlanBroadcastDomain to protobuf object *otg.BgpV6EviVxlanBroadcastDomain - ToProto() (*otg.BgpV6EviVxlanBroadcastDomain, error) - // ToPbText marshals BgpV6EviVxlanBroadcastDomain to protobuf text +type marshalBgpSrteSegmentATypeSubTlv interface { + // ToProto marshals BgpSrteSegmentATypeSubTlv to protobuf object *otg.BgpSrteSegmentATypeSubTlv + ToProto() (*otg.BgpSrteSegmentATypeSubTlv, error) + // ToPbText marshals BgpSrteSegmentATypeSubTlv to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpV6EviVxlanBroadcastDomain to YAML text + // ToYaml marshals BgpSrteSegmentATypeSubTlv to YAML text ToYaml() (string, error) - // ToJson marshals BgpV6EviVxlanBroadcastDomain to JSON text + // ToJson marshals BgpSrteSegmentATypeSubTlv to JSON text ToJson() (string, error) } -type unMarshalbgpV6EviVxlanBroadcastDomain struct { - obj *bgpV6EviVxlanBroadcastDomain +type unMarshalbgpSrteSegmentATypeSubTlv struct { + obj *bgpSrteSegmentATypeSubTlv } -type unMarshalBgpV6EviVxlanBroadcastDomain interface { - // FromProto unmarshals BgpV6EviVxlanBroadcastDomain from protobuf object *otg.BgpV6EviVxlanBroadcastDomain - FromProto(msg *otg.BgpV6EviVxlanBroadcastDomain) (BgpV6EviVxlanBroadcastDomain, error) - // FromPbText unmarshals BgpV6EviVxlanBroadcastDomain from protobuf text +type unMarshalBgpSrteSegmentATypeSubTlv interface { + // FromProto unmarshals BgpSrteSegmentATypeSubTlv from protobuf object *otg.BgpSrteSegmentATypeSubTlv + FromProto(msg *otg.BgpSrteSegmentATypeSubTlv) (BgpSrteSegmentATypeSubTlv, error) + // FromPbText unmarshals BgpSrteSegmentATypeSubTlv from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpV6EviVxlanBroadcastDomain from YAML text + // FromYaml unmarshals BgpSrteSegmentATypeSubTlv from YAML text FromYaml(value string) error - // FromJson unmarshals BgpV6EviVxlanBroadcastDomain from JSON text + // FromJson unmarshals BgpSrteSegmentATypeSubTlv from JSON text FromJson(value string) error } -func (obj *bgpV6EviVxlanBroadcastDomain) Marshal() marshalBgpV6EviVxlanBroadcastDomain { +func (obj *bgpSrteSegmentATypeSubTlv) Marshal() marshalBgpSrteSegmentATypeSubTlv { if obj.marshaller == nil { - obj.marshaller = &marshalbgpV6EviVxlanBroadcastDomain{obj: obj} + obj.marshaller = &marshalbgpSrteSegmentATypeSubTlv{obj: obj} } return obj.marshaller } -func (obj *bgpV6EviVxlanBroadcastDomain) Unmarshal() unMarshalBgpV6EviVxlanBroadcastDomain { +func (obj *bgpSrteSegmentATypeSubTlv) Unmarshal() unMarshalBgpSrteSegmentATypeSubTlv { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpV6EviVxlanBroadcastDomain{obj: obj} + obj.unMarshaller = &unMarshalbgpSrteSegmentATypeSubTlv{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpV6EviVxlanBroadcastDomain) ToProto() (*otg.BgpV6EviVxlanBroadcastDomain, error) { +func (m *marshalbgpSrteSegmentATypeSubTlv) ToProto() (*otg.BgpSrteSegmentATypeSubTlv, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -344119,7 +357559,7 @@ func (m *marshalbgpV6EviVxlanBroadcastDomain) ToProto() (*otg.BgpV6EviVxlanBroad return m.obj.msg(), nil } -func (m *unMarshalbgpV6EviVxlanBroadcastDomain) FromProto(msg *otg.BgpV6EviVxlanBroadcastDomain) (BgpV6EviVxlanBroadcastDomain, error) { +func (m *unMarshalbgpSrteSegmentATypeSubTlv) FromProto(msg *otg.BgpSrteSegmentATypeSubTlv) (BgpSrteSegmentATypeSubTlv, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -344128,7 +357568,7 @@ func (m *unMarshalbgpV6EviVxlanBroadcastDomain) FromProto(msg *otg.BgpV6EviVxlan return newObj, nil } -func (m *marshalbgpV6EviVxlanBroadcastDomain) ToPbText() (string, error) { +func (m *marshalbgpSrteSegmentATypeSubTlv) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -344140,12 +357580,12 @@ func (m *marshalbgpV6EviVxlanBroadcastDomain) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalbgpV6EviVxlanBroadcastDomain) FromPbText(value string) error { +func (m *unMarshalbgpSrteSegmentATypeSubTlv) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - m.obj.setNil() + vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -344153,7 +357593,7 @@ func (m *unMarshalbgpV6EviVxlanBroadcastDomain) FromPbText(value string) error { return retObj } -func (m *marshalbgpV6EviVxlanBroadcastDomain) ToYaml() (string, error) { +func (m *marshalbgpSrteSegmentATypeSubTlv) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -344174,7 +357614,7 @@ func (m *marshalbgpV6EviVxlanBroadcastDomain) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalbgpV6EviVxlanBroadcastDomain) FromYaml(value string) error { +func (m *unMarshalbgpSrteSegmentATypeSubTlv) FromYaml(value string) error { if value == "" { value = "{}" } @@ -344191,7 +357631,7 @@ func (m *unMarshalbgpV6EviVxlanBroadcastDomain) FromYaml(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - m.obj.setNil() + vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -344199,7 +357639,7 @@ func (m *unMarshalbgpV6EviVxlanBroadcastDomain) FromYaml(value string) error { return nil } -func (m *marshalbgpV6EviVxlanBroadcastDomain) ToJson() (string, error) { +func (m *marshalbgpSrteSegmentATypeSubTlv) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -344217,7 +357657,7 @@ func (m *marshalbgpV6EviVxlanBroadcastDomain) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalbgpV6EviVxlanBroadcastDomain) FromJson(value string) error { +func (m *unMarshalbgpSrteSegmentATypeSubTlv) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -344230,7 +357670,7 @@ func (m *unMarshalbgpV6EviVxlanBroadcastDomain) FromJson(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - m.obj.setNil() + err := m.obj.validateToAndFrom() if err != nil { return err @@ -344238,19 +357678,19 @@ func (m *unMarshalbgpV6EviVxlanBroadcastDomain) FromJson(value string) error { return nil } -func (obj *bgpV6EviVxlanBroadcastDomain) validateToAndFrom() error { +func (obj *bgpSrteSegmentATypeSubTlv) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpV6EviVxlanBroadcastDomain) validate() error { +func (obj *bgpSrteSegmentATypeSubTlv) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpV6EviVxlanBroadcastDomain) String() string { +func (obj *bgpSrteSegmentATypeSubTlv) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -344258,12 +357698,12 @@ func (obj *bgpV6EviVxlanBroadcastDomain) String() string { return str } -func (obj *bgpV6EviVxlanBroadcastDomain) Clone() (BgpV6EviVxlanBroadcastDomain, error) { +func (obj *bgpSrteSegmentATypeSubTlv) Clone() (BgpSrteSegmentATypeSubTlv, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpV6EviVxlanBroadcastDomain() + newObj := NewBgpSrteSegmentATypeSubTlv() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -344275,286 +357715,290 @@ func (obj *bgpV6EviVxlanBroadcastDomain) Clone() (BgpV6EviVxlanBroadcastDomain, return newObj, nil } -func (obj *bgpV6EviVxlanBroadcastDomain) setNil() { - obj.cmacIpRangeHolder = nil - obj.validationErrors = nil - obj.warnings = nil - obj.constraints = make(map[string]map[string]Constraints) -} - -// BgpV6EviVxlanBroadcastDomain is configuration for Broadcast Domains per EVI. -type BgpV6EviVxlanBroadcastDomain interface { +// BgpSrteSegmentATypeSubTlv is type A: SID only, in the form of MPLS Label. +type BgpSrteSegmentATypeSubTlv interface { Validation - // msg marshals BgpV6EviVxlanBroadcastDomain to protobuf object *otg.BgpV6EviVxlanBroadcastDomain + // msg marshals BgpSrteSegmentATypeSubTlv to protobuf object *otg.BgpSrteSegmentATypeSubTlv // and doesn't set defaults - msg() *otg.BgpV6EviVxlanBroadcastDomain - // setMsg unmarshals BgpV6EviVxlanBroadcastDomain from protobuf object *otg.BgpV6EviVxlanBroadcastDomain + msg() *otg.BgpSrteSegmentATypeSubTlv + // setMsg unmarshals BgpSrteSegmentATypeSubTlv from protobuf object *otg.BgpSrteSegmentATypeSubTlv // and doesn't set defaults - setMsg(*otg.BgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBroadcastDomain + setMsg(*otg.BgpSrteSegmentATypeSubTlv) BgpSrteSegmentATypeSubTlv // provides marshal interface - Marshal() marshalBgpV6EviVxlanBroadcastDomain + Marshal() marshalBgpSrteSegmentATypeSubTlv // provides unmarshal interface - Unmarshal() unMarshalBgpV6EviVxlanBroadcastDomain - // validate validates BgpV6EviVxlanBroadcastDomain + Unmarshal() unMarshalBgpSrteSegmentATypeSubTlv + // validate validates BgpSrteSegmentATypeSubTlv validate() error // A stringer function String() string // Clones the object - Clone() (BgpV6EviVxlanBroadcastDomain, error) + Clone() (BgpSrteSegmentATypeSubTlv, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // CmacIpRange returns BgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIterIter, set in BgpV6EviVxlanBroadcastDomain - CmacIpRange() BgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter - // EthernetTagId returns uint32, set in BgpV6EviVxlanBroadcastDomain. - EthernetTagId() uint32 - // SetEthernetTagId assigns uint32 provided by user to BgpV6EviVxlanBroadcastDomain - SetEthernetTagId(value uint32) BgpV6EviVxlanBroadcastDomain - // HasEthernetTagId checks if EthernetTagId has been set in BgpV6EviVxlanBroadcastDomain - HasEthernetTagId() bool - // VlanAwareService returns bool, set in BgpV6EviVxlanBroadcastDomain. - VlanAwareService() bool - // SetVlanAwareService assigns bool provided by user to BgpV6EviVxlanBroadcastDomain - SetVlanAwareService(value bool) BgpV6EviVxlanBroadcastDomain - // HasVlanAwareService checks if VlanAwareService has been set in BgpV6EviVxlanBroadcastDomain - HasVlanAwareService() bool - setNil() + // Flags returns string, set in BgpSrteSegmentATypeSubTlv. + Flags() string + // SetFlags assigns string provided by user to BgpSrteSegmentATypeSubTlv + SetFlags(value string) BgpSrteSegmentATypeSubTlv + // HasFlags checks if Flags has been set in BgpSrteSegmentATypeSubTlv + HasFlags() bool + // Label returns uint32, set in BgpSrteSegmentATypeSubTlv. + Label() uint32 + // SetLabel assigns uint32 provided by user to BgpSrteSegmentATypeSubTlv + SetLabel(value uint32) BgpSrteSegmentATypeSubTlv + // HasLabel checks if Label has been set in BgpSrteSegmentATypeSubTlv + HasLabel() bool + // Tc returns uint32, set in BgpSrteSegmentATypeSubTlv. + Tc() uint32 + // SetTc assigns uint32 provided by user to BgpSrteSegmentATypeSubTlv + SetTc(value uint32) BgpSrteSegmentATypeSubTlv + // HasTc checks if Tc has been set in BgpSrteSegmentATypeSubTlv + HasTc() bool + // SBit returns bool, set in BgpSrteSegmentATypeSubTlv. + SBit() bool + // SetSBit assigns bool provided by user to BgpSrteSegmentATypeSubTlv + SetSBit(value bool) BgpSrteSegmentATypeSubTlv + // HasSBit checks if SBit has been set in BgpSrteSegmentATypeSubTlv + HasSBit() bool + // Ttl returns uint32, set in BgpSrteSegmentATypeSubTlv. + Ttl() uint32 + // SetTtl assigns uint32 provided by user to BgpSrteSegmentATypeSubTlv + SetTtl(value uint32) BgpSrteSegmentATypeSubTlv + // HasTtl checks if Ttl has been set in BgpSrteSegmentATypeSubTlv + HasTtl() bool } -// This contains the list of Customer MAC/IP Ranges to be configured per Broadcast Domain. -// -// Advertises following route - -// Type 2 - MAC/IP Advertisement Route. -// CmacIpRange returns a []BgpCMacIpRange -func (obj *bgpV6EviVxlanBroadcastDomain) CmacIpRange() BgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter { - if len(obj.obj.CmacIpRange) == 0 { - obj.obj.CmacIpRange = []*otg.BgpCMacIpRange{} - } - if obj.cmacIpRangeHolder == nil { - obj.cmacIpRangeHolder = newBgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter(&obj.obj.CmacIpRange).setMsg(obj) - } - return obj.cmacIpRangeHolder -} +// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 +// Flags returns a string +func (obj *bgpSrteSegmentATypeSubTlv) Flags() string { -type bgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter struct { - obj *bgpV6EviVxlanBroadcastDomain - bgpCMacIpRangeSlice []BgpCMacIpRange - fieldPtr *[]*otg.BgpCMacIpRange -} + return *obj.obj.Flags -func newBgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter(ptr *[]*otg.BgpCMacIpRange) BgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter { - return &bgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter{fieldPtr: ptr} } -type BgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter interface { - setMsg(*bgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter - Items() []BgpCMacIpRange - Add() BgpCMacIpRange - Append(items ...BgpCMacIpRange) BgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter - Set(index int, newObj BgpCMacIpRange) BgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter - Clear() BgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter - clearHolderSlice() BgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter - appendHolderSlice(item BgpCMacIpRange) BgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter +// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 +// Flags returns a string +func (obj *bgpSrteSegmentATypeSubTlv) HasFlags() bool { + return obj.obj.Flags != nil } -func (obj *bgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter) setMsg(msg *bgpV6EviVxlanBroadcastDomain) BgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter { - obj.clearHolderSlice() - for _, val := range *obj.fieldPtr { - obj.appendHolderSlice(&bgpCMacIpRange{obj: val}) - } - obj.obj = msg +// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 +// SetFlags sets the string value in the BgpSrteSegmentATypeSubTlv object +func (obj *bgpSrteSegmentATypeSubTlv) SetFlags(value string) BgpSrteSegmentATypeSubTlv { + + obj.obj.Flags = &value return obj } -func (obj *bgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter) Items() []BgpCMacIpRange { - return obj.bgpCMacIpRangeSlice -} +// Label value in [0, 2^20 -1]. +// Label returns a uint32 +func (obj *bgpSrteSegmentATypeSubTlv) Label() uint32 { + + return *obj.obj.Label -func (obj *bgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter) Add() BgpCMacIpRange { - newObj := &otg.BgpCMacIpRange{} - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - newLibObj := &bgpCMacIpRange{obj: newObj} - newLibObj.setDefault() - obj.bgpCMacIpRangeSlice = append(obj.bgpCMacIpRangeSlice, newLibObj) - return newLibObj } -func (obj *bgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter) Append(items ...BgpCMacIpRange) BgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter { - for _, item := range items { - newObj := item.msg() - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - obj.bgpCMacIpRangeSlice = append(obj.bgpCMacIpRangeSlice, item) - } - return obj +// Label value in [0, 2^20 -1]. +// Label returns a uint32 +func (obj *bgpSrteSegmentATypeSubTlv) HasLabel() bool { + return obj.obj.Label != nil } -func (obj *bgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter) Set(index int, newObj BgpCMacIpRange) BgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter { - (*obj.fieldPtr)[index] = newObj.msg() - obj.bgpCMacIpRangeSlice[index] = newObj +// Label value in [0, 2^20 -1]. +// SetLabel sets the uint32 value in the BgpSrteSegmentATypeSubTlv object +func (obj *bgpSrteSegmentATypeSubTlv) SetLabel(value uint32) BgpSrteSegmentATypeSubTlv { + + obj.obj.Label = &value return obj } -func (obj *bgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter) Clear() BgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter { - if len(*obj.fieldPtr) > 0 { - *obj.fieldPtr = []*otg.BgpCMacIpRange{} - obj.bgpCMacIpRangeSlice = []BgpCMacIpRange{} - } - return obj + +// Traffic class in bits. +// Tc returns a uint32 +func (obj *bgpSrteSegmentATypeSubTlv) Tc() uint32 { + + return *obj.obj.Tc + } -func (obj *bgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter) clearHolderSlice() BgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter { - if len(obj.bgpCMacIpRangeSlice) > 0 { - obj.bgpCMacIpRangeSlice = []BgpCMacIpRange{} - } - return obj + +// Traffic class in bits. +// Tc returns a uint32 +func (obj *bgpSrteSegmentATypeSubTlv) HasTc() bool { + return obj.obj.Tc != nil } -func (obj *bgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter) appendHolderSlice(item BgpCMacIpRange) BgpV6EviVxlanBroadcastDomainBgpCMacIpRangeIter { - obj.bgpCMacIpRangeSlice = append(obj.bgpCMacIpRangeSlice, item) + +// Traffic class in bits. +// SetTc sets the uint32 value in the BgpSrteSegmentATypeSubTlv object +func (obj *bgpSrteSegmentATypeSubTlv) SetTc(value uint32) BgpSrteSegmentATypeSubTlv { + + obj.obj.Tc = &value return obj } -// The Ethernet Tag ID of the Broadcast Domain. -// EthernetTagId returns a uint32 -func (obj *bgpV6EviVxlanBroadcastDomain) EthernetTagId() uint32 { +// Bottom-of-Stack bit. +// SBit returns a bool +func (obj *bgpSrteSegmentATypeSubTlv) SBit() bool { - return *obj.obj.EthernetTagId + return *obj.obj.SBit } -// The Ethernet Tag ID of the Broadcast Domain. -// EthernetTagId returns a uint32 -func (obj *bgpV6EviVxlanBroadcastDomain) HasEthernetTagId() bool { - return obj.obj.EthernetTagId != nil +// Bottom-of-Stack bit. +// SBit returns a bool +func (obj *bgpSrteSegmentATypeSubTlv) HasSBit() bool { + return obj.obj.SBit != nil } -// The Ethernet Tag ID of the Broadcast Domain. -// SetEthernetTagId sets the uint32 value in the BgpV6EviVxlanBroadcastDomain object -func (obj *bgpV6EviVxlanBroadcastDomain) SetEthernetTagId(value uint32) BgpV6EviVxlanBroadcastDomain { +// Bottom-of-Stack bit. +// SetSBit sets the bool value in the BgpSrteSegmentATypeSubTlv object +func (obj *bgpSrteSegmentATypeSubTlv) SetSBit(value bool) BgpSrteSegmentATypeSubTlv { - obj.obj.EthernetTagId = &value + obj.obj.SBit = &value return obj } -// VLAN-Aware service to be enabled or disabled. -// VlanAwareService returns a bool -func (obj *bgpV6EviVxlanBroadcastDomain) VlanAwareService() bool { +// Time To Live. +// Ttl returns a uint32 +func (obj *bgpSrteSegmentATypeSubTlv) Ttl() uint32 { - return *obj.obj.VlanAwareService + return *obj.obj.Ttl } -// VLAN-Aware service to be enabled or disabled. -// VlanAwareService returns a bool -func (obj *bgpV6EviVxlanBroadcastDomain) HasVlanAwareService() bool { - return obj.obj.VlanAwareService != nil +// Time To Live. +// Ttl returns a uint32 +func (obj *bgpSrteSegmentATypeSubTlv) HasTtl() bool { + return obj.obj.Ttl != nil } -// VLAN-Aware service to be enabled or disabled. -// SetVlanAwareService sets the bool value in the BgpV6EviVxlanBroadcastDomain object -func (obj *bgpV6EviVxlanBroadcastDomain) SetVlanAwareService(value bool) BgpV6EviVxlanBroadcastDomain { +// Time To Live. +// SetTtl sets the uint32 value in the BgpSrteSegmentATypeSubTlv object +func (obj *bgpSrteSegmentATypeSubTlv) SetTtl(value uint32) BgpSrteSegmentATypeSubTlv { - obj.obj.VlanAwareService = &value + obj.obj.Ttl = &value return obj } -func (obj *bgpV6EviVxlanBroadcastDomain) validateObj(vObj *validation, set_default bool) { +func (obj *bgpSrteSegmentATypeSubTlv) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if len(obj.obj.CmacIpRange) != 0 { + if obj.obj.Flags != nil { - if set_default { - obj.CmacIpRange().clearHolderSlice() - for _, item := range obj.obj.CmacIpRange { - obj.CmacIpRange().appendHolderSlice(&bgpCMacIpRange{obj: item}) - } + err := obj.validateHex(obj.Flags()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentATypeSubTlv.Flags")) } - for _, item := range obj.CmacIpRange().Items() { - item.validateObj(vObj, set_default) + + } + + if obj.obj.Label != nil { + + if *obj.obj.Label > 1048575 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= BgpSrteSegmentATypeSubTlv.Label <= 1048575 but Got %d", *obj.obj.Label)) } } -} + if obj.obj.Tc != nil { + + if *obj.obj.Tc > 7 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= BgpSrteSegmentATypeSubTlv.Tc <= 7 but Got %d", *obj.obj.Tc)) + } -func (obj *bgpV6EviVxlanBroadcastDomain) setDefault() { - if obj.obj.EthernetTagId == nil { - obj.SetEthernetTagId(0) } - if obj.obj.VlanAwareService == nil { - obj.SetVlanAwareService(false) + + if obj.obj.Ttl != nil { + + if *obj.obj.Ttl > 225 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= BgpSrteSegmentATypeSubTlv.Ttl <= 225 but Got %d", *obj.obj.Ttl)) + } + } } -// ***** PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter ***** -type patternFlowIpv4OptionsCustomTypeCopiedFlagCounter struct { +func (obj *bgpSrteSegmentATypeSubTlv) setDefault() { + +} + +// ***** BgpSrteSegmentBTypeSubTlv ***** +type bgpSrteSegmentBTypeSubTlv struct { validation - obj *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter - marshaller marshalPatternFlowIpv4OptionsCustomTypeCopiedFlagCounter - unMarshaller unMarshalPatternFlowIpv4OptionsCustomTypeCopiedFlagCounter + obj *otg.BgpSrteSegmentBTypeSubTlv + marshaller marshalBgpSrteSegmentBTypeSubTlv + unMarshaller unMarshalBgpSrteSegmentBTypeSubTlv + srv6SidEndpointBehaviorHolder BgpSrteSRv6SIDEndpointBehaviorAndStructure } -func NewPatternFlowIpv4OptionsCustomTypeCopiedFlagCounter() PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter { - obj := patternFlowIpv4OptionsCustomTypeCopiedFlagCounter{obj: &otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter{}} +func NewBgpSrteSegmentBTypeSubTlv() BgpSrteSegmentBTypeSubTlv { + obj := bgpSrteSegmentBTypeSubTlv{obj: &otg.BgpSrteSegmentBTypeSubTlv{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) msg() *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter { +func (obj *bgpSrteSegmentBTypeSubTlv) msg() *otg.BgpSrteSegmentBTypeSubTlv { return obj.obj } -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) setMsg(msg *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter { - +func (obj *bgpSrteSegmentBTypeSubTlv) setMsg(msg *otg.BgpSrteSegmentBTypeSubTlv) BgpSrteSegmentBTypeSubTlv { + obj.setNil() proto.Merge(obj.obj, msg) return obj } -type marshalpatternFlowIpv4OptionsCustomTypeCopiedFlagCounter struct { - obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter +type marshalbgpSrteSegmentBTypeSubTlv struct { + obj *bgpSrteSegmentBTypeSubTlv } -type marshalPatternFlowIpv4OptionsCustomTypeCopiedFlagCounter interface { - // ToProto marshals PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter to protobuf object *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter - ToProto() (*otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter, error) - // ToPbText marshals PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter to protobuf text +type marshalBgpSrteSegmentBTypeSubTlv interface { + // ToProto marshals BgpSrteSegmentBTypeSubTlv to protobuf object *otg.BgpSrteSegmentBTypeSubTlv + ToProto() (*otg.BgpSrteSegmentBTypeSubTlv, error) + // ToPbText marshals BgpSrteSegmentBTypeSubTlv to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter to YAML text + // ToYaml marshals BgpSrteSegmentBTypeSubTlv to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter to JSON text + // ToJson marshals BgpSrteSegmentBTypeSubTlv to JSON text ToJson() (string, error) } -type unMarshalpatternFlowIpv4OptionsCustomTypeCopiedFlagCounter struct { - obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter +type unMarshalbgpSrteSegmentBTypeSubTlv struct { + obj *bgpSrteSegmentBTypeSubTlv } -type unMarshalPatternFlowIpv4OptionsCustomTypeCopiedFlagCounter interface { - // FromProto unmarshals PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter from protobuf object *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter - FromProto(msg *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) (PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter, error) - // FromPbText unmarshals PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter from protobuf text +type unMarshalBgpSrteSegmentBTypeSubTlv interface { + // FromProto unmarshals BgpSrteSegmentBTypeSubTlv from protobuf object *otg.BgpSrteSegmentBTypeSubTlv + FromProto(msg *otg.BgpSrteSegmentBTypeSubTlv) (BgpSrteSegmentBTypeSubTlv, error) + // FromPbText unmarshals BgpSrteSegmentBTypeSubTlv from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter from YAML text + // FromYaml unmarshals BgpSrteSegmentBTypeSubTlv from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter from JSON text + // FromJson unmarshals BgpSrteSegmentBTypeSubTlv from JSON text FromJson(value string) error } -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) Marshal() marshalPatternFlowIpv4OptionsCustomTypeCopiedFlagCounter { +func (obj *bgpSrteSegmentBTypeSubTlv) Marshal() marshalBgpSrteSegmentBTypeSubTlv { if obj.marshaller == nil { - obj.marshaller = &marshalpatternFlowIpv4OptionsCustomTypeCopiedFlagCounter{obj: obj} + obj.marshaller = &marshalbgpSrteSegmentBTypeSubTlv{obj: obj} } return obj.marshaller } -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) Unmarshal() unMarshalPatternFlowIpv4OptionsCustomTypeCopiedFlagCounter { +func (obj *bgpSrteSegmentBTypeSubTlv) Unmarshal() unMarshalBgpSrteSegmentBTypeSubTlv { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalpatternFlowIpv4OptionsCustomTypeCopiedFlagCounter{obj: obj} + obj.unMarshaller = &unMarshalbgpSrteSegmentBTypeSubTlv{obj: obj} } return obj.unMarshaller } -func (m *marshalpatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) ToProto() (*otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter, error) { +func (m *marshalbgpSrteSegmentBTypeSubTlv) ToProto() (*otg.BgpSrteSegmentBTypeSubTlv, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -344562,7 +358006,7 @@ func (m *marshalpatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) ToProto() (*o return m.obj.msg(), nil } -func (m *unMarshalpatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) FromProto(msg *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) (PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter, error) { +func (m *unMarshalbgpSrteSegmentBTypeSubTlv) FromProto(msg *otg.BgpSrteSegmentBTypeSubTlv) (BgpSrteSegmentBTypeSubTlv, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -344571,7 +358015,7 @@ func (m *unMarshalpatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) FromProto(m return newObj, nil } -func (m *marshalpatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) ToPbText() (string, error) { +func (m *marshalbgpSrteSegmentBTypeSubTlv) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -344583,12 +358027,12 @@ func (m *marshalpatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) ToPbText() (s return string(protoMarshal), nil } -func (m *unMarshalpatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) FromPbText(value string) error { +func (m *unMarshalbgpSrteSegmentBTypeSubTlv) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -344596,7 +358040,7 @@ func (m *unMarshalpatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) FromPbText( return retObj } -func (m *marshalpatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) ToYaml() (string, error) { +func (m *marshalbgpSrteSegmentBTypeSubTlv) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -344617,7 +358061,7 @@ func (m *marshalpatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) ToYaml() (str return string(data), nil } -func (m *unMarshalpatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) FromYaml(value string) error { +func (m *unMarshalbgpSrteSegmentBTypeSubTlv) FromYaml(value string) error { if value == "" { value = "{}" } @@ -344634,7 +358078,7 @@ func (m *unMarshalpatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) FromYaml(va return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -344642,7 +358086,7 @@ func (m *unMarshalpatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) FromYaml(va return nil } -func (m *marshalpatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) ToJson() (string, error) { +func (m *marshalbgpSrteSegmentBTypeSubTlv) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -344660,7 +358104,7 @@ func (m *marshalpatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) ToJson() (str return string(data), nil } -func (m *unMarshalpatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) FromJson(value string) error { +func (m *unMarshalbgpSrteSegmentBTypeSubTlv) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -344673,7 +358117,7 @@ func (m *unMarshalpatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) FromJson(va return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() err := m.obj.validateToAndFrom() if err != nil { return err @@ -344681,19 +358125,19 @@ func (m *unMarshalpatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) FromJson(va return nil } -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) validateToAndFrom() error { +func (obj *bgpSrteSegmentBTypeSubTlv) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) validate() error { +func (obj *bgpSrteSegmentBTypeSubTlv) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) String() string { +func (obj *bgpSrteSegmentBTypeSubTlv) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -344701,12 +358145,12 @@ func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) String() string { return str } -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) Clone() (PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter, error) { +func (obj *bgpSrteSegmentBTypeSubTlv) Clone() (BgpSrteSegmentBTypeSubTlv, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4OptionsCustomTypeCopiedFlagCounter() + newObj := NewBgpSrteSegmentBTypeSubTlv() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -344718,233 +358162,230 @@ func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) Clone() (PatternFl return newObj, nil } -// PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter is integer counter pattern -type PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter interface { +func (obj *bgpSrteSegmentBTypeSubTlv) setNil() { + obj.srv6SidEndpointBehaviorHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// BgpSrteSegmentBTypeSubTlv is type B: SID only, in the form of IPv6 address. +type BgpSrteSegmentBTypeSubTlv interface { Validation - // msg marshals PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter to protobuf object *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter + // msg marshals BgpSrteSegmentBTypeSubTlv to protobuf object *otg.BgpSrteSegmentBTypeSubTlv // and doesn't set defaults - msg() *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter - // setMsg unmarshals PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter from protobuf object *otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter + msg() *otg.BgpSrteSegmentBTypeSubTlv + // setMsg unmarshals BgpSrteSegmentBTypeSubTlv from protobuf object *otg.BgpSrteSegmentBTypeSubTlv // and doesn't set defaults - setMsg(*otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter + setMsg(*otg.BgpSrteSegmentBTypeSubTlv) BgpSrteSegmentBTypeSubTlv // provides marshal interface - Marshal() marshalPatternFlowIpv4OptionsCustomTypeCopiedFlagCounter + Marshal() marshalBgpSrteSegmentBTypeSubTlv // provides unmarshal interface - Unmarshal() unMarshalPatternFlowIpv4OptionsCustomTypeCopiedFlagCounter - // validate validates PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter + Unmarshal() unMarshalBgpSrteSegmentBTypeSubTlv + // validate validates BgpSrteSegmentBTypeSubTlv validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter, error) + Clone() (BgpSrteSegmentBTypeSubTlv, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Start returns uint32, set in PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter. - Start() uint32 - // SetStart assigns uint32 provided by user to PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter - SetStart(value uint32) PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter - // HasStart checks if Start has been set in PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter - HasStart() bool - // Step returns uint32, set in PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter. - Step() uint32 - // SetStep assigns uint32 provided by user to PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter - SetStep(value uint32) PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter - // HasStep checks if Step has been set in PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter - HasStep() bool - // Count returns uint32, set in PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter. - Count() uint32 - // SetCount assigns uint32 provided by user to PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter - SetCount(value uint32) PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter - // HasCount checks if Count has been set in PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter - HasCount() bool + // Flags returns string, set in BgpSrteSegmentBTypeSubTlv. + Flags() string + // SetFlags assigns string provided by user to BgpSrteSegmentBTypeSubTlv + SetFlags(value string) BgpSrteSegmentBTypeSubTlv + // HasFlags checks if Flags has been set in BgpSrteSegmentBTypeSubTlv + HasFlags() bool + // Srv6Sid returns string, set in BgpSrteSegmentBTypeSubTlv. + Srv6Sid() string + // SetSrv6Sid assigns string provided by user to BgpSrteSegmentBTypeSubTlv + SetSrv6Sid(value string) BgpSrteSegmentBTypeSubTlv + // Srv6SidEndpointBehavior returns BgpSrteSRv6SIDEndpointBehaviorAndStructure, set in BgpSrteSegmentBTypeSubTlv. + // BgpSrteSRv6SIDEndpointBehaviorAndStructure is configuration for SRv6 Endpoint Behavior and SID Structure. Its optional. Summation of lengths for Locator Block, Locator Node, Function, and Argument MUST be less than or equal to 128. + Srv6SidEndpointBehavior() BgpSrteSRv6SIDEndpointBehaviorAndStructure + // SetSrv6SidEndpointBehavior assigns BgpSrteSRv6SIDEndpointBehaviorAndStructure provided by user to BgpSrteSegmentBTypeSubTlv. + // BgpSrteSRv6SIDEndpointBehaviorAndStructure is configuration for SRv6 Endpoint Behavior and SID Structure. Its optional. Summation of lengths for Locator Block, Locator Node, Function, and Argument MUST be less than or equal to 128. + SetSrv6SidEndpointBehavior(value BgpSrteSRv6SIDEndpointBehaviorAndStructure) BgpSrteSegmentBTypeSubTlv + // HasSrv6SidEndpointBehavior checks if Srv6SidEndpointBehavior has been set in BgpSrteSegmentBTypeSubTlv + HasSrv6SidEndpointBehavior() bool + setNil() } -// description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) Start() uint32 { +// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 +// Flags returns a string +func (obj *bgpSrteSegmentBTypeSubTlv) Flags() string { - return *obj.obj.Start + return *obj.obj.Flags } -// description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) HasStart() bool { - return obj.obj.Start != nil +// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 +// Flags returns a string +func (obj *bgpSrteSegmentBTypeSubTlv) HasFlags() bool { + return obj.obj.Flags != nil } -// description is TBD -// SetStart sets the uint32 value in the PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter object -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) SetStart(value uint32) PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter { +// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 +// SetFlags sets the string value in the BgpSrteSegmentBTypeSubTlv object +func (obj *bgpSrteSegmentBTypeSubTlv) SetFlags(value string) BgpSrteSegmentBTypeSubTlv { - obj.obj.Start = &value + obj.obj.Flags = &value return obj } -// description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) Step() uint32 { - - return *obj.obj.Step +// SRv6 SID. +// Srv6Sid returns a string +func (obj *bgpSrteSegmentBTypeSubTlv) Srv6Sid() string { -} + return *obj.obj.Srv6Sid -// description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) HasStep() bool { - return obj.obj.Step != nil } -// description is TBD -// SetStep sets the uint32 value in the PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter object -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) SetStep(value uint32) PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter { +// SRv6 SID. +// SetSrv6Sid sets the string value in the BgpSrteSegmentBTypeSubTlv object +func (obj *bgpSrteSegmentBTypeSubTlv) SetSrv6Sid(value string) BgpSrteSegmentBTypeSubTlv { - obj.obj.Step = &value + obj.obj.Srv6Sid = &value return obj } -// description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) Count() uint32 { - - return *obj.obj.Count - +// Optional SRv6 Endpoint Behavior and SID Structure. +// Srv6SidEndpointBehavior returns a BgpSrteSRv6SIDEndpointBehaviorAndStructure +func (obj *bgpSrteSegmentBTypeSubTlv) Srv6SidEndpointBehavior() BgpSrteSRv6SIDEndpointBehaviorAndStructure { + if obj.obj.Srv6SidEndpointBehavior == nil { + obj.obj.Srv6SidEndpointBehavior = NewBgpSrteSRv6SIDEndpointBehaviorAndStructure().msg() + } + if obj.srv6SidEndpointBehaviorHolder == nil { + obj.srv6SidEndpointBehaviorHolder = &bgpSrteSRv6SIDEndpointBehaviorAndStructure{obj: obj.obj.Srv6SidEndpointBehavior} + } + return obj.srv6SidEndpointBehaviorHolder } -// description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) HasCount() bool { - return obj.obj.Count != nil +// Optional SRv6 Endpoint Behavior and SID Structure. +// Srv6SidEndpointBehavior returns a BgpSrteSRv6SIDEndpointBehaviorAndStructure +func (obj *bgpSrteSegmentBTypeSubTlv) HasSrv6SidEndpointBehavior() bool { + return obj.obj.Srv6SidEndpointBehavior != nil } -// description is TBD -// SetCount sets the uint32 value in the PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter object -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) SetCount(value uint32) PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter { +// Optional SRv6 Endpoint Behavior and SID Structure. +// SetSrv6SidEndpointBehavior sets the BgpSrteSRv6SIDEndpointBehaviorAndStructure value in the BgpSrteSegmentBTypeSubTlv object +func (obj *bgpSrteSegmentBTypeSubTlv) SetSrv6SidEndpointBehavior(value BgpSrteSRv6SIDEndpointBehaviorAndStructure) BgpSrteSegmentBTypeSubTlv { + + obj.srv6SidEndpointBehaviorHolder = nil + obj.obj.Srv6SidEndpointBehavior = value.msg() - obj.obj.Count = &value return obj } -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) validateObj(vObj *validation, set_default bool) { +func (obj *bgpSrteSegmentBTypeSubTlv) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Start != nil { + if obj.obj.Flags != nil { - if *obj.obj.Start > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter.Start <= 1 but Got %d", *obj.obj.Start)) + err := obj.validateHex(obj.Flags()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentBTypeSubTlv.Flags")) } } - if obj.obj.Step != nil { + // Srv6Sid is required + if obj.obj.Srv6Sid == nil { + vObj.validationErrors = append(vObj.validationErrors, "Srv6Sid is required field on interface BgpSrteSegmentBTypeSubTlv") + } + if obj.obj.Srv6Sid != nil { - if *obj.obj.Step > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter.Step <= 1 but Got %d", *obj.obj.Step)) + err := obj.validateIpv6(obj.Srv6Sid()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentBTypeSubTlv.Srv6Sid")) } } - if obj.obj.Count != nil { - - if *obj.obj.Count > 1 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter.Count <= 1 but Got %d", *obj.obj.Count)) - } + if obj.obj.Srv6SidEndpointBehavior != nil { + obj.Srv6SidEndpointBehavior().validateObj(vObj, set_default) } } -func (obj *patternFlowIpv4OptionsCustomTypeCopiedFlagCounter) setDefault() { - if obj.obj.Start == nil { - obj.SetStart(0) - } - if obj.obj.Step == nil { - obj.SetStep(1) - } - if obj.obj.Count == nil { - obj.SetCount(1) - } +func (obj *bgpSrteSegmentBTypeSubTlv) setDefault() { } -// ***** PatternFlowIpv4OptionsCustomTypeOptionClassCounter ***** -type patternFlowIpv4OptionsCustomTypeOptionClassCounter struct { +// ***** BgpSrteSegmentCTypeSubTlv ***** +type bgpSrteSegmentCTypeSubTlv struct { validation - obj *otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter - marshaller marshalPatternFlowIpv4OptionsCustomTypeOptionClassCounter - unMarshaller unMarshalPatternFlowIpv4OptionsCustomTypeOptionClassCounter + obj *otg.BgpSrteSegmentCTypeSubTlv + marshaller marshalBgpSrteSegmentCTypeSubTlv + unMarshaller unMarshalBgpSrteSegmentCTypeSubTlv + srMplsSidHolder BgpSrteSrMplsSid } -func NewPatternFlowIpv4OptionsCustomTypeOptionClassCounter() PatternFlowIpv4OptionsCustomTypeOptionClassCounter { - obj := patternFlowIpv4OptionsCustomTypeOptionClassCounter{obj: &otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter{}} +func NewBgpSrteSegmentCTypeSubTlv() BgpSrteSegmentCTypeSubTlv { + obj := bgpSrteSegmentCTypeSubTlv{obj: &otg.BgpSrteSegmentCTypeSubTlv{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) msg() *otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter { +func (obj *bgpSrteSegmentCTypeSubTlv) msg() *otg.BgpSrteSegmentCTypeSubTlv { return obj.obj } -func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) setMsg(msg *otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter) PatternFlowIpv4OptionsCustomTypeOptionClassCounter { - +func (obj *bgpSrteSegmentCTypeSubTlv) setMsg(msg *otg.BgpSrteSegmentCTypeSubTlv) BgpSrteSegmentCTypeSubTlv { + obj.setNil() proto.Merge(obj.obj, msg) return obj } -type marshalpatternFlowIpv4OptionsCustomTypeOptionClassCounter struct { - obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter +type marshalbgpSrteSegmentCTypeSubTlv struct { + obj *bgpSrteSegmentCTypeSubTlv } -type marshalPatternFlowIpv4OptionsCustomTypeOptionClassCounter interface { - // ToProto marshals PatternFlowIpv4OptionsCustomTypeOptionClassCounter to protobuf object *otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter - ToProto() (*otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter, error) - // ToPbText marshals PatternFlowIpv4OptionsCustomTypeOptionClassCounter to protobuf text +type marshalBgpSrteSegmentCTypeSubTlv interface { + // ToProto marshals BgpSrteSegmentCTypeSubTlv to protobuf object *otg.BgpSrteSegmentCTypeSubTlv + ToProto() (*otg.BgpSrteSegmentCTypeSubTlv, error) + // ToPbText marshals BgpSrteSegmentCTypeSubTlv to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4OptionsCustomTypeOptionClassCounter to YAML text + // ToYaml marshals BgpSrteSegmentCTypeSubTlv to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4OptionsCustomTypeOptionClassCounter to JSON text + // ToJson marshals BgpSrteSegmentCTypeSubTlv to JSON text ToJson() (string, error) } -type unMarshalpatternFlowIpv4OptionsCustomTypeOptionClassCounter struct { - obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter +type unMarshalbgpSrteSegmentCTypeSubTlv struct { + obj *bgpSrteSegmentCTypeSubTlv } -type unMarshalPatternFlowIpv4OptionsCustomTypeOptionClassCounter interface { - // FromProto unmarshals PatternFlowIpv4OptionsCustomTypeOptionClassCounter from protobuf object *otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter - FromProto(msg *otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter) (PatternFlowIpv4OptionsCustomTypeOptionClassCounter, error) - // FromPbText unmarshals PatternFlowIpv4OptionsCustomTypeOptionClassCounter from protobuf text +type unMarshalBgpSrteSegmentCTypeSubTlv interface { + // FromProto unmarshals BgpSrteSegmentCTypeSubTlv from protobuf object *otg.BgpSrteSegmentCTypeSubTlv + FromProto(msg *otg.BgpSrteSegmentCTypeSubTlv) (BgpSrteSegmentCTypeSubTlv, error) + // FromPbText unmarshals BgpSrteSegmentCTypeSubTlv from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4OptionsCustomTypeOptionClassCounter from YAML text + // FromYaml unmarshals BgpSrteSegmentCTypeSubTlv from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4OptionsCustomTypeOptionClassCounter from JSON text + // FromJson unmarshals BgpSrteSegmentCTypeSubTlv from JSON text FromJson(value string) error } -func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) Marshal() marshalPatternFlowIpv4OptionsCustomTypeOptionClassCounter { +func (obj *bgpSrteSegmentCTypeSubTlv) Marshal() marshalBgpSrteSegmentCTypeSubTlv { if obj.marshaller == nil { - obj.marshaller = &marshalpatternFlowIpv4OptionsCustomTypeOptionClassCounter{obj: obj} + obj.marshaller = &marshalbgpSrteSegmentCTypeSubTlv{obj: obj} } return obj.marshaller } -func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) Unmarshal() unMarshalPatternFlowIpv4OptionsCustomTypeOptionClassCounter { +func (obj *bgpSrteSegmentCTypeSubTlv) Unmarshal() unMarshalBgpSrteSegmentCTypeSubTlv { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalpatternFlowIpv4OptionsCustomTypeOptionClassCounter{obj: obj} + obj.unMarshaller = &unMarshalbgpSrteSegmentCTypeSubTlv{obj: obj} } return obj.unMarshaller } -func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionClassCounter) ToProto() (*otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter, error) { +func (m *marshalbgpSrteSegmentCTypeSubTlv) ToProto() (*otg.BgpSrteSegmentCTypeSubTlv, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -344952,7 +358393,7 @@ func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionClassCounter) ToProto() (* return m.obj.msg(), nil } -func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionClassCounter) FromProto(msg *otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter) (PatternFlowIpv4OptionsCustomTypeOptionClassCounter, error) { +func (m *unMarshalbgpSrteSegmentCTypeSubTlv) FromProto(msg *otg.BgpSrteSegmentCTypeSubTlv) (BgpSrteSegmentCTypeSubTlv, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -344961,7 +358402,7 @@ func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionClassCounter) FromProto( return newObj, nil } -func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionClassCounter) ToPbText() (string, error) { +func (m *marshalbgpSrteSegmentCTypeSubTlv) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -344973,12 +358414,12 @@ func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionClassCounter) ToPbText() ( return string(protoMarshal), nil } -func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionClassCounter) FromPbText(value string) error { +func (m *unMarshalbgpSrteSegmentCTypeSubTlv) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -344986,7 +358427,7 @@ func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionClassCounter) FromPbText return retObj } -func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionClassCounter) ToYaml() (string, error) { +func (m *marshalbgpSrteSegmentCTypeSubTlv) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -345007,7 +358448,7 @@ func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionClassCounter) ToYaml() (st return string(data), nil } -func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionClassCounter) FromYaml(value string) error { +func (m *unMarshalbgpSrteSegmentCTypeSubTlv) FromYaml(value string) error { if value == "" { value = "{}" } @@ -345024,7 +358465,7 @@ func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionClassCounter) FromYaml(v return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -345032,7 +358473,7 @@ func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionClassCounter) FromYaml(v return nil } -func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionClassCounter) ToJson() (string, error) { +func (m *marshalbgpSrteSegmentCTypeSubTlv) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -345050,7 +358491,7 @@ func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionClassCounter) ToJson() (st return string(data), nil } -func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionClassCounter) FromJson(value string) error { +func (m *unMarshalbgpSrteSegmentCTypeSubTlv) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -345063,7 +358504,7 @@ func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionClassCounter) FromJson(v return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() err := m.obj.validateToAndFrom() if err != nil { return err @@ -345071,19 +358512,19 @@ func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionClassCounter) FromJson(v return nil } -func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) validateToAndFrom() error { +func (obj *bgpSrteSegmentCTypeSubTlv) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) validate() error { +func (obj *bgpSrteSegmentCTypeSubTlv) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) String() string { +func (obj *bgpSrteSegmentCTypeSubTlv) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -345091,12 +358532,12 @@ func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) String() string { return str } -func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) Clone() (PatternFlowIpv4OptionsCustomTypeOptionClassCounter, error) { +func (obj *bgpSrteSegmentCTypeSubTlv) Clone() (BgpSrteSegmentCTypeSubTlv, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4OptionsCustomTypeOptionClassCounter() + newObj := NewBgpSrteSegmentCTypeSubTlv() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -345108,233 +358549,271 @@ func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) Clone() (PatternF return newObj, nil } -// PatternFlowIpv4OptionsCustomTypeOptionClassCounter is integer counter pattern -type PatternFlowIpv4OptionsCustomTypeOptionClassCounter interface { +func (obj *bgpSrteSegmentCTypeSubTlv) setNil() { + obj.srMplsSidHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// BgpSrteSegmentCTypeSubTlv is type C: IPv4 Node Address with optional SID. +type BgpSrteSegmentCTypeSubTlv interface { Validation - // msg marshals PatternFlowIpv4OptionsCustomTypeOptionClassCounter to protobuf object *otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter + // msg marshals BgpSrteSegmentCTypeSubTlv to protobuf object *otg.BgpSrteSegmentCTypeSubTlv // and doesn't set defaults - msg() *otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter - // setMsg unmarshals PatternFlowIpv4OptionsCustomTypeOptionClassCounter from protobuf object *otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter + msg() *otg.BgpSrteSegmentCTypeSubTlv + // setMsg unmarshals BgpSrteSegmentCTypeSubTlv from protobuf object *otg.BgpSrteSegmentCTypeSubTlv // and doesn't set defaults - setMsg(*otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter) PatternFlowIpv4OptionsCustomTypeOptionClassCounter + setMsg(*otg.BgpSrteSegmentCTypeSubTlv) BgpSrteSegmentCTypeSubTlv // provides marshal interface - Marshal() marshalPatternFlowIpv4OptionsCustomTypeOptionClassCounter + Marshal() marshalBgpSrteSegmentCTypeSubTlv // provides unmarshal interface - Unmarshal() unMarshalPatternFlowIpv4OptionsCustomTypeOptionClassCounter - // validate validates PatternFlowIpv4OptionsCustomTypeOptionClassCounter + Unmarshal() unMarshalBgpSrteSegmentCTypeSubTlv + // validate validates BgpSrteSegmentCTypeSubTlv validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4OptionsCustomTypeOptionClassCounter, error) + Clone() (BgpSrteSegmentCTypeSubTlv, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Start returns uint32, set in PatternFlowIpv4OptionsCustomTypeOptionClassCounter. - Start() uint32 - // SetStart assigns uint32 provided by user to PatternFlowIpv4OptionsCustomTypeOptionClassCounter - SetStart(value uint32) PatternFlowIpv4OptionsCustomTypeOptionClassCounter - // HasStart checks if Start has been set in PatternFlowIpv4OptionsCustomTypeOptionClassCounter - HasStart() bool - // Step returns uint32, set in PatternFlowIpv4OptionsCustomTypeOptionClassCounter. - Step() uint32 - // SetStep assigns uint32 provided by user to PatternFlowIpv4OptionsCustomTypeOptionClassCounter - SetStep(value uint32) PatternFlowIpv4OptionsCustomTypeOptionClassCounter - // HasStep checks if Step has been set in PatternFlowIpv4OptionsCustomTypeOptionClassCounter - HasStep() bool - // Count returns uint32, set in PatternFlowIpv4OptionsCustomTypeOptionClassCounter. - Count() uint32 - // SetCount assigns uint32 provided by user to PatternFlowIpv4OptionsCustomTypeOptionClassCounter - SetCount(value uint32) PatternFlowIpv4OptionsCustomTypeOptionClassCounter - // HasCount checks if Count has been set in PatternFlowIpv4OptionsCustomTypeOptionClassCounter - HasCount() bool + // Flags returns string, set in BgpSrteSegmentCTypeSubTlv. + Flags() string + // SetFlags assigns string provided by user to BgpSrteSegmentCTypeSubTlv + SetFlags(value string) BgpSrteSegmentCTypeSubTlv + // HasFlags checks if Flags has been set in BgpSrteSegmentCTypeSubTlv + HasFlags() bool + // SrAlgorithm returns uint32, set in BgpSrteSegmentCTypeSubTlv. + SrAlgorithm() uint32 + // SetSrAlgorithm assigns uint32 provided by user to BgpSrteSegmentCTypeSubTlv + SetSrAlgorithm(value uint32) BgpSrteSegmentCTypeSubTlv + // HasSrAlgorithm checks if SrAlgorithm has been set in BgpSrteSegmentCTypeSubTlv + HasSrAlgorithm() bool + // Ipv4NodeAddress returns string, set in BgpSrteSegmentCTypeSubTlv. + Ipv4NodeAddress() string + // SetIpv4NodeAddress assigns string provided by user to BgpSrteSegmentCTypeSubTlv + SetIpv4NodeAddress(value string) BgpSrteSegmentCTypeSubTlv + // SrMplsSid returns BgpSrteSrMplsSid, set in BgpSrteSegmentCTypeSubTlv. + // BgpSrteSrMplsSid is configuration for SR-MPLS with Label, TC, Bottom-of-Stack and TTL. + SrMplsSid() BgpSrteSrMplsSid + // SetSrMplsSid assigns BgpSrteSrMplsSid provided by user to BgpSrteSegmentCTypeSubTlv. + // BgpSrteSrMplsSid is configuration for SR-MPLS with Label, TC, Bottom-of-Stack and TTL. + SetSrMplsSid(value BgpSrteSrMplsSid) BgpSrteSegmentCTypeSubTlv + // HasSrMplsSid checks if SrMplsSid has been set in BgpSrteSegmentCTypeSubTlv + HasSrMplsSid() bool + setNil() } -// description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) Start() uint32 { +// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 +// Flags returns a string +func (obj *bgpSrteSegmentCTypeSubTlv) Flags() string { - return *obj.obj.Start + return *obj.obj.Flags } -// description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) HasStart() bool { - return obj.obj.Start != nil +// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 +// Flags returns a string +func (obj *bgpSrteSegmentCTypeSubTlv) HasFlags() bool { + return obj.obj.Flags != nil } -// description is TBD -// SetStart sets the uint32 value in the PatternFlowIpv4OptionsCustomTypeOptionClassCounter object -func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) SetStart(value uint32) PatternFlowIpv4OptionsCustomTypeOptionClassCounter { +// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 +// SetFlags sets the string value in the BgpSrteSegmentCTypeSubTlv object +func (obj *bgpSrteSegmentCTypeSubTlv) SetFlags(value string) BgpSrteSegmentCTypeSubTlv { - obj.obj.Start = &value + obj.obj.Flags = &value return obj } -// description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) Step() uint32 { +// SR Algorithm identifier when A-Flag in on. +// SrAlgorithm returns a uint32 +func (obj *bgpSrteSegmentCTypeSubTlv) SrAlgorithm() uint32 { - return *obj.obj.Step + return *obj.obj.SrAlgorithm } -// description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) HasStep() bool { - return obj.obj.Step != nil +// SR Algorithm identifier when A-Flag in on. +// SrAlgorithm returns a uint32 +func (obj *bgpSrteSegmentCTypeSubTlv) HasSrAlgorithm() bool { + return obj.obj.SrAlgorithm != nil } -// description is TBD -// SetStep sets the uint32 value in the PatternFlowIpv4OptionsCustomTypeOptionClassCounter object -func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) SetStep(value uint32) PatternFlowIpv4OptionsCustomTypeOptionClassCounter { +// SR Algorithm identifier when A-Flag in on. +// SetSrAlgorithm sets the uint32 value in the BgpSrteSegmentCTypeSubTlv object +func (obj *bgpSrteSegmentCTypeSubTlv) SetSrAlgorithm(value uint32) BgpSrteSegmentCTypeSubTlv { - obj.obj.Step = &value + obj.obj.SrAlgorithm = &value return obj } -// description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) Count() uint32 { +// IPv4 address representing a node. +// Ipv4NodeAddress returns a string +func (obj *bgpSrteSegmentCTypeSubTlv) Ipv4NodeAddress() string { - return *obj.obj.Count + return *obj.obj.Ipv4NodeAddress } -// description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) HasCount() bool { - return obj.obj.Count != nil +// IPv4 address representing a node. +// SetIpv4NodeAddress sets the string value in the BgpSrteSegmentCTypeSubTlv object +func (obj *bgpSrteSegmentCTypeSubTlv) SetIpv4NodeAddress(value string) BgpSrteSegmentCTypeSubTlv { + + obj.obj.Ipv4NodeAddress = &value + return obj } -// description is TBD -// SetCount sets the uint32 value in the PatternFlowIpv4OptionsCustomTypeOptionClassCounter object -func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) SetCount(value uint32) PatternFlowIpv4OptionsCustomTypeOptionClassCounter { +// Optional SR-MPLS SID. +// SrMplsSid returns a BgpSrteSrMplsSid +func (obj *bgpSrteSegmentCTypeSubTlv) SrMplsSid() BgpSrteSrMplsSid { + if obj.obj.SrMplsSid == nil { + obj.obj.SrMplsSid = NewBgpSrteSrMplsSid().msg() + } + if obj.srMplsSidHolder == nil { + obj.srMplsSidHolder = &bgpSrteSrMplsSid{obj: obj.obj.SrMplsSid} + } + return obj.srMplsSidHolder +} + +// Optional SR-MPLS SID. +// SrMplsSid returns a BgpSrteSrMplsSid +func (obj *bgpSrteSegmentCTypeSubTlv) HasSrMplsSid() bool { + return obj.obj.SrMplsSid != nil +} + +// Optional SR-MPLS SID. +// SetSrMplsSid sets the BgpSrteSrMplsSid value in the BgpSrteSegmentCTypeSubTlv object +func (obj *bgpSrteSegmentCTypeSubTlv) SetSrMplsSid(value BgpSrteSrMplsSid) BgpSrteSegmentCTypeSubTlv { + + obj.srMplsSidHolder = nil + obj.obj.SrMplsSid = value.msg() - obj.obj.Count = &value return obj } -func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) validateObj(vObj *validation, set_default bool) { +func (obj *bgpSrteSegmentCTypeSubTlv) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Start != nil { + if obj.obj.Flags != nil { - if *obj.obj.Start > 3 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4OptionsCustomTypeOptionClassCounter.Start <= 3 but Got %d", *obj.obj.Start)) + err := obj.validateHex(obj.Flags()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentCTypeSubTlv.Flags")) } } - if obj.obj.Step != nil { + if obj.obj.SrAlgorithm != nil { - if *obj.obj.Step > 3 { + if *obj.obj.SrAlgorithm > 255 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4OptionsCustomTypeOptionClassCounter.Step <= 3 but Got %d", *obj.obj.Step)) + fmt.Sprintf("0 <= BgpSrteSegmentCTypeSubTlv.SrAlgorithm <= 255 but Got %d", *obj.obj.SrAlgorithm)) } } - if obj.obj.Count != nil { + // Ipv4NodeAddress is required + if obj.obj.Ipv4NodeAddress == nil { + vObj.validationErrors = append(vObj.validationErrors, "Ipv4NodeAddress is required field on interface BgpSrteSegmentCTypeSubTlv") + } + if obj.obj.Ipv4NodeAddress != nil { - if *obj.obj.Count > 3 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4OptionsCustomTypeOptionClassCounter.Count <= 3 but Got %d", *obj.obj.Count)) + err := obj.validateIpv4(obj.Ipv4NodeAddress()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentCTypeSubTlv.Ipv4NodeAddress")) } } -} + if obj.obj.SrMplsSid != nil { -func (obj *patternFlowIpv4OptionsCustomTypeOptionClassCounter) setDefault() { - if obj.obj.Start == nil { - obj.SetStart(0) - } - if obj.obj.Step == nil { - obj.SetStep(1) + obj.SrMplsSid().validateObj(vObj, set_default) } - if obj.obj.Count == nil { - obj.SetCount(1) + +} + +func (obj *bgpSrteSegmentCTypeSubTlv) setDefault() { + if obj.obj.SrAlgorithm == nil { + obj.SetSrAlgorithm(0) } } -// ***** PatternFlowIpv4OptionsCustomTypeOptionNumberCounter ***** -type patternFlowIpv4OptionsCustomTypeOptionNumberCounter struct { +// ***** BgpSrteSegmentDTypeSubTlv ***** +type bgpSrteSegmentDTypeSubTlv struct { validation - obj *otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter - marshaller marshalPatternFlowIpv4OptionsCustomTypeOptionNumberCounter - unMarshaller unMarshalPatternFlowIpv4OptionsCustomTypeOptionNumberCounter + obj *otg.BgpSrteSegmentDTypeSubTlv + marshaller marshalBgpSrteSegmentDTypeSubTlv + unMarshaller unMarshalBgpSrteSegmentDTypeSubTlv + srMplsSidHolder BgpSrteSrMplsSid } -func NewPatternFlowIpv4OptionsCustomTypeOptionNumberCounter() PatternFlowIpv4OptionsCustomTypeOptionNumberCounter { - obj := patternFlowIpv4OptionsCustomTypeOptionNumberCounter{obj: &otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter{}} +func NewBgpSrteSegmentDTypeSubTlv() BgpSrteSegmentDTypeSubTlv { + obj := bgpSrteSegmentDTypeSubTlv{obj: &otg.BgpSrteSegmentDTypeSubTlv{}} obj.setDefault() return &obj } -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) msg() *otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter { +func (obj *bgpSrteSegmentDTypeSubTlv) msg() *otg.BgpSrteSegmentDTypeSubTlv { return obj.obj } -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) setMsg(msg *otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) PatternFlowIpv4OptionsCustomTypeOptionNumberCounter { - +func (obj *bgpSrteSegmentDTypeSubTlv) setMsg(msg *otg.BgpSrteSegmentDTypeSubTlv) BgpSrteSegmentDTypeSubTlv { + obj.setNil() proto.Merge(obj.obj, msg) return obj } -type marshalpatternFlowIpv4OptionsCustomTypeOptionNumberCounter struct { - obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter +type marshalbgpSrteSegmentDTypeSubTlv struct { + obj *bgpSrteSegmentDTypeSubTlv } -type marshalPatternFlowIpv4OptionsCustomTypeOptionNumberCounter interface { - // ToProto marshals PatternFlowIpv4OptionsCustomTypeOptionNumberCounter to protobuf object *otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter - ToProto() (*otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter, error) - // ToPbText marshals PatternFlowIpv4OptionsCustomTypeOptionNumberCounter to protobuf text +type marshalBgpSrteSegmentDTypeSubTlv interface { + // ToProto marshals BgpSrteSegmentDTypeSubTlv to protobuf object *otg.BgpSrteSegmentDTypeSubTlv + ToProto() (*otg.BgpSrteSegmentDTypeSubTlv, error) + // ToPbText marshals BgpSrteSegmentDTypeSubTlv to protobuf text ToPbText() (string, error) - // ToYaml marshals PatternFlowIpv4OptionsCustomTypeOptionNumberCounter to YAML text + // ToYaml marshals BgpSrteSegmentDTypeSubTlv to YAML text ToYaml() (string, error) - // ToJson marshals PatternFlowIpv4OptionsCustomTypeOptionNumberCounter to JSON text + // ToJson marshals BgpSrteSegmentDTypeSubTlv to JSON text ToJson() (string, error) } -type unMarshalpatternFlowIpv4OptionsCustomTypeOptionNumberCounter struct { - obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter +type unMarshalbgpSrteSegmentDTypeSubTlv struct { + obj *bgpSrteSegmentDTypeSubTlv } -type unMarshalPatternFlowIpv4OptionsCustomTypeOptionNumberCounter interface { - // FromProto unmarshals PatternFlowIpv4OptionsCustomTypeOptionNumberCounter from protobuf object *otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter - FromProto(msg *otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) (PatternFlowIpv4OptionsCustomTypeOptionNumberCounter, error) - // FromPbText unmarshals PatternFlowIpv4OptionsCustomTypeOptionNumberCounter from protobuf text +type unMarshalBgpSrteSegmentDTypeSubTlv interface { + // FromProto unmarshals BgpSrteSegmentDTypeSubTlv from protobuf object *otg.BgpSrteSegmentDTypeSubTlv + FromProto(msg *otg.BgpSrteSegmentDTypeSubTlv) (BgpSrteSegmentDTypeSubTlv, error) + // FromPbText unmarshals BgpSrteSegmentDTypeSubTlv from protobuf text FromPbText(value string) error - // FromYaml unmarshals PatternFlowIpv4OptionsCustomTypeOptionNumberCounter from YAML text + // FromYaml unmarshals BgpSrteSegmentDTypeSubTlv from YAML text FromYaml(value string) error - // FromJson unmarshals PatternFlowIpv4OptionsCustomTypeOptionNumberCounter from JSON text + // FromJson unmarshals BgpSrteSegmentDTypeSubTlv from JSON text FromJson(value string) error } -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) Marshal() marshalPatternFlowIpv4OptionsCustomTypeOptionNumberCounter { +func (obj *bgpSrteSegmentDTypeSubTlv) Marshal() marshalBgpSrteSegmentDTypeSubTlv { if obj.marshaller == nil { - obj.marshaller = &marshalpatternFlowIpv4OptionsCustomTypeOptionNumberCounter{obj: obj} + obj.marshaller = &marshalbgpSrteSegmentDTypeSubTlv{obj: obj} } return obj.marshaller } -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) Unmarshal() unMarshalPatternFlowIpv4OptionsCustomTypeOptionNumberCounter { +func (obj *bgpSrteSegmentDTypeSubTlv) Unmarshal() unMarshalBgpSrteSegmentDTypeSubTlv { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalpatternFlowIpv4OptionsCustomTypeOptionNumberCounter{obj: obj} + obj.unMarshaller = &unMarshalbgpSrteSegmentDTypeSubTlv{obj: obj} } return obj.unMarshaller } -func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionNumberCounter) ToProto() (*otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter, error) { +func (m *marshalbgpSrteSegmentDTypeSubTlv) ToProto() (*otg.BgpSrteSegmentDTypeSubTlv, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -345342,7 +358821,7 @@ func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionNumberCounter) ToProto() ( return m.obj.msg(), nil } -func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionNumberCounter) FromProto(msg *otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) (PatternFlowIpv4OptionsCustomTypeOptionNumberCounter, error) { +func (m *unMarshalbgpSrteSegmentDTypeSubTlv) FromProto(msg *otg.BgpSrteSegmentDTypeSubTlv) (BgpSrteSegmentDTypeSubTlv, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -345351,7 +358830,7 @@ func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionNumberCounter) FromProto return newObj, nil } -func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionNumberCounter) ToPbText() (string, error) { +func (m *marshalbgpSrteSegmentDTypeSubTlv) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -345363,12 +358842,12 @@ func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionNumberCounter) ToPbText() return string(protoMarshal), nil } -func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionNumberCounter) FromPbText(value string) error { +func (m *unMarshalbgpSrteSegmentDTypeSubTlv) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -345376,7 +358855,7 @@ func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionNumberCounter) FromPbTex return retObj } -func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionNumberCounter) ToYaml() (string, error) { +func (m *marshalbgpSrteSegmentDTypeSubTlv) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -345397,7 +358876,7 @@ func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionNumberCounter) ToYaml() (s return string(data), nil } -func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionNumberCounter) FromYaml(value string) error { +func (m *unMarshalbgpSrteSegmentDTypeSubTlv) FromYaml(value string) error { if value == "" { value = "{}" } @@ -345414,7 +358893,7 @@ func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionNumberCounter) FromYaml( return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -345422,7 +358901,7 @@ func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionNumberCounter) FromYaml( return nil } -func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionNumberCounter) ToJson() (string, error) { +func (m *marshalbgpSrteSegmentDTypeSubTlv) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -345440,7 +358919,7 @@ func (m *marshalpatternFlowIpv4OptionsCustomTypeOptionNumberCounter) ToJson() (s return string(data), nil } -func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionNumberCounter) FromJson(value string) error { +func (m *unMarshalbgpSrteSegmentDTypeSubTlv) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -345453,7 +358932,7 @@ func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionNumberCounter) FromJson( return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() err := m.obj.validateToAndFrom() if err != nil { return err @@ -345461,19 +358940,19 @@ func (m *unMarshalpatternFlowIpv4OptionsCustomTypeOptionNumberCounter) FromJson( return nil } -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) validateToAndFrom() error { +func (obj *bgpSrteSegmentDTypeSubTlv) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) validate() error { +func (obj *bgpSrteSegmentDTypeSubTlv) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) String() string { +func (obj *bgpSrteSegmentDTypeSubTlv) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -345481,12 +358960,12 @@ func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) String() string return str } -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) Clone() (PatternFlowIpv4OptionsCustomTypeOptionNumberCounter, error) { +func (obj *bgpSrteSegmentDTypeSubTlv) Clone() (BgpSrteSegmentDTypeSubTlv, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewPatternFlowIpv4OptionsCustomTypeOptionNumberCounter() + newObj := NewBgpSrteSegmentDTypeSubTlv() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -345498,240 +358977,271 @@ func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) Clone() (Pattern return newObj, nil } -// PatternFlowIpv4OptionsCustomTypeOptionNumberCounter is integer counter pattern -type PatternFlowIpv4OptionsCustomTypeOptionNumberCounter interface { +func (obj *bgpSrteSegmentDTypeSubTlv) setNil() { + obj.srMplsSidHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// BgpSrteSegmentDTypeSubTlv is type D: IPv6 Node Address with optional SID for SR MPLS. +type BgpSrteSegmentDTypeSubTlv interface { Validation - // msg marshals PatternFlowIpv4OptionsCustomTypeOptionNumberCounter to protobuf object *otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter + // msg marshals BgpSrteSegmentDTypeSubTlv to protobuf object *otg.BgpSrteSegmentDTypeSubTlv // and doesn't set defaults - msg() *otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter - // setMsg unmarshals PatternFlowIpv4OptionsCustomTypeOptionNumberCounter from protobuf object *otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter + msg() *otg.BgpSrteSegmentDTypeSubTlv + // setMsg unmarshals BgpSrteSegmentDTypeSubTlv from protobuf object *otg.BgpSrteSegmentDTypeSubTlv // and doesn't set defaults - setMsg(*otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) PatternFlowIpv4OptionsCustomTypeOptionNumberCounter + setMsg(*otg.BgpSrteSegmentDTypeSubTlv) BgpSrteSegmentDTypeSubTlv // provides marshal interface - Marshal() marshalPatternFlowIpv4OptionsCustomTypeOptionNumberCounter + Marshal() marshalBgpSrteSegmentDTypeSubTlv // provides unmarshal interface - Unmarshal() unMarshalPatternFlowIpv4OptionsCustomTypeOptionNumberCounter - // validate validates PatternFlowIpv4OptionsCustomTypeOptionNumberCounter + Unmarshal() unMarshalBgpSrteSegmentDTypeSubTlv + // validate validates BgpSrteSegmentDTypeSubTlv validate() error // A stringer function String() string // Clones the object - Clone() (PatternFlowIpv4OptionsCustomTypeOptionNumberCounter, error) + Clone() (BgpSrteSegmentDTypeSubTlv, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Start returns uint32, set in PatternFlowIpv4OptionsCustomTypeOptionNumberCounter. - Start() uint32 - // SetStart assigns uint32 provided by user to PatternFlowIpv4OptionsCustomTypeOptionNumberCounter - SetStart(value uint32) PatternFlowIpv4OptionsCustomTypeOptionNumberCounter - // HasStart checks if Start has been set in PatternFlowIpv4OptionsCustomTypeOptionNumberCounter - HasStart() bool - // Step returns uint32, set in PatternFlowIpv4OptionsCustomTypeOptionNumberCounter. - Step() uint32 - // SetStep assigns uint32 provided by user to PatternFlowIpv4OptionsCustomTypeOptionNumberCounter - SetStep(value uint32) PatternFlowIpv4OptionsCustomTypeOptionNumberCounter - // HasStep checks if Step has been set in PatternFlowIpv4OptionsCustomTypeOptionNumberCounter - HasStep() bool - // Count returns uint32, set in PatternFlowIpv4OptionsCustomTypeOptionNumberCounter. - Count() uint32 - // SetCount assigns uint32 provided by user to PatternFlowIpv4OptionsCustomTypeOptionNumberCounter - SetCount(value uint32) PatternFlowIpv4OptionsCustomTypeOptionNumberCounter - // HasCount checks if Count has been set in PatternFlowIpv4OptionsCustomTypeOptionNumberCounter - HasCount() bool + // Flags returns string, set in BgpSrteSegmentDTypeSubTlv. + Flags() string + // SetFlags assigns string provided by user to BgpSrteSegmentDTypeSubTlv + SetFlags(value string) BgpSrteSegmentDTypeSubTlv + // HasFlags checks if Flags has been set in BgpSrteSegmentDTypeSubTlv + HasFlags() bool + // SrAlgorithm returns uint32, set in BgpSrteSegmentDTypeSubTlv. + SrAlgorithm() uint32 + // SetSrAlgorithm assigns uint32 provided by user to BgpSrteSegmentDTypeSubTlv + SetSrAlgorithm(value uint32) BgpSrteSegmentDTypeSubTlv + // HasSrAlgorithm checks if SrAlgorithm has been set in BgpSrteSegmentDTypeSubTlv + HasSrAlgorithm() bool + // Ipv6NodeAddress returns string, set in BgpSrteSegmentDTypeSubTlv. + Ipv6NodeAddress() string + // SetIpv6NodeAddress assigns string provided by user to BgpSrteSegmentDTypeSubTlv + SetIpv6NodeAddress(value string) BgpSrteSegmentDTypeSubTlv + // SrMplsSid returns BgpSrteSrMplsSid, set in BgpSrteSegmentDTypeSubTlv. + // BgpSrteSrMplsSid is configuration for SR-MPLS with Label, TC, Bottom-of-Stack and TTL. + SrMplsSid() BgpSrteSrMplsSid + // SetSrMplsSid assigns BgpSrteSrMplsSid provided by user to BgpSrteSegmentDTypeSubTlv. + // BgpSrteSrMplsSid is configuration for SR-MPLS with Label, TC, Bottom-of-Stack and TTL. + SetSrMplsSid(value BgpSrteSrMplsSid) BgpSrteSegmentDTypeSubTlv + // HasSrMplsSid checks if SrMplsSid has been set in BgpSrteSegmentDTypeSubTlv + HasSrMplsSid() bool + setNil() } -// description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) Start() uint32 { +// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 +// Flags returns a string +func (obj *bgpSrteSegmentDTypeSubTlv) Flags() string { - return *obj.obj.Start + return *obj.obj.Flags } -// description is TBD -// Start returns a uint32 -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) HasStart() bool { - return obj.obj.Start != nil +// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 +// Flags returns a string +func (obj *bgpSrteSegmentDTypeSubTlv) HasFlags() bool { + return obj.obj.Flags != nil } -// description is TBD -// SetStart sets the uint32 value in the PatternFlowIpv4OptionsCustomTypeOptionNumberCounter object -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) SetStart(value uint32) PatternFlowIpv4OptionsCustomTypeOptionNumberCounter { +// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 +// SetFlags sets the string value in the BgpSrteSegmentDTypeSubTlv object +func (obj *bgpSrteSegmentDTypeSubTlv) SetFlags(value string) BgpSrteSegmentDTypeSubTlv { - obj.obj.Start = &value + obj.obj.Flags = &value return obj } -// description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) Step() uint32 { +// specifying SR Algorithm when when A-Flag as defined in above flags. +// SrAlgorithm returns a uint32 +func (obj *bgpSrteSegmentDTypeSubTlv) SrAlgorithm() uint32 { - return *obj.obj.Step + return *obj.obj.SrAlgorithm } -// description is TBD -// Step returns a uint32 -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) HasStep() bool { - return obj.obj.Step != nil +// specifying SR Algorithm when when A-Flag as defined in above flags. +// SrAlgorithm returns a uint32 +func (obj *bgpSrteSegmentDTypeSubTlv) HasSrAlgorithm() bool { + return obj.obj.SrAlgorithm != nil } -// description is TBD -// SetStep sets the uint32 value in the PatternFlowIpv4OptionsCustomTypeOptionNumberCounter object -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) SetStep(value uint32) PatternFlowIpv4OptionsCustomTypeOptionNumberCounter { +// specifying SR Algorithm when when A-Flag as defined in above flags. +// SetSrAlgorithm sets the uint32 value in the BgpSrteSegmentDTypeSubTlv object +func (obj *bgpSrteSegmentDTypeSubTlv) SetSrAlgorithm(value uint32) BgpSrteSegmentDTypeSubTlv { - obj.obj.Step = &value + obj.obj.SrAlgorithm = &value return obj } -// description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) Count() uint32 { +// IPv6 address representing a node. +// Ipv6NodeAddress returns a string +func (obj *bgpSrteSegmentDTypeSubTlv) Ipv6NodeAddress() string { - return *obj.obj.Count + return *obj.obj.Ipv6NodeAddress } -// description is TBD -// Count returns a uint32 -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) HasCount() bool { - return obj.obj.Count != nil +// IPv6 address representing a node. +// SetIpv6NodeAddress sets the string value in the BgpSrteSegmentDTypeSubTlv object +func (obj *bgpSrteSegmentDTypeSubTlv) SetIpv6NodeAddress(value string) BgpSrteSegmentDTypeSubTlv { + + obj.obj.Ipv6NodeAddress = &value + return obj } -// description is TBD -// SetCount sets the uint32 value in the PatternFlowIpv4OptionsCustomTypeOptionNumberCounter object -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) SetCount(value uint32) PatternFlowIpv4OptionsCustomTypeOptionNumberCounter { +// Optional SR-MPLS SID. +// SrMplsSid returns a BgpSrteSrMplsSid +func (obj *bgpSrteSegmentDTypeSubTlv) SrMplsSid() BgpSrteSrMplsSid { + if obj.obj.SrMplsSid == nil { + obj.obj.SrMplsSid = NewBgpSrteSrMplsSid().msg() + } + if obj.srMplsSidHolder == nil { + obj.srMplsSidHolder = &bgpSrteSrMplsSid{obj: obj.obj.SrMplsSid} + } + return obj.srMplsSidHolder +} + +// Optional SR-MPLS SID. +// SrMplsSid returns a BgpSrteSrMplsSid +func (obj *bgpSrteSegmentDTypeSubTlv) HasSrMplsSid() bool { + return obj.obj.SrMplsSid != nil +} + +// Optional SR-MPLS SID. +// SetSrMplsSid sets the BgpSrteSrMplsSid value in the BgpSrteSegmentDTypeSubTlv object +func (obj *bgpSrteSegmentDTypeSubTlv) SetSrMplsSid(value BgpSrteSrMplsSid) BgpSrteSegmentDTypeSubTlv { + + obj.srMplsSidHolder = nil + obj.obj.SrMplsSid = value.msg() - obj.obj.Count = &value return obj } -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) validateObj(vObj *validation, set_default bool) { +func (obj *bgpSrteSegmentDTypeSubTlv) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Start != nil { + if obj.obj.Flags != nil { - if *obj.obj.Start > 31 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4OptionsCustomTypeOptionNumberCounter.Start <= 31 but Got %d", *obj.obj.Start)) + err := obj.validateHex(obj.Flags()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentDTypeSubTlv.Flags")) } } - if obj.obj.Step != nil { + if obj.obj.SrAlgorithm != nil { - if *obj.obj.Step > 31 { + if *obj.obj.SrAlgorithm > 255 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4OptionsCustomTypeOptionNumberCounter.Step <= 31 but Got %d", *obj.obj.Step)) + fmt.Sprintf("0 <= BgpSrteSegmentDTypeSubTlv.SrAlgorithm <= 255 but Got %d", *obj.obj.SrAlgorithm)) } } - if obj.obj.Count != nil { + // Ipv6NodeAddress is required + if obj.obj.Ipv6NodeAddress == nil { + vObj.validationErrors = append(vObj.validationErrors, "Ipv6NodeAddress is required field on interface BgpSrteSegmentDTypeSubTlv") + } + if obj.obj.Ipv6NodeAddress != nil { - if *obj.obj.Count > 31 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= PatternFlowIpv4OptionsCustomTypeOptionNumberCounter.Count <= 31 but Got %d", *obj.obj.Count)) + err := obj.validateIpv6(obj.Ipv6NodeAddress()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentDTypeSubTlv.Ipv6NodeAddress")) } } -} + if obj.obj.SrMplsSid != nil { -func (obj *patternFlowIpv4OptionsCustomTypeOptionNumberCounter) setDefault() { - if obj.obj.Start == nil { - obj.SetStart(0) - } - if obj.obj.Step == nil { - obj.SetStep(1) + obj.SrMplsSid().validateObj(vObj, set_default) } - if obj.obj.Count == nil { - obj.SetCount(1) + +} + +func (obj *bgpSrteSegmentDTypeSubTlv) setDefault() { + if obj.obj.SrAlgorithm == nil { + obj.SetSrAlgorithm(0) } } -// ***** BgpCMacIpRange ***** -type bgpCMacIpRange struct { +// ***** BgpSrteSegmentETypeSubTlv ***** +type bgpSrteSegmentETypeSubTlv struct { validation - obj *otg.BgpCMacIpRange - marshaller marshalBgpCMacIpRange - unMarshaller unMarshalBgpCMacIpRange - macAddressesHolder MACRouteAddress - ipv4AddressesHolder V4RouteAddress - ipv6AddressesHolder V6RouteAddress - advancedHolder BgpRouteAdvanced - communitiesHolder BgpCMacIpRangeBgpCommunityIter - extCommunitiesHolder BgpCMacIpRangeBgpExtCommunityIter - asPathHolder BgpAsPath + obj *otg.BgpSrteSegmentETypeSubTlv + marshaller marshalBgpSrteSegmentETypeSubTlv + unMarshaller unMarshalBgpSrteSegmentETypeSubTlv + srMplsSidHolder BgpSrteSrMplsSid } -func NewBgpCMacIpRange() BgpCMacIpRange { - obj := bgpCMacIpRange{obj: &otg.BgpCMacIpRange{}} +func NewBgpSrteSegmentETypeSubTlv() BgpSrteSegmentETypeSubTlv { + obj := bgpSrteSegmentETypeSubTlv{obj: &otg.BgpSrteSegmentETypeSubTlv{}} obj.setDefault() return &obj } -func (obj *bgpCMacIpRange) msg() *otg.BgpCMacIpRange { +func (obj *bgpSrteSegmentETypeSubTlv) msg() *otg.BgpSrteSegmentETypeSubTlv { return obj.obj } -func (obj *bgpCMacIpRange) setMsg(msg *otg.BgpCMacIpRange) BgpCMacIpRange { +func (obj *bgpSrteSegmentETypeSubTlv) setMsg(msg *otg.BgpSrteSegmentETypeSubTlv) BgpSrteSegmentETypeSubTlv { obj.setNil() proto.Merge(obj.obj, msg) return obj } -type marshalbgpCMacIpRange struct { - obj *bgpCMacIpRange -} - -type marshalBgpCMacIpRange interface { - // ToProto marshals BgpCMacIpRange to protobuf object *otg.BgpCMacIpRange - ToProto() (*otg.BgpCMacIpRange, error) - // ToPbText marshals BgpCMacIpRange to protobuf text +type marshalbgpSrteSegmentETypeSubTlv struct { + obj *bgpSrteSegmentETypeSubTlv +} + +type marshalBgpSrteSegmentETypeSubTlv interface { + // ToProto marshals BgpSrteSegmentETypeSubTlv to protobuf object *otg.BgpSrteSegmentETypeSubTlv + ToProto() (*otg.BgpSrteSegmentETypeSubTlv, error) + // ToPbText marshals BgpSrteSegmentETypeSubTlv to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpCMacIpRange to YAML text + // ToYaml marshals BgpSrteSegmentETypeSubTlv to YAML text ToYaml() (string, error) - // ToJson marshals BgpCMacIpRange to JSON text + // ToJson marshals BgpSrteSegmentETypeSubTlv to JSON text ToJson() (string, error) } -type unMarshalbgpCMacIpRange struct { - obj *bgpCMacIpRange +type unMarshalbgpSrteSegmentETypeSubTlv struct { + obj *bgpSrteSegmentETypeSubTlv } -type unMarshalBgpCMacIpRange interface { - // FromProto unmarshals BgpCMacIpRange from protobuf object *otg.BgpCMacIpRange - FromProto(msg *otg.BgpCMacIpRange) (BgpCMacIpRange, error) - // FromPbText unmarshals BgpCMacIpRange from protobuf text +type unMarshalBgpSrteSegmentETypeSubTlv interface { + // FromProto unmarshals BgpSrteSegmentETypeSubTlv from protobuf object *otg.BgpSrteSegmentETypeSubTlv + FromProto(msg *otg.BgpSrteSegmentETypeSubTlv) (BgpSrteSegmentETypeSubTlv, error) + // FromPbText unmarshals BgpSrteSegmentETypeSubTlv from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpCMacIpRange from YAML text + // FromYaml unmarshals BgpSrteSegmentETypeSubTlv from YAML text FromYaml(value string) error - // FromJson unmarshals BgpCMacIpRange from JSON text + // FromJson unmarshals BgpSrteSegmentETypeSubTlv from JSON text FromJson(value string) error } -func (obj *bgpCMacIpRange) Marshal() marshalBgpCMacIpRange { +func (obj *bgpSrteSegmentETypeSubTlv) Marshal() marshalBgpSrteSegmentETypeSubTlv { if obj.marshaller == nil { - obj.marshaller = &marshalbgpCMacIpRange{obj: obj} + obj.marshaller = &marshalbgpSrteSegmentETypeSubTlv{obj: obj} } return obj.marshaller } -func (obj *bgpCMacIpRange) Unmarshal() unMarshalBgpCMacIpRange { +func (obj *bgpSrteSegmentETypeSubTlv) Unmarshal() unMarshalBgpSrteSegmentETypeSubTlv { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpCMacIpRange{obj: obj} + obj.unMarshaller = &unMarshalbgpSrteSegmentETypeSubTlv{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpCMacIpRange) ToProto() (*otg.BgpCMacIpRange, error) { +func (m *marshalbgpSrteSegmentETypeSubTlv) ToProto() (*otg.BgpSrteSegmentETypeSubTlv, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -345739,7 +359249,7 @@ func (m *marshalbgpCMacIpRange) ToProto() (*otg.BgpCMacIpRange, error) { return m.obj.msg(), nil } -func (m *unMarshalbgpCMacIpRange) FromProto(msg *otg.BgpCMacIpRange) (BgpCMacIpRange, error) { +func (m *unMarshalbgpSrteSegmentETypeSubTlv) FromProto(msg *otg.BgpSrteSegmentETypeSubTlv) (BgpSrteSegmentETypeSubTlv, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -345748,7 +359258,7 @@ func (m *unMarshalbgpCMacIpRange) FromProto(msg *otg.BgpCMacIpRange) (BgpCMacIpR return newObj, nil } -func (m *marshalbgpCMacIpRange) ToPbText() (string, error) { +func (m *marshalbgpSrteSegmentETypeSubTlv) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -345760,7 +359270,7 @@ func (m *marshalbgpCMacIpRange) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalbgpCMacIpRange) FromPbText(value string) error { +func (m *unMarshalbgpSrteSegmentETypeSubTlv) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj @@ -345773,7 +359283,7 @@ func (m *unMarshalbgpCMacIpRange) FromPbText(value string) error { return retObj } -func (m *marshalbgpCMacIpRange) ToYaml() (string, error) { +func (m *marshalbgpSrteSegmentETypeSubTlv) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -345794,7 +359304,7 @@ func (m *marshalbgpCMacIpRange) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalbgpCMacIpRange) FromYaml(value string) error { +func (m *unMarshalbgpSrteSegmentETypeSubTlv) FromYaml(value string) error { if value == "" { value = "{}" } @@ -345819,7 +359329,7 @@ func (m *unMarshalbgpCMacIpRange) FromYaml(value string) error { return nil } -func (m *marshalbgpCMacIpRange) ToJson() (string, error) { +func (m *marshalbgpSrteSegmentETypeSubTlv) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -345837,7 +359347,7 @@ func (m *marshalbgpCMacIpRange) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalbgpCMacIpRange) FromJson(value string) error { +func (m *unMarshalbgpSrteSegmentETypeSubTlv) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -345858,19 +359368,19 @@ func (m *unMarshalbgpCMacIpRange) FromJson(value string) error { return nil } -func (obj *bgpCMacIpRange) validateToAndFrom() error { +func (obj *bgpSrteSegmentETypeSubTlv) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpCMacIpRange) validate() error { +func (obj *bgpSrteSegmentETypeSubTlv) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpCMacIpRange) String() string { +func (obj *bgpSrteSegmentETypeSubTlv) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -345878,12 +359388,12 @@ func (obj *bgpCMacIpRange) String() string { return str } -func (obj *bgpCMacIpRange) Clone() (BgpCMacIpRange, error) { +func (obj *bgpSrteSegmentETypeSubTlv) Clone() (BgpSrteSegmentETypeSubTlv, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpCMacIpRange() + newObj := NewBgpSrteSegmentETypeSubTlv() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -345895,676 +359405,681 @@ func (obj *bgpCMacIpRange) Clone() (BgpCMacIpRange, error) { return newObj, nil } -func (obj *bgpCMacIpRange) setNil() { - obj.macAddressesHolder = nil - obj.ipv4AddressesHolder = nil - obj.ipv6AddressesHolder = nil - obj.advancedHolder = nil - obj.communitiesHolder = nil - obj.extCommunitiesHolder = nil - obj.asPathHolder = nil +func (obj *bgpSrteSegmentETypeSubTlv) setNil() { + obj.srMplsSidHolder = nil obj.validationErrors = nil obj.warnings = nil obj.constraints = make(map[string]map[string]Constraints) } -// BgpCMacIpRange is configuration for MAC/IP Ranges per Broadcast Domain. -// -// Advertises following route - -// -// Type 2 - MAC/IP Advertisement Route. -type BgpCMacIpRange interface { +// BgpSrteSegmentETypeSubTlv is type E: IPv4 Address and Local Interface ID with optional SID +type BgpSrteSegmentETypeSubTlv interface { Validation - // msg marshals BgpCMacIpRange to protobuf object *otg.BgpCMacIpRange + // msg marshals BgpSrteSegmentETypeSubTlv to protobuf object *otg.BgpSrteSegmentETypeSubTlv // and doesn't set defaults - msg() *otg.BgpCMacIpRange - // setMsg unmarshals BgpCMacIpRange from protobuf object *otg.BgpCMacIpRange + msg() *otg.BgpSrteSegmentETypeSubTlv + // setMsg unmarshals BgpSrteSegmentETypeSubTlv from protobuf object *otg.BgpSrteSegmentETypeSubTlv // and doesn't set defaults - setMsg(*otg.BgpCMacIpRange) BgpCMacIpRange + setMsg(*otg.BgpSrteSegmentETypeSubTlv) BgpSrteSegmentETypeSubTlv // provides marshal interface - Marshal() marshalBgpCMacIpRange + Marshal() marshalBgpSrteSegmentETypeSubTlv // provides unmarshal interface - Unmarshal() unMarshalBgpCMacIpRange - // validate validates BgpCMacIpRange + Unmarshal() unMarshalBgpSrteSegmentETypeSubTlv + // validate validates BgpSrteSegmentETypeSubTlv validate() error // A stringer function String() string // Clones the object - Clone() (BgpCMacIpRange, error) + Clone() (BgpSrteSegmentETypeSubTlv, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // MacAddresses returns MACRouteAddress, set in BgpCMacIpRange. - // MACRouteAddress is a container for MAC route addresses. - MacAddresses() MACRouteAddress - // SetMacAddresses assigns MACRouteAddress provided by user to BgpCMacIpRange. - // MACRouteAddress is a container for MAC route addresses. - SetMacAddresses(value MACRouteAddress) BgpCMacIpRange - // HasMacAddresses checks if MacAddresses has been set in BgpCMacIpRange - HasMacAddresses() bool - // L2Vni returns uint32, set in BgpCMacIpRange. - L2Vni() uint32 - // SetL2Vni assigns uint32 provided by user to BgpCMacIpRange - SetL2Vni(value uint32) BgpCMacIpRange - // HasL2Vni checks if L2Vni has been set in BgpCMacIpRange - HasL2Vni() bool - // Ipv4Addresses returns V4RouteAddress, set in BgpCMacIpRange. - // V4RouteAddress is a container for IPv4 route addresses. - Ipv4Addresses() V4RouteAddress - // SetIpv4Addresses assigns V4RouteAddress provided by user to BgpCMacIpRange. - // V4RouteAddress is a container for IPv4 route addresses. - SetIpv4Addresses(value V4RouteAddress) BgpCMacIpRange - // HasIpv4Addresses checks if Ipv4Addresses has been set in BgpCMacIpRange - HasIpv4Addresses() bool - // Ipv6Addresses returns V6RouteAddress, set in BgpCMacIpRange. - // V6RouteAddress is a container for IPv6 route addresses. - Ipv6Addresses() V6RouteAddress - // SetIpv6Addresses assigns V6RouteAddress provided by user to BgpCMacIpRange. - // V6RouteAddress is a container for IPv6 route addresses. - SetIpv6Addresses(value V6RouteAddress) BgpCMacIpRange - // HasIpv6Addresses checks if Ipv6Addresses has been set in BgpCMacIpRange - HasIpv6Addresses() bool - // L3Vni returns uint32, set in BgpCMacIpRange. - L3Vni() uint32 - // SetL3Vni assigns uint32 provided by user to BgpCMacIpRange - SetL3Vni(value uint32) BgpCMacIpRange - // HasL3Vni checks if L3Vni has been set in BgpCMacIpRange - HasL3Vni() bool - // IncludeDefaultGateway returns bool, set in BgpCMacIpRange. - IncludeDefaultGateway() bool - // SetIncludeDefaultGateway assigns bool provided by user to BgpCMacIpRange - SetIncludeDefaultGateway(value bool) BgpCMacIpRange - // HasIncludeDefaultGateway checks if IncludeDefaultGateway has been set in BgpCMacIpRange - HasIncludeDefaultGateway() bool - // Advanced returns BgpRouteAdvanced, set in BgpCMacIpRange. - // BgpRouteAdvanced is configuration for advanced BGP route range settings. - Advanced() BgpRouteAdvanced - // SetAdvanced assigns BgpRouteAdvanced provided by user to BgpCMacIpRange. - // BgpRouteAdvanced is configuration for advanced BGP route range settings. - SetAdvanced(value BgpRouteAdvanced) BgpCMacIpRange - // HasAdvanced checks if Advanced has been set in BgpCMacIpRange - HasAdvanced() bool - // Communities returns BgpCMacIpRangeBgpCommunityIterIter, set in BgpCMacIpRange - Communities() BgpCMacIpRangeBgpCommunityIter - // ExtCommunities returns BgpCMacIpRangeBgpExtCommunityIterIter, set in BgpCMacIpRange - ExtCommunities() BgpCMacIpRangeBgpExtCommunityIter - // AsPath returns BgpAsPath, set in BgpCMacIpRange. - // BgpAsPath is this attribute identifies the autonomous systems through which routing information carried in this UPDATE message has passed. This contains the configuration of how to include the Local AS in the AS path attribute of the MP REACH NLRI. It also contains optional configuration of additional AS Path Segments that can be included in the AS Path attribute. The AS Path consists of a Set or Sequence of Autonomous Systems (AS) numbers that a routing information passes through to reach the destination. - AsPath() BgpAsPath - // SetAsPath assigns BgpAsPath provided by user to BgpCMacIpRange. - // BgpAsPath is this attribute identifies the autonomous systems through which routing information carried in this UPDATE message has passed. This contains the configuration of how to include the Local AS in the AS path attribute of the MP REACH NLRI. It also contains optional configuration of additional AS Path Segments that can be included in the AS Path attribute. The AS Path consists of a Set or Sequence of Autonomous Systems (AS) numbers that a routing information passes through to reach the destination. - SetAsPath(value BgpAsPath) BgpCMacIpRange - // HasAsPath checks if AsPath has been set in BgpCMacIpRange - HasAsPath() bool - // Name returns string, set in BgpCMacIpRange. - Name() string - // SetName assigns string provided by user to BgpCMacIpRange - SetName(value string) BgpCMacIpRange + // Flags returns string, set in BgpSrteSegmentETypeSubTlv. + Flags() string + // SetFlags assigns string provided by user to BgpSrteSegmentETypeSubTlv + SetFlags(value string) BgpSrteSegmentETypeSubTlv + // HasFlags checks if Flags has been set in BgpSrteSegmentETypeSubTlv + HasFlags() bool + // LocalInterfaceId returns uint32, set in BgpSrteSegmentETypeSubTlv. + LocalInterfaceId() uint32 + // SetLocalInterfaceId assigns uint32 provided by user to BgpSrteSegmentETypeSubTlv + SetLocalInterfaceId(value uint32) BgpSrteSegmentETypeSubTlv + // HasLocalInterfaceId checks if LocalInterfaceId has been set in BgpSrteSegmentETypeSubTlv + HasLocalInterfaceId() bool + // Ipv4NodeAddress returns string, set in BgpSrteSegmentETypeSubTlv. + Ipv4NodeAddress() string + // SetIpv4NodeAddress assigns string provided by user to BgpSrteSegmentETypeSubTlv + SetIpv4NodeAddress(value string) BgpSrteSegmentETypeSubTlv + // SrMplsSid returns BgpSrteSrMplsSid, set in BgpSrteSegmentETypeSubTlv. + // BgpSrteSrMplsSid is configuration for SR-MPLS with Label, TC, Bottom-of-Stack and TTL. + SrMplsSid() BgpSrteSrMplsSid + // SetSrMplsSid assigns BgpSrteSrMplsSid provided by user to BgpSrteSegmentETypeSubTlv. + // BgpSrteSrMplsSid is configuration for SR-MPLS with Label, TC, Bottom-of-Stack and TTL. + SetSrMplsSid(value BgpSrteSrMplsSid) BgpSrteSegmentETypeSubTlv + // HasSrMplsSid checks if SrMplsSid has been set in BgpSrteSegmentETypeSubTlv + HasSrMplsSid() bool setNil() } -// Host MAC address range per Broadcast Domain. -// MacAddresses returns a MACRouteAddress -func (obj *bgpCMacIpRange) MacAddresses() MACRouteAddress { - if obj.obj.MacAddresses == nil { - obj.obj.MacAddresses = NewMACRouteAddress().msg() - } - if obj.macAddressesHolder == nil { - obj.macAddressesHolder = &mACRouteAddress{obj: obj.obj.MacAddresses} - } - return obj.macAddressesHolder -} +// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 +// Flags returns a string +func (obj *bgpSrteSegmentETypeSubTlv) Flags() string { + + return *obj.obj.Flags -// Host MAC address range per Broadcast Domain. -// MacAddresses returns a MACRouteAddress -func (obj *bgpCMacIpRange) HasMacAddresses() bool { - return obj.obj.MacAddresses != nil } -// Host MAC address range per Broadcast Domain. -// SetMacAddresses sets the MACRouteAddress value in the BgpCMacIpRange object -func (obj *bgpCMacIpRange) SetMacAddresses(value MACRouteAddress) BgpCMacIpRange { +// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 +// Flags returns a string +func (obj *bgpSrteSegmentETypeSubTlv) HasFlags() bool { + return obj.obj.Flags != nil +} - obj.macAddressesHolder = nil - obj.obj.MacAddresses = value.msg() +// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 +// SetFlags sets the string value in the BgpSrteSegmentETypeSubTlv object +func (obj *bgpSrteSegmentETypeSubTlv) SetFlags(value string) BgpSrteSegmentETypeSubTlv { + obj.obj.Flags = &value return obj } -// Layer 2 Virtual Network Identifier (L2VNI) to be advertised with MAC/IP Advertisement Route (Type 2) -// L2Vni returns a uint32 -func (obj *bgpCMacIpRange) L2Vni() uint32 { +// Local Interface ID: The Interface Index as defined in [RFC8664]. +// LocalInterfaceId returns a uint32 +func (obj *bgpSrteSegmentETypeSubTlv) LocalInterfaceId() uint32 { - return *obj.obj.L2Vni + return *obj.obj.LocalInterfaceId } -// Layer 2 Virtual Network Identifier (L2VNI) to be advertised with MAC/IP Advertisement Route (Type 2) -// L2Vni returns a uint32 -func (obj *bgpCMacIpRange) HasL2Vni() bool { - return obj.obj.L2Vni != nil +// Local Interface ID: The Interface Index as defined in [RFC8664]. +// LocalInterfaceId returns a uint32 +func (obj *bgpSrteSegmentETypeSubTlv) HasLocalInterfaceId() bool { + return obj.obj.LocalInterfaceId != nil } -// Layer 2 Virtual Network Identifier (L2VNI) to be advertised with MAC/IP Advertisement Route (Type 2) -// SetL2Vni sets the uint32 value in the BgpCMacIpRange object -func (obj *bgpCMacIpRange) SetL2Vni(value uint32) BgpCMacIpRange { +// Local Interface ID: The Interface Index as defined in [RFC8664]. +// SetLocalInterfaceId sets the uint32 value in the BgpSrteSegmentETypeSubTlv object +func (obj *bgpSrteSegmentETypeSubTlv) SetLocalInterfaceId(value uint32) BgpSrteSegmentETypeSubTlv { - obj.obj.L2Vni = &value + obj.obj.LocalInterfaceId = &value return obj } -// Host IPv4 address range per Broadcast Domain. -// Ipv4Addresses returns a V4RouteAddress -func (obj *bgpCMacIpRange) Ipv4Addresses() V4RouteAddress { - if obj.obj.Ipv4Addresses == nil { - obj.obj.Ipv4Addresses = NewV4RouteAddress().msg() - } - if obj.ipv4AddressesHolder == nil { - obj.ipv4AddressesHolder = &v4RouteAddress{obj: obj.obj.Ipv4Addresses} - } - return obj.ipv4AddressesHolder -} +// IPv4 address representing a node. +// Ipv4NodeAddress returns a string +func (obj *bgpSrteSegmentETypeSubTlv) Ipv4NodeAddress() string { -// Host IPv4 address range per Broadcast Domain. -// Ipv4Addresses returns a V4RouteAddress -func (obj *bgpCMacIpRange) HasIpv4Addresses() bool { - return obj.obj.Ipv4Addresses != nil -} + return *obj.obj.Ipv4NodeAddress -// Host IPv4 address range per Broadcast Domain. -// SetIpv4Addresses sets the V4RouteAddress value in the BgpCMacIpRange object -func (obj *bgpCMacIpRange) SetIpv4Addresses(value V4RouteAddress) BgpCMacIpRange { +} - obj.ipv4AddressesHolder = nil - obj.obj.Ipv4Addresses = value.msg() +// IPv4 address representing a node. +// SetIpv4NodeAddress sets the string value in the BgpSrteSegmentETypeSubTlv object +func (obj *bgpSrteSegmentETypeSubTlv) SetIpv4NodeAddress(value string) BgpSrteSegmentETypeSubTlv { + obj.obj.Ipv4NodeAddress = &value return obj } -// Host IPv6 address range per Broadcast Domain. -// Ipv6Addresses returns a V6RouteAddress -func (obj *bgpCMacIpRange) Ipv6Addresses() V6RouteAddress { - if obj.obj.Ipv6Addresses == nil { - obj.obj.Ipv6Addresses = NewV6RouteAddress().msg() +// Optional SR-MPLS SID. +// SrMplsSid returns a BgpSrteSrMplsSid +func (obj *bgpSrteSegmentETypeSubTlv) SrMplsSid() BgpSrteSrMplsSid { + if obj.obj.SrMplsSid == nil { + obj.obj.SrMplsSid = NewBgpSrteSrMplsSid().msg() } - if obj.ipv6AddressesHolder == nil { - obj.ipv6AddressesHolder = &v6RouteAddress{obj: obj.obj.Ipv6Addresses} + if obj.srMplsSidHolder == nil { + obj.srMplsSidHolder = &bgpSrteSrMplsSid{obj: obj.obj.SrMplsSid} } - return obj.ipv6AddressesHolder + return obj.srMplsSidHolder } -// Host IPv6 address range per Broadcast Domain. -// Ipv6Addresses returns a V6RouteAddress -func (obj *bgpCMacIpRange) HasIpv6Addresses() bool { - return obj.obj.Ipv6Addresses != nil +// Optional SR-MPLS SID. +// SrMplsSid returns a BgpSrteSrMplsSid +func (obj *bgpSrteSegmentETypeSubTlv) HasSrMplsSid() bool { + return obj.obj.SrMplsSid != nil } -// Host IPv6 address range per Broadcast Domain. -// SetIpv6Addresses sets the V6RouteAddress value in the BgpCMacIpRange object -func (obj *bgpCMacIpRange) SetIpv6Addresses(value V6RouteAddress) BgpCMacIpRange { +// Optional SR-MPLS SID. +// SetSrMplsSid sets the BgpSrteSrMplsSid value in the BgpSrteSegmentETypeSubTlv object +func (obj *bgpSrteSegmentETypeSubTlv) SetSrMplsSid(value BgpSrteSrMplsSid) BgpSrteSegmentETypeSubTlv { - obj.ipv6AddressesHolder = nil - obj.obj.Ipv6Addresses = value.msg() + obj.srMplsSidHolder = nil + obj.obj.SrMplsSid = value.msg() return obj } -// Layer 3 Virtual Network Identifier (L3VNI) to be advertised with MAC/IP Advertisement Route (Type 2). -// L3Vni returns a uint32 -func (obj *bgpCMacIpRange) L3Vni() uint32 { +func (obj *bgpSrteSegmentETypeSubTlv) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } - return *obj.obj.L3Vni + if obj.obj.Flags != nil { -} + err := obj.validateHex(obj.Flags()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentETypeSubTlv.Flags")) + } -// Layer 3 Virtual Network Identifier (L3VNI) to be advertised with MAC/IP Advertisement Route (Type 2). -// L3Vni returns a uint32 -func (obj *bgpCMacIpRange) HasL3Vni() bool { - return obj.obj.L3Vni != nil -} + } -// Layer 3 Virtual Network Identifier (L3VNI) to be advertised with MAC/IP Advertisement Route (Type 2). -// SetL3Vni sets the uint32 value in the BgpCMacIpRange object -func (obj *bgpCMacIpRange) SetL3Vni(value uint32) BgpCMacIpRange { + // Ipv4NodeAddress is required + if obj.obj.Ipv4NodeAddress == nil { + vObj.validationErrors = append(vObj.validationErrors, "Ipv4NodeAddress is required field on interface BgpSrteSegmentETypeSubTlv") + } + if obj.obj.Ipv4NodeAddress != nil { - obj.obj.L3Vni = &value - return obj -} + err := obj.validateIpv4(obj.Ipv4NodeAddress()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentETypeSubTlv.Ipv4NodeAddress")) + } -// Include default Gateway Extended Community in MAC/IP Advertisement Route (Type 2). -// IncludeDefaultGateway returns a bool -func (obj *bgpCMacIpRange) IncludeDefaultGateway() bool { + } - return *obj.obj.IncludeDefaultGateway + if obj.obj.SrMplsSid != nil { -} + obj.SrMplsSid().validateObj(vObj, set_default) + } -// Include default Gateway Extended Community in MAC/IP Advertisement Route (Type 2). -// IncludeDefaultGateway returns a bool -func (obj *bgpCMacIpRange) HasIncludeDefaultGateway() bool { - return obj.obj.IncludeDefaultGateway != nil } -// Include default Gateway Extended Community in MAC/IP Advertisement Route (Type 2). -// SetIncludeDefaultGateway sets the bool value in the BgpCMacIpRange object -func (obj *bgpCMacIpRange) SetIncludeDefaultGateway(value bool) BgpCMacIpRange { +func (obj *bgpSrteSegmentETypeSubTlv) setDefault() { + if obj.obj.LocalInterfaceId == nil { + obj.SetLocalInterfaceId(0) + } - obj.obj.IncludeDefaultGateway = &value - return obj } -// description is TBD -// Advanced returns a BgpRouteAdvanced -func (obj *bgpCMacIpRange) Advanced() BgpRouteAdvanced { - if obj.obj.Advanced == nil { - obj.obj.Advanced = NewBgpRouteAdvanced().msg() - } - if obj.advancedHolder == nil { - obj.advancedHolder = &bgpRouteAdvanced{obj: obj.obj.Advanced} - } - return obj.advancedHolder +// ***** BgpSrteSegmentFTypeSubTlv ***** +type bgpSrteSegmentFTypeSubTlv struct { + validation + obj *otg.BgpSrteSegmentFTypeSubTlv + marshaller marshalBgpSrteSegmentFTypeSubTlv + unMarshaller unMarshalBgpSrteSegmentFTypeSubTlv + srMplsSidHolder BgpSrteSrMplsSid } -// description is TBD -// Advanced returns a BgpRouteAdvanced -func (obj *bgpCMacIpRange) HasAdvanced() bool { - return obj.obj.Advanced != nil +func NewBgpSrteSegmentFTypeSubTlv() BgpSrteSegmentFTypeSubTlv { + obj := bgpSrteSegmentFTypeSubTlv{obj: &otg.BgpSrteSegmentFTypeSubTlv{}} + obj.setDefault() + return &obj } -// description is TBD -// SetAdvanced sets the BgpRouteAdvanced value in the BgpCMacIpRange object -func (obj *bgpCMacIpRange) SetAdvanced(value BgpRouteAdvanced) BgpCMacIpRange { - - obj.advancedHolder = nil - obj.obj.Advanced = value.msg() +func (obj *bgpSrteSegmentFTypeSubTlv) msg() *otg.BgpSrteSegmentFTypeSubTlv { + return obj.obj +} +func (obj *bgpSrteSegmentFTypeSubTlv) setMsg(msg *otg.BgpSrteSegmentFTypeSubTlv) BgpSrteSegmentFTypeSubTlv { + obj.setNil() + proto.Merge(obj.obj, msg) return obj } -// Optional community settings. -// Communities returns a []BgpCommunity -func (obj *bgpCMacIpRange) Communities() BgpCMacIpRangeBgpCommunityIter { - if len(obj.obj.Communities) == 0 { - obj.obj.Communities = []*otg.BgpCommunity{} - } - if obj.communitiesHolder == nil { - obj.communitiesHolder = newBgpCMacIpRangeBgpCommunityIter(&obj.obj.Communities).setMsg(obj) - } - return obj.communitiesHolder +type marshalbgpSrteSegmentFTypeSubTlv struct { + obj *bgpSrteSegmentFTypeSubTlv } -type bgpCMacIpRangeBgpCommunityIter struct { - obj *bgpCMacIpRange - bgpCommunitySlice []BgpCommunity - fieldPtr *[]*otg.BgpCommunity +type marshalBgpSrteSegmentFTypeSubTlv interface { + // ToProto marshals BgpSrteSegmentFTypeSubTlv to protobuf object *otg.BgpSrteSegmentFTypeSubTlv + ToProto() (*otg.BgpSrteSegmentFTypeSubTlv, error) + // ToPbText marshals BgpSrteSegmentFTypeSubTlv to protobuf text + ToPbText() (string, error) + // ToYaml marshals BgpSrteSegmentFTypeSubTlv to YAML text + ToYaml() (string, error) + // ToJson marshals BgpSrteSegmentFTypeSubTlv to JSON text + ToJson() (string, error) } -func newBgpCMacIpRangeBgpCommunityIter(ptr *[]*otg.BgpCommunity) BgpCMacIpRangeBgpCommunityIter { - return &bgpCMacIpRangeBgpCommunityIter{fieldPtr: ptr} +type unMarshalbgpSrteSegmentFTypeSubTlv struct { + obj *bgpSrteSegmentFTypeSubTlv } -type BgpCMacIpRangeBgpCommunityIter interface { - setMsg(*bgpCMacIpRange) BgpCMacIpRangeBgpCommunityIter - Items() []BgpCommunity - Add() BgpCommunity - Append(items ...BgpCommunity) BgpCMacIpRangeBgpCommunityIter - Set(index int, newObj BgpCommunity) BgpCMacIpRangeBgpCommunityIter - Clear() BgpCMacIpRangeBgpCommunityIter - clearHolderSlice() BgpCMacIpRangeBgpCommunityIter - appendHolderSlice(item BgpCommunity) BgpCMacIpRangeBgpCommunityIter +type unMarshalBgpSrteSegmentFTypeSubTlv interface { + // FromProto unmarshals BgpSrteSegmentFTypeSubTlv from protobuf object *otg.BgpSrteSegmentFTypeSubTlv + FromProto(msg *otg.BgpSrteSegmentFTypeSubTlv) (BgpSrteSegmentFTypeSubTlv, error) + // FromPbText unmarshals BgpSrteSegmentFTypeSubTlv from protobuf text + FromPbText(value string) error + // FromYaml unmarshals BgpSrteSegmentFTypeSubTlv from YAML text + FromYaml(value string) error + // FromJson unmarshals BgpSrteSegmentFTypeSubTlv from JSON text + FromJson(value string) error } -func (obj *bgpCMacIpRangeBgpCommunityIter) setMsg(msg *bgpCMacIpRange) BgpCMacIpRangeBgpCommunityIter { - obj.clearHolderSlice() - for _, val := range *obj.fieldPtr { - obj.appendHolderSlice(&bgpCommunity{obj: val}) +func (obj *bgpSrteSegmentFTypeSubTlv) Marshal() marshalBgpSrteSegmentFTypeSubTlv { + if obj.marshaller == nil { + obj.marshaller = &marshalbgpSrteSegmentFTypeSubTlv{obj: obj} } - obj.obj = msg - return obj + return obj.marshaller } -func (obj *bgpCMacIpRangeBgpCommunityIter) Items() []BgpCommunity { - return obj.bgpCommunitySlice +func (obj *bgpSrteSegmentFTypeSubTlv) Unmarshal() unMarshalBgpSrteSegmentFTypeSubTlv { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshalbgpSrteSegmentFTypeSubTlv{obj: obj} + } + return obj.unMarshaller } -func (obj *bgpCMacIpRangeBgpCommunityIter) Add() BgpCommunity { - newObj := &otg.BgpCommunity{} - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - newLibObj := &bgpCommunity{obj: newObj} - newLibObj.setDefault() - obj.bgpCommunitySlice = append(obj.bgpCommunitySlice, newLibObj) - return newLibObj +func (m *marshalbgpSrteSegmentFTypeSubTlv) ToProto() (*otg.BgpSrteSegmentFTypeSubTlv, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil } -func (obj *bgpCMacIpRangeBgpCommunityIter) Append(items ...BgpCommunity) BgpCMacIpRangeBgpCommunityIter { - for _, item := range items { - newObj := item.msg() - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - obj.bgpCommunitySlice = append(obj.bgpCommunitySlice, item) +func (m *unMarshalbgpSrteSegmentFTypeSubTlv) FromProto(msg *otg.BgpSrteSegmentFTypeSubTlv) (BgpSrteSegmentFTypeSubTlv, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err } - return obj + return newObj, nil } -func (obj *bgpCMacIpRangeBgpCommunityIter) Set(index int, newObj BgpCommunity) BgpCMacIpRangeBgpCommunityIter { - (*obj.fieldPtr)[index] = newObj.msg() - obj.bgpCommunitySlice[index] = newObj - return obj -} -func (obj *bgpCMacIpRangeBgpCommunityIter) Clear() BgpCMacIpRangeBgpCommunityIter { - if len(*obj.fieldPtr) > 0 { - *obj.fieldPtr = []*otg.BgpCommunity{} - obj.bgpCommunitySlice = []BgpCommunity{} +func (m *marshalbgpSrteSegmentFTypeSubTlv) ToPbText() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr } - return obj -} -func (obj *bgpCMacIpRangeBgpCommunityIter) clearHolderSlice() BgpCMacIpRangeBgpCommunityIter { - if len(obj.bgpCommunitySlice) > 0 { - obj.bgpCommunitySlice = []BgpCommunity{} + protoMarshal, err := proto.Marshal(m.obj.msg()) + if err != nil { + return "", err } - return obj -} -func (obj *bgpCMacIpRangeBgpCommunityIter) appendHolderSlice(item BgpCommunity) BgpCMacIpRangeBgpCommunityIter { - obj.bgpCommunitySlice = append(obj.bgpCommunitySlice, item) - return obj + return string(protoMarshal), nil } -// Optional Extended Community settings. The Extended Communities Attribute is a transitive optional BGP attribute, with the Type Code 16. Community and Extended Communities attributes are utilized to trigger routing decisions, such as acceptance, rejection, preference, or redistribution. An extended community is an 8-Bytes value. It is divided into two main parts. The first 2 Bytes of the community encode a type and sub-type fields and the last 6 Bytes carry a unique set of data in a format defined by the type and sub-type field. Extended communities provide a larger range for grouping or categorizing communities. When type is administrator_as_2octet or administrator_as_4octet, the valid sub types are route target and origin. The valid value for administrator_as_2octet and administrator_as_4octet type is either two byte AS followed by four byte local administrator id or four byte AS followed by two byte local administrator id. When type is administrator_ipv4_address the valid sub types are route target and origin. The valid value for administrator_ipv4_address is a four byte IPv4 address followed by a two byte local administrator id. When type is opaque, valid sub types are color and encapsulation. When sub type is color, first two bytes of the value field contain flags and last four bytes contains the value of the color. When sub type is encapsulation the first four bytes of value field are reserved and last two bytes carries the tunnel type from IANA's "ETHER TYPES" registry e.g IPv4 (protocol type = 0x0800), IPv6 (protocol type = 0x86dd), and MPLS (protocol type = 0x8847). When type is administrator_as_2octet_link_bandwidth the valid sub type is extended_bandwidth. The first two bytes of the value field contains the AS number and the last four bytes contains the bandwidth in IEEE floating point format. When type is evpn the valid subtype is mac_address. In the value field the low-order bit of the first byte(Flags) is defined as the "Sticky/static" flag and may be set to 1, indicating the MAC address is static and cannot move. The second byte is reserved and the last four bytes contain the sequence number which is used to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates occur for the same MAC address. -// ExtCommunities returns a []BgpExtCommunity -func (obj *bgpCMacIpRange) ExtCommunities() BgpCMacIpRangeBgpExtCommunityIter { - if len(obj.obj.ExtCommunities) == 0 { - obj.obj.ExtCommunities = []*otg.BgpExtCommunity{} +func (m *unMarshalbgpSrteSegmentFTypeSubTlv) FromPbText(value string) error { + retObj := proto.Unmarshal([]byte(value), m.obj.msg()) + if retObj != nil { + return retObj } - if obj.extCommunitiesHolder == nil { - obj.extCommunitiesHolder = newBgpCMacIpRangeBgpExtCommunityIter(&obj.obj.ExtCommunities).setMsg(obj) + m.obj.setNil() + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr } - return obj.extCommunitiesHolder + return retObj } -type bgpCMacIpRangeBgpExtCommunityIter struct { - obj *bgpCMacIpRange - bgpExtCommunitySlice []BgpExtCommunity - fieldPtr *[]*otg.BgpExtCommunity +func (m *marshalbgpSrteSegmentFTypeSubTlv) ToYaml() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + data, err = yaml.JSONToYAML(data) + if err != nil { + return "", err + } + return string(data), nil } -func newBgpCMacIpRangeBgpExtCommunityIter(ptr *[]*otg.BgpExtCommunity) BgpCMacIpRangeBgpExtCommunityIter { - return &bgpCMacIpRangeBgpExtCommunityIter{fieldPtr: ptr} +func (m *unMarshalbgpSrteSegmentFTypeSubTlv) FromYaml(value string) error { + if value == "" { + value = "{}" + } + data, err := yaml.YAMLToJSON([]byte(value)) + if err != nil { + return err + } + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, + } + uError := opts.Unmarshal([]byte(data), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + m.obj.setNil() + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return vErr + } + return nil } -type BgpCMacIpRangeBgpExtCommunityIter interface { - setMsg(*bgpCMacIpRange) BgpCMacIpRangeBgpExtCommunityIter - Items() []BgpExtCommunity - Add() BgpExtCommunity - Append(items ...BgpExtCommunity) BgpCMacIpRangeBgpExtCommunityIter - Set(index int, newObj BgpExtCommunity) BgpCMacIpRangeBgpExtCommunityIter - Clear() BgpCMacIpRangeBgpExtCommunityIter - clearHolderSlice() BgpCMacIpRangeBgpExtCommunityIter - appendHolderSlice(item BgpExtCommunity) BgpCMacIpRangeBgpExtCommunityIter +func (m *marshalbgpSrteSegmentFTypeSubTlv) ToJson() (string, error) { + vErr := m.obj.validateToAndFrom() + if vErr != nil { + return "", vErr + } + opts := protojson.MarshalOptions{ + UseProtoNames: true, + AllowPartial: true, + EmitUnpopulated: false, + Indent: " ", + } + data, err := opts.Marshal(m.obj.msg()) + if err != nil { + return "", err + } + return string(data), nil } -func (obj *bgpCMacIpRangeBgpExtCommunityIter) setMsg(msg *bgpCMacIpRange) BgpCMacIpRangeBgpExtCommunityIter { - obj.clearHolderSlice() - for _, val := range *obj.fieldPtr { - obj.appendHolderSlice(&bgpExtCommunity{obj: val}) +func (m *unMarshalbgpSrteSegmentFTypeSubTlv) FromJson(value string) error { + opts := protojson.UnmarshalOptions{ + AllowPartial: true, + DiscardUnknown: false, } - obj.obj = msg - return obj + if value == "" { + value = "{}" + } + uError := opts.Unmarshal([]byte(value), m.obj.msg()) + if uError != nil { + return fmt.Errorf("unmarshal error %s", strings.Replace( + uError.Error(), "\u00a0", " ", -1)[7:]) + } + m.obj.setNil() + err := m.obj.validateToAndFrom() + if err != nil { + return err + } + return nil } -func (obj *bgpCMacIpRangeBgpExtCommunityIter) Items() []BgpExtCommunity { - return obj.bgpExtCommunitySlice +func (obj *bgpSrteSegmentFTypeSubTlv) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() } -func (obj *bgpCMacIpRangeBgpExtCommunityIter) Add() BgpExtCommunity { - newObj := &otg.BgpExtCommunity{} - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - newLibObj := &bgpExtCommunity{obj: newObj} - newLibObj.setDefault() - obj.bgpExtCommunitySlice = append(obj.bgpExtCommunitySlice, newLibObj) - return newLibObj +func (obj *bgpSrteSegmentFTypeSubTlv) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() } -func (obj *bgpCMacIpRangeBgpExtCommunityIter) Append(items ...BgpExtCommunity) BgpCMacIpRangeBgpExtCommunityIter { - for _, item := range items { - newObj := item.msg() - *obj.fieldPtr = append(*obj.fieldPtr, newObj) - obj.bgpExtCommunitySlice = append(obj.bgpExtCommunitySlice, item) +func (obj *bgpSrteSegmentFTypeSubTlv) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() } - return obj + return str } -func (obj *bgpCMacIpRangeBgpExtCommunityIter) Set(index int, newObj BgpExtCommunity) BgpCMacIpRangeBgpExtCommunityIter { - (*obj.fieldPtr)[index] = newObj.msg() - obj.bgpExtCommunitySlice[index] = newObj - return obj -} -func (obj *bgpCMacIpRangeBgpExtCommunityIter) Clear() BgpCMacIpRangeBgpExtCommunityIter { - if len(*obj.fieldPtr) > 0 { - *obj.fieldPtr = []*otg.BgpExtCommunity{} - obj.bgpExtCommunitySlice = []BgpExtCommunity{} +func (obj *bgpSrteSegmentFTypeSubTlv) Clone() (BgpSrteSegmentFTypeSubTlv, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr } - return obj -} -func (obj *bgpCMacIpRangeBgpExtCommunityIter) clearHolderSlice() BgpCMacIpRangeBgpExtCommunityIter { - if len(obj.bgpExtCommunitySlice) > 0 { - obj.bgpExtCommunitySlice = []BgpExtCommunity{} + newObj := NewBgpSrteSegmentFTypeSubTlv() + data, err := proto.Marshal(obj.msg()) + if err != nil { + return nil, err } - return obj + pbErr := proto.Unmarshal(data, newObj.msg()) + if pbErr != nil { + return nil, pbErr + } + return newObj, nil } -func (obj *bgpCMacIpRangeBgpExtCommunityIter) appendHolderSlice(item BgpExtCommunity) BgpCMacIpRangeBgpExtCommunityIter { - obj.bgpExtCommunitySlice = append(obj.bgpExtCommunitySlice, item) - return obj + +func (obj *bgpSrteSegmentFTypeSubTlv) setNil() { + obj.srMplsSidHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) } -// Optional AS PATH settings. -// AsPath returns a BgpAsPath -func (obj *bgpCMacIpRange) AsPath() BgpAsPath { - if obj.obj.AsPath == nil { - obj.obj.AsPath = NewBgpAsPath().msg() - } - if obj.asPathHolder == nil { - obj.asPathHolder = &bgpAsPath{obj: obj.obj.AsPath} - } - return obj.asPathHolder +// BgpSrteSegmentFTypeSubTlv is type F: IPv4 Local and Remote addresses with optional SID. +type BgpSrteSegmentFTypeSubTlv interface { + Validation + // msg marshals BgpSrteSegmentFTypeSubTlv to protobuf object *otg.BgpSrteSegmentFTypeSubTlv + // and doesn't set defaults + msg() *otg.BgpSrteSegmentFTypeSubTlv + // setMsg unmarshals BgpSrteSegmentFTypeSubTlv from protobuf object *otg.BgpSrteSegmentFTypeSubTlv + // and doesn't set defaults + setMsg(*otg.BgpSrteSegmentFTypeSubTlv) BgpSrteSegmentFTypeSubTlv + // provides marshal interface + Marshal() marshalBgpSrteSegmentFTypeSubTlv + // provides unmarshal interface + Unmarshal() unMarshalBgpSrteSegmentFTypeSubTlv + // validate validates BgpSrteSegmentFTypeSubTlv + validate() error + // A stringer function + String() string + // Clones the object + Clone() (BgpSrteSegmentFTypeSubTlv, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Flags returns string, set in BgpSrteSegmentFTypeSubTlv. + Flags() string + // SetFlags assigns string provided by user to BgpSrteSegmentFTypeSubTlv + SetFlags(value string) BgpSrteSegmentFTypeSubTlv + // HasFlags checks if Flags has been set in BgpSrteSegmentFTypeSubTlv + HasFlags() bool + // LocalIpv4Address returns string, set in BgpSrteSegmentFTypeSubTlv. + LocalIpv4Address() string + // SetLocalIpv4Address assigns string provided by user to BgpSrteSegmentFTypeSubTlv + SetLocalIpv4Address(value string) BgpSrteSegmentFTypeSubTlv + // RemoteIpv4Address returns string, set in BgpSrteSegmentFTypeSubTlv. + RemoteIpv4Address() string + // SetRemoteIpv4Address assigns string provided by user to BgpSrteSegmentFTypeSubTlv + SetRemoteIpv4Address(value string) BgpSrteSegmentFTypeSubTlv + // SrMplsSid returns BgpSrteSrMplsSid, set in BgpSrteSegmentFTypeSubTlv. + // BgpSrteSrMplsSid is configuration for SR-MPLS with Label, TC, Bottom-of-Stack and TTL. + SrMplsSid() BgpSrteSrMplsSid + // SetSrMplsSid assigns BgpSrteSrMplsSid provided by user to BgpSrteSegmentFTypeSubTlv. + // BgpSrteSrMplsSid is configuration for SR-MPLS with Label, TC, Bottom-of-Stack and TTL. + SetSrMplsSid(value BgpSrteSrMplsSid) BgpSrteSegmentFTypeSubTlv + // HasSrMplsSid checks if SrMplsSid has been set in BgpSrteSegmentFTypeSubTlv + HasSrMplsSid() bool + setNil() } -// Optional AS PATH settings. -// AsPath returns a BgpAsPath -func (obj *bgpCMacIpRange) HasAsPath() bool { - return obj.obj.AsPath != nil +// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 +// Flags returns a string +func (obj *bgpSrteSegmentFTypeSubTlv) Flags() string { + + return *obj.obj.Flags + } -// Optional AS PATH settings. -// SetAsPath sets the BgpAsPath value in the BgpCMacIpRange object -func (obj *bgpCMacIpRange) SetAsPath(value BgpAsPath) BgpCMacIpRange { +// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 +// Flags returns a string +func (obj *bgpSrteSegmentFTypeSubTlv) HasFlags() bool { + return obj.obj.Flags != nil +} - obj.asPathHolder = nil - obj.obj.AsPath = value.msg() +// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 +// SetFlags sets the string value in the BgpSrteSegmentFTypeSubTlv object +func (obj *bgpSrteSegmentFTypeSubTlv) SetFlags(value string) BgpSrteSegmentFTypeSubTlv { + obj.obj.Flags = &value return obj } -// Globally unique name of an object. It also serves as the primary key for arrays of objects. -// Name returns a string -func (obj *bgpCMacIpRange) Name() string { +// Local IPv4 Address. +// LocalIpv4Address returns a string +func (obj *bgpSrteSegmentFTypeSubTlv) LocalIpv4Address() string { - return *obj.obj.Name + return *obj.obj.LocalIpv4Address } -// Globally unique name of an object. It also serves as the primary key for arrays of objects. -// SetName sets the string value in the BgpCMacIpRange object -func (obj *bgpCMacIpRange) SetName(value string) BgpCMacIpRange { +// Local IPv4 Address. +// SetLocalIpv4Address sets the string value in the BgpSrteSegmentFTypeSubTlv object +func (obj *bgpSrteSegmentFTypeSubTlv) SetLocalIpv4Address(value string) BgpSrteSegmentFTypeSubTlv { - obj.obj.Name = &value + obj.obj.LocalIpv4Address = &value return obj } -func (obj *bgpCMacIpRange) validateObj(vObj *validation, set_default bool) { - if set_default { - obj.setDefault() - } +// Remote IPv4 Address. +// RemoteIpv4Address returns a string +func (obj *bgpSrteSegmentFTypeSubTlv) RemoteIpv4Address() string { - if obj.obj.MacAddresses != nil { + return *obj.obj.RemoteIpv4Address - obj.MacAddresses().validateObj(vObj, set_default) - } +} - if obj.obj.L2Vni != nil { +// Remote IPv4 Address. +// SetRemoteIpv4Address sets the string value in the BgpSrteSegmentFTypeSubTlv object +func (obj *bgpSrteSegmentFTypeSubTlv) SetRemoteIpv4Address(value string) BgpSrteSegmentFTypeSubTlv { - if *obj.obj.L2Vni > 16777215 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= BgpCMacIpRange.L2Vni <= 16777215 but Got %d", *obj.obj.L2Vni)) - } + obj.obj.RemoteIpv4Address = &value + return obj +} +// Optional SR-MPLS SID. +// SrMplsSid returns a BgpSrteSrMplsSid +func (obj *bgpSrteSegmentFTypeSubTlv) SrMplsSid() BgpSrteSrMplsSid { + if obj.obj.SrMplsSid == nil { + obj.obj.SrMplsSid = NewBgpSrteSrMplsSid().msg() + } + if obj.srMplsSidHolder == nil { + obj.srMplsSidHolder = &bgpSrteSrMplsSid{obj: obj.obj.SrMplsSid} } + return obj.srMplsSidHolder +} - if obj.obj.Ipv4Addresses != nil { +// Optional SR-MPLS SID. +// SrMplsSid returns a BgpSrteSrMplsSid +func (obj *bgpSrteSegmentFTypeSubTlv) HasSrMplsSid() bool { + return obj.obj.SrMplsSid != nil +} - obj.Ipv4Addresses().validateObj(vObj, set_default) - } +// Optional SR-MPLS SID. +// SetSrMplsSid sets the BgpSrteSrMplsSid value in the BgpSrteSegmentFTypeSubTlv object +func (obj *bgpSrteSegmentFTypeSubTlv) SetSrMplsSid(value BgpSrteSrMplsSid) BgpSrteSegmentFTypeSubTlv { - if obj.obj.Ipv6Addresses != nil { + obj.srMplsSidHolder = nil + obj.obj.SrMplsSid = value.msg() - obj.Ipv6Addresses().validateObj(vObj, set_default) + return obj +} + +func (obj *bgpSrteSegmentFTypeSubTlv) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() } - if obj.obj.L3Vni != nil { + if obj.obj.Flags != nil { - if *obj.obj.L3Vni > 16777215 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= BgpCMacIpRange.L3Vni <= 16777215 but Got %d", *obj.obj.L3Vni)) + err := obj.validateHex(obj.Flags()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentFTypeSubTlv.Flags")) } } - if obj.obj.Advanced != nil { - - obj.Advanced().validateObj(vObj, set_default) + // LocalIpv4Address is required + if obj.obj.LocalIpv4Address == nil { + vObj.validationErrors = append(vObj.validationErrors, "LocalIpv4Address is required field on interface BgpSrteSegmentFTypeSubTlv") } + if obj.obj.LocalIpv4Address != nil { - if len(obj.obj.Communities) != 0 { - - if set_default { - obj.Communities().clearHolderSlice() - for _, item := range obj.obj.Communities { - obj.Communities().appendHolderSlice(&bgpCommunity{obj: item}) - } - } - for _, item := range obj.Communities().Items() { - item.validateObj(vObj, set_default) + err := obj.validateIpv4(obj.LocalIpv4Address()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentFTypeSubTlv.LocalIpv4Address")) } } - if len(obj.obj.ExtCommunities) != 0 { + // RemoteIpv4Address is required + if obj.obj.RemoteIpv4Address == nil { + vObj.validationErrors = append(vObj.validationErrors, "RemoteIpv4Address is required field on interface BgpSrteSegmentFTypeSubTlv") + } + if obj.obj.RemoteIpv4Address != nil { - if set_default { - obj.ExtCommunities().clearHolderSlice() - for _, item := range obj.obj.ExtCommunities { - obj.ExtCommunities().appendHolderSlice(&bgpExtCommunity{obj: item}) - } - } - for _, item := range obj.ExtCommunities().Items() { - item.validateObj(vObj, set_default) + err := obj.validateIpv4(obj.RemoteIpv4Address()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentFTypeSubTlv.RemoteIpv4Address")) } } - if obj.obj.AsPath != nil { + if obj.obj.SrMplsSid != nil { - obj.AsPath().validateObj(vObj, set_default) + obj.SrMplsSid().validateObj(vObj, set_default) } - // Name is required - if obj.obj.Name == nil { - vObj.validationErrors = append(vObj.validationErrors, "Name is required field on interface BgpCMacIpRange") - } } -func (obj *bgpCMacIpRange) setDefault() { - if obj.obj.L2Vni == nil { - obj.SetL2Vni(0) - } - if obj.obj.L3Vni == nil { - obj.SetL3Vni(0) - } - if obj.obj.IncludeDefaultGateway == nil { - obj.SetIncludeDefaultGateway(false) - } +func (obj *bgpSrteSegmentFTypeSubTlv) setDefault() { } -// ***** BgpSrteSegmentATypeSubTlv ***** -type bgpSrteSegmentATypeSubTlv struct { +// ***** BgpSrteSegmentGTypeSubTlv ***** +type bgpSrteSegmentGTypeSubTlv struct { validation - obj *otg.BgpSrteSegmentATypeSubTlv - marshaller marshalBgpSrteSegmentATypeSubTlv - unMarshaller unMarshalBgpSrteSegmentATypeSubTlv + obj *otg.BgpSrteSegmentGTypeSubTlv + marshaller marshalBgpSrteSegmentGTypeSubTlv + unMarshaller unMarshalBgpSrteSegmentGTypeSubTlv + srMplsSidHolder BgpSrteSrMplsSid } -func NewBgpSrteSegmentATypeSubTlv() BgpSrteSegmentATypeSubTlv { - obj := bgpSrteSegmentATypeSubTlv{obj: &otg.BgpSrteSegmentATypeSubTlv{}} +func NewBgpSrteSegmentGTypeSubTlv() BgpSrteSegmentGTypeSubTlv { + obj := bgpSrteSegmentGTypeSubTlv{obj: &otg.BgpSrteSegmentGTypeSubTlv{}} obj.setDefault() return &obj } -func (obj *bgpSrteSegmentATypeSubTlv) msg() *otg.BgpSrteSegmentATypeSubTlv { +func (obj *bgpSrteSegmentGTypeSubTlv) msg() *otg.BgpSrteSegmentGTypeSubTlv { return obj.obj } -func (obj *bgpSrteSegmentATypeSubTlv) setMsg(msg *otg.BgpSrteSegmentATypeSubTlv) BgpSrteSegmentATypeSubTlv { - +func (obj *bgpSrteSegmentGTypeSubTlv) setMsg(msg *otg.BgpSrteSegmentGTypeSubTlv) BgpSrteSegmentGTypeSubTlv { + obj.setNil() proto.Merge(obj.obj, msg) return obj } -type marshalbgpSrteSegmentATypeSubTlv struct { - obj *bgpSrteSegmentATypeSubTlv +type marshalbgpSrteSegmentGTypeSubTlv struct { + obj *bgpSrteSegmentGTypeSubTlv } -type marshalBgpSrteSegmentATypeSubTlv interface { - // ToProto marshals BgpSrteSegmentATypeSubTlv to protobuf object *otg.BgpSrteSegmentATypeSubTlv - ToProto() (*otg.BgpSrteSegmentATypeSubTlv, error) - // ToPbText marshals BgpSrteSegmentATypeSubTlv to protobuf text +type marshalBgpSrteSegmentGTypeSubTlv interface { + // ToProto marshals BgpSrteSegmentGTypeSubTlv to protobuf object *otg.BgpSrteSegmentGTypeSubTlv + ToProto() (*otg.BgpSrteSegmentGTypeSubTlv, error) + // ToPbText marshals BgpSrteSegmentGTypeSubTlv to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpSrteSegmentATypeSubTlv to YAML text + // ToYaml marshals BgpSrteSegmentGTypeSubTlv to YAML text ToYaml() (string, error) - // ToJson marshals BgpSrteSegmentATypeSubTlv to JSON text + // ToJson marshals BgpSrteSegmentGTypeSubTlv to JSON text ToJson() (string, error) } -type unMarshalbgpSrteSegmentATypeSubTlv struct { - obj *bgpSrteSegmentATypeSubTlv +type unMarshalbgpSrteSegmentGTypeSubTlv struct { + obj *bgpSrteSegmentGTypeSubTlv } -type unMarshalBgpSrteSegmentATypeSubTlv interface { - // FromProto unmarshals BgpSrteSegmentATypeSubTlv from protobuf object *otg.BgpSrteSegmentATypeSubTlv - FromProto(msg *otg.BgpSrteSegmentATypeSubTlv) (BgpSrteSegmentATypeSubTlv, error) - // FromPbText unmarshals BgpSrteSegmentATypeSubTlv from protobuf text +type unMarshalBgpSrteSegmentGTypeSubTlv interface { + // FromProto unmarshals BgpSrteSegmentGTypeSubTlv from protobuf object *otg.BgpSrteSegmentGTypeSubTlv + FromProto(msg *otg.BgpSrteSegmentGTypeSubTlv) (BgpSrteSegmentGTypeSubTlv, error) + // FromPbText unmarshals BgpSrteSegmentGTypeSubTlv from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpSrteSegmentATypeSubTlv from YAML text + // FromYaml unmarshals BgpSrteSegmentGTypeSubTlv from YAML text FromYaml(value string) error - // FromJson unmarshals BgpSrteSegmentATypeSubTlv from JSON text + // FromJson unmarshals BgpSrteSegmentGTypeSubTlv from JSON text FromJson(value string) error } -func (obj *bgpSrteSegmentATypeSubTlv) Marshal() marshalBgpSrteSegmentATypeSubTlv { +func (obj *bgpSrteSegmentGTypeSubTlv) Marshal() marshalBgpSrteSegmentGTypeSubTlv { if obj.marshaller == nil { - obj.marshaller = &marshalbgpSrteSegmentATypeSubTlv{obj: obj} + obj.marshaller = &marshalbgpSrteSegmentGTypeSubTlv{obj: obj} } return obj.marshaller } -func (obj *bgpSrteSegmentATypeSubTlv) Unmarshal() unMarshalBgpSrteSegmentATypeSubTlv { +func (obj *bgpSrteSegmentGTypeSubTlv) Unmarshal() unMarshalBgpSrteSegmentGTypeSubTlv { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpSrteSegmentATypeSubTlv{obj: obj} + obj.unMarshaller = &unMarshalbgpSrteSegmentGTypeSubTlv{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpSrteSegmentATypeSubTlv) ToProto() (*otg.BgpSrteSegmentATypeSubTlv, error) { +func (m *marshalbgpSrteSegmentGTypeSubTlv) ToProto() (*otg.BgpSrteSegmentGTypeSubTlv, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -346572,7 +360087,7 @@ func (m *marshalbgpSrteSegmentATypeSubTlv) ToProto() (*otg.BgpSrteSegmentATypeSu return m.obj.msg(), nil } -func (m *unMarshalbgpSrteSegmentATypeSubTlv) FromProto(msg *otg.BgpSrteSegmentATypeSubTlv) (BgpSrteSegmentATypeSubTlv, error) { +func (m *unMarshalbgpSrteSegmentGTypeSubTlv) FromProto(msg *otg.BgpSrteSegmentGTypeSubTlv) (BgpSrteSegmentGTypeSubTlv, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -346581,7 +360096,7 @@ func (m *unMarshalbgpSrteSegmentATypeSubTlv) FromProto(msg *otg.BgpSrteSegmentAT return newObj, nil } -func (m *marshalbgpSrteSegmentATypeSubTlv) ToPbText() (string, error) { +func (m *marshalbgpSrteSegmentGTypeSubTlv) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -346593,12 +360108,12 @@ func (m *marshalbgpSrteSegmentATypeSubTlv) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalbgpSrteSegmentATypeSubTlv) FromPbText(value string) error { +func (m *unMarshalbgpSrteSegmentGTypeSubTlv) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -346606,7 +360121,7 @@ func (m *unMarshalbgpSrteSegmentATypeSubTlv) FromPbText(value string) error { return retObj } -func (m *marshalbgpSrteSegmentATypeSubTlv) ToYaml() (string, error) { +func (m *marshalbgpSrteSegmentGTypeSubTlv) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -346627,7 +360142,7 @@ func (m *marshalbgpSrteSegmentATypeSubTlv) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrteSegmentATypeSubTlv) FromYaml(value string) error { +func (m *unMarshalbgpSrteSegmentGTypeSubTlv) FromYaml(value string) error { if value == "" { value = "{}" } @@ -346644,7 +360159,7 @@ func (m *unMarshalbgpSrteSegmentATypeSubTlv) FromYaml(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -346652,7 +360167,7 @@ func (m *unMarshalbgpSrteSegmentATypeSubTlv) FromYaml(value string) error { return nil } -func (m *marshalbgpSrteSegmentATypeSubTlv) ToJson() (string, error) { +func (m *marshalbgpSrteSegmentGTypeSubTlv) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -346670,7 +360185,7 @@ func (m *marshalbgpSrteSegmentATypeSubTlv) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrteSegmentATypeSubTlv) FromJson(value string) error { +func (m *unMarshalbgpSrteSegmentGTypeSubTlv) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -346683,7 +360198,7 @@ func (m *unMarshalbgpSrteSegmentATypeSubTlv) FromJson(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - + m.obj.setNil() err := m.obj.validateToAndFrom() if err != nil { return err @@ -346691,19 +360206,19 @@ func (m *unMarshalbgpSrteSegmentATypeSubTlv) FromJson(value string) error { return nil } -func (obj *bgpSrteSegmentATypeSubTlv) validateToAndFrom() error { +func (obj *bgpSrteSegmentGTypeSubTlv) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpSrteSegmentATypeSubTlv) validate() error { +func (obj *bgpSrteSegmentGTypeSubTlv) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpSrteSegmentATypeSubTlv) String() string { +func (obj *bgpSrteSegmentGTypeSubTlv) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -346711,12 +360226,12 @@ func (obj *bgpSrteSegmentATypeSubTlv) String() string { return str } -func (obj *bgpSrteSegmentATypeSubTlv) Clone() (BgpSrteSegmentATypeSubTlv, error) { +func (obj *bgpSrteSegmentGTypeSubTlv) Clone() (BgpSrteSegmentGTypeSubTlv, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpSrteSegmentATypeSubTlv() + newObj := NewBgpSrteSegmentGTypeSubTlv() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -346728,63 +360243,75 @@ func (obj *bgpSrteSegmentATypeSubTlv) Clone() (BgpSrteSegmentATypeSubTlv, error) return newObj, nil } -// BgpSrteSegmentATypeSubTlv is type A: SID only, in the form of MPLS Label. -type BgpSrteSegmentATypeSubTlv interface { +func (obj *bgpSrteSegmentGTypeSubTlv) setNil() { + obj.srMplsSidHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// BgpSrteSegmentGTypeSubTlv is type G: IPv6 Address, Interface ID for local and remote pair with optional SID for SR MPLS. +type BgpSrteSegmentGTypeSubTlv interface { Validation - // msg marshals BgpSrteSegmentATypeSubTlv to protobuf object *otg.BgpSrteSegmentATypeSubTlv + // msg marshals BgpSrteSegmentGTypeSubTlv to protobuf object *otg.BgpSrteSegmentGTypeSubTlv // and doesn't set defaults - msg() *otg.BgpSrteSegmentATypeSubTlv - // setMsg unmarshals BgpSrteSegmentATypeSubTlv from protobuf object *otg.BgpSrteSegmentATypeSubTlv + msg() *otg.BgpSrteSegmentGTypeSubTlv + // setMsg unmarshals BgpSrteSegmentGTypeSubTlv from protobuf object *otg.BgpSrteSegmentGTypeSubTlv // and doesn't set defaults - setMsg(*otg.BgpSrteSegmentATypeSubTlv) BgpSrteSegmentATypeSubTlv + setMsg(*otg.BgpSrteSegmentGTypeSubTlv) BgpSrteSegmentGTypeSubTlv // provides marshal interface - Marshal() marshalBgpSrteSegmentATypeSubTlv + Marshal() marshalBgpSrteSegmentGTypeSubTlv // provides unmarshal interface - Unmarshal() unMarshalBgpSrteSegmentATypeSubTlv - // validate validates BgpSrteSegmentATypeSubTlv + Unmarshal() unMarshalBgpSrteSegmentGTypeSubTlv + // validate validates BgpSrteSegmentGTypeSubTlv validate() error // A stringer function String() string // Clones the object - Clone() (BgpSrteSegmentATypeSubTlv, error) + Clone() (BgpSrteSegmentGTypeSubTlv, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Flags returns string, set in BgpSrteSegmentATypeSubTlv. + // Flags returns string, set in BgpSrteSegmentGTypeSubTlv. Flags() string - // SetFlags assigns string provided by user to BgpSrteSegmentATypeSubTlv - SetFlags(value string) BgpSrteSegmentATypeSubTlv - // HasFlags checks if Flags has been set in BgpSrteSegmentATypeSubTlv + // SetFlags assigns string provided by user to BgpSrteSegmentGTypeSubTlv + SetFlags(value string) BgpSrteSegmentGTypeSubTlv + // HasFlags checks if Flags has been set in BgpSrteSegmentGTypeSubTlv HasFlags() bool - // Label returns uint32, set in BgpSrteSegmentATypeSubTlv. - Label() uint32 - // SetLabel assigns uint32 provided by user to BgpSrteSegmentATypeSubTlv - SetLabel(value uint32) BgpSrteSegmentATypeSubTlv - // HasLabel checks if Label has been set in BgpSrteSegmentATypeSubTlv - HasLabel() bool - // Tc returns uint32, set in BgpSrteSegmentATypeSubTlv. - Tc() uint32 - // SetTc assigns uint32 provided by user to BgpSrteSegmentATypeSubTlv - SetTc(value uint32) BgpSrteSegmentATypeSubTlv - // HasTc checks if Tc has been set in BgpSrteSegmentATypeSubTlv - HasTc() bool - // SBit returns bool, set in BgpSrteSegmentATypeSubTlv. - SBit() bool - // SetSBit assigns bool provided by user to BgpSrteSegmentATypeSubTlv - SetSBit(value bool) BgpSrteSegmentATypeSubTlv - // HasSBit checks if SBit has been set in BgpSrteSegmentATypeSubTlv - HasSBit() bool - // Ttl returns uint32, set in BgpSrteSegmentATypeSubTlv. - Ttl() uint32 - // SetTtl assigns uint32 provided by user to BgpSrteSegmentATypeSubTlv - SetTtl(value uint32) BgpSrteSegmentATypeSubTlv - // HasTtl checks if Ttl has been set in BgpSrteSegmentATypeSubTlv - HasTtl() bool + // LocalInterfaceId returns uint32, set in BgpSrteSegmentGTypeSubTlv. + LocalInterfaceId() uint32 + // SetLocalInterfaceId assigns uint32 provided by user to BgpSrteSegmentGTypeSubTlv + SetLocalInterfaceId(value uint32) BgpSrteSegmentGTypeSubTlv + // HasLocalInterfaceId checks if LocalInterfaceId has been set in BgpSrteSegmentGTypeSubTlv + HasLocalInterfaceId() bool + // LocalIpv6NodeAddress returns string, set in BgpSrteSegmentGTypeSubTlv. + LocalIpv6NodeAddress() string + // SetLocalIpv6NodeAddress assigns string provided by user to BgpSrteSegmentGTypeSubTlv + SetLocalIpv6NodeAddress(value string) BgpSrteSegmentGTypeSubTlv + // RemoteInterfaceId returns uint32, set in BgpSrteSegmentGTypeSubTlv. + RemoteInterfaceId() uint32 + // SetRemoteInterfaceId assigns uint32 provided by user to BgpSrteSegmentGTypeSubTlv + SetRemoteInterfaceId(value uint32) BgpSrteSegmentGTypeSubTlv + // HasRemoteInterfaceId checks if RemoteInterfaceId has been set in BgpSrteSegmentGTypeSubTlv + HasRemoteInterfaceId() bool + // RemoteIpv6NodeAddress returns string, set in BgpSrteSegmentGTypeSubTlv. + RemoteIpv6NodeAddress() string + // SetRemoteIpv6NodeAddress assigns string provided by user to BgpSrteSegmentGTypeSubTlv + SetRemoteIpv6NodeAddress(value string) BgpSrteSegmentGTypeSubTlv + // SrMplsSid returns BgpSrteSrMplsSid, set in BgpSrteSegmentGTypeSubTlv. + // BgpSrteSrMplsSid is configuration for SR-MPLS with Label, TC, Bottom-of-Stack and TTL. + SrMplsSid() BgpSrteSrMplsSid + // SetSrMplsSid assigns BgpSrteSrMplsSid provided by user to BgpSrteSegmentGTypeSubTlv. + // BgpSrteSrMplsSid is configuration for SR-MPLS with Label, TC, Bottom-of-Stack and TTL. + SetSrMplsSid(value BgpSrteSrMplsSid) BgpSrteSegmentGTypeSubTlv + // HasSrMplsSid checks if SrMplsSid has been set in BgpSrteSegmentGTypeSubTlv + HasSrMplsSid() bool + setNil() } // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 // Flags returns a string -func (obj *bgpSrteSegmentATypeSubTlv) Flags() string { +func (obj *bgpSrteSegmentGTypeSubTlv) Flags() string { return *obj.obj.Flags @@ -346792,107 +360319,123 @@ func (obj *bgpSrteSegmentATypeSubTlv) Flags() string { // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 // Flags returns a string -func (obj *bgpSrteSegmentATypeSubTlv) HasFlags() bool { +func (obj *bgpSrteSegmentGTypeSubTlv) HasFlags() bool { return obj.obj.Flags != nil } // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 -// SetFlags sets the string value in the BgpSrteSegmentATypeSubTlv object -func (obj *bgpSrteSegmentATypeSubTlv) SetFlags(value string) BgpSrteSegmentATypeSubTlv { +// SetFlags sets the string value in the BgpSrteSegmentGTypeSubTlv object +func (obj *bgpSrteSegmentGTypeSubTlv) SetFlags(value string) BgpSrteSegmentGTypeSubTlv { obj.obj.Flags = &value return obj } -// Label value in [0, 2^20 -1]. -// Label returns a uint32 -func (obj *bgpSrteSegmentATypeSubTlv) Label() uint32 { +// Local Interface ID: The Interface Index as defined in [RFC8664]. +// LocalInterfaceId returns a uint32 +func (obj *bgpSrteSegmentGTypeSubTlv) LocalInterfaceId() uint32 { - return *obj.obj.Label + return *obj.obj.LocalInterfaceId } -// Label value in [0, 2^20 -1]. -// Label returns a uint32 -func (obj *bgpSrteSegmentATypeSubTlv) HasLabel() bool { - return obj.obj.Label != nil +// Local Interface ID: The Interface Index as defined in [RFC8664]. +// LocalInterfaceId returns a uint32 +func (obj *bgpSrteSegmentGTypeSubTlv) HasLocalInterfaceId() bool { + return obj.obj.LocalInterfaceId != nil } -// Label value in [0, 2^20 -1]. -// SetLabel sets the uint32 value in the BgpSrteSegmentATypeSubTlv object -func (obj *bgpSrteSegmentATypeSubTlv) SetLabel(value uint32) BgpSrteSegmentATypeSubTlv { +// Local Interface ID: The Interface Index as defined in [RFC8664]. +// SetLocalInterfaceId sets the uint32 value in the BgpSrteSegmentGTypeSubTlv object +func (obj *bgpSrteSegmentGTypeSubTlv) SetLocalInterfaceId(value uint32) BgpSrteSegmentGTypeSubTlv { - obj.obj.Label = &value + obj.obj.LocalInterfaceId = &value return obj } -// Traffic class in bits. -// Tc returns a uint32 -func (obj *bgpSrteSegmentATypeSubTlv) Tc() uint32 { - - return *obj.obj.Tc +// IPv6 address representing a node. +// LocalIpv6NodeAddress returns a string +func (obj *bgpSrteSegmentGTypeSubTlv) LocalIpv6NodeAddress() string { -} + return *obj.obj.LocalIpv6NodeAddress -// Traffic class in bits. -// Tc returns a uint32 -func (obj *bgpSrteSegmentATypeSubTlv) HasTc() bool { - return obj.obj.Tc != nil } -// Traffic class in bits. -// SetTc sets the uint32 value in the BgpSrteSegmentATypeSubTlv object -func (obj *bgpSrteSegmentATypeSubTlv) SetTc(value uint32) BgpSrteSegmentATypeSubTlv { +// IPv6 address representing a node. +// SetLocalIpv6NodeAddress sets the string value in the BgpSrteSegmentGTypeSubTlv object +func (obj *bgpSrteSegmentGTypeSubTlv) SetLocalIpv6NodeAddress(value string) BgpSrteSegmentGTypeSubTlv { - obj.obj.Tc = &value + obj.obj.LocalIpv6NodeAddress = &value return obj } -// Bottom-of-Stack bit. -// SBit returns a bool -func (obj *bgpSrteSegmentATypeSubTlv) SBit() bool { +// Local Interface ID: The Interface Index as defined in [RFC8664]. +// RemoteInterfaceId returns a uint32 +func (obj *bgpSrteSegmentGTypeSubTlv) RemoteInterfaceId() uint32 { - return *obj.obj.SBit + return *obj.obj.RemoteInterfaceId } -// Bottom-of-Stack bit. -// SBit returns a bool -func (obj *bgpSrteSegmentATypeSubTlv) HasSBit() bool { - return obj.obj.SBit != nil +// Local Interface ID: The Interface Index as defined in [RFC8664]. +// RemoteInterfaceId returns a uint32 +func (obj *bgpSrteSegmentGTypeSubTlv) HasRemoteInterfaceId() bool { + return obj.obj.RemoteInterfaceId != nil } -// Bottom-of-Stack bit. -// SetSBit sets the bool value in the BgpSrteSegmentATypeSubTlv object -func (obj *bgpSrteSegmentATypeSubTlv) SetSBit(value bool) BgpSrteSegmentATypeSubTlv { +// Local Interface ID: The Interface Index as defined in [RFC8664]. +// SetRemoteInterfaceId sets the uint32 value in the BgpSrteSegmentGTypeSubTlv object +func (obj *bgpSrteSegmentGTypeSubTlv) SetRemoteInterfaceId(value uint32) BgpSrteSegmentGTypeSubTlv { - obj.obj.SBit = &value + obj.obj.RemoteInterfaceId = &value return obj } -// Time To Live. -// Ttl returns a uint32 -func (obj *bgpSrteSegmentATypeSubTlv) Ttl() uint32 { +// IPv6 address representing a node. +// RemoteIpv6NodeAddress returns a string +func (obj *bgpSrteSegmentGTypeSubTlv) RemoteIpv6NodeAddress() string { - return *obj.obj.Ttl + return *obj.obj.RemoteIpv6NodeAddress } -// Time To Live. -// Ttl returns a uint32 -func (obj *bgpSrteSegmentATypeSubTlv) HasTtl() bool { - return obj.obj.Ttl != nil +// IPv6 address representing a node. +// SetRemoteIpv6NodeAddress sets the string value in the BgpSrteSegmentGTypeSubTlv object +func (obj *bgpSrteSegmentGTypeSubTlv) SetRemoteIpv6NodeAddress(value string) BgpSrteSegmentGTypeSubTlv { + + obj.obj.RemoteIpv6NodeAddress = &value + return obj } -// Time To Live. -// SetTtl sets the uint32 value in the BgpSrteSegmentATypeSubTlv object -func (obj *bgpSrteSegmentATypeSubTlv) SetTtl(value uint32) BgpSrteSegmentATypeSubTlv { +// Optional SR-MPLS SID. +// SrMplsSid returns a BgpSrteSrMplsSid +func (obj *bgpSrteSegmentGTypeSubTlv) SrMplsSid() BgpSrteSrMplsSid { + if obj.obj.SrMplsSid == nil { + obj.obj.SrMplsSid = NewBgpSrteSrMplsSid().msg() + } + if obj.srMplsSidHolder == nil { + obj.srMplsSidHolder = &bgpSrteSrMplsSid{obj: obj.obj.SrMplsSid} + } + return obj.srMplsSidHolder +} + +// Optional SR-MPLS SID. +// SrMplsSid returns a BgpSrteSrMplsSid +func (obj *bgpSrteSegmentGTypeSubTlv) HasSrMplsSid() bool { + return obj.obj.SrMplsSid != nil +} + +// Optional SR-MPLS SID. +// SetSrMplsSid sets the BgpSrteSrMplsSid value in the BgpSrteSegmentGTypeSubTlv object +func (obj *bgpSrteSegmentGTypeSubTlv) SetSrMplsSid(value BgpSrteSrMplsSid) BgpSrteSegmentGTypeSubTlv { + + obj.srMplsSidHolder = nil + obj.obj.SrMplsSid = value.msg() - obj.obj.Ttl = &value return obj } -func (obj *bgpSrteSegmentATypeSubTlv) validateObj(vObj *validation, set_default bool) { +func (obj *bgpSrteSegmentGTypeSubTlv) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } @@ -346901,117 +360444,124 @@ func (obj *bgpSrteSegmentATypeSubTlv) validateObj(vObj *validation, set_default err := obj.validateHex(obj.Flags()) if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentATypeSubTlv.Flags")) + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentGTypeSubTlv.Flags")) } } - if obj.obj.Label != nil { + // LocalIpv6NodeAddress is required + if obj.obj.LocalIpv6NodeAddress == nil { + vObj.validationErrors = append(vObj.validationErrors, "LocalIpv6NodeAddress is required field on interface BgpSrteSegmentGTypeSubTlv") + } + if obj.obj.LocalIpv6NodeAddress != nil { - if *obj.obj.Label > 1048575 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= BgpSrteSegmentATypeSubTlv.Label <= 1048575 but Got %d", *obj.obj.Label)) + err := obj.validateIpv6(obj.LocalIpv6NodeAddress()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentGTypeSubTlv.LocalIpv6NodeAddress")) } } - if obj.obj.Tc != nil { + // RemoteIpv6NodeAddress is required + if obj.obj.RemoteIpv6NodeAddress == nil { + vObj.validationErrors = append(vObj.validationErrors, "RemoteIpv6NodeAddress is required field on interface BgpSrteSegmentGTypeSubTlv") + } + if obj.obj.RemoteIpv6NodeAddress != nil { - if *obj.obj.Tc > 7 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= BgpSrteSegmentATypeSubTlv.Tc <= 7 but Got %d", *obj.obj.Tc)) + err := obj.validateIpv6(obj.RemoteIpv6NodeAddress()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentGTypeSubTlv.RemoteIpv6NodeAddress")) } } - if obj.obj.Ttl != nil { - - if *obj.obj.Ttl > 225 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= BgpSrteSegmentATypeSubTlv.Ttl <= 225 but Got %d", *obj.obj.Ttl)) - } + if obj.obj.SrMplsSid != nil { + obj.SrMplsSid().validateObj(vObj, set_default) } } -func (obj *bgpSrteSegmentATypeSubTlv) setDefault() { +func (obj *bgpSrteSegmentGTypeSubTlv) setDefault() { + if obj.obj.LocalInterfaceId == nil { + obj.SetLocalInterfaceId(0) + } + if obj.obj.RemoteInterfaceId == nil { + obj.SetRemoteInterfaceId(0) + } } -// ***** BgpSrteSegmentBTypeSubTlv ***** -type bgpSrteSegmentBTypeSubTlv struct { +// ***** BgpSrteSegmentHTypeSubTlv ***** +type bgpSrteSegmentHTypeSubTlv struct { validation - obj *otg.BgpSrteSegmentBTypeSubTlv - marshaller marshalBgpSrteSegmentBTypeSubTlv - unMarshaller unMarshalBgpSrteSegmentBTypeSubTlv - srv6SidEndpointBehaviorHolder BgpSrteSRv6SIDEndpointBehaviorAndStructure + obj *otg.BgpSrteSegmentHTypeSubTlv + marshaller marshalBgpSrteSegmentHTypeSubTlv + unMarshaller unMarshalBgpSrteSegmentHTypeSubTlv + srMplsSidHolder BgpSrteSrMplsSid } -func NewBgpSrteSegmentBTypeSubTlv() BgpSrteSegmentBTypeSubTlv { - obj := bgpSrteSegmentBTypeSubTlv{obj: &otg.BgpSrteSegmentBTypeSubTlv{}} +func NewBgpSrteSegmentHTypeSubTlv() BgpSrteSegmentHTypeSubTlv { + obj := bgpSrteSegmentHTypeSubTlv{obj: &otg.BgpSrteSegmentHTypeSubTlv{}} obj.setDefault() return &obj } -func (obj *bgpSrteSegmentBTypeSubTlv) msg() *otg.BgpSrteSegmentBTypeSubTlv { +func (obj *bgpSrteSegmentHTypeSubTlv) msg() *otg.BgpSrteSegmentHTypeSubTlv { return obj.obj } -func (obj *bgpSrteSegmentBTypeSubTlv) setMsg(msg *otg.BgpSrteSegmentBTypeSubTlv) BgpSrteSegmentBTypeSubTlv { +func (obj *bgpSrteSegmentHTypeSubTlv) setMsg(msg *otg.BgpSrteSegmentHTypeSubTlv) BgpSrteSegmentHTypeSubTlv { obj.setNil() proto.Merge(obj.obj, msg) return obj } -type marshalbgpSrteSegmentBTypeSubTlv struct { - obj *bgpSrteSegmentBTypeSubTlv +type marshalbgpSrteSegmentHTypeSubTlv struct { + obj *bgpSrteSegmentHTypeSubTlv } -type marshalBgpSrteSegmentBTypeSubTlv interface { - // ToProto marshals BgpSrteSegmentBTypeSubTlv to protobuf object *otg.BgpSrteSegmentBTypeSubTlv - ToProto() (*otg.BgpSrteSegmentBTypeSubTlv, error) - // ToPbText marshals BgpSrteSegmentBTypeSubTlv to protobuf text +type marshalBgpSrteSegmentHTypeSubTlv interface { + // ToProto marshals BgpSrteSegmentHTypeSubTlv to protobuf object *otg.BgpSrteSegmentHTypeSubTlv + ToProto() (*otg.BgpSrteSegmentHTypeSubTlv, error) + // ToPbText marshals BgpSrteSegmentHTypeSubTlv to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpSrteSegmentBTypeSubTlv to YAML text + // ToYaml marshals BgpSrteSegmentHTypeSubTlv to YAML text ToYaml() (string, error) - // ToJson marshals BgpSrteSegmentBTypeSubTlv to JSON text + // ToJson marshals BgpSrteSegmentHTypeSubTlv to JSON text ToJson() (string, error) } -type unMarshalbgpSrteSegmentBTypeSubTlv struct { - obj *bgpSrteSegmentBTypeSubTlv +type unMarshalbgpSrteSegmentHTypeSubTlv struct { + obj *bgpSrteSegmentHTypeSubTlv } -type unMarshalBgpSrteSegmentBTypeSubTlv interface { - // FromProto unmarshals BgpSrteSegmentBTypeSubTlv from protobuf object *otg.BgpSrteSegmentBTypeSubTlv - FromProto(msg *otg.BgpSrteSegmentBTypeSubTlv) (BgpSrteSegmentBTypeSubTlv, error) - // FromPbText unmarshals BgpSrteSegmentBTypeSubTlv from protobuf text +type unMarshalBgpSrteSegmentHTypeSubTlv interface { + // FromProto unmarshals BgpSrteSegmentHTypeSubTlv from protobuf object *otg.BgpSrteSegmentHTypeSubTlv + FromProto(msg *otg.BgpSrteSegmentHTypeSubTlv) (BgpSrteSegmentHTypeSubTlv, error) + // FromPbText unmarshals BgpSrteSegmentHTypeSubTlv from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpSrteSegmentBTypeSubTlv from YAML text + // FromYaml unmarshals BgpSrteSegmentHTypeSubTlv from YAML text FromYaml(value string) error - // FromJson unmarshals BgpSrteSegmentBTypeSubTlv from JSON text + // FromJson unmarshals BgpSrteSegmentHTypeSubTlv from JSON text FromJson(value string) error } -func (obj *bgpSrteSegmentBTypeSubTlv) Marshal() marshalBgpSrteSegmentBTypeSubTlv { +func (obj *bgpSrteSegmentHTypeSubTlv) Marshal() marshalBgpSrteSegmentHTypeSubTlv { if obj.marshaller == nil { - obj.marshaller = &marshalbgpSrteSegmentBTypeSubTlv{obj: obj} + obj.marshaller = &marshalbgpSrteSegmentHTypeSubTlv{obj: obj} } return obj.marshaller } -func (obj *bgpSrteSegmentBTypeSubTlv) Unmarshal() unMarshalBgpSrteSegmentBTypeSubTlv { +func (obj *bgpSrteSegmentHTypeSubTlv) Unmarshal() unMarshalBgpSrteSegmentHTypeSubTlv { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpSrteSegmentBTypeSubTlv{obj: obj} + obj.unMarshaller = &unMarshalbgpSrteSegmentHTypeSubTlv{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpSrteSegmentBTypeSubTlv) ToProto() (*otg.BgpSrteSegmentBTypeSubTlv, error) { +func (m *marshalbgpSrteSegmentHTypeSubTlv) ToProto() (*otg.BgpSrteSegmentHTypeSubTlv, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -347019,7 +360569,7 @@ func (m *marshalbgpSrteSegmentBTypeSubTlv) ToProto() (*otg.BgpSrteSegmentBTypeSu return m.obj.msg(), nil } -func (m *unMarshalbgpSrteSegmentBTypeSubTlv) FromProto(msg *otg.BgpSrteSegmentBTypeSubTlv) (BgpSrteSegmentBTypeSubTlv, error) { +func (m *unMarshalbgpSrteSegmentHTypeSubTlv) FromProto(msg *otg.BgpSrteSegmentHTypeSubTlv) (BgpSrteSegmentHTypeSubTlv, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -347028,7 +360578,7 @@ func (m *unMarshalbgpSrteSegmentBTypeSubTlv) FromProto(msg *otg.BgpSrteSegmentBT return newObj, nil } -func (m *marshalbgpSrteSegmentBTypeSubTlv) ToPbText() (string, error) { +func (m *marshalbgpSrteSegmentHTypeSubTlv) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -347040,7 +360590,7 @@ func (m *marshalbgpSrteSegmentBTypeSubTlv) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalbgpSrteSegmentBTypeSubTlv) FromPbText(value string) error { +func (m *unMarshalbgpSrteSegmentHTypeSubTlv) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj @@ -347053,7 +360603,7 @@ func (m *unMarshalbgpSrteSegmentBTypeSubTlv) FromPbText(value string) error { return retObj } -func (m *marshalbgpSrteSegmentBTypeSubTlv) ToYaml() (string, error) { +func (m *marshalbgpSrteSegmentHTypeSubTlv) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -347074,7 +360624,7 @@ func (m *marshalbgpSrteSegmentBTypeSubTlv) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrteSegmentBTypeSubTlv) FromYaml(value string) error { +func (m *unMarshalbgpSrteSegmentHTypeSubTlv) FromYaml(value string) error { if value == "" { value = "{}" } @@ -347099,7 +360649,7 @@ func (m *unMarshalbgpSrteSegmentBTypeSubTlv) FromYaml(value string) error { return nil } -func (m *marshalbgpSrteSegmentBTypeSubTlv) ToJson() (string, error) { +func (m *marshalbgpSrteSegmentHTypeSubTlv) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -347117,7 +360667,7 @@ func (m *marshalbgpSrteSegmentBTypeSubTlv) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrteSegmentBTypeSubTlv) FromJson(value string) error { +func (m *unMarshalbgpSrteSegmentHTypeSubTlv) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -347138,19 +360688,19 @@ func (m *unMarshalbgpSrteSegmentBTypeSubTlv) FromJson(value string) error { return nil } -func (obj *bgpSrteSegmentBTypeSubTlv) validateToAndFrom() error { +func (obj *bgpSrteSegmentHTypeSubTlv) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpSrteSegmentBTypeSubTlv) validate() error { +func (obj *bgpSrteSegmentHTypeSubTlv) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpSrteSegmentBTypeSubTlv) String() string { +func (obj *bgpSrteSegmentHTypeSubTlv) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -347158,12 +360708,12 @@ func (obj *bgpSrteSegmentBTypeSubTlv) String() string { return str } -func (obj *bgpSrteSegmentBTypeSubTlv) Clone() (BgpSrteSegmentBTypeSubTlv, error) { +func (obj *bgpSrteSegmentHTypeSubTlv) Clone() (BgpSrteSegmentHTypeSubTlv, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpSrteSegmentBTypeSubTlv() + newObj := NewBgpSrteSegmentHTypeSubTlv() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -347175,59 +360725,63 @@ func (obj *bgpSrteSegmentBTypeSubTlv) Clone() (BgpSrteSegmentBTypeSubTlv, error) return newObj, nil } -func (obj *bgpSrteSegmentBTypeSubTlv) setNil() { - obj.srv6SidEndpointBehaviorHolder = nil +func (obj *bgpSrteSegmentHTypeSubTlv) setNil() { + obj.srMplsSidHolder = nil obj.validationErrors = nil obj.warnings = nil obj.constraints = make(map[string]map[string]Constraints) } -// BgpSrteSegmentBTypeSubTlv is type B: SID only, in the form of IPv6 address. -type BgpSrteSegmentBTypeSubTlv interface { +// BgpSrteSegmentHTypeSubTlv is type H: IPv6 Local and Remote addresses with optional SID for SR MPLS. +type BgpSrteSegmentHTypeSubTlv interface { Validation - // msg marshals BgpSrteSegmentBTypeSubTlv to protobuf object *otg.BgpSrteSegmentBTypeSubTlv + // msg marshals BgpSrteSegmentHTypeSubTlv to protobuf object *otg.BgpSrteSegmentHTypeSubTlv // and doesn't set defaults - msg() *otg.BgpSrteSegmentBTypeSubTlv - // setMsg unmarshals BgpSrteSegmentBTypeSubTlv from protobuf object *otg.BgpSrteSegmentBTypeSubTlv + msg() *otg.BgpSrteSegmentHTypeSubTlv + // setMsg unmarshals BgpSrteSegmentHTypeSubTlv from protobuf object *otg.BgpSrteSegmentHTypeSubTlv // and doesn't set defaults - setMsg(*otg.BgpSrteSegmentBTypeSubTlv) BgpSrteSegmentBTypeSubTlv + setMsg(*otg.BgpSrteSegmentHTypeSubTlv) BgpSrteSegmentHTypeSubTlv // provides marshal interface - Marshal() marshalBgpSrteSegmentBTypeSubTlv + Marshal() marshalBgpSrteSegmentHTypeSubTlv // provides unmarshal interface - Unmarshal() unMarshalBgpSrteSegmentBTypeSubTlv - // validate validates BgpSrteSegmentBTypeSubTlv + Unmarshal() unMarshalBgpSrteSegmentHTypeSubTlv + // validate validates BgpSrteSegmentHTypeSubTlv validate() error // A stringer function String() string // Clones the object - Clone() (BgpSrteSegmentBTypeSubTlv, error) + Clone() (BgpSrteSegmentHTypeSubTlv, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Flags returns string, set in BgpSrteSegmentBTypeSubTlv. + // Flags returns string, set in BgpSrteSegmentHTypeSubTlv. Flags() string - // SetFlags assigns string provided by user to BgpSrteSegmentBTypeSubTlv - SetFlags(value string) BgpSrteSegmentBTypeSubTlv - // HasFlags checks if Flags has been set in BgpSrteSegmentBTypeSubTlv + // SetFlags assigns string provided by user to BgpSrteSegmentHTypeSubTlv + SetFlags(value string) BgpSrteSegmentHTypeSubTlv + // HasFlags checks if Flags has been set in BgpSrteSegmentHTypeSubTlv HasFlags() bool - // Srv6Sid returns string, set in BgpSrteSegmentBTypeSubTlv. - Srv6Sid() string - // SetSrv6Sid assigns string provided by user to BgpSrteSegmentBTypeSubTlv - SetSrv6Sid(value string) BgpSrteSegmentBTypeSubTlv - // Srv6SidEndpointBehavior returns BgpSrteSRv6SIDEndpointBehaviorAndStructure, set in BgpSrteSegmentBTypeSubTlv. - // BgpSrteSRv6SIDEndpointBehaviorAndStructure is configuration for SRv6 Endpoint Behavior and SID Structure. Its optional. Summation of lengths for Locator Block, Locator Node, Function, and Argument MUST be less than or equal to 128. - Srv6SidEndpointBehavior() BgpSrteSRv6SIDEndpointBehaviorAndStructure - // SetSrv6SidEndpointBehavior assigns BgpSrteSRv6SIDEndpointBehaviorAndStructure provided by user to BgpSrteSegmentBTypeSubTlv. - // BgpSrteSRv6SIDEndpointBehaviorAndStructure is configuration for SRv6 Endpoint Behavior and SID Structure. Its optional. Summation of lengths for Locator Block, Locator Node, Function, and Argument MUST be less than or equal to 128. - SetSrv6SidEndpointBehavior(value BgpSrteSRv6SIDEndpointBehaviorAndStructure) BgpSrteSegmentBTypeSubTlv - // HasSrv6SidEndpointBehavior checks if Srv6SidEndpointBehavior has been set in BgpSrteSegmentBTypeSubTlv - HasSrv6SidEndpointBehavior() bool + // LocalIpv6Address returns string, set in BgpSrteSegmentHTypeSubTlv. + LocalIpv6Address() string + // SetLocalIpv6Address assigns string provided by user to BgpSrteSegmentHTypeSubTlv + SetLocalIpv6Address(value string) BgpSrteSegmentHTypeSubTlv + // RemoteIpv6Address returns string, set in BgpSrteSegmentHTypeSubTlv. + RemoteIpv6Address() string + // SetRemoteIpv6Address assigns string provided by user to BgpSrteSegmentHTypeSubTlv + SetRemoteIpv6Address(value string) BgpSrteSegmentHTypeSubTlv + // SrMplsSid returns BgpSrteSrMplsSid, set in BgpSrteSegmentHTypeSubTlv. + // BgpSrteSrMplsSid is configuration for SR-MPLS with Label, TC, Bottom-of-Stack and TTL. + SrMplsSid() BgpSrteSrMplsSid + // SetSrMplsSid assigns BgpSrteSrMplsSid provided by user to BgpSrteSegmentHTypeSubTlv. + // BgpSrteSrMplsSid is configuration for SR-MPLS with Label, TC, Bottom-of-Stack and TTL. + SetSrMplsSid(value BgpSrteSrMplsSid) BgpSrteSegmentHTypeSubTlv + // HasSrMplsSid checks if SrMplsSid has been set in BgpSrteSegmentHTypeSubTlv + HasSrMplsSid() bool setNil() } // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 // Flags returns a string -func (obj *bgpSrteSegmentBTypeSubTlv) Flags() string { +func (obj *bgpSrteSegmentHTypeSubTlv) Flags() string { return *obj.obj.Flags @@ -347235,63 +360789,79 @@ func (obj *bgpSrteSegmentBTypeSubTlv) Flags() string { // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 // Flags returns a string -func (obj *bgpSrteSegmentBTypeSubTlv) HasFlags() bool { +func (obj *bgpSrteSegmentHTypeSubTlv) HasFlags() bool { return obj.obj.Flags != nil } // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 -// SetFlags sets the string value in the BgpSrteSegmentBTypeSubTlv object -func (obj *bgpSrteSegmentBTypeSubTlv) SetFlags(value string) BgpSrteSegmentBTypeSubTlv { +// SetFlags sets the string value in the BgpSrteSegmentHTypeSubTlv object +func (obj *bgpSrteSegmentHTypeSubTlv) SetFlags(value string) BgpSrteSegmentHTypeSubTlv { obj.obj.Flags = &value return obj } -// SRv6 SID. -// Srv6Sid returns a string -func (obj *bgpSrteSegmentBTypeSubTlv) Srv6Sid() string { +// Local IPv6 Address. +// LocalIpv6Address returns a string +func (obj *bgpSrteSegmentHTypeSubTlv) LocalIpv6Address() string { - return *obj.obj.Srv6Sid + return *obj.obj.LocalIpv6Address } -// SRv6 SID. -// SetSrv6Sid sets the string value in the BgpSrteSegmentBTypeSubTlv object -func (obj *bgpSrteSegmentBTypeSubTlv) SetSrv6Sid(value string) BgpSrteSegmentBTypeSubTlv { +// Local IPv6 Address. +// SetLocalIpv6Address sets the string value in the BgpSrteSegmentHTypeSubTlv object +func (obj *bgpSrteSegmentHTypeSubTlv) SetLocalIpv6Address(value string) BgpSrteSegmentHTypeSubTlv { - obj.obj.Srv6Sid = &value + obj.obj.LocalIpv6Address = &value return obj } -// Optional SRv6 Endpoint Behavior and SID Structure. -// Srv6SidEndpointBehavior returns a BgpSrteSRv6SIDEndpointBehaviorAndStructure -func (obj *bgpSrteSegmentBTypeSubTlv) Srv6SidEndpointBehavior() BgpSrteSRv6SIDEndpointBehaviorAndStructure { - if obj.obj.Srv6SidEndpointBehavior == nil { - obj.obj.Srv6SidEndpointBehavior = NewBgpSrteSRv6SIDEndpointBehaviorAndStructure().msg() +// Remote IPv6 Address. +// RemoteIpv6Address returns a string +func (obj *bgpSrteSegmentHTypeSubTlv) RemoteIpv6Address() string { + + return *obj.obj.RemoteIpv6Address + +} + +// Remote IPv6 Address. +// SetRemoteIpv6Address sets the string value in the BgpSrteSegmentHTypeSubTlv object +func (obj *bgpSrteSegmentHTypeSubTlv) SetRemoteIpv6Address(value string) BgpSrteSegmentHTypeSubTlv { + + obj.obj.RemoteIpv6Address = &value + return obj +} + +// Optional SR-MPLS SID. +// SrMplsSid returns a BgpSrteSrMplsSid +func (obj *bgpSrteSegmentHTypeSubTlv) SrMplsSid() BgpSrteSrMplsSid { + if obj.obj.SrMplsSid == nil { + obj.obj.SrMplsSid = NewBgpSrteSrMplsSid().msg() } - if obj.srv6SidEndpointBehaviorHolder == nil { - obj.srv6SidEndpointBehaviorHolder = &bgpSrteSRv6SIDEndpointBehaviorAndStructure{obj: obj.obj.Srv6SidEndpointBehavior} + if obj.srMplsSidHolder == nil { + obj.srMplsSidHolder = &bgpSrteSrMplsSid{obj: obj.obj.SrMplsSid} } - return obj.srv6SidEndpointBehaviorHolder + return obj.srMplsSidHolder } -// Optional SRv6 Endpoint Behavior and SID Structure. -// Srv6SidEndpointBehavior returns a BgpSrteSRv6SIDEndpointBehaviorAndStructure -func (obj *bgpSrteSegmentBTypeSubTlv) HasSrv6SidEndpointBehavior() bool { - return obj.obj.Srv6SidEndpointBehavior != nil +// Optional SR-MPLS SID. +// SrMplsSid returns a BgpSrteSrMplsSid +func (obj *bgpSrteSegmentHTypeSubTlv) HasSrMplsSid() bool { + return obj.obj.SrMplsSid != nil } -// Optional SRv6 Endpoint Behavior and SID Structure. -// SetSrv6SidEndpointBehavior sets the BgpSrteSRv6SIDEndpointBehaviorAndStructure value in the BgpSrteSegmentBTypeSubTlv object -func (obj *bgpSrteSegmentBTypeSubTlv) SetSrv6SidEndpointBehavior(value BgpSrteSRv6SIDEndpointBehaviorAndStructure) BgpSrteSegmentBTypeSubTlv { +// Optional SR-MPLS SID. +// SetSrMplsSid sets the BgpSrteSrMplsSid value in the BgpSrteSegmentHTypeSubTlv object +func (obj *bgpSrteSegmentHTypeSubTlv) SetSrMplsSid(value BgpSrteSrMplsSid) BgpSrteSegmentHTypeSubTlv { - obj.srv6SidEndpointBehaviorHolder = nil - obj.obj.Srv6SidEndpointBehavior = value.msg() + obj.srMplsSidHolder = nil + obj.obj.SrMplsSid = value.msg() return obj } -func (obj *bgpSrteSegmentBTypeSubTlv) validateObj(vObj *validation, set_default bool) { +func (obj *bgpSrteSegmentHTypeSubTlv) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } @@ -347300,105 +360870,118 @@ func (obj *bgpSrteSegmentBTypeSubTlv) validateObj(vObj *validation, set_default err := obj.validateHex(obj.Flags()) if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentBTypeSubTlv.Flags")) + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentHTypeSubTlv.Flags")) } } - // Srv6Sid is required - if obj.obj.Srv6Sid == nil { - vObj.validationErrors = append(vObj.validationErrors, "Srv6Sid is required field on interface BgpSrteSegmentBTypeSubTlv") + // LocalIpv6Address is required + if obj.obj.LocalIpv6Address == nil { + vObj.validationErrors = append(vObj.validationErrors, "LocalIpv6Address is required field on interface BgpSrteSegmentHTypeSubTlv") } - if obj.obj.Srv6Sid != nil { + if obj.obj.LocalIpv6Address != nil { - err := obj.validateIpv6(obj.Srv6Sid()) + err := obj.validateIpv6(obj.LocalIpv6Address()) if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentBTypeSubTlv.Srv6Sid")) + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentHTypeSubTlv.LocalIpv6Address")) } } - if obj.obj.Srv6SidEndpointBehavior != nil { + // RemoteIpv6Address is required + if obj.obj.RemoteIpv6Address == nil { + vObj.validationErrors = append(vObj.validationErrors, "RemoteIpv6Address is required field on interface BgpSrteSegmentHTypeSubTlv") + } + if obj.obj.RemoteIpv6Address != nil { - obj.Srv6SidEndpointBehavior().validateObj(vObj, set_default) + err := obj.validateIpv6(obj.RemoteIpv6Address()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentHTypeSubTlv.RemoteIpv6Address")) + } + + } + + if obj.obj.SrMplsSid != nil { + + obj.SrMplsSid().validateObj(vObj, set_default) } } -func (obj *bgpSrteSegmentBTypeSubTlv) setDefault() { +func (obj *bgpSrteSegmentHTypeSubTlv) setDefault() { } -// ***** BgpSrteSegmentCTypeSubTlv ***** -type bgpSrteSegmentCTypeSubTlv struct { +// ***** BgpSrteSegmentITypeSubTlv ***** +type bgpSrteSegmentITypeSubTlv struct { validation - obj *otg.BgpSrteSegmentCTypeSubTlv - marshaller marshalBgpSrteSegmentCTypeSubTlv - unMarshaller unMarshalBgpSrteSegmentCTypeSubTlv - srMplsSidHolder BgpSrteSrMplsSid + obj *otg.BgpSrteSegmentITypeSubTlv + marshaller marshalBgpSrteSegmentITypeSubTlv + unMarshaller unMarshalBgpSrteSegmentITypeSubTlv + srv6SidEndpointBehaviorHolder BgpSrteSRv6SIDEndpointBehaviorAndStructure } -func NewBgpSrteSegmentCTypeSubTlv() BgpSrteSegmentCTypeSubTlv { - obj := bgpSrteSegmentCTypeSubTlv{obj: &otg.BgpSrteSegmentCTypeSubTlv{}} +func NewBgpSrteSegmentITypeSubTlv() BgpSrteSegmentITypeSubTlv { + obj := bgpSrteSegmentITypeSubTlv{obj: &otg.BgpSrteSegmentITypeSubTlv{}} obj.setDefault() return &obj } -func (obj *bgpSrteSegmentCTypeSubTlv) msg() *otg.BgpSrteSegmentCTypeSubTlv { +func (obj *bgpSrteSegmentITypeSubTlv) msg() *otg.BgpSrteSegmentITypeSubTlv { return obj.obj } -func (obj *bgpSrteSegmentCTypeSubTlv) setMsg(msg *otg.BgpSrteSegmentCTypeSubTlv) BgpSrteSegmentCTypeSubTlv { +func (obj *bgpSrteSegmentITypeSubTlv) setMsg(msg *otg.BgpSrteSegmentITypeSubTlv) BgpSrteSegmentITypeSubTlv { obj.setNil() proto.Merge(obj.obj, msg) return obj } -type marshalbgpSrteSegmentCTypeSubTlv struct { - obj *bgpSrteSegmentCTypeSubTlv +type marshalbgpSrteSegmentITypeSubTlv struct { + obj *bgpSrteSegmentITypeSubTlv } -type marshalBgpSrteSegmentCTypeSubTlv interface { - // ToProto marshals BgpSrteSegmentCTypeSubTlv to protobuf object *otg.BgpSrteSegmentCTypeSubTlv - ToProto() (*otg.BgpSrteSegmentCTypeSubTlv, error) - // ToPbText marshals BgpSrteSegmentCTypeSubTlv to protobuf text +type marshalBgpSrteSegmentITypeSubTlv interface { + // ToProto marshals BgpSrteSegmentITypeSubTlv to protobuf object *otg.BgpSrteSegmentITypeSubTlv + ToProto() (*otg.BgpSrteSegmentITypeSubTlv, error) + // ToPbText marshals BgpSrteSegmentITypeSubTlv to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpSrteSegmentCTypeSubTlv to YAML text + // ToYaml marshals BgpSrteSegmentITypeSubTlv to YAML text ToYaml() (string, error) - // ToJson marshals BgpSrteSegmentCTypeSubTlv to JSON text + // ToJson marshals BgpSrteSegmentITypeSubTlv to JSON text ToJson() (string, error) } -type unMarshalbgpSrteSegmentCTypeSubTlv struct { - obj *bgpSrteSegmentCTypeSubTlv +type unMarshalbgpSrteSegmentITypeSubTlv struct { + obj *bgpSrteSegmentITypeSubTlv } -type unMarshalBgpSrteSegmentCTypeSubTlv interface { - // FromProto unmarshals BgpSrteSegmentCTypeSubTlv from protobuf object *otg.BgpSrteSegmentCTypeSubTlv - FromProto(msg *otg.BgpSrteSegmentCTypeSubTlv) (BgpSrteSegmentCTypeSubTlv, error) - // FromPbText unmarshals BgpSrteSegmentCTypeSubTlv from protobuf text +type unMarshalBgpSrteSegmentITypeSubTlv interface { + // FromProto unmarshals BgpSrteSegmentITypeSubTlv from protobuf object *otg.BgpSrteSegmentITypeSubTlv + FromProto(msg *otg.BgpSrteSegmentITypeSubTlv) (BgpSrteSegmentITypeSubTlv, error) + // FromPbText unmarshals BgpSrteSegmentITypeSubTlv from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpSrteSegmentCTypeSubTlv from YAML text + // FromYaml unmarshals BgpSrteSegmentITypeSubTlv from YAML text FromYaml(value string) error - // FromJson unmarshals BgpSrteSegmentCTypeSubTlv from JSON text + // FromJson unmarshals BgpSrteSegmentITypeSubTlv from JSON text FromJson(value string) error } -func (obj *bgpSrteSegmentCTypeSubTlv) Marshal() marshalBgpSrteSegmentCTypeSubTlv { +func (obj *bgpSrteSegmentITypeSubTlv) Marshal() marshalBgpSrteSegmentITypeSubTlv { if obj.marshaller == nil { - obj.marshaller = &marshalbgpSrteSegmentCTypeSubTlv{obj: obj} + obj.marshaller = &marshalbgpSrteSegmentITypeSubTlv{obj: obj} } return obj.marshaller } -func (obj *bgpSrteSegmentCTypeSubTlv) Unmarshal() unMarshalBgpSrteSegmentCTypeSubTlv { +func (obj *bgpSrteSegmentITypeSubTlv) Unmarshal() unMarshalBgpSrteSegmentITypeSubTlv { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpSrteSegmentCTypeSubTlv{obj: obj} + obj.unMarshaller = &unMarshalbgpSrteSegmentITypeSubTlv{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpSrteSegmentCTypeSubTlv) ToProto() (*otg.BgpSrteSegmentCTypeSubTlv, error) { +func (m *marshalbgpSrteSegmentITypeSubTlv) ToProto() (*otg.BgpSrteSegmentITypeSubTlv, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -347406,7 +360989,7 @@ func (m *marshalbgpSrteSegmentCTypeSubTlv) ToProto() (*otg.BgpSrteSegmentCTypeSu return m.obj.msg(), nil } -func (m *unMarshalbgpSrteSegmentCTypeSubTlv) FromProto(msg *otg.BgpSrteSegmentCTypeSubTlv) (BgpSrteSegmentCTypeSubTlv, error) { +func (m *unMarshalbgpSrteSegmentITypeSubTlv) FromProto(msg *otg.BgpSrteSegmentITypeSubTlv) (BgpSrteSegmentITypeSubTlv, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -347415,7 +360998,7 @@ func (m *unMarshalbgpSrteSegmentCTypeSubTlv) FromProto(msg *otg.BgpSrteSegmentCT return newObj, nil } -func (m *marshalbgpSrteSegmentCTypeSubTlv) ToPbText() (string, error) { +func (m *marshalbgpSrteSegmentITypeSubTlv) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -347427,7 +361010,7 @@ func (m *marshalbgpSrteSegmentCTypeSubTlv) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalbgpSrteSegmentCTypeSubTlv) FromPbText(value string) error { +func (m *unMarshalbgpSrteSegmentITypeSubTlv) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj @@ -347440,7 +361023,7 @@ func (m *unMarshalbgpSrteSegmentCTypeSubTlv) FromPbText(value string) error { return retObj } -func (m *marshalbgpSrteSegmentCTypeSubTlv) ToYaml() (string, error) { +func (m *marshalbgpSrteSegmentITypeSubTlv) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -347461,7 +361044,7 @@ func (m *marshalbgpSrteSegmentCTypeSubTlv) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrteSegmentCTypeSubTlv) FromYaml(value string) error { +func (m *unMarshalbgpSrteSegmentITypeSubTlv) FromYaml(value string) error { if value == "" { value = "{}" } @@ -347486,7 +361069,7 @@ func (m *unMarshalbgpSrteSegmentCTypeSubTlv) FromYaml(value string) error { return nil } -func (m *marshalbgpSrteSegmentCTypeSubTlv) ToJson() (string, error) { +func (m *marshalbgpSrteSegmentITypeSubTlv) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -347504,7 +361087,7 @@ func (m *marshalbgpSrteSegmentCTypeSubTlv) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrteSegmentCTypeSubTlv) FromJson(value string) error { +func (m *unMarshalbgpSrteSegmentITypeSubTlv) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -347525,19 +361108,19 @@ func (m *unMarshalbgpSrteSegmentCTypeSubTlv) FromJson(value string) error { return nil } -func (obj *bgpSrteSegmentCTypeSubTlv) validateToAndFrom() error { +func (obj *bgpSrteSegmentITypeSubTlv) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpSrteSegmentCTypeSubTlv) validate() error { +func (obj *bgpSrteSegmentITypeSubTlv) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpSrteSegmentCTypeSubTlv) String() string { +func (obj *bgpSrteSegmentITypeSubTlv) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -347545,12 +361128,12 @@ func (obj *bgpSrteSegmentCTypeSubTlv) String() string { return str } -func (obj *bgpSrteSegmentCTypeSubTlv) Clone() (BgpSrteSegmentCTypeSubTlv, error) { +func (obj *bgpSrteSegmentITypeSubTlv) Clone() (BgpSrteSegmentITypeSubTlv, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpSrteSegmentCTypeSubTlv() + newObj := NewBgpSrteSegmentITypeSubTlv() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -347562,65 +361145,65 @@ func (obj *bgpSrteSegmentCTypeSubTlv) Clone() (BgpSrteSegmentCTypeSubTlv, error) return newObj, nil } -func (obj *bgpSrteSegmentCTypeSubTlv) setNil() { - obj.srMplsSidHolder = nil +func (obj *bgpSrteSegmentITypeSubTlv) setNil() { + obj.srv6SidEndpointBehaviorHolder = nil obj.validationErrors = nil obj.warnings = nil obj.constraints = make(map[string]map[string]Constraints) } -// BgpSrteSegmentCTypeSubTlv is type C: IPv4 Node Address with optional SID. -type BgpSrteSegmentCTypeSubTlv interface { +// BgpSrteSegmentITypeSubTlv is type I: IPv6 Node Address with optional SRv6 SID. +type BgpSrteSegmentITypeSubTlv interface { Validation - // msg marshals BgpSrteSegmentCTypeSubTlv to protobuf object *otg.BgpSrteSegmentCTypeSubTlv + // msg marshals BgpSrteSegmentITypeSubTlv to protobuf object *otg.BgpSrteSegmentITypeSubTlv // and doesn't set defaults - msg() *otg.BgpSrteSegmentCTypeSubTlv - // setMsg unmarshals BgpSrteSegmentCTypeSubTlv from protobuf object *otg.BgpSrteSegmentCTypeSubTlv + msg() *otg.BgpSrteSegmentITypeSubTlv + // setMsg unmarshals BgpSrteSegmentITypeSubTlv from protobuf object *otg.BgpSrteSegmentITypeSubTlv // and doesn't set defaults - setMsg(*otg.BgpSrteSegmentCTypeSubTlv) BgpSrteSegmentCTypeSubTlv + setMsg(*otg.BgpSrteSegmentITypeSubTlv) BgpSrteSegmentITypeSubTlv // provides marshal interface - Marshal() marshalBgpSrteSegmentCTypeSubTlv + Marshal() marshalBgpSrteSegmentITypeSubTlv // provides unmarshal interface - Unmarshal() unMarshalBgpSrteSegmentCTypeSubTlv - // validate validates BgpSrteSegmentCTypeSubTlv + Unmarshal() unMarshalBgpSrteSegmentITypeSubTlv + // validate validates BgpSrteSegmentITypeSubTlv validate() error // A stringer function String() string // Clones the object - Clone() (BgpSrteSegmentCTypeSubTlv, error) + Clone() (BgpSrteSegmentITypeSubTlv, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Flags returns string, set in BgpSrteSegmentCTypeSubTlv. + // Flags returns string, set in BgpSrteSegmentITypeSubTlv. Flags() string - // SetFlags assigns string provided by user to BgpSrteSegmentCTypeSubTlv - SetFlags(value string) BgpSrteSegmentCTypeSubTlv - // HasFlags checks if Flags has been set in BgpSrteSegmentCTypeSubTlv + // SetFlags assigns string provided by user to BgpSrteSegmentITypeSubTlv + SetFlags(value string) BgpSrteSegmentITypeSubTlv + // HasFlags checks if Flags has been set in BgpSrteSegmentITypeSubTlv HasFlags() bool - // SrAlgorithm returns uint32, set in BgpSrteSegmentCTypeSubTlv. - SrAlgorithm() uint32 - // SetSrAlgorithm assigns uint32 provided by user to BgpSrteSegmentCTypeSubTlv - SetSrAlgorithm(value uint32) BgpSrteSegmentCTypeSubTlv - // HasSrAlgorithm checks if SrAlgorithm has been set in BgpSrteSegmentCTypeSubTlv - HasSrAlgorithm() bool - // Ipv4NodeAddress returns string, set in BgpSrteSegmentCTypeSubTlv. - Ipv4NodeAddress() string - // SetIpv4NodeAddress assigns string provided by user to BgpSrteSegmentCTypeSubTlv - SetIpv4NodeAddress(value string) BgpSrteSegmentCTypeSubTlv - // SrMplsSid returns BgpSrteSrMplsSid, set in BgpSrteSegmentCTypeSubTlv. - // BgpSrteSrMplsSid is configuration for SR-MPLS with Label, TC, Bottom-of-Stack and TTL. - SrMplsSid() BgpSrteSrMplsSid - // SetSrMplsSid assigns BgpSrteSrMplsSid provided by user to BgpSrteSegmentCTypeSubTlv. - // BgpSrteSrMplsSid is configuration for SR-MPLS with Label, TC, Bottom-of-Stack and TTL. - SetSrMplsSid(value BgpSrteSrMplsSid) BgpSrteSegmentCTypeSubTlv - // HasSrMplsSid checks if SrMplsSid has been set in BgpSrteSegmentCTypeSubTlv - HasSrMplsSid() bool + // Ipv6NodeAddress returns string, set in BgpSrteSegmentITypeSubTlv. + Ipv6NodeAddress() string + // SetIpv6NodeAddress assigns string provided by user to BgpSrteSegmentITypeSubTlv + SetIpv6NodeAddress(value string) BgpSrteSegmentITypeSubTlv + // Srv6Sid returns string, set in BgpSrteSegmentITypeSubTlv. + Srv6Sid() string + // SetSrv6Sid assigns string provided by user to BgpSrteSegmentITypeSubTlv + SetSrv6Sid(value string) BgpSrteSegmentITypeSubTlv + // HasSrv6Sid checks if Srv6Sid has been set in BgpSrteSegmentITypeSubTlv + HasSrv6Sid() bool + // Srv6SidEndpointBehavior returns BgpSrteSRv6SIDEndpointBehaviorAndStructure, set in BgpSrteSegmentITypeSubTlv. + // BgpSrteSRv6SIDEndpointBehaviorAndStructure is configuration for SRv6 Endpoint Behavior and SID Structure. Its optional. Summation of lengths for Locator Block, Locator Node, Function, and Argument MUST be less than or equal to 128. + Srv6SidEndpointBehavior() BgpSrteSRv6SIDEndpointBehaviorAndStructure + // SetSrv6SidEndpointBehavior assigns BgpSrteSRv6SIDEndpointBehaviorAndStructure provided by user to BgpSrteSegmentITypeSubTlv. + // BgpSrteSRv6SIDEndpointBehaviorAndStructure is configuration for SRv6 Endpoint Behavior and SID Structure. Its optional. Summation of lengths for Locator Block, Locator Node, Function, and Argument MUST be less than or equal to 128. + SetSrv6SidEndpointBehavior(value BgpSrteSRv6SIDEndpointBehaviorAndStructure) BgpSrteSegmentITypeSubTlv + // HasSrv6SidEndpointBehavior checks if Srv6SidEndpointBehavior has been set in BgpSrteSegmentITypeSubTlv + HasSrv6SidEndpointBehavior() bool setNil() } // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 // Flags returns a string -func (obj *bgpSrteSegmentCTypeSubTlv) Flags() string { +func (obj *bgpSrteSegmentITypeSubTlv) Flags() string { return *obj.obj.Flags @@ -347628,85 +361211,85 @@ func (obj *bgpSrteSegmentCTypeSubTlv) Flags() string { // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 // Flags returns a string -func (obj *bgpSrteSegmentCTypeSubTlv) HasFlags() bool { +func (obj *bgpSrteSegmentITypeSubTlv) HasFlags() bool { return obj.obj.Flags != nil } // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 -// SetFlags sets the string value in the BgpSrteSegmentCTypeSubTlv object -func (obj *bgpSrteSegmentCTypeSubTlv) SetFlags(value string) BgpSrteSegmentCTypeSubTlv { +// SetFlags sets the string value in the BgpSrteSegmentITypeSubTlv object +func (obj *bgpSrteSegmentITypeSubTlv) SetFlags(value string) BgpSrteSegmentITypeSubTlv { obj.obj.Flags = &value return obj } -// SR Algorithm identifier when A-Flag in on. -// SrAlgorithm returns a uint32 -func (obj *bgpSrteSegmentCTypeSubTlv) SrAlgorithm() uint32 { - - return *obj.obj.SrAlgorithm +// IPv6 address representing a node. +// Ipv6NodeAddress returns a string +func (obj *bgpSrteSegmentITypeSubTlv) Ipv6NodeAddress() string { -} + return *obj.obj.Ipv6NodeAddress -// SR Algorithm identifier when A-Flag in on. -// SrAlgorithm returns a uint32 -func (obj *bgpSrteSegmentCTypeSubTlv) HasSrAlgorithm() bool { - return obj.obj.SrAlgorithm != nil } -// SR Algorithm identifier when A-Flag in on. -// SetSrAlgorithm sets the uint32 value in the BgpSrteSegmentCTypeSubTlv object -func (obj *bgpSrteSegmentCTypeSubTlv) SetSrAlgorithm(value uint32) BgpSrteSegmentCTypeSubTlv { +// IPv6 address representing a node. +// SetIpv6NodeAddress sets the string value in the BgpSrteSegmentITypeSubTlv object +func (obj *bgpSrteSegmentITypeSubTlv) SetIpv6NodeAddress(value string) BgpSrteSegmentITypeSubTlv { - obj.obj.SrAlgorithm = &value + obj.obj.Ipv6NodeAddress = &value return obj } -// IPv4 address representing a node. -// Ipv4NodeAddress returns a string -func (obj *bgpSrteSegmentCTypeSubTlv) Ipv4NodeAddress() string { +// Optional SRv6 SID. +// Srv6Sid returns a string +func (obj *bgpSrteSegmentITypeSubTlv) Srv6Sid() string { - return *obj.obj.Ipv4NodeAddress + return *obj.obj.Srv6Sid } -// IPv4 address representing a node. -// SetIpv4NodeAddress sets the string value in the BgpSrteSegmentCTypeSubTlv object -func (obj *bgpSrteSegmentCTypeSubTlv) SetIpv4NodeAddress(value string) BgpSrteSegmentCTypeSubTlv { +// Optional SRv6 SID. +// Srv6Sid returns a string +func (obj *bgpSrteSegmentITypeSubTlv) HasSrv6Sid() bool { + return obj.obj.Srv6Sid != nil +} - obj.obj.Ipv4NodeAddress = &value +// Optional SRv6 SID. +// SetSrv6Sid sets the string value in the BgpSrteSegmentITypeSubTlv object +func (obj *bgpSrteSegmentITypeSubTlv) SetSrv6Sid(value string) BgpSrteSegmentITypeSubTlv { + + obj.obj.Srv6Sid = &value return obj } -// Optional SR-MPLS SID. -// SrMplsSid returns a BgpSrteSrMplsSid -func (obj *bgpSrteSegmentCTypeSubTlv) SrMplsSid() BgpSrteSrMplsSid { - if obj.obj.SrMplsSid == nil { - obj.obj.SrMplsSid = NewBgpSrteSrMplsSid().msg() +// Optional SRv6 Endpoint Behavior and SID Structure. +// Srv6SidEndpointBehavior returns a BgpSrteSRv6SIDEndpointBehaviorAndStructure +func (obj *bgpSrteSegmentITypeSubTlv) Srv6SidEndpointBehavior() BgpSrteSRv6SIDEndpointBehaviorAndStructure { + if obj.obj.Srv6SidEndpointBehavior == nil { + obj.obj.Srv6SidEndpointBehavior = NewBgpSrteSRv6SIDEndpointBehaviorAndStructure().msg() } - if obj.srMplsSidHolder == nil { - obj.srMplsSidHolder = &bgpSrteSrMplsSid{obj: obj.obj.SrMplsSid} + if obj.srv6SidEndpointBehaviorHolder == nil { + obj.srv6SidEndpointBehaviorHolder = &bgpSrteSRv6SIDEndpointBehaviorAndStructure{obj: obj.obj.Srv6SidEndpointBehavior} } - return obj.srMplsSidHolder + return obj.srv6SidEndpointBehaviorHolder } -// Optional SR-MPLS SID. -// SrMplsSid returns a BgpSrteSrMplsSid -func (obj *bgpSrteSegmentCTypeSubTlv) HasSrMplsSid() bool { - return obj.obj.SrMplsSid != nil +// Optional SRv6 Endpoint Behavior and SID Structure. +// Srv6SidEndpointBehavior returns a BgpSrteSRv6SIDEndpointBehaviorAndStructure +func (obj *bgpSrteSegmentITypeSubTlv) HasSrv6SidEndpointBehavior() bool { + return obj.obj.Srv6SidEndpointBehavior != nil } -// Optional SR-MPLS SID. -// SetSrMplsSid sets the BgpSrteSrMplsSid value in the BgpSrteSegmentCTypeSubTlv object -func (obj *bgpSrteSegmentCTypeSubTlv) SetSrMplsSid(value BgpSrteSrMplsSid) BgpSrteSegmentCTypeSubTlv { +// Optional SRv6 Endpoint Behavior and SID Structure. +// SetSrv6SidEndpointBehavior sets the BgpSrteSRv6SIDEndpointBehaviorAndStructure value in the BgpSrteSegmentITypeSubTlv object +func (obj *bgpSrteSegmentITypeSubTlv) SetSrv6SidEndpointBehavior(value BgpSrteSRv6SIDEndpointBehaviorAndStructure) BgpSrteSegmentITypeSubTlv { - obj.srMplsSidHolder = nil - obj.obj.SrMplsSid = value.msg() + obj.srv6SidEndpointBehaviorHolder = nil + obj.obj.Srv6SidEndpointBehavior = value.msg() return obj } -func (obj *bgpSrteSegmentCTypeSubTlv) validateObj(vObj *validation, set_default bool) { +func (obj *bgpSrteSegmentITypeSubTlv) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } @@ -347715,118 +361298,114 @@ func (obj *bgpSrteSegmentCTypeSubTlv) validateObj(vObj *validation, set_default err := obj.validateHex(obj.Flags()) if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentCTypeSubTlv.Flags")) + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentITypeSubTlv.Flags")) } } - if obj.obj.SrAlgorithm != nil { + // Ipv6NodeAddress is required + if obj.obj.Ipv6NodeAddress == nil { + vObj.validationErrors = append(vObj.validationErrors, "Ipv6NodeAddress is required field on interface BgpSrteSegmentITypeSubTlv") + } + if obj.obj.Ipv6NodeAddress != nil { - if *obj.obj.SrAlgorithm > 255 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= BgpSrteSegmentCTypeSubTlv.SrAlgorithm <= 255 but Got %d", *obj.obj.SrAlgorithm)) + err := obj.validateIpv6(obj.Ipv6NodeAddress()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentITypeSubTlv.Ipv6NodeAddress")) } } - // Ipv4NodeAddress is required - if obj.obj.Ipv4NodeAddress == nil { - vObj.validationErrors = append(vObj.validationErrors, "Ipv4NodeAddress is required field on interface BgpSrteSegmentCTypeSubTlv") - } - if obj.obj.Ipv4NodeAddress != nil { + if obj.obj.Srv6Sid != nil { - err := obj.validateIpv4(obj.Ipv4NodeAddress()) + err := obj.validateIpv6(obj.Srv6Sid()) if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentCTypeSubTlv.Ipv4NodeAddress")) + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentITypeSubTlv.Srv6Sid")) } } - if obj.obj.SrMplsSid != nil { + if obj.obj.Srv6SidEndpointBehavior != nil { - obj.SrMplsSid().validateObj(vObj, set_default) + obj.Srv6SidEndpointBehavior().validateObj(vObj, set_default) } } -func (obj *bgpSrteSegmentCTypeSubTlv) setDefault() { - if obj.obj.SrAlgorithm == nil { - obj.SetSrAlgorithm(0) - } +func (obj *bgpSrteSegmentITypeSubTlv) setDefault() { } -// ***** BgpSrteSegmentDTypeSubTlv ***** -type bgpSrteSegmentDTypeSubTlv struct { +// ***** BgpSrteSegmentJTypeSubTlv ***** +type bgpSrteSegmentJTypeSubTlv struct { validation - obj *otg.BgpSrteSegmentDTypeSubTlv - marshaller marshalBgpSrteSegmentDTypeSubTlv - unMarshaller unMarshalBgpSrteSegmentDTypeSubTlv - srMplsSidHolder BgpSrteSrMplsSid + obj *otg.BgpSrteSegmentJTypeSubTlv + marshaller marshalBgpSrteSegmentJTypeSubTlv + unMarshaller unMarshalBgpSrteSegmentJTypeSubTlv + srv6SidEndpointBehaviorHolder BgpSrteSRv6SIDEndpointBehaviorAndStructure } -func NewBgpSrteSegmentDTypeSubTlv() BgpSrteSegmentDTypeSubTlv { - obj := bgpSrteSegmentDTypeSubTlv{obj: &otg.BgpSrteSegmentDTypeSubTlv{}} +func NewBgpSrteSegmentJTypeSubTlv() BgpSrteSegmentJTypeSubTlv { + obj := bgpSrteSegmentJTypeSubTlv{obj: &otg.BgpSrteSegmentJTypeSubTlv{}} obj.setDefault() return &obj } -func (obj *bgpSrteSegmentDTypeSubTlv) msg() *otg.BgpSrteSegmentDTypeSubTlv { +func (obj *bgpSrteSegmentJTypeSubTlv) msg() *otg.BgpSrteSegmentJTypeSubTlv { return obj.obj } -func (obj *bgpSrteSegmentDTypeSubTlv) setMsg(msg *otg.BgpSrteSegmentDTypeSubTlv) BgpSrteSegmentDTypeSubTlv { +func (obj *bgpSrteSegmentJTypeSubTlv) setMsg(msg *otg.BgpSrteSegmentJTypeSubTlv) BgpSrteSegmentJTypeSubTlv { obj.setNil() proto.Merge(obj.obj, msg) return obj } -type marshalbgpSrteSegmentDTypeSubTlv struct { - obj *bgpSrteSegmentDTypeSubTlv +type marshalbgpSrteSegmentJTypeSubTlv struct { + obj *bgpSrteSegmentJTypeSubTlv } -type marshalBgpSrteSegmentDTypeSubTlv interface { - // ToProto marshals BgpSrteSegmentDTypeSubTlv to protobuf object *otg.BgpSrteSegmentDTypeSubTlv - ToProto() (*otg.BgpSrteSegmentDTypeSubTlv, error) - // ToPbText marshals BgpSrteSegmentDTypeSubTlv to protobuf text +type marshalBgpSrteSegmentJTypeSubTlv interface { + // ToProto marshals BgpSrteSegmentJTypeSubTlv to protobuf object *otg.BgpSrteSegmentJTypeSubTlv + ToProto() (*otg.BgpSrteSegmentJTypeSubTlv, error) + // ToPbText marshals BgpSrteSegmentJTypeSubTlv to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpSrteSegmentDTypeSubTlv to YAML text + // ToYaml marshals BgpSrteSegmentJTypeSubTlv to YAML text ToYaml() (string, error) - // ToJson marshals BgpSrteSegmentDTypeSubTlv to JSON text + // ToJson marshals BgpSrteSegmentJTypeSubTlv to JSON text ToJson() (string, error) } -type unMarshalbgpSrteSegmentDTypeSubTlv struct { - obj *bgpSrteSegmentDTypeSubTlv +type unMarshalbgpSrteSegmentJTypeSubTlv struct { + obj *bgpSrteSegmentJTypeSubTlv } -type unMarshalBgpSrteSegmentDTypeSubTlv interface { - // FromProto unmarshals BgpSrteSegmentDTypeSubTlv from protobuf object *otg.BgpSrteSegmentDTypeSubTlv - FromProto(msg *otg.BgpSrteSegmentDTypeSubTlv) (BgpSrteSegmentDTypeSubTlv, error) - // FromPbText unmarshals BgpSrteSegmentDTypeSubTlv from protobuf text +type unMarshalBgpSrteSegmentJTypeSubTlv interface { + // FromProto unmarshals BgpSrteSegmentJTypeSubTlv from protobuf object *otg.BgpSrteSegmentJTypeSubTlv + FromProto(msg *otg.BgpSrteSegmentJTypeSubTlv) (BgpSrteSegmentJTypeSubTlv, error) + // FromPbText unmarshals BgpSrteSegmentJTypeSubTlv from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpSrteSegmentDTypeSubTlv from YAML text + // FromYaml unmarshals BgpSrteSegmentJTypeSubTlv from YAML text FromYaml(value string) error - // FromJson unmarshals BgpSrteSegmentDTypeSubTlv from JSON text + // FromJson unmarshals BgpSrteSegmentJTypeSubTlv from JSON text FromJson(value string) error } -func (obj *bgpSrteSegmentDTypeSubTlv) Marshal() marshalBgpSrteSegmentDTypeSubTlv { +func (obj *bgpSrteSegmentJTypeSubTlv) Marshal() marshalBgpSrteSegmentJTypeSubTlv { if obj.marshaller == nil { - obj.marshaller = &marshalbgpSrteSegmentDTypeSubTlv{obj: obj} + obj.marshaller = &marshalbgpSrteSegmentJTypeSubTlv{obj: obj} } return obj.marshaller } -func (obj *bgpSrteSegmentDTypeSubTlv) Unmarshal() unMarshalBgpSrteSegmentDTypeSubTlv { +func (obj *bgpSrteSegmentJTypeSubTlv) Unmarshal() unMarshalBgpSrteSegmentJTypeSubTlv { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpSrteSegmentDTypeSubTlv{obj: obj} + obj.unMarshaller = &unMarshalbgpSrteSegmentJTypeSubTlv{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpSrteSegmentDTypeSubTlv) ToProto() (*otg.BgpSrteSegmentDTypeSubTlv, error) { +func (m *marshalbgpSrteSegmentJTypeSubTlv) ToProto() (*otg.BgpSrteSegmentJTypeSubTlv, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -347834,7 +361413,7 @@ func (m *marshalbgpSrteSegmentDTypeSubTlv) ToProto() (*otg.BgpSrteSegmentDTypeSu return m.obj.msg(), nil } -func (m *unMarshalbgpSrteSegmentDTypeSubTlv) FromProto(msg *otg.BgpSrteSegmentDTypeSubTlv) (BgpSrteSegmentDTypeSubTlv, error) { +func (m *unMarshalbgpSrteSegmentJTypeSubTlv) FromProto(msg *otg.BgpSrteSegmentJTypeSubTlv) (BgpSrteSegmentJTypeSubTlv, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -347843,7 +361422,7 @@ func (m *unMarshalbgpSrteSegmentDTypeSubTlv) FromProto(msg *otg.BgpSrteSegmentDT return newObj, nil } -func (m *marshalbgpSrteSegmentDTypeSubTlv) ToPbText() (string, error) { +func (m *marshalbgpSrteSegmentJTypeSubTlv) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -347855,7 +361434,7 @@ func (m *marshalbgpSrteSegmentDTypeSubTlv) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalbgpSrteSegmentDTypeSubTlv) FromPbText(value string) error { +func (m *unMarshalbgpSrteSegmentJTypeSubTlv) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj @@ -347868,7 +361447,7 @@ func (m *unMarshalbgpSrteSegmentDTypeSubTlv) FromPbText(value string) error { return retObj } -func (m *marshalbgpSrteSegmentDTypeSubTlv) ToYaml() (string, error) { +func (m *marshalbgpSrteSegmentJTypeSubTlv) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -347889,7 +361468,7 @@ func (m *marshalbgpSrteSegmentDTypeSubTlv) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrteSegmentDTypeSubTlv) FromYaml(value string) error { +func (m *unMarshalbgpSrteSegmentJTypeSubTlv) FromYaml(value string) error { if value == "" { value = "{}" } @@ -347914,7 +361493,7 @@ func (m *unMarshalbgpSrteSegmentDTypeSubTlv) FromYaml(value string) error { return nil } -func (m *marshalbgpSrteSegmentDTypeSubTlv) ToJson() (string, error) { +func (m *marshalbgpSrteSegmentJTypeSubTlv) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -347932,7 +361511,7 @@ func (m *marshalbgpSrteSegmentDTypeSubTlv) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrteSegmentDTypeSubTlv) FromJson(value string) error { +func (m *unMarshalbgpSrteSegmentJTypeSubTlv) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -347953,19 +361532,19 @@ func (m *unMarshalbgpSrteSegmentDTypeSubTlv) FromJson(value string) error { return nil } -func (obj *bgpSrteSegmentDTypeSubTlv) validateToAndFrom() error { +func (obj *bgpSrteSegmentJTypeSubTlv) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpSrteSegmentDTypeSubTlv) validate() error { +func (obj *bgpSrteSegmentJTypeSubTlv) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpSrteSegmentDTypeSubTlv) String() string { +func (obj *bgpSrteSegmentJTypeSubTlv) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -347973,12 +361552,12 @@ func (obj *bgpSrteSegmentDTypeSubTlv) String() string { return str } -func (obj *bgpSrteSegmentDTypeSubTlv) Clone() (BgpSrteSegmentDTypeSubTlv, error) { +func (obj *bgpSrteSegmentJTypeSubTlv) Clone() (BgpSrteSegmentJTypeSubTlv, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpSrteSegmentDTypeSubTlv() + newObj := NewBgpSrteSegmentJTypeSubTlv() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -347990,151 +361569,255 @@ func (obj *bgpSrteSegmentDTypeSubTlv) Clone() (BgpSrteSegmentDTypeSubTlv, error) return newObj, nil } -func (obj *bgpSrteSegmentDTypeSubTlv) setNil() { - obj.srMplsSidHolder = nil +func (obj *bgpSrteSegmentJTypeSubTlv) setNil() { + obj.srv6SidEndpointBehaviorHolder = nil obj.validationErrors = nil obj.warnings = nil obj.constraints = make(map[string]map[string]Constraints) } -// BgpSrteSegmentDTypeSubTlv is type D: IPv6 Node Address with optional SID for SR MPLS. -type BgpSrteSegmentDTypeSubTlv interface { +// BgpSrteSegmentJTypeSubTlv is type J: IPv6 Address, Interface ID for local and remote pair for SRv6 with optional SID. +type BgpSrteSegmentJTypeSubTlv interface { Validation - // msg marshals BgpSrteSegmentDTypeSubTlv to protobuf object *otg.BgpSrteSegmentDTypeSubTlv + // msg marshals BgpSrteSegmentJTypeSubTlv to protobuf object *otg.BgpSrteSegmentJTypeSubTlv // and doesn't set defaults - msg() *otg.BgpSrteSegmentDTypeSubTlv - // setMsg unmarshals BgpSrteSegmentDTypeSubTlv from protobuf object *otg.BgpSrteSegmentDTypeSubTlv + msg() *otg.BgpSrteSegmentJTypeSubTlv + // setMsg unmarshals BgpSrteSegmentJTypeSubTlv from protobuf object *otg.BgpSrteSegmentJTypeSubTlv // and doesn't set defaults - setMsg(*otg.BgpSrteSegmentDTypeSubTlv) BgpSrteSegmentDTypeSubTlv + setMsg(*otg.BgpSrteSegmentJTypeSubTlv) BgpSrteSegmentJTypeSubTlv // provides marshal interface - Marshal() marshalBgpSrteSegmentDTypeSubTlv + Marshal() marshalBgpSrteSegmentJTypeSubTlv // provides unmarshal interface - Unmarshal() unMarshalBgpSrteSegmentDTypeSubTlv - // validate validates BgpSrteSegmentDTypeSubTlv + Unmarshal() unMarshalBgpSrteSegmentJTypeSubTlv + // validate validates BgpSrteSegmentJTypeSubTlv validate() error // A stringer function String() string // Clones the object - Clone() (BgpSrteSegmentDTypeSubTlv, error) + Clone() (BgpSrteSegmentJTypeSubTlv, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Flags returns string, set in BgpSrteSegmentDTypeSubTlv. + // Flags returns string, set in BgpSrteSegmentJTypeSubTlv. Flags() string - // SetFlags assigns string provided by user to BgpSrteSegmentDTypeSubTlv - SetFlags(value string) BgpSrteSegmentDTypeSubTlv - // HasFlags checks if Flags has been set in BgpSrteSegmentDTypeSubTlv + // SetFlags assigns string provided by user to BgpSrteSegmentJTypeSubTlv + SetFlags(value string) BgpSrteSegmentJTypeSubTlv + // HasFlags checks if Flags has been set in BgpSrteSegmentJTypeSubTlv HasFlags() bool - // SrAlgorithm returns uint32, set in BgpSrteSegmentDTypeSubTlv. + // SrAlgorithm returns uint32, set in BgpSrteSegmentJTypeSubTlv. SrAlgorithm() uint32 - // SetSrAlgorithm assigns uint32 provided by user to BgpSrteSegmentDTypeSubTlv - SetSrAlgorithm(value uint32) BgpSrteSegmentDTypeSubTlv - // HasSrAlgorithm checks if SrAlgorithm has been set in BgpSrteSegmentDTypeSubTlv + // SetSrAlgorithm assigns uint32 provided by user to BgpSrteSegmentJTypeSubTlv + SetSrAlgorithm(value uint32) BgpSrteSegmentJTypeSubTlv + // HasSrAlgorithm checks if SrAlgorithm has been set in BgpSrteSegmentJTypeSubTlv HasSrAlgorithm() bool - // Ipv6NodeAddress returns string, set in BgpSrteSegmentDTypeSubTlv. - Ipv6NodeAddress() string - // SetIpv6NodeAddress assigns string provided by user to BgpSrteSegmentDTypeSubTlv - SetIpv6NodeAddress(value string) BgpSrteSegmentDTypeSubTlv - // SrMplsSid returns BgpSrteSrMplsSid, set in BgpSrteSegmentDTypeSubTlv. - // BgpSrteSrMplsSid is configuration for SR-MPLS with Label, TC, Bottom-of-Stack and TTL. - SrMplsSid() BgpSrteSrMplsSid - // SetSrMplsSid assigns BgpSrteSrMplsSid provided by user to BgpSrteSegmentDTypeSubTlv. - // BgpSrteSrMplsSid is configuration for SR-MPLS with Label, TC, Bottom-of-Stack and TTL. - SetSrMplsSid(value BgpSrteSrMplsSid) BgpSrteSegmentDTypeSubTlv - // HasSrMplsSid checks if SrMplsSid has been set in BgpSrteSegmentDTypeSubTlv - HasSrMplsSid() bool + // LocalInterfaceId returns uint32, set in BgpSrteSegmentJTypeSubTlv. + LocalInterfaceId() uint32 + // SetLocalInterfaceId assigns uint32 provided by user to BgpSrteSegmentJTypeSubTlv + SetLocalInterfaceId(value uint32) BgpSrteSegmentJTypeSubTlv + // HasLocalInterfaceId checks if LocalInterfaceId has been set in BgpSrteSegmentJTypeSubTlv + HasLocalInterfaceId() bool + // LocalIpv6NodeAddress returns string, set in BgpSrteSegmentJTypeSubTlv. + LocalIpv6NodeAddress() string + // SetLocalIpv6NodeAddress assigns string provided by user to BgpSrteSegmentJTypeSubTlv + SetLocalIpv6NodeAddress(value string) BgpSrteSegmentJTypeSubTlv + // RemoteInterfaceId returns uint32, set in BgpSrteSegmentJTypeSubTlv. + RemoteInterfaceId() uint32 + // SetRemoteInterfaceId assigns uint32 provided by user to BgpSrteSegmentJTypeSubTlv + SetRemoteInterfaceId(value uint32) BgpSrteSegmentJTypeSubTlv + // HasRemoteInterfaceId checks if RemoteInterfaceId has been set in BgpSrteSegmentJTypeSubTlv + HasRemoteInterfaceId() bool + // RemoteIpv6NodeAddress returns string, set in BgpSrteSegmentJTypeSubTlv. + RemoteIpv6NodeAddress() string + // SetRemoteIpv6NodeAddress assigns string provided by user to BgpSrteSegmentJTypeSubTlv + SetRemoteIpv6NodeAddress(value string) BgpSrteSegmentJTypeSubTlv + // Srv6Sid returns string, set in BgpSrteSegmentJTypeSubTlv. + Srv6Sid() string + // SetSrv6Sid assigns string provided by user to BgpSrteSegmentJTypeSubTlv + SetSrv6Sid(value string) BgpSrteSegmentJTypeSubTlv + // HasSrv6Sid checks if Srv6Sid has been set in BgpSrteSegmentJTypeSubTlv + HasSrv6Sid() bool + // Srv6SidEndpointBehavior returns BgpSrteSRv6SIDEndpointBehaviorAndStructure, set in BgpSrteSegmentJTypeSubTlv. + // BgpSrteSRv6SIDEndpointBehaviorAndStructure is configuration for SRv6 Endpoint Behavior and SID Structure. Its optional. Summation of lengths for Locator Block, Locator Node, Function, and Argument MUST be less than or equal to 128. + Srv6SidEndpointBehavior() BgpSrteSRv6SIDEndpointBehaviorAndStructure + // SetSrv6SidEndpointBehavior assigns BgpSrteSRv6SIDEndpointBehaviorAndStructure provided by user to BgpSrteSegmentJTypeSubTlv. + // BgpSrteSRv6SIDEndpointBehaviorAndStructure is configuration for SRv6 Endpoint Behavior and SID Structure. Its optional. Summation of lengths for Locator Block, Locator Node, Function, and Argument MUST be less than or equal to 128. + SetSrv6SidEndpointBehavior(value BgpSrteSRv6SIDEndpointBehaviorAndStructure) BgpSrteSegmentJTypeSubTlv + // HasSrv6SidEndpointBehavior checks if Srv6SidEndpointBehavior has been set in BgpSrteSegmentJTypeSubTlv + HasSrv6SidEndpointBehavior() bool setNil() } // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 // Flags returns a string -func (obj *bgpSrteSegmentDTypeSubTlv) Flags() string { +func (obj *bgpSrteSegmentJTypeSubTlv) Flags() string { return *obj.obj.Flags } -// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 -// Flags returns a string -func (obj *bgpSrteSegmentDTypeSubTlv) HasFlags() bool { - return obj.obj.Flags != nil +// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 +// Flags returns a string +func (obj *bgpSrteSegmentJTypeSubTlv) HasFlags() bool { + return obj.obj.Flags != nil +} + +// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 +// SetFlags sets the string value in the BgpSrteSegmentJTypeSubTlv object +func (obj *bgpSrteSegmentJTypeSubTlv) SetFlags(value string) BgpSrteSegmentJTypeSubTlv { + + obj.obj.Flags = &value + return obj +} + +// SR Algorithm identifier when A-Flag in on. +// SrAlgorithm returns a uint32 +func (obj *bgpSrteSegmentJTypeSubTlv) SrAlgorithm() uint32 { + + return *obj.obj.SrAlgorithm + +} + +// SR Algorithm identifier when A-Flag in on. +// SrAlgorithm returns a uint32 +func (obj *bgpSrteSegmentJTypeSubTlv) HasSrAlgorithm() bool { + return obj.obj.SrAlgorithm != nil +} + +// SR Algorithm identifier when A-Flag in on. +// SetSrAlgorithm sets the uint32 value in the BgpSrteSegmentJTypeSubTlv object +func (obj *bgpSrteSegmentJTypeSubTlv) SetSrAlgorithm(value uint32) BgpSrteSegmentJTypeSubTlv { + + obj.obj.SrAlgorithm = &value + return obj +} + +// Local Interface ID: The Interface Index as defined in [RFC8664]. +// LocalInterfaceId returns a uint32 +func (obj *bgpSrteSegmentJTypeSubTlv) LocalInterfaceId() uint32 { + + return *obj.obj.LocalInterfaceId + +} + +// Local Interface ID: The Interface Index as defined in [RFC8664]. +// LocalInterfaceId returns a uint32 +func (obj *bgpSrteSegmentJTypeSubTlv) HasLocalInterfaceId() bool { + return obj.obj.LocalInterfaceId != nil +} + +// Local Interface ID: The Interface Index as defined in [RFC8664]. +// SetLocalInterfaceId sets the uint32 value in the BgpSrteSegmentJTypeSubTlv object +func (obj *bgpSrteSegmentJTypeSubTlv) SetLocalInterfaceId(value uint32) BgpSrteSegmentJTypeSubTlv { + + obj.obj.LocalInterfaceId = &value + return obj +} + +// IPv6 address representing a node. +// LocalIpv6NodeAddress returns a string +func (obj *bgpSrteSegmentJTypeSubTlv) LocalIpv6NodeAddress() string { + + return *obj.obj.LocalIpv6NodeAddress + +} + +// IPv6 address representing a node. +// SetLocalIpv6NodeAddress sets the string value in the BgpSrteSegmentJTypeSubTlv object +func (obj *bgpSrteSegmentJTypeSubTlv) SetLocalIpv6NodeAddress(value string) BgpSrteSegmentJTypeSubTlv { + + obj.obj.LocalIpv6NodeAddress = &value + return obj +} + +// Local Interface ID: The Interface Index as defined in [RFC8664]. +// RemoteInterfaceId returns a uint32 +func (obj *bgpSrteSegmentJTypeSubTlv) RemoteInterfaceId() uint32 { + + return *obj.obj.RemoteInterfaceId + +} + +// Local Interface ID: The Interface Index as defined in [RFC8664]. +// RemoteInterfaceId returns a uint32 +func (obj *bgpSrteSegmentJTypeSubTlv) HasRemoteInterfaceId() bool { + return obj.obj.RemoteInterfaceId != nil } -// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 -// SetFlags sets the string value in the BgpSrteSegmentDTypeSubTlv object -func (obj *bgpSrteSegmentDTypeSubTlv) SetFlags(value string) BgpSrteSegmentDTypeSubTlv { +// Local Interface ID: The Interface Index as defined in [RFC8664]. +// SetRemoteInterfaceId sets the uint32 value in the BgpSrteSegmentJTypeSubTlv object +func (obj *bgpSrteSegmentJTypeSubTlv) SetRemoteInterfaceId(value uint32) BgpSrteSegmentJTypeSubTlv { - obj.obj.Flags = &value + obj.obj.RemoteInterfaceId = &value return obj } -// specifying SR Algorithm when when A-Flag as defined in above flags. -// SrAlgorithm returns a uint32 -func (obj *bgpSrteSegmentDTypeSubTlv) SrAlgorithm() uint32 { - - return *obj.obj.SrAlgorithm +// IPv6 address representing a node. +// RemoteIpv6NodeAddress returns a string +func (obj *bgpSrteSegmentJTypeSubTlv) RemoteIpv6NodeAddress() string { -} + return *obj.obj.RemoteIpv6NodeAddress -// specifying SR Algorithm when when A-Flag as defined in above flags. -// SrAlgorithm returns a uint32 -func (obj *bgpSrteSegmentDTypeSubTlv) HasSrAlgorithm() bool { - return obj.obj.SrAlgorithm != nil } -// specifying SR Algorithm when when A-Flag as defined in above flags. -// SetSrAlgorithm sets the uint32 value in the BgpSrteSegmentDTypeSubTlv object -func (obj *bgpSrteSegmentDTypeSubTlv) SetSrAlgorithm(value uint32) BgpSrteSegmentDTypeSubTlv { +// IPv6 address representing a node. +// SetRemoteIpv6NodeAddress sets the string value in the BgpSrteSegmentJTypeSubTlv object +func (obj *bgpSrteSegmentJTypeSubTlv) SetRemoteIpv6NodeAddress(value string) BgpSrteSegmentJTypeSubTlv { - obj.obj.SrAlgorithm = &value + obj.obj.RemoteIpv6NodeAddress = &value return obj } -// IPv6 address representing a node. -// Ipv6NodeAddress returns a string -func (obj *bgpSrteSegmentDTypeSubTlv) Ipv6NodeAddress() string { +// Optional SRv6 SID. +// Srv6Sid returns a string +func (obj *bgpSrteSegmentJTypeSubTlv) Srv6Sid() string { - return *obj.obj.Ipv6NodeAddress + return *obj.obj.Srv6Sid } -// IPv6 address representing a node. -// SetIpv6NodeAddress sets the string value in the BgpSrteSegmentDTypeSubTlv object -func (obj *bgpSrteSegmentDTypeSubTlv) SetIpv6NodeAddress(value string) BgpSrteSegmentDTypeSubTlv { +// Optional SRv6 SID. +// Srv6Sid returns a string +func (obj *bgpSrteSegmentJTypeSubTlv) HasSrv6Sid() bool { + return obj.obj.Srv6Sid != nil +} - obj.obj.Ipv6NodeAddress = &value +// Optional SRv6 SID. +// SetSrv6Sid sets the string value in the BgpSrteSegmentJTypeSubTlv object +func (obj *bgpSrteSegmentJTypeSubTlv) SetSrv6Sid(value string) BgpSrteSegmentJTypeSubTlv { + + obj.obj.Srv6Sid = &value return obj } -// Optional SR-MPLS SID. -// SrMplsSid returns a BgpSrteSrMplsSid -func (obj *bgpSrteSegmentDTypeSubTlv) SrMplsSid() BgpSrteSrMplsSid { - if obj.obj.SrMplsSid == nil { - obj.obj.SrMplsSid = NewBgpSrteSrMplsSid().msg() +// Optional SRv6 Endpoint Behavior and SID Structure. +// Srv6SidEndpointBehavior returns a BgpSrteSRv6SIDEndpointBehaviorAndStructure +func (obj *bgpSrteSegmentJTypeSubTlv) Srv6SidEndpointBehavior() BgpSrteSRv6SIDEndpointBehaviorAndStructure { + if obj.obj.Srv6SidEndpointBehavior == nil { + obj.obj.Srv6SidEndpointBehavior = NewBgpSrteSRv6SIDEndpointBehaviorAndStructure().msg() } - if obj.srMplsSidHolder == nil { - obj.srMplsSidHolder = &bgpSrteSrMplsSid{obj: obj.obj.SrMplsSid} + if obj.srv6SidEndpointBehaviorHolder == nil { + obj.srv6SidEndpointBehaviorHolder = &bgpSrteSRv6SIDEndpointBehaviorAndStructure{obj: obj.obj.Srv6SidEndpointBehavior} } - return obj.srMplsSidHolder + return obj.srv6SidEndpointBehaviorHolder } -// Optional SR-MPLS SID. -// SrMplsSid returns a BgpSrteSrMplsSid -func (obj *bgpSrteSegmentDTypeSubTlv) HasSrMplsSid() bool { - return obj.obj.SrMplsSid != nil +// Optional SRv6 Endpoint Behavior and SID Structure. +// Srv6SidEndpointBehavior returns a BgpSrteSRv6SIDEndpointBehaviorAndStructure +func (obj *bgpSrteSegmentJTypeSubTlv) HasSrv6SidEndpointBehavior() bool { + return obj.obj.Srv6SidEndpointBehavior != nil } -// Optional SR-MPLS SID. -// SetSrMplsSid sets the BgpSrteSrMplsSid value in the BgpSrteSegmentDTypeSubTlv object -func (obj *bgpSrteSegmentDTypeSubTlv) SetSrMplsSid(value BgpSrteSrMplsSid) BgpSrteSegmentDTypeSubTlv { +// Optional SRv6 Endpoint Behavior and SID Structure. +// SetSrv6SidEndpointBehavior sets the BgpSrteSRv6SIDEndpointBehaviorAndStructure value in the BgpSrteSegmentJTypeSubTlv object +func (obj *bgpSrteSegmentJTypeSubTlv) SetSrv6SidEndpointBehavior(value BgpSrteSRv6SIDEndpointBehaviorAndStructure) BgpSrteSegmentJTypeSubTlv { - obj.srMplsSidHolder = nil - obj.obj.SrMplsSid = value.msg() + obj.srv6SidEndpointBehaviorHolder = nil + obj.obj.Srv6SidEndpointBehavior = value.msg() return obj } -func (obj *bgpSrteSegmentDTypeSubTlv) validateObj(vObj *validation, set_default bool) { +func (obj *bgpSrteSegmentJTypeSubTlv) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } @@ -348143,118 +361826,136 @@ func (obj *bgpSrteSegmentDTypeSubTlv) validateObj(vObj *validation, set_default err := obj.validateHex(obj.Flags()) if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentDTypeSubTlv.Flags")) + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentJTypeSubTlv.Flags")) } } - if obj.obj.SrAlgorithm != nil { + // LocalIpv6NodeAddress is required + if obj.obj.LocalIpv6NodeAddress == nil { + vObj.validationErrors = append(vObj.validationErrors, "LocalIpv6NodeAddress is required field on interface BgpSrteSegmentJTypeSubTlv") + } + if obj.obj.LocalIpv6NodeAddress != nil { - if *obj.obj.SrAlgorithm > 255 { - vObj.validationErrors = append( - vObj.validationErrors, - fmt.Sprintf("0 <= BgpSrteSegmentDTypeSubTlv.SrAlgorithm <= 255 but Got %d", *obj.obj.SrAlgorithm)) + err := obj.validateIpv6(obj.LocalIpv6NodeAddress()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentJTypeSubTlv.LocalIpv6NodeAddress")) } } - // Ipv6NodeAddress is required - if obj.obj.Ipv6NodeAddress == nil { - vObj.validationErrors = append(vObj.validationErrors, "Ipv6NodeAddress is required field on interface BgpSrteSegmentDTypeSubTlv") + // RemoteIpv6NodeAddress is required + if obj.obj.RemoteIpv6NodeAddress == nil { + vObj.validationErrors = append(vObj.validationErrors, "RemoteIpv6NodeAddress is required field on interface BgpSrteSegmentJTypeSubTlv") } - if obj.obj.Ipv6NodeAddress != nil { + if obj.obj.RemoteIpv6NodeAddress != nil { - err := obj.validateIpv6(obj.Ipv6NodeAddress()) + err := obj.validateIpv6(obj.RemoteIpv6NodeAddress()) if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentDTypeSubTlv.Ipv6NodeAddress")) + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentJTypeSubTlv.RemoteIpv6NodeAddress")) } } - if obj.obj.SrMplsSid != nil { + if obj.obj.Srv6Sid != nil { - obj.SrMplsSid().validateObj(vObj, set_default) + err := obj.validateIpv6(obj.Srv6Sid()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentJTypeSubTlv.Srv6Sid")) + } + + } + + if obj.obj.Srv6SidEndpointBehavior != nil { + + obj.Srv6SidEndpointBehavior().validateObj(vObj, set_default) } } -func (obj *bgpSrteSegmentDTypeSubTlv) setDefault() { +func (obj *bgpSrteSegmentJTypeSubTlv) setDefault() { if obj.obj.SrAlgorithm == nil { obj.SetSrAlgorithm(0) } + if obj.obj.LocalInterfaceId == nil { + obj.SetLocalInterfaceId(0) + } + if obj.obj.RemoteInterfaceId == nil { + obj.SetRemoteInterfaceId(0) + } } -// ***** BgpSrteSegmentETypeSubTlv ***** -type bgpSrteSegmentETypeSubTlv struct { +// ***** BgpSrteSegmentKTypeSubTlv ***** +type bgpSrteSegmentKTypeSubTlv struct { validation - obj *otg.BgpSrteSegmentETypeSubTlv - marshaller marshalBgpSrteSegmentETypeSubTlv - unMarshaller unMarshalBgpSrteSegmentETypeSubTlv - srMplsSidHolder BgpSrteSrMplsSid + obj *otg.BgpSrteSegmentKTypeSubTlv + marshaller marshalBgpSrteSegmentKTypeSubTlv + unMarshaller unMarshalBgpSrteSegmentKTypeSubTlv + srv6SidEndpointBehaviorHolder BgpSrteSRv6SIDEndpointBehaviorAndStructure } -func NewBgpSrteSegmentETypeSubTlv() BgpSrteSegmentETypeSubTlv { - obj := bgpSrteSegmentETypeSubTlv{obj: &otg.BgpSrteSegmentETypeSubTlv{}} +func NewBgpSrteSegmentKTypeSubTlv() BgpSrteSegmentKTypeSubTlv { + obj := bgpSrteSegmentKTypeSubTlv{obj: &otg.BgpSrteSegmentKTypeSubTlv{}} obj.setDefault() return &obj } -func (obj *bgpSrteSegmentETypeSubTlv) msg() *otg.BgpSrteSegmentETypeSubTlv { +func (obj *bgpSrteSegmentKTypeSubTlv) msg() *otg.BgpSrteSegmentKTypeSubTlv { return obj.obj } -func (obj *bgpSrteSegmentETypeSubTlv) setMsg(msg *otg.BgpSrteSegmentETypeSubTlv) BgpSrteSegmentETypeSubTlv { +func (obj *bgpSrteSegmentKTypeSubTlv) setMsg(msg *otg.BgpSrteSegmentKTypeSubTlv) BgpSrteSegmentKTypeSubTlv { obj.setNil() proto.Merge(obj.obj, msg) return obj } -type marshalbgpSrteSegmentETypeSubTlv struct { - obj *bgpSrteSegmentETypeSubTlv +type marshalbgpSrteSegmentKTypeSubTlv struct { + obj *bgpSrteSegmentKTypeSubTlv } -type marshalBgpSrteSegmentETypeSubTlv interface { - // ToProto marshals BgpSrteSegmentETypeSubTlv to protobuf object *otg.BgpSrteSegmentETypeSubTlv - ToProto() (*otg.BgpSrteSegmentETypeSubTlv, error) - // ToPbText marshals BgpSrteSegmentETypeSubTlv to protobuf text +type marshalBgpSrteSegmentKTypeSubTlv interface { + // ToProto marshals BgpSrteSegmentKTypeSubTlv to protobuf object *otg.BgpSrteSegmentKTypeSubTlv + ToProto() (*otg.BgpSrteSegmentKTypeSubTlv, error) + // ToPbText marshals BgpSrteSegmentKTypeSubTlv to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpSrteSegmentETypeSubTlv to YAML text + // ToYaml marshals BgpSrteSegmentKTypeSubTlv to YAML text ToYaml() (string, error) - // ToJson marshals BgpSrteSegmentETypeSubTlv to JSON text + // ToJson marshals BgpSrteSegmentKTypeSubTlv to JSON text ToJson() (string, error) } -type unMarshalbgpSrteSegmentETypeSubTlv struct { - obj *bgpSrteSegmentETypeSubTlv +type unMarshalbgpSrteSegmentKTypeSubTlv struct { + obj *bgpSrteSegmentKTypeSubTlv } -type unMarshalBgpSrteSegmentETypeSubTlv interface { - // FromProto unmarshals BgpSrteSegmentETypeSubTlv from protobuf object *otg.BgpSrteSegmentETypeSubTlv - FromProto(msg *otg.BgpSrteSegmentETypeSubTlv) (BgpSrteSegmentETypeSubTlv, error) - // FromPbText unmarshals BgpSrteSegmentETypeSubTlv from protobuf text +type unMarshalBgpSrteSegmentKTypeSubTlv interface { + // FromProto unmarshals BgpSrteSegmentKTypeSubTlv from protobuf object *otg.BgpSrteSegmentKTypeSubTlv + FromProto(msg *otg.BgpSrteSegmentKTypeSubTlv) (BgpSrteSegmentKTypeSubTlv, error) + // FromPbText unmarshals BgpSrteSegmentKTypeSubTlv from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpSrteSegmentETypeSubTlv from YAML text + // FromYaml unmarshals BgpSrteSegmentKTypeSubTlv from YAML text FromYaml(value string) error - // FromJson unmarshals BgpSrteSegmentETypeSubTlv from JSON text + // FromJson unmarshals BgpSrteSegmentKTypeSubTlv from JSON text FromJson(value string) error } -func (obj *bgpSrteSegmentETypeSubTlv) Marshal() marshalBgpSrteSegmentETypeSubTlv { +func (obj *bgpSrteSegmentKTypeSubTlv) Marshal() marshalBgpSrteSegmentKTypeSubTlv { if obj.marshaller == nil { - obj.marshaller = &marshalbgpSrteSegmentETypeSubTlv{obj: obj} + obj.marshaller = &marshalbgpSrteSegmentKTypeSubTlv{obj: obj} } return obj.marshaller } -func (obj *bgpSrteSegmentETypeSubTlv) Unmarshal() unMarshalBgpSrteSegmentETypeSubTlv { +func (obj *bgpSrteSegmentKTypeSubTlv) Unmarshal() unMarshalBgpSrteSegmentKTypeSubTlv { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpSrteSegmentETypeSubTlv{obj: obj} + obj.unMarshaller = &unMarshalbgpSrteSegmentKTypeSubTlv{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpSrteSegmentETypeSubTlv) ToProto() (*otg.BgpSrteSegmentETypeSubTlv, error) { +func (m *marshalbgpSrteSegmentKTypeSubTlv) ToProto() (*otg.BgpSrteSegmentKTypeSubTlv, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -348262,7 +361963,7 @@ func (m *marshalbgpSrteSegmentETypeSubTlv) ToProto() (*otg.BgpSrteSegmentETypeSu return m.obj.msg(), nil } -func (m *unMarshalbgpSrteSegmentETypeSubTlv) FromProto(msg *otg.BgpSrteSegmentETypeSubTlv) (BgpSrteSegmentETypeSubTlv, error) { +func (m *unMarshalbgpSrteSegmentKTypeSubTlv) FromProto(msg *otg.BgpSrteSegmentKTypeSubTlv) (BgpSrteSegmentKTypeSubTlv, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -348271,7 +361972,7 @@ func (m *unMarshalbgpSrteSegmentETypeSubTlv) FromProto(msg *otg.BgpSrteSegmentET return newObj, nil } -func (m *marshalbgpSrteSegmentETypeSubTlv) ToPbText() (string, error) { +func (m *marshalbgpSrteSegmentKTypeSubTlv) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -348283,7 +361984,7 @@ func (m *marshalbgpSrteSegmentETypeSubTlv) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalbgpSrteSegmentETypeSubTlv) FromPbText(value string) error { +func (m *unMarshalbgpSrteSegmentKTypeSubTlv) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj @@ -348296,7 +361997,7 @@ func (m *unMarshalbgpSrteSegmentETypeSubTlv) FromPbText(value string) error { return retObj } -func (m *marshalbgpSrteSegmentETypeSubTlv) ToYaml() (string, error) { +func (m *marshalbgpSrteSegmentKTypeSubTlv) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -348317,7 +362018,7 @@ func (m *marshalbgpSrteSegmentETypeSubTlv) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrteSegmentETypeSubTlv) FromYaml(value string) error { +func (m *unMarshalbgpSrteSegmentKTypeSubTlv) FromYaml(value string) error { if value == "" { value = "{}" } @@ -348342,7 +362043,7 @@ func (m *unMarshalbgpSrteSegmentETypeSubTlv) FromYaml(value string) error { return nil } -func (m *marshalbgpSrteSegmentETypeSubTlv) ToJson() (string, error) { +func (m *marshalbgpSrteSegmentKTypeSubTlv) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -348360,7 +362061,7 @@ func (m *marshalbgpSrteSegmentETypeSubTlv) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrteSegmentETypeSubTlv) FromJson(value string) error { +func (m *unMarshalbgpSrteSegmentKTypeSubTlv) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -348381,19 +362082,19 @@ func (m *unMarshalbgpSrteSegmentETypeSubTlv) FromJson(value string) error { return nil } -func (obj *bgpSrteSegmentETypeSubTlv) validateToAndFrom() error { +func (obj *bgpSrteSegmentKTypeSubTlv) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpSrteSegmentETypeSubTlv) validate() error { +func (obj *bgpSrteSegmentKTypeSubTlv) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpSrteSegmentETypeSubTlv) String() string { +func (obj *bgpSrteSegmentKTypeSubTlv) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -348401,12 +362102,12 @@ func (obj *bgpSrteSegmentETypeSubTlv) String() string { return str } -func (obj *bgpSrteSegmentETypeSubTlv) Clone() (BgpSrteSegmentETypeSubTlv, error) { +func (obj *bgpSrteSegmentKTypeSubTlv) Clone() (BgpSrteSegmentKTypeSubTlv, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpSrteSegmentETypeSubTlv() + newObj := NewBgpSrteSegmentKTypeSubTlv() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -348418,65 +362119,75 @@ func (obj *bgpSrteSegmentETypeSubTlv) Clone() (BgpSrteSegmentETypeSubTlv, error) return newObj, nil } -func (obj *bgpSrteSegmentETypeSubTlv) setNil() { - obj.srMplsSidHolder = nil +func (obj *bgpSrteSegmentKTypeSubTlv) setNil() { + obj.srv6SidEndpointBehaviorHolder = nil obj.validationErrors = nil obj.warnings = nil obj.constraints = make(map[string]map[string]Constraints) } -// BgpSrteSegmentETypeSubTlv is type E: IPv4 Address and Local Interface ID with optional SID -type BgpSrteSegmentETypeSubTlv interface { +// BgpSrteSegmentKTypeSubTlv is type K: IPv6 Local and Remote addresses for SRv6 with optional SID. +type BgpSrteSegmentKTypeSubTlv interface { Validation - // msg marshals BgpSrteSegmentETypeSubTlv to protobuf object *otg.BgpSrteSegmentETypeSubTlv + // msg marshals BgpSrteSegmentKTypeSubTlv to protobuf object *otg.BgpSrteSegmentKTypeSubTlv // and doesn't set defaults - msg() *otg.BgpSrteSegmentETypeSubTlv - // setMsg unmarshals BgpSrteSegmentETypeSubTlv from protobuf object *otg.BgpSrteSegmentETypeSubTlv + msg() *otg.BgpSrteSegmentKTypeSubTlv + // setMsg unmarshals BgpSrteSegmentKTypeSubTlv from protobuf object *otg.BgpSrteSegmentKTypeSubTlv // and doesn't set defaults - setMsg(*otg.BgpSrteSegmentETypeSubTlv) BgpSrteSegmentETypeSubTlv + setMsg(*otg.BgpSrteSegmentKTypeSubTlv) BgpSrteSegmentKTypeSubTlv // provides marshal interface - Marshal() marshalBgpSrteSegmentETypeSubTlv + Marshal() marshalBgpSrteSegmentKTypeSubTlv // provides unmarshal interface - Unmarshal() unMarshalBgpSrteSegmentETypeSubTlv - // validate validates BgpSrteSegmentETypeSubTlv + Unmarshal() unMarshalBgpSrteSegmentKTypeSubTlv + // validate validates BgpSrteSegmentKTypeSubTlv validate() error // A stringer function String() string // Clones the object - Clone() (BgpSrteSegmentETypeSubTlv, error) + Clone() (BgpSrteSegmentKTypeSubTlv, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Flags returns string, set in BgpSrteSegmentETypeSubTlv. + // Flags returns string, set in BgpSrteSegmentKTypeSubTlv. Flags() string - // SetFlags assigns string provided by user to BgpSrteSegmentETypeSubTlv - SetFlags(value string) BgpSrteSegmentETypeSubTlv - // HasFlags checks if Flags has been set in BgpSrteSegmentETypeSubTlv + // SetFlags assigns string provided by user to BgpSrteSegmentKTypeSubTlv + SetFlags(value string) BgpSrteSegmentKTypeSubTlv + // HasFlags checks if Flags has been set in BgpSrteSegmentKTypeSubTlv HasFlags() bool - // LocalInterfaceId returns uint32, set in BgpSrteSegmentETypeSubTlv. - LocalInterfaceId() uint32 - // SetLocalInterfaceId assigns uint32 provided by user to BgpSrteSegmentETypeSubTlv - SetLocalInterfaceId(value uint32) BgpSrteSegmentETypeSubTlv - // HasLocalInterfaceId checks if LocalInterfaceId has been set in BgpSrteSegmentETypeSubTlv - HasLocalInterfaceId() bool - // Ipv4NodeAddress returns string, set in BgpSrteSegmentETypeSubTlv. - Ipv4NodeAddress() string - // SetIpv4NodeAddress assigns string provided by user to BgpSrteSegmentETypeSubTlv - SetIpv4NodeAddress(value string) BgpSrteSegmentETypeSubTlv - // SrMplsSid returns BgpSrteSrMplsSid, set in BgpSrteSegmentETypeSubTlv. - // BgpSrteSrMplsSid is configuration for SR-MPLS with Label, TC, Bottom-of-Stack and TTL. - SrMplsSid() BgpSrteSrMplsSid - // SetSrMplsSid assigns BgpSrteSrMplsSid provided by user to BgpSrteSegmentETypeSubTlv. - // BgpSrteSrMplsSid is configuration for SR-MPLS with Label, TC, Bottom-of-Stack and TTL. - SetSrMplsSid(value BgpSrteSrMplsSid) BgpSrteSegmentETypeSubTlv - // HasSrMplsSid checks if SrMplsSid has been set in BgpSrteSegmentETypeSubTlv - HasSrMplsSid() bool + // SrAlgorithm returns uint32, set in BgpSrteSegmentKTypeSubTlv. + SrAlgorithm() uint32 + // SetSrAlgorithm assigns uint32 provided by user to BgpSrteSegmentKTypeSubTlv + SetSrAlgorithm(value uint32) BgpSrteSegmentKTypeSubTlv + // HasSrAlgorithm checks if SrAlgorithm has been set in BgpSrteSegmentKTypeSubTlv + HasSrAlgorithm() bool + // LocalIpv6Address returns string, set in BgpSrteSegmentKTypeSubTlv. + LocalIpv6Address() string + // SetLocalIpv6Address assigns string provided by user to BgpSrteSegmentKTypeSubTlv + SetLocalIpv6Address(value string) BgpSrteSegmentKTypeSubTlv + // RemoteIpv6Address returns string, set in BgpSrteSegmentKTypeSubTlv. + RemoteIpv6Address() string + // SetRemoteIpv6Address assigns string provided by user to BgpSrteSegmentKTypeSubTlv + SetRemoteIpv6Address(value string) BgpSrteSegmentKTypeSubTlv + // Srv6Sid returns string, set in BgpSrteSegmentKTypeSubTlv. + Srv6Sid() string + // SetSrv6Sid assigns string provided by user to BgpSrteSegmentKTypeSubTlv + SetSrv6Sid(value string) BgpSrteSegmentKTypeSubTlv + // HasSrv6Sid checks if Srv6Sid has been set in BgpSrteSegmentKTypeSubTlv + HasSrv6Sid() bool + // Srv6SidEndpointBehavior returns BgpSrteSRv6SIDEndpointBehaviorAndStructure, set in BgpSrteSegmentKTypeSubTlv. + // BgpSrteSRv6SIDEndpointBehaviorAndStructure is configuration for SRv6 Endpoint Behavior and SID Structure. Its optional. Summation of lengths for Locator Block, Locator Node, Function, and Argument MUST be less than or equal to 128. + Srv6SidEndpointBehavior() BgpSrteSRv6SIDEndpointBehaviorAndStructure + // SetSrv6SidEndpointBehavior assigns BgpSrteSRv6SIDEndpointBehaviorAndStructure provided by user to BgpSrteSegmentKTypeSubTlv. + // BgpSrteSRv6SIDEndpointBehaviorAndStructure is configuration for SRv6 Endpoint Behavior and SID Structure. Its optional. Summation of lengths for Locator Block, Locator Node, Function, and Argument MUST be less than or equal to 128. + SetSrv6SidEndpointBehavior(value BgpSrteSRv6SIDEndpointBehaviorAndStructure) BgpSrteSegmentKTypeSubTlv + // HasSrv6SidEndpointBehavior checks if Srv6SidEndpointBehavior has been set in BgpSrteSegmentKTypeSubTlv + HasSrv6SidEndpointBehavior() bool setNil() } // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 // Flags returns a string -func (obj *bgpSrteSegmentETypeSubTlv) Flags() string { +func (obj *bgpSrteSegmentKTypeSubTlv) Flags() string { return *obj.obj.Flags @@ -348484,85 +362195,123 @@ func (obj *bgpSrteSegmentETypeSubTlv) Flags() string { // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 // Flags returns a string -func (obj *bgpSrteSegmentETypeSubTlv) HasFlags() bool { +func (obj *bgpSrteSegmentKTypeSubTlv) HasFlags() bool { return obj.obj.Flags != nil } // One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 -// SetFlags sets the string value in the BgpSrteSegmentETypeSubTlv object -func (obj *bgpSrteSegmentETypeSubTlv) SetFlags(value string) BgpSrteSegmentETypeSubTlv { +// SetFlags sets the string value in the BgpSrteSegmentKTypeSubTlv object +func (obj *bgpSrteSegmentKTypeSubTlv) SetFlags(value string) BgpSrteSegmentKTypeSubTlv { obj.obj.Flags = &value return obj } -// Local Interface ID: The Interface Index as defined in [RFC8664]. -// LocalInterfaceId returns a uint32 -func (obj *bgpSrteSegmentETypeSubTlv) LocalInterfaceId() uint32 { +// SR Algorithm identifier when A-Flag in on. +// SrAlgorithm returns a uint32 +func (obj *bgpSrteSegmentKTypeSubTlv) SrAlgorithm() uint32 { - return *obj.obj.LocalInterfaceId + return *obj.obj.SrAlgorithm } -// Local Interface ID: The Interface Index as defined in [RFC8664]. -// LocalInterfaceId returns a uint32 -func (obj *bgpSrteSegmentETypeSubTlv) HasLocalInterfaceId() bool { - return obj.obj.LocalInterfaceId != nil +// SR Algorithm identifier when A-Flag in on. +// SrAlgorithm returns a uint32 +func (obj *bgpSrteSegmentKTypeSubTlv) HasSrAlgorithm() bool { + return obj.obj.SrAlgorithm != nil } -// Local Interface ID: The Interface Index as defined in [RFC8664]. -// SetLocalInterfaceId sets the uint32 value in the BgpSrteSegmentETypeSubTlv object -func (obj *bgpSrteSegmentETypeSubTlv) SetLocalInterfaceId(value uint32) BgpSrteSegmentETypeSubTlv { +// SR Algorithm identifier when A-Flag in on. +// SetSrAlgorithm sets the uint32 value in the BgpSrteSegmentKTypeSubTlv object +func (obj *bgpSrteSegmentKTypeSubTlv) SetSrAlgorithm(value uint32) BgpSrteSegmentKTypeSubTlv { - obj.obj.LocalInterfaceId = &value + obj.obj.SrAlgorithm = &value return obj } -// IPv4 address representing a node. -// Ipv4NodeAddress returns a string -func (obj *bgpSrteSegmentETypeSubTlv) Ipv4NodeAddress() string { +// IPv6 address representing a node. +// LocalIpv6Address returns a string +func (obj *bgpSrteSegmentKTypeSubTlv) LocalIpv6Address() string { - return *obj.obj.Ipv4NodeAddress + return *obj.obj.LocalIpv6Address } -// IPv4 address representing a node. -// SetIpv4NodeAddress sets the string value in the BgpSrteSegmentETypeSubTlv object -func (obj *bgpSrteSegmentETypeSubTlv) SetIpv4NodeAddress(value string) BgpSrteSegmentETypeSubTlv { +// IPv6 address representing a node. +// SetLocalIpv6Address sets the string value in the BgpSrteSegmentKTypeSubTlv object +func (obj *bgpSrteSegmentKTypeSubTlv) SetLocalIpv6Address(value string) BgpSrteSegmentKTypeSubTlv { - obj.obj.Ipv4NodeAddress = &value + obj.obj.LocalIpv6Address = &value return obj } -// Optional SR-MPLS SID. -// SrMplsSid returns a BgpSrteSrMplsSid -func (obj *bgpSrteSegmentETypeSubTlv) SrMplsSid() BgpSrteSrMplsSid { - if obj.obj.SrMplsSid == nil { - obj.obj.SrMplsSid = NewBgpSrteSrMplsSid().msg() +// IPv6 address representing a node. +// RemoteIpv6Address returns a string +func (obj *bgpSrteSegmentKTypeSubTlv) RemoteIpv6Address() string { + + return *obj.obj.RemoteIpv6Address + +} + +// IPv6 address representing a node. +// SetRemoteIpv6Address sets the string value in the BgpSrteSegmentKTypeSubTlv object +func (obj *bgpSrteSegmentKTypeSubTlv) SetRemoteIpv6Address(value string) BgpSrteSegmentKTypeSubTlv { + + obj.obj.RemoteIpv6Address = &value + return obj +} + +// Optional SRv6 SID. +// Srv6Sid returns a string +func (obj *bgpSrteSegmentKTypeSubTlv) Srv6Sid() string { + + return *obj.obj.Srv6Sid + +} + +// Optional SRv6 SID. +// Srv6Sid returns a string +func (obj *bgpSrteSegmentKTypeSubTlv) HasSrv6Sid() bool { + return obj.obj.Srv6Sid != nil +} + +// Optional SRv6 SID. +// SetSrv6Sid sets the string value in the BgpSrteSegmentKTypeSubTlv object +func (obj *bgpSrteSegmentKTypeSubTlv) SetSrv6Sid(value string) BgpSrteSegmentKTypeSubTlv { + + obj.obj.Srv6Sid = &value + return obj +} + +// Optional SRv6 Endpoint Behavior and SID Structure. +// Srv6SidEndpointBehavior returns a BgpSrteSRv6SIDEndpointBehaviorAndStructure +func (obj *bgpSrteSegmentKTypeSubTlv) Srv6SidEndpointBehavior() BgpSrteSRv6SIDEndpointBehaviorAndStructure { + if obj.obj.Srv6SidEndpointBehavior == nil { + obj.obj.Srv6SidEndpointBehavior = NewBgpSrteSRv6SIDEndpointBehaviorAndStructure().msg() } - if obj.srMplsSidHolder == nil { - obj.srMplsSidHolder = &bgpSrteSrMplsSid{obj: obj.obj.SrMplsSid} + if obj.srv6SidEndpointBehaviorHolder == nil { + obj.srv6SidEndpointBehaviorHolder = &bgpSrteSRv6SIDEndpointBehaviorAndStructure{obj: obj.obj.Srv6SidEndpointBehavior} } - return obj.srMplsSidHolder + return obj.srv6SidEndpointBehaviorHolder } -// Optional SR-MPLS SID. -// SrMplsSid returns a BgpSrteSrMplsSid -func (obj *bgpSrteSegmentETypeSubTlv) HasSrMplsSid() bool { - return obj.obj.SrMplsSid != nil +// Optional SRv6 Endpoint Behavior and SID Structure. +// Srv6SidEndpointBehavior returns a BgpSrteSRv6SIDEndpointBehaviorAndStructure +func (obj *bgpSrteSegmentKTypeSubTlv) HasSrv6SidEndpointBehavior() bool { + return obj.obj.Srv6SidEndpointBehavior != nil } -// Optional SR-MPLS SID. -// SetSrMplsSid sets the BgpSrteSrMplsSid value in the BgpSrteSegmentETypeSubTlv object -func (obj *bgpSrteSegmentETypeSubTlv) SetSrMplsSid(value BgpSrteSrMplsSid) BgpSrteSegmentETypeSubTlv { +// Optional SRv6 Endpoint Behavior and SID Structure. +// SetSrv6SidEndpointBehavior sets the BgpSrteSRv6SIDEndpointBehaviorAndStructure value in the BgpSrteSegmentKTypeSubTlv object +func (obj *bgpSrteSegmentKTypeSubTlv) SetSrv6SidEndpointBehavior(value BgpSrteSRv6SIDEndpointBehaviorAndStructure) BgpSrteSegmentKTypeSubTlv { - obj.srMplsSidHolder = nil - obj.obj.SrMplsSid = value.msg() + obj.srv6SidEndpointBehaviorHolder = nil + obj.obj.Srv6SidEndpointBehavior = value.msg() return obj } -func (obj *bgpSrteSegmentETypeSubTlv) validateObj(vObj *validation, set_default bool) { +func (obj *bgpSrteSegmentKTypeSubTlv) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } @@ -348571,108 +362320,129 @@ func (obj *bgpSrteSegmentETypeSubTlv) validateObj(vObj *validation, set_default err := obj.validateHex(obj.Flags()) if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentETypeSubTlv.Flags")) + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentKTypeSubTlv.Flags")) } } - // Ipv4NodeAddress is required - if obj.obj.Ipv4NodeAddress == nil { - vObj.validationErrors = append(vObj.validationErrors, "Ipv4NodeAddress is required field on interface BgpSrteSegmentETypeSubTlv") + // LocalIpv6Address is required + if obj.obj.LocalIpv6Address == nil { + vObj.validationErrors = append(vObj.validationErrors, "LocalIpv6Address is required field on interface BgpSrteSegmentKTypeSubTlv") } - if obj.obj.Ipv4NodeAddress != nil { + if obj.obj.LocalIpv6Address != nil { - err := obj.validateIpv4(obj.Ipv4NodeAddress()) + err := obj.validateIpv6(obj.LocalIpv6Address()) if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentETypeSubTlv.Ipv4NodeAddress")) + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentKTypeSubTlv.LocalIpv6Address")) } } - if obj.obj.SrMplsSid != nil { + // RemoteIpv6Address is required + if obj.obj.RemoteIpv6Address == nil { + vObj.validationErrors = append(vObj.validationErrors, "RemoteIpv6Address is required field on interface BgpSrteSegmentKTypeSubTlv") + } + if obj.obj.RemoteIpv6Address != nil { - obj.SrMplsSid().validateObj(vObj, set_default) + err := obj.validateIpv6(obj.RemoteIpv6Address()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentKTypeSubTlv.RemoteIpv6Address")) + } + + } + + if obj.obj.Srv6Sid != nil { + + err := obj.validateIpv6(obj.Srv6Sid()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentKTypeSubTlv.Srv6Sid")) + } + + } + + if obj.obj.Srv6SidEndpointBehavior != nil { + + obj.Srv6SidEndpointBehavior().validateObj(vObj, set_default) } } -func (obj *bgpSrteSegmentETypeSubTlv) setDefault() { - if obj.obj.LocalInterfaceId == nil { - obj.SetLocalInterfaceId(0) +func (obj *bgpSrteSegmentKTypeSubTlv) setDefault() { + if obj.obj.SrAlgorithm == nil { + obj.SetSrAlgorithm(0) } } -// ***** BgpSrteSegmentFTypeSubTlv ***** -type bgpSrteSegmentFTypeSubTlv struct { +// ***** PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter ***** +type patternFlowSnmpv2CVariableBindingValueIntegerValueCounter struct { validation - obj *otg.BgpSrteSegmentFTypeSubTlv - marshaller marshalBgpSrteSegmentFTypeSubTlv - unMarshaller unMarshalBgpSrteSegmentFTypeSubTlv - srMplsSidHolder BgpSrteSrMplsSid + obj *otg.PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter + marshaller marshalPatternFlowSnmpv2CVariableBindingValueIntegerValueCounter + unMarshaller unMarshalPatternFlowSnmpv2CVariableBindingValueIntegerValueCounter } -func NewBgpSrteSegmentFTypeSubTlv() BgpSrteSegmentFTypeSubTlv { - obj := bgpSrteSegmentFTypeSubTlv{obj: &otg.BgpSrteSegmentFTypeSubTlv{}} +func NewPatternFlowSnmpv2CVariableBindingValueIntegerValueCounter() PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter { + obj := patternFlowSnmpv2CVariableBindingValueIntegerValueCounter{obj: &otg.PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter{}} obj.setDefault() return &obj } -func (obj *bgpSrteSegmentFTypeSubTlv) msg() *otg.BgpSrteSegmentFTypeSubTlv { +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValueCounter) msg() *otg.PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter { return obj.obj } -func (obj *bgpSrteSegmentFTypeSubTlv) setMsg(msg *otg.BgpSrteSegmentFTypeSubTlv) BgpSrteSegmentFTypeSubTlv { - obj.setNil() +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValueCounter) setMsg(msg *otg.PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter { + proto.Merge(obj.obj, msg) return obj } -type marshalbgpSrteSegmentFTypeSubTlv struct { - obj *bgpSrteSegmentFTypeSubTlv +type marshalpatternFlowSnmpv2CVariableBindingValueIntegerValueCounter struct { + obj *patternFlowSnmpv2CVariableBindingValueIntegerValueCounter } -type marshalBgpSrteSegmentFTypeSubTlv interface { - // ToProto marshals BgpSrteSegmentFTypeSubTlv to protobuf object *otg.BgpSrteSegmentFTypeSubTlv - ToProto() (*otg.BgpSrteSegmentFTypeSubTlv, error) - // ToPbText marshals BgpSrteSegmentFTypeSubTlv to protobuf text +type marshalPatternFlowSnmpv2CVariableBindingValueIntegerValueCounter interface { + // ToProto marshals PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter to protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter + ToProto() (*otg.PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter, error) + // ToPbText marshals PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpSrteSegmentFTypeSubTlv to YAML text + // ToYaml marshals PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter to YAML text ToYaml() (string, error) - // ToJson marshals BgpSrteSegmentFTypeSubTlv to JSON text + // ToJson marshals PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter to JSON text ToJson() (string, error) } -type unMarshalbgpSrteSegmentFTypeSubTlv struct { - obj *bgpSrteSegmentFTypeSubTlv +type unMarshalpatternFlowSnmpv2CVariableBindingValueIntegerValueCounter struct { + obj *patternFlowSnmpv2CVariableBindingValueIntegerValueCounter } -type unMarshalBgpSrteSegmentFTypeSubTlv interface { - // FromProto unmarshals BgpSrteSegmentFTypeSubTlv from protobuf object *otg.BgpSrteSegmentFTypeSubTlv - FromProto(msg *otg.BgpSrteSegmentFTypeSubTlv) (BgpSrteSegmentFTypeSubTlv, error) - // FromPbText unmarshals BgpSrteSegmentFTypeSubTlv from protobuf text +type unMarshalPatternFlowSnmpv2CVariableBindingValueIntegerValueCounter interface { + // FromProto unmarshals PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter from protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter + FromProto(msg *otg.PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) (PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter, error) + // FromPbText unmarshals PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpSrteSegmentFTypeSubTlv from YAML text + // FromYaml unmarshals PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter from YAML text FromYaml(value string) error - // FromJson unmarshals BgpSrteSegmentFTypeSubTlv from JSON text + // FromJson unmarshals PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter from JSON text FromJson(value string) error } -func (obj *bgpSrteSegmentFTypeSubTlv) Marshal() marshalBgpSrteSegmentFTypeSubTlv { +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValueCounter) Marshal() marshalPatternFlowSnmpv2CVariableBindingValueIntegerValueCounter { if obj.marshaller == nil { - obj.marshaller = &marshalbgpSrteSegmentFTypeSubTlv{obj: obj} + obj.marshaller = &marshalpatternFlowSnmpv2CVariableBindingValueIntegerValueCounter{obj: obj} } return obj.marshaller } -func (obj *bgpSrteSegmentFTypeSubTlv) Unmarshal() unMarshalBgpSrteSegmentFTypeSubTlv { +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValueCounter) Unmarshal() unMarshalPatternFlowSnmpv2CVariableBindingValueIntegerValueCounter { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpSrteSegmentFTypeSubTlv{obj: obj} + obj.unMarshaller = &unMarshalpatternFlowSnmpv2CVariableBindingValueIntegerValueCounter{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpSrteSegmentFTypeSubTlv) ToProto() (*otg.BgpSrteSegmentFTypeSubTlv, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) ToProto() (*otg.PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -348680,7 +362450,7 @@ func (m *marshalbgpSrteSegmentFTypeSubTlv) ToProto() (*otg.BgpSrteSegmentFTypeSu return m.obj.msg(), nil } -func (m *unMarshalbgpSrteSegmentFTypeSubTlv) FromProto(msg *otg.BgpSrteSegmentFTypeSubTlv) (BgpSrteSegmentFTypeSubTlv, error) { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) FromProto(msg *otg.PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) (PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -348689,7 +362459,7 @@ func (m *unMarshalbgpSrteSegmentFTypeSubTlv) FromProto(msg *otg.BgpSrteSegmentFT return newObj, nil } -func (m *marshalbgpSrteSegmentFTypeSubTlv) ToPbText() (string, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -348701,12 +362471,12 @@ func (m *marshalbgpSrteSegmentFTypeSubTlv) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalbgpSrteSegmentFTypeSubTlv) FromPbText(value string) error { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - m.obj.setNil() + vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -348714,7 +362484,7 @@ func (m *unMarshalbgpSrteSegmentFTypeSubTlv) FromPbText(value string) error { return retObj } -func (m *marshalbgpSrteSegmentFTypeSubTlv) ToYaml() (string, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -348735,7 +362505,7 @@ func (m *marshalbgpSrteSegmentFTypeSubTlv) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrteSegmentFTypeSubTlv) FromYaml(value string) error { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) FromYaml(value string) error { if value == "" { value = "{}" } @@ -348752,7 +362522,7 @@ func (m *unMarshalbgpSrteSegmentFTypeSubTlv) FromYaml(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - m.obj.setNil() + vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -348760,7 +362530,7 @@ func (m *unMarshalbgpSrteSegmentFTypeSubTlv) FromYaml(value string) error { return nil } -func (m *marshalbgpSrteSegmentFTypeSubTlv) ToJson() (string, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -348778,7 +362548,7 @@ func (m *marshalbgpSrteSegmentFTypeSubTlv) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrteSegmentFTypeSubTlv) FromJson(value string) error { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -348791,7 +362561,7 @@ func (m *unMarshalbgpSrteSegmentFTypeSubTlv) FromJson(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - m.obj.setNil() + err := m.obj.validateToAndFrom() if err != nil { return err @@ -348799,19 +362569,19 @@ func (m *unMarshalbgpSrteSegmentFTypeSubTlv) FromJson(value string) error { return nil } -func (obj *bgpSrteSegmentFTypeSubTlv) validateToAndFrom() error { +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValueCounter) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpSrteSegmentFTypeSubTlv) validate() error { +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValueCounter) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpSrteSegmentFTypeSubTlv) String() string { +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValueCounter) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -348819,12 +362589,12 @@ func (obj *bgpSrteSegmentFTypeSubTlv) String() string { return str } -func (obj *bgpSrteSegmentFTypeSubTlv) Clone() (BgpSrteSegmentFTypeSubTlv, error) { +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValueCounter) Clone() (PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpSrteSegmentFTypeSubTlv() + newObj := NewPatternFlowSnmpv2CVariableBindingValueIntegerValueCounter() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -348836,263 +362606,203 @@ func (obj *bgpSrteSegmentFTypeSubTlv) Clone() (BgpSrteSegmentFTypeSubTlv, error) return newObj, nil } -func (obj *bgpSrteSegmentFTypeSubTlv) setNil() { - obj.srMplsSidHolder = nil - obj.validationErrors = nil - obj.warnings = nil - obj.constraints = make(map[string]map[string]Constraints) -} - -// BgpSrteSegmentFTypeSubTlv is type F: IPv4 Local and Remote addresses with optional SID. -type BgpSrteSegmentFTypeSubTlv interface { +// PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter is integer counter pattern +type PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter interface { Validation - // msg marshals BgpSrteSegmentFTypeSubTlv to protobuf object *otg.BgpSrteSegmentFTypeSubTlv + // msg marshals PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter to protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter // and doesn't set defaults - msg() *otg.BgpSrteSegmentFTypeSubTlv - // setMsg unmarshals BgpSrteSegmentFTypeSubTlv from protobuf object *otg.BgpSrteSegmentFTypeSubTlv + msg() *otg.PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter + // setMsg unmarshals PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter from protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter // and doesn't set defaults - setMsg(*otg.BgpSrteSegmentFTypeSubTlv) BgpSrteSegmentFTypeSubTlv + setMsg(*otg.PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter // provides marshal interface - Marshal() marshalBgpSrteSegmentFTypeSubTlv + Marshal() marshalPatternFlowSnmpv2CVariableBindingValueIntegerValueCounter // provides unmarshal interface - Unmarshal() unMarshalBgpSrteSegmentFTypeSubTlv - // validate validates BgpSrteSegmentFTypeSubTlv + Unmarshal() unMarshalPatternFlowSnmpv2CVariableBindingValueIntegerValueCounter + // validate validates PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter validate() error // A stringer function String() string // Clones the object - Clone() (BgpSrteSegmentFTypeSubTlv, error) + Clone() (PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Flags returns string, set in BgpSrteSegmentFTypeSubTlv. - Flags() string - // SetFlags assigns string provided by user to BgpSrteSegmentFTypeSubTlv - SetFlags(value string) BgpSrteSegmentFTypeSubTlv - // HasFlags checks if Flags has been set in BgpSrteSegmentFTypeSubTlv - HasFlags() bool - // LocalIpv4Address returns string, set in BgpSrteSegmentFTypeSubTlv. - LocalIpv4Address() string - // SetLocalIpv4Address assigns string provided by user to BgpSrteSegmentFTypeSubTlv - SetLocalIpv4Address(value string) BgpSrteSegmentFTypeSubTlv - // RemoteIpv4Address returns string, set in BgpSrteSegmentFTypeSubTlv. - RemoteIpv4Address() string - // SetRemoteIpv4Address assigns string provided by user to BgpSrteSegmentFTypeSubTlv - SetRemoteIpv4Address(value string) BgpSrteSegmentFTypeSubTlv - // SrMplsSid returns BgpSrteSrMplsSid, set in BgpSrteSegmentFTypeSubTlv. - // BgpSrteSrMplsSid is configuration for SR-MPLS with Label, TC, Bottom-of-Stack and TTL. - SrMplsSid() BgpSrteSrMplsSid - // SetSrMplsSid assigns BgpSrteSrMplsSid provided by user to BgpSrteSegmentFTypeSubTlv. - // BgpSrteSrMplsSid is configuration for SR-MPLS with Label, TC, Bottom-of-Stack and TTL. - SetSrMplsSid(value BgpSrteSrMplsSid) BgpSrteSegmentFTypeSubTlv - // HasSrMplsSid checks if SrMplsSid has been set in BgpSrteSegmentFTypeSubTlv - HasSrMplsSid() bool - setNil() + // Start returns int32, set in PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter. + Start() int32 + // SetStart assigns int32 provided by user to PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter + SetStart(value int32) PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter + // HasStart checks if Start has been set in PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter + HasStart() bool + // Step returns int32, set in PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter. + Step() int32 + // SetStep assigns int32 provided by user to PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter + SetStep(value int32) PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter + // HasStep checks if Step has been set in PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter + HasStep() bool + // Count returns int32, set in PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter. + Count() int32 + // SetCount assigns int32 provided by user to PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter + SetCount(value int32) PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter + // HasCount checks if Count has been set in PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter + HasCount() bool } -// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 -// Flags returns a string -func (obj *bgpSrteSegmentFTypeSubTlv) Flags() string { +// description is TBD +// Start returns a int32 +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValueCounter) Start() int32 { - return *obj.obj.Flags + return *obj.obj.Start } -// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 -// Flags returns a string -func (obj *bgpSrteSegmentFTypeSubTlv) HasFlags() bool { - return obj.obj.Flags != nil +// description is TBD +// Start returns a int32 +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValueCounter) HasStart() bool { + return obj.obj.Start != nil } -// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 -// SetFlags sets the string value in the BgpSrteSegmentFTypeSubTlv object -func (obj *bgpSrteSegmentFTypeSubTlv) SetFlags(value string) BgpSrteSegmentFTypeSubTlv { +// description is TBD +// SetStart sets the int32 value in the PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter object +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValueCounter) SetStart(value int32) PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter { - obj.obj.Flags = &value + obj.obj.Start = &value return obj } -// Local IPv4 Address. -// LocalIpv4Address returns a string -func (obj *bgpSrteSegmentFTypeSubTlv) LocalIpv4Address() string { +// description is TBD +// Step returns a int32 +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValueCounter) Step() int32 { - return *obj.obj.LocalIpv4Address + return *obj.obj.Step } -// Local IPv4 Address. -// SetLocalIpv4Address sets the string value in the BgpSrteSegmentFTypeSubTlv object -func (obj *bgpSrteSegmentFTypeSubTlv) SetLocalIpv4Address(value string) BgpSrteSegmentFTypeSubTlv { - - obj.obj.LocalIpv4Address = &value - return obj +// description is TBD +// Step returns a int32 +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValueCounter) HasStep() bool { + return obj.obj.Step != nil } -// Remote IPv4 Address. -// RemoteIpv4Address returns a string -func (obj *bgpSrteSegmentFTypeSubTlv) RemoteIpv4Address() string { - - return *obj.obj.RemoteIpv4Address +// description is TBD +// SetStep sets the int32 value in the PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter object +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValueCounter) SetStep(value int32) PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter { + obj.obj.Step = &value + return obj } -// Remote IPv4 Address. -// SetRemoteIpv4Address sets the string value in the BgpSrteSegmentFTypeSubTlv object -func (obj *bgpSrteSegmentFTypeSubTlv) SetRemoteIpv4Address(value string) BgpSrteSegmentFTypeSubTlv { +// description is TBD +// Count returns a int32 +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValueCounter) Count() int32 { - obj.obj.RemoteIpv4Address = &value - return obj -} + return *obj.obj.Count -// Optional SR-MPLS SID. -// SrMplsSid returns a BgpSrteSrMplsSid -func (obj *bgpSrteSegmentFTypeSubTlv) SrMplsSid() BgpSrteSrMplsSid { - if obj.obj.SrMplsSid == nil { - obj.obj.SrMplsSid = NewBgpSrteSrMplsSid().msg() - } - if obj.srMplsSidHolder == nil { - obj.srMplsSidHolder = &bgpSrteSrMplsSid{obj: obj.obj.SrMplsSid} - } - return obj.srMplsSidHolder } -// Optional SR-MPLS SID. -// SrMplsSid returns a BgpSrteSrMplsSid -func (obj *bgpSrteSegmentFTypeSubTlv) HasSrMplsSid() bool { - return obj.obj.SrMplsSid != nil +// description is TBD +// Count returns a int32 +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValueCounter) HasCount() bool { + return obj.obj.Count != nil } -// Optional SR-MPLS SID. -// SetSrMplsSid sets the BgpSrteSrMplsSid value in the BgpSrteSegmentFTypeSubTlv object -func (obj *bgpSrteSegmentFTypeSubTlv) SetSrMplsSid(value BgpSrteSrMplsSid) BgpSrteSegmentFTypeSubTlv { - - obj.srMplsSidHolder = nil - obj.obj.SrMplsSid = value.msg() +// description is TBD +// SetCount sets the int32 value in the PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter object +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValueCounter) SetCount(value int32) PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter { + obj.obj.Count = &value return obj } -func (obj *bgpSrteSegmentFTypeSubTlv) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValueCounter) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Flags != nil { - - err := obj.validateHex(obj.Flags()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentFTypeSubTlv.Flags")) - } - - } - - // LocalIpv4Address is required - if obj.obj.LocalIpv4Address == nil { - vObj.validationErrors = append(vObj.validationErrors, "LocalIpv4Address is required field on interface BgpSrteSegmentFTypeSubTlv") - } - if obj.obj.LocalIpv4Address != nil { - - err := obj.validateIpv4(obj.LocalIpv4Address()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentFTypeSubTlv.LocalIpv4Address")) - } - - } +} - // RemoteIpv4Address is required - if obj.obj.RemoteIpv4Address == nil { - vObj.validationErrors = append(vObj.validationErrors, "RemoteIpv4Address is required field on interface BgpSrteSegmentFTypeSubTlv") +func (obj *patternFlowSnmpv2CVariableBindingValueIntegerValueCounter) setDefault() { + if obj.obj.Start == nil { + obj.SetStart(0) } - if obj.obj.RemoteIpv4Address != nil { - - err := obj.validateIpv4(obj.RemoteIpv4Address()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentFTypeSubTlv.RemoteIpv4Address")) - } - + if obj.obj.Step == nil { + obj.SetStep(1) } - - if obj.obj.SrMplsSid != nil { - - obj.SrMplsSid().validateObj(vObj, set_default) + if obj.obj.Count == nil { + obj.SetCount(1) } } -func (obj *bgpSrteSegmentFTypeSubTlv) setDefault() { - -} - -// ***** BgpSrteSegmentGTypeSubTlv ***** -type bgpSrteSegmentGTypeSubTlv struct { +// ***** PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter ***** +type patternFlowSnmpv2CVariableBindingValueIpAddressValueCounter struct { validation - obj *otg.BgpSrteSegmentGTypeSubTlv - marshaller marshalBgpSrteSegmentGTypeSubTlv - unMarshaller unMarshalBgpSrteSegmentGTypeSubTlv - srMplsSidHolder BgpSrteSrMplsSid + obj *otg.PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter + marshaller marshalPatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter + unMarshaller unMarshalPatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter } -func NewBgpSrteSegmentGTypeSubTlv() BgpSrteSegmentGTypeSubTlv { - obj := bgpSrteSegmentGTypeSubTlv{obj: &otg.BgpSrteSegmentGTypeSubTlv{}} +func NewPatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter() PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter { + obj := patternFlowSnmpv2CVariableBindingValueIpAddressValueCounter{obj: &otg.PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter{}} obj.setDefault() return &obj } -func (obj *bgpSrteSegmentGTypeSubTlv) msg() *otg.BgpSrteSegmentGTypeSubTlv { +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) msg() *otg.PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter { return obj.obj } -func (obj *bgpSrteSegmentGTypeSubTlv) setMsg(msg *otg.BgpSrteSegmentGTypeSubTlv) BgpSrteSegmentGTypeSubTlv { - obj.setNil() +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) setMsg(msg *otg.PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter { + proto.Merge(obj.obj, msg) return obj } -type marshalbgpSrteSegmentGTypeSubTlv struct { - obj *bgpSrteSegmentGTypeSubTlv +type marshalpatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter struct { + obj *patternFlowSnmpv2CVariableBindingValueIpAddressValueCounter } -type marshalBgpSrteSegmentGTypeSubTlv interface { - // ToProto marshals BgpSrteSegmentGTypeSubTlv to protobuf object *otg.BgpSrteSegmentGTypeSubTlv - ToProto() (*otg.BgpSrteSegmentGTypeSubTlv, error) - // ToPbText marshals BgpSrteSegmentGTypeSubTlv to protobuf text +type marshalPatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter interface { + // ToProto marshals PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter to protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter + ToProto() (*otg.PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter, error) + // ToPbText marshals PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpSrteSegmentGTypeSubTlv to YAML text + // ToYaml marshals PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter to YAML text ToYaml() (string, error) - // ToJson marshals BgpSrteSegmentGTypeSubTlv to JSON text + // ToJson marshals PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter to JSON text ToJson() (string, error) } -type unMarshalbgpSrteSegmentGTypeSubTlv struct { - obj *bgpSrteSegmentGTypeSubTlv +type unMarshalpatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter struct { + obj *patternFlowSnmpv2CVariableBindingValueIpAddressValueCounter } -type unMarshalBgpSrteSegmentGTypeSubTlv interface { - // FromProto unmarshals BgpSrteSegmentGTypeSubTlv from protobuf object *otg.BgpSrteSegmentGTypeSubTlv - FromProto(msg *otg.BgpSrteSegmentGTypeSubTlv) (BgpSrteSegmentGTypeSubTlv, error) - // FromPbText unmarshals BgpSrteSegmentGTypeSubTlv from protobuf text +type unMarshalPatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter interface { + // FromProto unmarshals PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter from protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter + FromProto(msg *otg.PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) (PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter, error) + // FromPbText unmarshals PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpSrteSegmentGTypeSubTlv from YAML text + // FromYaml unmarshals PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter from YAML text FromYaml(value string) error - // FromJson unmarshals BgpSrteSegmentGTypeSubTlv from JSON text + // FromJson unmarshals PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter from JSON text FromJson(value string) error } -func (obj *bgpSrteSegmentGTypeSubTlv) Marshal() marshalBgpSrteSegmentGTypeSubTlv { +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) Marshal() marshalPatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter { if obj.marshaller == nil { - obj.marshaller = &marshalbgpSrteSegmentGTypeSubTlv{obj: obj} + obj.marshaller = &marshalpatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter{obj: obj} } return obj.marshaller } -func (obj *bgpSrteSegmentGTypeSubTlv) Unmarshal() unMarshalBgpSrteSegmentGTypeSubTlv { +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) Unmarshal() unMarshalPatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpSrteSegmentGTypeSubTlv{obj: obj} + obj.unMarshaller = &unMarshalpatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpSrteSegmentGTypeSubTlv) ToProto() (*otg.BgpSrteSegmentGTypeSubTlv, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) ToProto() (*otg.PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -349100,7 +362810,7 @@ func (m *marshalbgpSrteSegmentGTypeSubTlv) ToProto() (*otg.BgpSrteSegmentGTypeSu return m.obj.msg(), nil } -func (m *unMarshalbgpSrteSegmentGTypeSubTlv) FromProto(msg *otg.BgpSrteSegmentGTypeSubTlv) (BgpSrteSegmentGTypeSubTlv, error) { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) FromProto(msg *otg.PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) (PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -349109,7 +362819,7 @@ func (m *unMarshalbgpSrteSegmentGTypeSubTlv) FromProto(msg *otg.BgpSrteSegmentGT return newObj, nil } -func (m *marshalbgpSrteSegmentGTypeSubTlv) ToPbText() (string, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -349121,12 +362831,12 @@ func (m *marshalbgpSrteSegmentGTypeSubTlv) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalbgpSrteSegmentGTypeSubTlv) FromPbText(value string) error { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - m.obj.setNil() + vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -349134,7 +362844,7 @@ func (m *unMarshalbgpSrteSegmentGTypeSubTlv) FromPbText(value string) error { return retObj } -func (m *marshalbgpSrteSegmentGTypeSubTlv) ToYaml() (string, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -349155,7 +362865,7 @@ func (m *marshalbgpSrteSegmentGTypeSubTlv) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrteSegmentGTypeSubTlv) FromYaml(value string) error { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) FromYaml(value string) error { if value == "" { value = "{}" } @@ -349172,7 +362882,7 @@ func (m *unMarshalbgpSrteSegmentGTypeSubTlv) FromYaml(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - m.obj.setNil() + vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -349180,7 +362890,7 @@ func (m *unMarshalbgpSrteSegmentGTypeSubTlv) FromYaml(value string) error { return nil } -func (m *marshalbgpSrteSegmentGTypeSubTlv) ToJson() (string, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -349198,7 +362908,7 @@ func (m *marshalbgpSrteSegmentGTypeSubTlv) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrteSegmentGTypeSubTlv) FromJson(value string) error { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -349211,7 +362921,7 @@ func (m *unMarshalbgpSrteSegmentGTypeSubTlv) FromJson(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - m.obj.setNil() + err := m.obj.validateToAndFrom() if err != nil { return err @@ -349219,19 +362929,19 @@ func (m *unMarshalbgpSrteSegmentGTypeSubTlv) FromJson(value string) error { return nil } -func (obj *bgpSrteSegmentGTypeSubTlv) validateToAndFrom() error { +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpSrteSegmentGTypeSubTlv) validate() error { +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpSrteSegmentGTypeSubTlv) String() string { +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -349239,12 +362949,12 @@ func (obj *bgpSrteSegmentGTypeSubTlv) String() string { return str } -func (obj *bgpSrteSegmentGTypeSubTlv) Clone() (BgpSrteSegmentGTypeSubTlv, error) { +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) Clone() (PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpSrteSegmentGTypeSubTlv() + newObj := NewPatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -349256,325 +362966,221 @@ func (obj *bgpSrteSegmentGTypeSubTlv) Clone() (BgpSrteSegmentGTypeSubTlv, error) return newObj, nil } -func (obj *bgpSrteSegmentGTypeSubTlv) setNil() { - obj.srMplsSidHolder = nil - obj.validationErrors = nil - obj.warnings = nil - obj.constraints = make(map[string]map[string]Constraints) -} - -// BgpSrteSegmentGTypeSubTlv is type G: IPv6 Address, Interface ID for local and remote pair with optional SID for SR MPLS. -type BgpSrteSegmentGTypeSubTlv interface { +// PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter is ipv4 counter pattern +type PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter interface { Validation - // msg marshals BgpSrteSegmentGTypeSubTlv to protobuf object *otg.BgpSrteSegmentGTypeSubTlv + // msg marshals PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter to protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter // and doesn't set defaults - msg() *otg.BgpSrteSegmentGTypeSubTlv - // setMsg unmarshals BgpSrteSegmentGTypeSubTlv from protobuf object *otg.BgpSrteSegmentGTypeSubTlv + msg() *otg.PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter + // setMsg unmarshals PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter from protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter // and doesn't set defaults - setMsg(*otg.BgpSrteSegmentGTypeSubTlv) BgpSrteSegmentGTypeSubTlv + setMsg(*otg.PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter // provides marshal interface - Marshal() marshalBgpSrteSegmentGTypeSubTlv + Marshal() marshalPatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter // provides unmarshal interface - Unmarshal() unMarshalBgpSrteSegmentGTypeSubTlv - // validate validates BgpSrteSegmentGTypeSubTlv + Unmarshal() unMarshalPatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter + // validate validates PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter validate() error // A stringer function String() string // Clones the object - Clone() (BgpSrteSegmentGTypeSubTlv, error) + Clone() (PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Flags returns string, set in BgpSrteSegmentGTypeSubTlv. - Flags() string - // SetFlags assigns string provided by user to BgpSrteSegmentGTypeSubTlv - SetFlags(value string) BgpSrteSegmentGTypeSubTlv - // HasFlags checks if Flags has been set in BgpSrteSegmentGTypeSubTlv - HasFlags() bool - // LocalInterfaceId returns uint32, set in BgpSrteSegmentGTypeSubTlv. - LocalInterfaceId() uint32 - // SetLocalInterfaceId assigns uint32 provided by user to BgpSrteSegmentGTypeSubTlv - SetLocalInterfaceId(value uint32) BgpSrteSegmentGTypeSubTlv - // HasLocalInterfaceId checks if LocalInterfaceId has been set in BgpSrteSegmentGTypeSubTlv - HasLocalInterfaceId() bool - // LocalIpv6NodeAddress returns string, set in BgpSrteSegmentGTypeSubTlv. - LocalIpv6NodeAddress() string - // SetLocalIpv6NodeAddress assigns string provided by user to BgpSrteSegmentGTypeSubTlv - SetLocalIpv6NodeAddress(value string) BgpSrteSegmentGTypeSubTlv - // RemoteInterfaceId returns uint32, set in BgpSrteSegmentGTypeSubTlv. - RemoteInterfaceId() uint32 - // SetRemoteInterfaceId assigns uint32 provided by user to BgpSrteSegmentGTypeSubTlv - SetRemoteInterfaceId(value uint32) BgpSrteSegmentGTypeSubTlv - // HasRemoteInterfaceId checks if RemoteInterfaceId has been set in BgpSrteSegmentGTypeSubTlv - HasRemoteInterfaceId() bool - // RemoteIpv6NodeAddress returns string, set in BgpSrteSegmentGTypeSubTlv. - RemoteIpv6NodeAddress() string - // SetRemoteIpv6NodeAddress assigns string provided by user to BgpSrteSegmentGTypeSubTlv - SetRemoteIpv6NodeAddress(value string) BgpSrteSegmentGTypeSubTlv - // SrMplsSid returns BgpSrteSrMplsSid, set in BgpSrteSegmentGTypeSubTlv. - // BgpSrteSrMplsSid is configuration for SR-MPLS with Label, TC, Bottom-of-Stack and TTL. - SrMplsSid() BgpSrteSrMplsSid - // SetSrMplsSid assigns BgpSrteSrMplsSid provided by user to BgpSrteSegmentGTypeSubTlv. - // BgpSrteSrMplsSid is configuration for SR-MPLS with Label, TC, Bottom-of-Stack and TTL. - SetSrMplsSid(value BgpSrteSrMplsSid) BgpSrteSegmentGTypeSubTlv - // HasSrMplsSid checks if SrMplsSid has been set in BgpSrteSegmentGTypeSubTlv - HasSrMplsSid() bool - setNil() -} - -// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 -// Flags returns a string -func (obj *bgpSrteSegmentGTypeSubTlv) Flags() string { - - return *obj.obj.Flags - -} - -// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 -// Flags returns a string -func (obj *bgpSrteSegmentGTypeSubTlv) HasFlags() bool { - return obj.obj.Flags != nil -} - -// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 -// SetFlags sets the string value in the BgpSrteSegmentGTypeSubTlv object -func (obj *bgpSrteSegmentGTypeSubTlv) SetFlags(value string) BgpSrteSegmentGTypeSubTlv { - - obj.obj.Flags = &value - return obj -} - -// Local Interface ID: The Interface Index as defined in [RFC8664]. -// LocalInterfaceId returns a uint32 -func (obj *bgpSrteSegmentGTypeSubTlv) LocalInterfaceId() uint32 { - - return *obj.obj.LocalInterfaceId - + // Start returns string, set in PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter. + Start() string + // SetStart assigns string provided by user to PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter + SetStart(value string) PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter + // HasStart checks if Start has been set in PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter + HasStart() bool + // Step returns string, set in PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter. + Step() string + // SetStep assigns string provided by user to PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter + SetStep(value string) PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter + // HasStep checks if Step has been set in PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter + HasStep() bool + // Count returns uint32, set in PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter. + Count() uint32 + // SetCount assigns uint32 provided by user to PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter + SetCount(value uint32) PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter + // HasCount checks if Count has been set in PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter + HasCount() bool } -// Local Interface ID: The Interface Index as defined in [RFC8664]. -// LocalInterfaceId returns a uint32 -func (obj *bgpSrteSegmentGTypeSubTlv) HasLocalInterfaceId() bool { - return obj.obj.LocalInterfaceId != nil -} +// description is TBD +// Start returns a string +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) Start() string { -// Local Interface ID: The Interface Index as defined in [RFC8664]. -// SetLocalInterfaceId sets the uint32 value in the BgpSrteSegmentGTypeSubTlv object -func (obj *bgpSrteSegmentGTypeSubTlv) SetLocalInterfaceId(value uint32) BgpSrteSegmentGTypeSubTlv { + return *obj.obj.Start - obj.obj.LocalInterfaceId = &value - return obj } -// IPv6 address representing a node. -// LocalIpv6NodeAddress returns a string -func (obj *bgpSrteSegmentGTypeSubTlv) LocalIpv6NodeAddress() string { - - return *obj.obj.LocalIpv6NodeAddress - +// description is TBD +// Start returns a string +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) HasStart() bool { + return obj.obj.Start != nil } -// IPv6 address representing a node. -// SetLocalIpv6NodeAddress sets the string value in the BgpSrteSegmentGTypeSubTlv object -func (obj *bgpSrteSegmentGTypeSubTlv) SetLocalIpv6NodeAddress(value string) BgpSrteSegmentGTypeSubTlv { +// description is TBD +// SetStart sets the string value in the PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter object +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) SetStart(value string) PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter { - obj.obj.LocalIpv6NodeAddress = &value + obj.obj.Start = &value return obj } -// Local Interface ID: The Interface Index as defined in [RFC8664]. -// RemoteInterfaceId returns a uint32 -func (obj *bgpSrteSegmentGTypeSubTlv) RemoteInterfaceId() uint32 { +// description is TBD +// Step returns a string +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) Step() string { - return *obj.obj.RemoteInterfaceId + return *obj.obj.Step } -// Local Interface ID: The Interface Index as defined in [RFC8664]. -// RemoteInterfaceId returns a uint32 -func (obj *bgpSrteSegmentGTypeSubTlv) HasRemoteInterfaceId() bool { - return obj.obj.RemoteInterfaceId != nil +// description is TBD +// Step returns a string +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) HasStep() bool { + return obj.obj.Step != nil } -// Local Interface ID: The Interface Index as defined in [RFC8664]. -// SetRemoteInterfaceId sets the uint32 value in the BgpSrteSegmentGTypeSubTlv object -func (obj *bgpSrteSegmentGTypeSubTlv) SetRemoteInterfaceId(value uint32) BgpSrteSegmentGTypeSubTlv { +// description is TBD +// SetStep sets the string value in the PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter object +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) SetStep(value string) PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter { - obj.obj.RemoteInterfaceId = &value + obj.obj.Step = &value return obj } -// IPv6 address representing a node. -// RemoteIpv6NodeAddress returns a string -func (obj *bgpSrteSegmentGTypeSubTlv) RemoteIpv6NodeAddress() string { - - return *obj.obj.RemoteIpv6NodeAddress - -} - -// IPv6 address representing a node. -// SetRemoteIpv6NodeAddress sets the string value in the BgpSrteSegmentGTypeSubTlv object -func (obj *bgpSrteSegmentGTypeSubTlv) SetRemoteIpv6NodeAddress(value string) BgpSrteSegmentGTypeSubTlv { +// description is TBD +// Count returns a uint32 +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) Count() uint32 { - obj.obj.RemoteIpv6NodeAddress = &value - return obj -} + return *obj.obj.Count -// Optional SR-MPLS SID. -// SrMplsSid returns a BgpSrteSrMplsSid -func (obj *bgpSrteSegmentGTypeSubTlv) SrMplsSid() BgpSrteSrMplsSid { - if obj.obj.SrMplsSid == nil { - obj.obj.SrMplsSid = NewBgpSrteSrMplsSid().msg() - } - if obj.srMplsSidHolder == nil { - obj.srMplsSidHolder = &bgpSrteSrMplsSid{obj: obj.obj.SrMplsSid} - } - return obj.srMplsSidHolder } -// Optional SR-MPLS SID. -// SrMplsSid returns a BgpSrteSrMplsSid -func (obj *bgpSrteSegmentGTypeSubTlv) HasSrMplsSid() bool { - return obj.obj.SrMplsSid != nil +// description is TBD +// Count returns a uint32 +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) HasCount() bool { + return obj.obj.Count != nil } -// Optional SR-MPLS SID. -// SetSrMplsSid sets the BgpSrteSrMplsSid value in the BgpSrteSegmentGTypeSubTlv object -func (obj *bgpSrteSegmentGTypeSubTlv) SetSrMplsSid(value BgpSrteSrMplsSid) BgpSrteSegmentGTypeSubTlv { - - obj.srMplsSidHolder = nil - obj.obj.SrMplsSid = value.msg() +// description is TBD +// SetCount sets the uint32 value in the PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter object +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) SetCount(value uint32) PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter { + obj.obj.Count = &value return obj } -func (obj *bgpSrteSegmentGTypeSubTlv) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Flags != nil { - - err := obj.validateHex(obj.Flags()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentGTypeSubTlv.Flags")) - } - - } - - // LocalIpv6NodeAddress is required - if obj.obj.LocalIpv6NodeAddress == nil { - vObj.validationErrors = append(vObj.validationErrors, "LocalIpv6NodeAddress is required field on interface BgpSrteSegmentGTypeSubTlv") - } - if obj.obj.LocalIpv6NodeAddress != nil { + if obj.obj.Start != nil { - err := obj.validateIpv6(obj.LocalIpv6NodeAddress()) + err := obj.validateIpv4(obj.Start()) if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentGTypeSubTlv.LocalIpv6NodeAddress")) + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter.Start")) } } - // RemoteIpv6NodeAddress is required - if obj.obj.RemoteIpv6NodeAddress == nil { - vObj.validationErrors = append(vObj.validationErrors, "RemoteIpv6NodeAddress is required field on interface BgpSrteSegmentGTypeSubTlv") - } - if obj.obj.RemoteIpv6NodeAddress != nil { + if obj.obj.Step != nil { - err := obj.validateIpv6(obj.RemoteIpv6NodeAddress()) + err := obj.validateIpv4(obj.Step()) if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentGTypeSubTlv.RemoteIpv6NodeAddress")) + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter.Step")) } } - if obj.obj.SrMplsSid != nil { - - obj.SrMplsSid().validateObj(vObj, set_default) - } - } -func (obj *bgpSrteSegmentGTypeSubTlv) setDefault() { - if obj.obj.LocalInterfaceId == nil { - obj.SetLocalInterfaceId(0) +func (obj *patternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) setDefault() { + if obj.obj.Start == nil { + obj.SetStart("0.0.0.0") } - if obj.obj.RemoteInterfaceId == nil { - obj.SetRemoteInterfaceId(0) + if obj.obj.Step == nil { + obj.SetStep("0.0.0.1") + } + if obj.obj.Count == nil { + obj.SetCount(1) } } -// ***** BgpSrteSegmentHTypeSubTlv ***** -type bgpSrteSegmentHTypeSubTlv struct { +// ***** PatternFlowSnmpv2CVariableBindingValueCounterValueCounter ***** +type patternFlowSnmpv2CVariableBindingValueCounterValueCounter struct { validation - obj *otg.BgpSrteSegmentHTypeSubTlv - marshaller marshalBgpSrteSegmentHTypeSubTlv - unMarshaller unMarshalBgpSrteSegmentHTypeSubTlv - srMplsSidHolder BgpSrteSrMplsSid + obj *otg.PatternFlowSnmpv2CVariableBindingValueCounterValueCounter + marshaller marshalPatternFlowSnmpv2CVariableBindingValueCounterValueCounter + unMarshaller unMarshalPatternFlowSnmpv2CVariableBindingValueCounterValueCounter } -func NewBgpSrteSegmentHTypeSubTlv() BgpSrteSegmentHTypeSubTlv { - obj := bgpSrteSegmentHTypeSubTlv{obj: &otg.BgpSrteSegmentHTypeSubTlv{}} +func NewPatternFlowSnmpv2CVariableBindingValueCounterValueCounter() PatternFlowSnmpv2CVariableBindingValueCounterValueCounter { + obj := patternFlowSnmpv2CVariableBindingValueCounterValueCounter{obj: &otg.PatternFlowSnmpv2CVariableBindingValueCounterValueCounter{}} obj.setDefault() return &obj } -func (obj *bgpSrteSegmentHTypeSubTlv) msg() *otg.BgpSrteSegmentHTypeSubTlv { +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValueCounter) msg() *otg.PatternFlowSnmpv2CVariableBindingValueCounterValueCounter { return obj.obj } -func (obj *bgpSrteSegmentHTypeSubTlv) setMsg(msg *otg.BgpSrteSegmentHTypeSubTlv) BgpSrteSegmentHTypeSubTlv { - obj.setNil() +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValueCounter) setMsg(msg *otg.PatternFlowSnmpv2CVariableBindingValueCounterValueCounter) PatternFlowSnmpv2CVariableBindingValueCounterValueCounter { + proto.Merge(obj.obj, msg) return obj } -type marshalbgpSrteSegmentHTypeSubTlv struct { - obj *bgpSrteSegmentHTypeSubTlv +type marshalpatternFlowSnmpv2CVariableBindingValueCounterValueCounter struct { + obj *patternFlowSnmpv2CVariableBindingValueCounterValueCounter } -type marshalBgpSrteSegmentHTypeSubTlv interface { - // ToProto marshals BgpSrteSegmentHTypeSubTlv to protobuf object *otg.BgpSrteSegmentHTypeSubTlv - ToProto() (*otg.BgpSrteSegmentHTypeSubTlv, error) - // ToPbText marshals BgpSrteSegmentHTypeSubTlv to protobuf text +type marshalPatternFlowSnmpv2CVariableBindingValueCounterValueCounter interface { + // ToProto marshals PatternFlowSnmpv2CVariableBindingValueCounterValueCounter to protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueCounterValueCounter + ToProto() (*otg.PatternFlowSnmpv2CVariableBindingValueCounterValueCounter, error) + // ToPbText marshals PatternFlowSnmpv2CVariableBindingValueCounterValueCounter to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpSrteSegmentHTypeSubTlv to YAML text + // ToYaml marshals PatternFlowSnmpv2CVariableBindingValueCounterValueCounter to YAML text ToYaml() (string, error) - // ToJson marshals BgpSrteSegmentHTypeSubTlv to JSON text + // ToJson marshals PatternFlowSnmpv2CVariableBindingValueCounterValueCounter to JSON text ToJson() (string, error) } -type unMarshalbgpSrteSegmentHTypeSubTlv struct { - obj *bgpSrteSegmentHTypeSubTlv +type unMarshalpatternFlowSnmpv2CVariableBindingValueCounterValueCounter struct { + obj *patternFlowSnmpv2CVariableBindingValueCounterValueCounter } -type unMarshalBgpSrteSegmentHTypeSubTlv interface { - // FromProto unmarshals BgpSrteSegmentHTypeSubTlv from protobuf object *otg.BgpSrteSegmentHTypeSubTlv - FromProto(msg *otg.BgpSrteSegmentHTypeSubTlv) (BgpSrteSegmentHTypeSubTlv, error) - // FromPbText unmarshals BgpSrteSegmentHTypeSubTlv from protobuf text +type unMarshalPatternFlowSnmpv2CVariableBindingValueCounterValueCounter interface { + // FromProto unmarshals PatternFlowSnmpv2CVariableBindingValueCounterValueCounter from protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueCounterValueCounter + FromProto(msg *otg.PatternFlowSnmpv2CVariableBindingValueCounterValueCounter) (PatternFlowSnmpv2CVariableBindingValueCounterValueCounter, error) + // FromPbText unmarshals PatternFlowSnmpv2CVariableBindingValueCounterValueCounter from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpSrteSegmentHTypeSubTlv from YAML text + // FromYaml unmarshals PatternFlowSnmpv2CVariableBindingValueCounterValueCounter from YAML text FromYaml(value string) error - // FromJson unmarshals BgpSrteSegmentHTypeSubTlv from JSON text + // FromJson unmarshals PatternFlowSnmpv2CVariableBindingValueCounterValueCounter from JSON text FromJson(value string) error } -func (obj *bgpSrteSegmentHTypeSubTlv) Marshal() marshalBgpSrteSegmentHTypeSubTlv { +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValueCounter) Marshal() marshalPatternFlowSnmpv2CVariableBindingValueCounterValueCounter { if obj.marshaller == nil { - obj.marshaller = &marshalbgpSrteSegmentHTypeSubTlv{obj: obj} + obj.marshaller = &marshalpatternFlowSnmpv2CVariableBindingValueCounterValueCounter{obj: obj} } return obj.marshaller } -func (obj *bgpSrteSegmentHTypeSubTlv) Unmarshal() unMarshalBgpSrteSegmentHTypeSubTlv { +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValueCounter) Unmarshal() unMarshalPatternFlowSnmpv2CVariableBindingValueCounterValueCounter { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpSrteSegmentHTypeSubTlv{obj: obj} + obj.unMarshaller = &unMarshalpatternFlowSnmpv2CVariableBindingValueCounterValueCounter{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpSrteSegmentHTypeSubTlv) ToProto() (*otg.BgpSrteSegmentHTypeSubTlv, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueCounterValueCounter) ToProto() (*otg.PatternFlowSnmpv2CVariableBindingValueCounterValueCounter, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -349582,7 +363188,7 @@ func (m *marshalbgpSrteSegmentHTypeSubTlv) ToProto() (*otg.BgpSrteSegmentHTypeSu return m.obj.msg(), nil } -func (m *unMarshalbgpSrteSegmentHTypeSubTlv) FromProto(msg *otg.BgpSrteSegmentHTypeSubTlv) (BgpSrteSegmentHTypeSubTlv, error) { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueCounterValueCounter) FromProto(msg *otg.PatternFlowSnmpv2CVariableBindingValueCounterValueCounter) (PatternFlowSnmpv2CVariableBindingValueCounterValueCounter, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -349591,7 +363197,7 @@ func (m *unMarshalbgpSrteSegmentHTypeSubTlv) FromProto(msg *otg.BgpSrteSegmentHT return newObj, nil } -func (m *marshalbgpSrteSegmentHTypeSubTlv) ToPbText() (string, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueCounterValueCounter) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -349603,12 +363209,12 @@ func (m *marshalbgpSrteSegmentHTypeSubTlv) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalbgpSrteSegmentHTypeSubTlv) FromPbText(value string) error { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueCounterValueCounter) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - m.obj.setNil() + vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -349616,7 +363222,7 @@ func (m *unMarshalbgpSrteSegmentHTypeSubTlv) FromPbText(value string) error { return retObj } -func (m *marshalbgpSrteSegmentHTypeSubTlv) ToYaml() (string, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueCounterValueCounter) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -349637,7 +363243,7 @@ func (m *marshalbgpSrteSegmentHTypeSubTlv) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrteSegmentHTypeSubTlv) FromYaml(value string) error { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueCounterValueCounter) FromYaml(value string) error { if value == "" { value = "{}" } @@ -349654,7 +363260,7 @@ func (m *unMarshalbgpSrteSegmentHTypeSubTlv) FromYaml(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - m.obj.setNil() + vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -349662,7 +363268,7 @@ func (m *unMarshalbgpSrteSegmentHTypeSubTlv) FromYaml(value string) error { return nil } -func (m *marshalbgpSrteSegmentHTypeSubTlv) ToJson() (string, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueCounterValueCounter) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -349680,7 +363286,7 @@ func (m *marshalbgpSrteSegmentHTypeSubTlv) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrteSegmentHTypeSubTlv) FromJson(value string) error { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueCounterValueCounter) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -349693,7 +363299,7 @@ func (m *unMarshalbgpSrteSegmentHTypeSubTlv) FromJson(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - m.obj.setNil() + err := m.obj.validateToAndFrom() if err != nil { return err @@ -349701,19 +363307,19 @@ func (m *unMarshalbgpSrteSegmentHTypeSubTlv) FromJson(value string) error { return nil } -func (obj *bgpSrteSegmentHTypeSubTlv) validateToAndFrom() error { +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValueCounter) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpSrteSegmentHTypeSubTlv) validate() error { +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValueCounter) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpSrteSegmentHTypeSubTlv) String() string { +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValueCounter) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -349721,12 +363327,12 @@ func (obj *bgpSrteSegmentHTypeSubTlv) String() string { return str } -func (obj *bgpSrteSegmentHTypeSubTlv) Clone() (BgpSrteSegmentHTypeSubTlv, error) { +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValueCounter) Clone() (PatternFlowSnmpv2CVariableBindingValueCounterValueCounter, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpSrteSegmentHTypeSubTlv() + newObj := NewPatternFlowSnmpv2CVariableBindingValueCounterValueCounter() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -349738,263 +363344,203 @@ func (obj *bgpSrteSegmentHTypeSubTlv) Clone() (BgpSrteSegmentHTypeSubTlv, error) return newObj, nil } -func (obj *bgpSrteSegmentHTypeSubTlv) setNil() { - obj.srMplsSidHolder = nil - obj.validationErrors = nil - obj.warnings = nil - obj.constraints = make(map[string]map[string]Constraints) -} - -// BgpSrteSegmentHTypeSubTlv is type H: IPv6 Local and Remote addresses with optional SID for SR MPLS. -type BgpSrteSegmentHTypeSubTlv interface { +// PatternFlowSnmpv2CVariableBindingValueCounterValueCounter is integer counter pattern +type PatternFlowSnmpv2CVariableBindingValueCounterValueCounter interface { Validation - // msg marshals BgpSrteSegmentHTypeSubTlv to protobuf object *otg.BgpSrteSegmentHTypeSubTlv + // msg marshals PatternFlowSnmpv2CVariableBindingValueCounterValueCounter to protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueCounterValueCounter // and doesn't set defaults - msg() *otg.BgpSrteSegmentHTypeSubTlv - // setMsg unmarshals BgpSrteSegmentHTypeSubTlv from protobuf object *otg.BgpSrteSegmentHTypeSubTlv + msg() *otg.PatternFlowSnmpv2CVariableBindingValueCounterValueCounter + // setMsg unmarshals PatternFlowSnmpv2CVariableBindingValueCounterValueCounter from protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueCounterValueCounter // and doesn't set defaults - setMsg(*otg.BgpSrteSegmentHTypeSubTlv) BgpSrteSegmentHTypeSubTlv + setMsg(*otg.PatternFlowSnmpv2CVariableBindingValueCounterValueCounter) PatternFlowSnmpv2CVariableBindingValueCounterValueCounter // provides marshal interface - Marshal() marshalBgpSrteSegmentHTypeSubTlv + Marshal() marshalPatternFlowSnmpv2CVariableBindingValueCounterValueCounter // provides unmarshal interface - Unmarshal() unMarshalBgpSrteSegmentHTypeSubTlv - // validate validates BgpSrteSegmentHTypeSubTlv + Unmarshal() unMarshalPatternFlowSnmpv2CVariableBindingValueCounterValueCounter + // validate validates PatternFlowSnmpv2CVariableBindingValueCounterValueCounter validate() error // A stringer function String() string // Clones the object - Clone() (BgpSrteSegmentHTypeSubTlv, error) + Clone() (PatternFlowSnmpv2CVariableBindingValueCounterValueCounter, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Flags returns string, set in BgpSrteSegmentHTypeSubTlv. - Flags() string - // SetFlags assigns string provided by user to BgpSrteSegmentHTypeSubTlv - SetFlags(value string) BgpSrteSegmentHTypeSubTlv - // HasFlags checks if Flags has been set in BgpSrteSegmentHTypeSubTlv - HasFlags() bool - // LocalIpv6Address returns string, set in BgpSrteSegmentHTypeSubTlv. - LocalIpv6Address() string - // SetLocalIpv6Address assigns string provided by user to BgpSrteSegmentHTypeSubTlv - SetLocalIpv6Address(value string) BgpSrteSegmentHTypeSubTlv - // RemoteIpv6Address returns string, set in BgpSrteSegmentHTypeSubTlv. - RemoteIpv6Address() string - // SetRemoteIpv6Address assigns string provided by user to BgpSrteSegmentHTypeSubTlv - SetRemoteIpv6Address(value string) BgpSrteSegmentHTypeSubTlv - // SrMplsSid returns BgpSrteSrMplsSid, set in BgpSrteSegmentHTypeSubTlv. - // BgpSrteSrMplsSid is configuration for SR-MPLS with Label, TC, Bottom-of-Stack and TTL. - SrMplsSid() BgpSrteSrMplsSid - // SetSrMplsSid assigns BgpSrteSrMplsSid provided by user to BgpSrteSegmentHTypeSubTlv. - // BgpSrteSrMplsSid is configuration for SR-MPLS with Label, TC, Bottom-of-Stack and TTL. - SetSrMplsSid(value BgpSrteSrMplsSid) BgpSrteSegmentHTypeSubTlv - // HasSrMplsSid checks if SrMplsSid has been set in BgpSrteSegmentHTypeSubTlv - HasSrMplsSid() bool - setNil() + // Start returns uint32, set in PatternFlowSnmpv2CVariableBindingValueCounterValueCounter. + Start() uint32 + // SetStart assigns uint32 provided by user to PatternFlowSnmpv2CVariableBindingValueCounterValueCounter + SetStart(value uint32) PatternFlowSnmpv2CVariableBindingValueCounterValueCounter + // HasStart checks if Start has been set in PatternFlowSnmpv2CVariableBindingValueCounterValueCounter + HasStart() bool + // Step returns uint32, set in PatternFlowSnmpv2CVariableBindingValueCounterValueCounter. + Step() uint32 + // SetStep assigns uint32 provided by user to PatternFlowSnmpv2CVariableBindingValueCounterValueCounter + SetStep(value uint32) PatternFlowSnmpv2CVariableBindingValueCounterValueCounter + // HasStep checks if Step has been set in PatternFlowSnmpv2CVariableBindingValueCounterValueCounter + HasStep() bool + // Count returns uint32, set in PatternFlowSnmpv2CVariableBindingValueCounterValueCounter. + Count() uint32 + // SetCount assigns uint32 provided by user to PatternFlowSnmpv2CVariableBindingValueCounterValueCounter + SetCount(value uint32) PatternFlowSnmpv2CVariableBindingValueCounterValueCounter + // HasCount checks if Count has been set in PatternFlowSnmpv2CVariableBindingValueCounterValueCounter + HasCount() bool } -// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 -// Flags returns a string -func (obj *bgpSrteSegmentHTypeSubTlv) Flags() string { +// description is TBD +// Start returns a uint32 +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValueCounter) Start() uint32 { - return *obj.obj.Flags + return *obj.obj.Start } -// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 -// Flags returns a string -func (obj *bgpSrteSegmentHTypeSubTlv) HasFlags() bool { - return obj.obj.Flags != nil +// description is TBD +// Start returns a uint32 +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValueCounter) HasStart() bool { + return obj.obj.Start != nil } -// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 -// SetFlags sets the string value in the BgpSrteSegmentHTypeSubTlv object -func (obj *bgpSrteSegmentHTypeSubTlv) SetFlags(value string) BgpSrteSegmentHTypeSubTlv { +// description is TBD +// SetStart sets the uint32 value in the PatternFlowSnmpv2CVariableBindingValueCounterValueCounter object +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValueCounter) SetStart(value uint32) PatternFlowSnmpv2CVariableBindingValueCounterValueCounter { - obj.obj.Flags = &value + obj.obj.Start = &value return obj } -// Local IPv6 Address. -// LocalIpv6Address returns a string -func (obj *bgpSrteSegmentHTypeSubTlv) LocalIpv6Address() string { +// description is TBD +// Step returns a uint32 +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValueCounter) Step() uint32 { - return *obj.obj.LocalIpv6Address + return *obj.obj.Step } -// Local IPv6 Address. -// SetLocalIpv6Address sets the string value in the BgpSrteSegmentHTypeSubTlv object -func (obj *bgpSrteSegmentHTypeSubTlv) SetLocalIpv6Address(value string) BgpSrteSegmentHTypeSubTlv { - - obj.obj.LocalIpv6Address = &value - return obj +// description is TBD +// Step returns a uint32 +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValueCounter) HasStep() bool { + return obj.obj.Step != nil } -// Remote IPv6 Address. -// RemoteIpv6Address returns a string -func (obj *bgpSrteSegmentHTypeSubTlv) RemoteIpv6Address() string { - - return *obj.obj.RemoteIpv6Address +// description is TBD +// SetStep sets the uint32 value in the PatternFlowSnmpv2CVariableBindingValueCounterValueCounter object +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValueCounter) SetStep(value uint32) PatternFlowSnmpv2CVariableBindingValueCounterValueCounter { + obj.obj.Step = &value + return obj } -// Remote IPv6 Address. -// SetRemoteIpv6Address sets the string value in the BgpSrteSegmentHTypeSubTlv object -func (obj *bgpSrteSegmentHTypeSubTlv) SetRemoteIpv6Address(value string) BgpSrteSegmentHTypeSubTlv { +// description is TBD +// Count returns a uint32 +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValueCounter) Count() uint32 { - obj.obj.RemoteIpv6Address = &value - return obj -} + return *obj.obj.Count -// Optional SR-MPLS SID. -// SrMplsSid returns a BgpSrteSrMplsSid -func (obj *bgpSrteSegmentHTypeSubTlv) SrMplsSid() BgpSrteSrMplsSid { - if obj.obj.SrMplsSid == nil { - obj.obj.SrMplsSid = NewBgpSrteSrMplsSid().msg() - } - if obj.srMplsSidHolder == nil { - obj.srMplsSidHolder = &bgpSrteSrMplsSid{obj: obj.obj.SrMplsSid} - } - return obj.srMplsSidHolder } -// Optional SR-MPLS SID. -// SrMplsSid returns a BgpSrteSrMplsSid -func (obj *bgpSrteSegmentHTypeSubTlv) HasSrMplsSid() bool { - return obj.obj.SrMplsSid != nil +// description is TBD +// Count returns a uint32 +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValueCounter) HasCount() bool { + return obj.obj.Count != nil } -// Optional SR-MPLS SID. -// SetSrMplsSid sets the BgpSrteSrMplsSid value in the BgpSrteSegmentHTypeSubTlv object -func (obj *bgpSrteSegmentHTypeSubTlv) SetSrMplsSid(value BgpSrteSrMplsSid) BgpSrteSegmentHTypeSubTlv { - - obj.srMplsSidHolder = nil - obj.obj.SrMplsSid = value.msg() +// description is TBD +// SetCount sets the uint32 value in the PatternFlowSnmpv2CVariableBindingValueCounterValueCounter object +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValueCounter) SetCount(value uint32) PatternFlowSnmpv2CVariableBindingValueCounterValueCounter { + obj.obj.Count = &value return obj } -func (obj *bgpSrteSegmentHTypeSubTlv) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValueCounter) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Flags != nil { - - err := obj.validateHex(obj.Flags()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentHTypeSubTlv.Flags")) - } - - } - - // LocalIpv6Address is required - if obj.obj.LocalIpv6Address == nil { - vObj.validationErrors = append(vObj.validationErrors, "LocalIpv6Address is required field on interface BgpSrteSegmentHTypeSubTlv") - } - if obj.obj.LocalIpv6Address != nil { - - err := obj.validateIpv6(obj.LocalIpv6Address()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentHTypeSubTlv.LocalIpv6Address")) - } - - } +} - // RemoteIpv6Address is required - if obj.obj.RemoteIpv6Address == nil { - vObj.validationErrors = append(vObj.validationErrors, "RemoteIpv6Address is required field on interface BgpSrteSegmentHTypeSubTlv") +func (obj *patternFlowSnmpv2CVariableBindingValueCounterValueCounter) setDefault() { + if obj.obj.Start == nil { + obj.SetStart(0) } - if obj.obj.RemoteIpv6Address != nil { - - err := obj.validateIpv6(obj.RemoteIpv6Address()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentHTypeSubTlv.RemoteIpv6Address")) - } - + if obj.obj.Step == nil { + obj.SetStep(1) } - - if obj.obj.SrMplsSid != nil { - - obj.SrMplsSid().validateObj(vObj, set_default) + if obj.obj.Count == nil { + obj.SetCount(1) } } -func (obj *bgpSrteSegmentHTypeSubTlv) setDefault() { - -} - -// ***** BgpSrteSegmentITypeSubTlv ***** -type bgpSrteSegmentITypeSubTlv struct { +// ***** PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter ***** +type patternFlowSnmpv2CVariableBindingValueTimeticksValueCounter struct { validation - obj *otg.BgpSrteSegmentITypeSubTlv - marshaller marshalBgpSrteSegmentITypeSubTlv - unMarshaller unMarshalBgpSrteSegmentITypeSubTlv - srv6SidEndpointBehaviorHolder BgpSrteSRv6SIDEndpointBehaviorAndStructure + obj *otg.PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter + marshaller marshalPatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter + unMarshaller unMarshalPatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter } -func NewBgpSrteSegmentITypeSubTlv() BgpSrteSegmentITypeSubTlv { - obj := bgpSrteSegmentITypeSubTlv{obj: &otg.BgpSrteSegmentITypeSubTlv{}} +func NewPatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter() PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter { + obj := patternFlowSnmpv2CVariableBindingValueTimeticksValueCounter{obj: &otg.PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter{}} obj.setDefault() return &obj } -func (obj *bgpSrteSegmentITypeSubTlv) msg() *otg.BgpSrteSegmentITypeSubTlv { +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) msg() *otg.PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter { return obj.obj } -func (obj *bgpSrteSegmentITypeSubTlv) setMsg(msg *otg.BgpSrteSegmentITypeSubTlv) BgpSrteSegmentITypeSubTlv { - obj.setNil() +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) setMsg(msg *otg.PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter { + proto.Merge(obj.obj, msg) return obj } -type marshalbgpSrteSegmentITypeSubTlv struct { - obj *bgpSrteSegmentITypeSubTlv +type marshalpatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter struct { + obj *patternFlowSnmpv2CVariableBindingValueTimeticksValueCounter } -type marshalBgpSrteSegmentITypeSubTlv interface { - // ToProto marshals BgpSrteSegmentITypeSubTlv to protobuf object *otg.BgpSrteSegmentITypeSubTlv - ToProto() (*otg.BgpSrteSegmentITypeSubTlv, error) - // ToPbText marshals BgpSrteSegmentITypeSubTlv to protobuf text +type marshalPatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter interface { + // ToProto marshals PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter to protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter + ToProto() (*otg.PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter, error) + // ToPbText marshals PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpSrteSegmentITypeSubTlv to YAML text + // ToYaml marshals PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter to YAML text ToYaml() (string, error) - // ToJson marshals BgpSrteSegmentITypeSubTlv to JSON text + // ToJson marshals PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter to JSON text ToJson() (string, error) } -type unMarshalbgpSrteSegmentITypeSubTlv struct { - obj *bgpSrteSegmentITypeSubTlv +type unMarshalpatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter struct { + obj *patternFlowSnmpv2CVariableBindingValueTimeticksValueCounter } -type unMarshalBgpSrteSegmentITypeSubTlv interface { - // FromProto unmarshals BgpSrteSegmentITypeSubTlv from protobuf object *otg.BgpSrteSegmentITypeSubTlv - FromProto(msg *otg.BgpSrteSegmentITypeSubTlv) (BgpSrteSegmentITypeSubTlv, error) - // FromPbText unmarshals BgpSrteSegmentITypeSubTlv from protobuf text +type unMarshalPatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter interface { + // FromProto unmarshals PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter from protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter + FromProto(msg *otg.PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) (PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter, error) + // FromPbText unmarshals PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpSrteSegmentITypeSubTlv from YAML text + // FromYaml unmarshals PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter from YAML text FromYaml(value string) error - // FromJson unmarshals BgpSrteSegmentITypeSubTlv from JSON text + // FromJson unmarshals PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter from JSON text FromJson(value string) error } -func (obj *bgpSrteSegmentITypeSubTlv) Marshal() marshalBgpSrteSegmentITypeSubTlv { +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) Marshal() marshalPatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter { if obj.marshaller == nil { - obj.marshaller = &marshalbgpSrteSegmentITypeSubTlv{obj: obj} + obj.marshaller = &marshalpatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter{obj: obj} } return obj.marshaller } -func (obj *bgpSrteSegmentITypeSubTlv) Unmarshal() unMarshalBgpSrteSegmentITypeSubTlv { +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) Unmarshal() unMarshalPatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpSrteSegmentITypeSubTlv{obj: obj} + obj.unMarshaller = &unMarshalpatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpSrteSegmentITypeSubTlv) ToProto() (*otg.BgpSrteSegmentITypeSubTlv, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) ToProto() (*otg.PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -350002,7 +363548,7 @@ func (m *marshalbgpSrteSegmentITypeSubTlv) ToProto() (*otg.BgpSrteSegmentITypeSu return m.obj.msg(), nil } -func (m *unMarshalbgpSrteSegmentITypeSubTlv) FromProto(msg *otg.BgpSrteSegmentITypeSubTlv) (BgpSrteSegmentITypeSubTlv, error) { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) FromProto(msg *otg.PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) (PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -350011,7 +363557,7 @@ func (m *unMarshalbgpSrteSegmentITypeSubTlv) FromProto(msg *otg.BgpSrteSegmentIT return newObj, nil } -func (m *marshalbgpSrteSegmentITypeSubTlv) ToPbText() (string, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -350023,12 +363569,12 @@ func (m *marshalbgpSrteSegmentITypeSubTlv) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalbgpSrteSegmentITypeSubTlv) FromPbText(value string) error { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - m.obj.setNil() + vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -350036,7 +363582,7 @@ func (m *unMarshalbgpSrteSegmentITypeSubTlv) FromPbText(value string) error { return retObj } -func (m *marshalbgpSrteSegmentITypeSubTlv) ToYaml() (string, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -350057,7 +363603,7 @@ func (m *marshalbgpSrteSegmentITypeSubTlv) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrteSegmentITypeSubTlv) FromYaml(value string) error { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) FromYaml(value string) error { if value == "" { value = "{}" } @@ -350074,7 +363620,7 @@ func (m *unMarshalbgpSrteSegmentITypeSubTlv) FromYaml(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - m.obj.setNil() + vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -350082,7 +363628,7 @@ func (m *unMarshalbgpSrteSegmentITypeSubTlv) FromYaml(value string) error { return nil } -func (m *marshalbgpSrteSegmentITypeSubTlv) ToJson() (string, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -350100,7 +363646,7 @@ func (m *marshalbgpSrteSegmentITypeSubTlv) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrteSegmentITypeSubTlv) FromJson(value string) error { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -350113,7 +363659,7 @@ func (m *unMarshalbgpSrteSegmentITypeSubTlv) FromJson(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - m.obj.setNil() + err := m.obj.validateToAndFrom() if err != nil { return err @@ -350121,19 +363667,19 @@ func (m *unMarshalbgpSrteSegmentITypeSubTlv) FromJson(value string) error { return nil } -func (obj *bgpSrteSegmentITypeSubTlv) validateToAndFrom() error { +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpSrteSegmentITypeSubTlv) validate() error { +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpSrteSegmentITypeSubTlv) String() string { +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -350141,12 +363687,12 @@ func (obj *bgpSrteSegmentITypeSubTlv) String() string { return str } -func (obj *bgpSrteSegmentITypeSubTlv) Clone() (BgpSrteSegmentITypeSubTlv, error) { +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) Clone() (PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpSrteSegmentITypeSubTlv() + newObj := NewPatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -350158,267 +363704,203 @@ func (obj *bgpSrteSegmentITypeSubTlv) Clone() (BgpSrteSegmentITypeSubTlv, error) return newObj, nil } -func (obj *bgpSrteSegmentITypeSubTlv) setNil() { - obj.srv6SidEndpointBehaviorHolder = nil - obj.validationErrors = nil - obj.warnings = nil - obj.constraints = make(map[string]map[string]Constraints) -} - -// BgpSrteSegmentITypeSubTlv is type I: IPv6 Node Address with optional SRv6 SID. -type BgpSrteSegmentITypeSubTlv interface { +// PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter is integer counter pattern +type PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter interface { Validation - // msg marshals BgpSrteSegmentITypeSubTlv to protobuf object *otg.BgpSrteSegmentITypeSubTlv + // msg marshals PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter to protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter // and doesn't set defaults - msg() *otg.BgpSrteSegmentITypeSubTlv - // setMsg unmarshals BgpSrteSegmentITypeSubTlv from protobuf object *otg.BgpSrteSegmentITypeSubTlv + msg() *otg.PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter + // setMsg unmarshals PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter from protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter // and doesn't set defaults - setMsg(*otg.BgpSrteSegmentITypeSubTlv) BgpSrteSegmentITypeSubTlv + setMsg(*otg.PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter // provides marshal interface - Marshal() marshalBgpSrteSegmentITypeSubTlv + Marshal() marshalPatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter // provides unmarshal interface - Unmarshal() unMarshalBgpSrteSegmentITypeSubTlv - // validate validates BgpSrteSegmentITypeSubTlv + Unmarshal() unMarshalPatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter + // validate validates PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter validate() error // A stringer function String() string // Clones the object - Clone() (BgpSrteSegmentITypeSubTlv, error) + Clone() (PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Flags returns string, set in BgpSrteSegmentITypeSubTlv. - Flags() string - // SetFlags assigns string provided by user to BgpSrteSegmentITypeSubTlv - SetFlags(value string) BgpSrteSegmentITypeSubTlv - // HasFlags checks if Flags has been set in BgpSrteSegmentITypeSubTlv - HasFlags() bool - // Ipv6NodeAddress returns string, set in BgpSrteSegmentITypeSubTlv. - Ipv6NodeAddress() string - // SetIpv6NodeAddress assigns string provided by user to BgpSrteSegmentITypeSubTlv - SetIpv6NodeAddress(value string) BgpSrteSegmentITypeSubTlv - // Srv6Sid returns string, set in BgpSrteSegmentITypeSubTlv. - Srv6Sid() string - // SetSrv6Sid assigns string provided by user to BgpSrteSegmentITypeSubTlv - SetSrv6Sid(value string) BgpSrteSegmentITypeSubTlv - // HasSrv6Sid checks if Srv6Sid has been set in BgpSrteSegmentITypeSubTlv - HasSrv6Sid() bool - // Srv6SidEndpointBehavior returns BgpSrteSRv6SIDEndpointBehaviorAndStructure, set in BgpSrteSegmentITypeSubTlv. - // BgpSrteSRv6SIDEndpointBehaviorAndStructure is configuration for SRv6 Endpoint Behavior and SID Structure. Its optional. Summation of lengths for Locator Block, Locator Node, Function, and Argument MUST be less than or equal to 128. - Srv6SidEndpointBehavior() BgpSrteSRv6SIDEndpointBehaviorAndStructure - // SetSrv6SidEndpointBehavior assigns BgpSrteSRv6SIDEndpointBehaviorAndStructure provided by user to BgpSrteSegmentITypeSubTlv. - // BgpSrteSRv6SIDEndpointBehaviorAndStructure is configuration for SRv6 Endpoint Behavior and SID Structure. Its optional. Summation of lengths for Locator Block, Locator Node, Function, and Argument MUST be less than or equal to 128. - SetSrv6SidEndpointBehavior(value BgpSrteSRv6SIDEndpointBehaviorAndStructure) BgpSrteSegmentITypeSubTlv - // HasSrv6SidEndpointBehavior checks if Srv6SidEndpointBehavior has been set in BgpSrteSegmentITypeSubTlv - HasSrv6SidEndpointBehavior() bool - setNil() + // Start returns uint32, set in PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter. + Start() uint32 + // SetStart assigns uint32 provided by user to PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter + SetStart(value uint32) PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter + // HasStart checks if Start has been set in PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter + HasStart() bool + // Step returns uint32, set in PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter. + Step() uint32 + // SetStep assigns uint32 provided by user to PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter + SetStep(value uint32) PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter + // HasStep checks if Step has been set in PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter + HasStep() bool + // Count returns uint32, set in PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter. + Count() uint32 + // SetCount assigns uint32 provided by user to PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter + SetCount(value uint32) PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter + // HasCount checks if Count has been set in PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter + HasCount() bool } -// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 -// Flags returns a string -func (obj *bgpSrteSegmentITypeSubTlv) Flags() string { +// description is TBD +// Start returns a uint32 +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) Start() uint32 { - return *obj.obj.Flags + return *obj.obj.Start } -// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 -// Flags returns a string -func (obj *bgpSrteSegmentITypeSubTlv) HasFlags() bool { - return obj.obj.Flags != nil +// description is TBD +// Start returns a uint32 +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) HasStart() bool { + return obj.obj.Start != nil } -// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 -// SetFlags sets the string value in the BgpSrteSegmentITypeSubTlv object -func (obj *bgpSrteSegmentITypeSubTlv) SetFlags(value string) BgpSrteSegmentITypeSubTlv { +// description is TBD +// SetStart sets the uint32 value in the PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter object +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) SetStart(value uint32) PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter { - obj.obj.Flags = &value + obj.obj.Start = &value return obj } -// IPv6 address representing a node. -// Ipv6NodeAddress returns a string -func (obj *bgpSrteSegmentITypeSubTlv) Ipv6NodeAddress() string { +// description is TBD +// Step returns a uint32 +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) Step() uint32 { - return *obj.obj.Ipv6NodeAddress + return *obj.obj.Step } -// IPv6 address representing a node. -// SetIpv6NodeAddress sets the string value in the BgpSrteSegmentITypeSubTlv object -func (obj *bgpSrteSegmentITypeSubTlv) SetIpv6NodeAddress(value string) BgpSrteSegmentITypeSubTlv { - - obj.obj.Ipv6NodeAddress = &value - return obj +// description is TBD +// Step returns a uint32 +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) HasStep() bool { + return obj.obj.Step != nil } -// Optional SRv6 SID. -// Srv6Sid returns a string -func (obj *bgpSrteSegmentITypeSubTlv) Srv6Sid() string { - - return *obj.obj.Srv6Sid - -} +// description is TBD +// SetStep sets the uint32 value in the PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter object +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) SetStep(value uint32) PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter { -// Optional SRv6 SID. -// Srv6Sid returns a string -func (obj *bgpSrteSegmentITypeSubTlv) HasSrv6Sid() bool { - return obj.obj.Srv6Sid != nil + obj.obj.Step = &value + return obj } -// Optional SRv6 SID. -// SetSrv6Sid sets the string value in the BgpSrteSegmentITypeSubTlv object -func (obj *bgpSrteSegmentITypeSubTlv) SetSrv6Sid(value string) BgpSrteSegmentITypeSubTlv { +// description is TBD +// Count returns a uint32 +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) Count() uint32 { - obj.obj.Srv6Sid = &value - return obj -} + return *obj.obj.Count -// Optional SRv6 Endpoint Behavior and SID Structure. -// Srv6SidEndpointBehavior returns a BgpSrteSRv6SIDEndpointBehaviorAndStructure -func (obj *bgpSrteSegmentITypeSubTlv) Srv6SidEndpointBehavior() BgpSrteSRv6SIDEndpointBehaviorAndStructure { - if obj.obj.Srv6SidEndpointBehavior == nil { - obj.obj.Srv6SidEndpointBehavior = NewBgpSrteSRv6SIDEndpointBehaviorAndStructure().msg() - } - if obj.srv6SidEndpointBehaviorHolder == nil { - obj.srv6SidEndpointBehaviorHolder = &bgpSrteSRv6SIDEndpointBehaviorAndStructure{obj: obj.obj.Srv6SidEndpointBehavior} - } - return obj.srv6SidEndpointBehaviorHolder } -// Optional SRv6 Endpoint Behavior and SID Structure. -// Srv6SidEndpointBehavior returns a BgpSrteSRv6SIDEndpointBehaviorAndStructure -func (obj *bgpSrteSegmentITypeSubTlv) HasSrv6SidEndpointBehavior() bool { - return obj.obj.Srv6SidEndpointBehavior != nil +// description is TBD +// Count returns a uint32 +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) HasCount() bool { + return obj.obj.Count != nil } -// Optional SRv6 Endpoint Behavior and SID Structure. -// SetSrv6SidEndpointBehavior sets the BgpSrteSRv6SIDEndpointBehaviorAndStructure value in the BgpSrteSegmentITypeSubTlv object -func (obj *bgpSrteSegmentITypeSubTlv) SetSrv6SidEndpointBehavior(value BgpSrteSRv6SIDEndpointBehaviorAndStructure) BgpSrteSegmentITypeSubTlv { - - obj.srv6SidEndpointBehaviorHolder = nil - obj.obj.Srv6SidEndpointBehavior = value.msg() +// description is TBD +// SetCount sets the uint32 value in the PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter object +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) SetCount(value uint32) PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter { + obj.obj.Count = &value return obj } -func (obj *bgpSrteSegmentITypeSubTlv) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Flags != nil { - - err := obj.validateHex(obj.Flags()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentITypeSubTlv.Flags")) - } - - } - - // Ipv6NodeAddress is required - if obj.obj.Ipv6NodeAddress == nil { - vObj.validationErrors = append(vObj.validationErrors, "Ipv6NodeAddress is required field on interface BgpSrteSegmentITypeSubTlv") - } - if obj.obj.Ipv6NodeAddress != nil { - - err := obj.validateIpv6(obj.Ipv6NodeAddress()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentITypeSubTlv.Ipv6NodeAddress")) - } +} +func (obj *patternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) setDefault() { + if obj.obj.Start == nil { + obj.SetStart(0) } - - if obj.obj.Srv6Sid != nil { - - err := obj.validateIpv6(obj.Srv6Sid()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentITypeSubTlv.Srv6Sid")) - } - + if obj.obj.Step == nil { + obj.SetStep(1) } - - if obj.obj.Srv6SidEndpointBehavior != nil { - - obj.Srv6SidEndpointBehavior().validateObj(vObj, set_default) + if obj.obj.Count == nil { + obj.SetCount(1) } } -func (obj *bgpSrteSegmentITypeSubTlv) setDefault() { - -} - -// ***** BgpSrteSegmentJTypeSubTlv ***** -type bgpSrteSegmentJTypeSubTlv struct { +// ***** PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter ***** +type patternFlowSnmpv2CVariableBindingValueBigCounterValueCounter struct { validation - obj *otg.BgpSrteSegmentJTypeSubTlv - marshaller marshalBgpSrteSegmentJTypeSubTlv - unMarshaller unMarshalBgpSrteSegmentJTypeSubTlv - srv6SidEndpointBehaviorHolder BgpSrteSRv6SIDEndpointBehaviorAndStructure + obj *otg.PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter + marshaller marshalPatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter + unMarshaller unMarshalPatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter } -func NewBgpSrteSegmentJTypeSubTlv() BgpSrteSegmentJTypeSubTlv { - obj := bgpSrteSegmentJTypeSubTlv{obj: &otg.BgpSrteSegmentJTypeSubTlv{}} +func NewPatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter() PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter { + obj := patternFlowSnmpv2CVariableBindingValueBigCounterValueCounter{obj: &otg.PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter{}} obj.setDefault() return &obj } -func (obj *bgpSrteSegmentJTypeSubTlv) msg() *otg.BgpSrteSegmentJTypeSubTlv { +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) msg() *otg.PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter { return obj.obj } -func (obj *bgpSrteSegmentJTypeSubTlv) setMsg(msg *otg.BgpSrteSegmentJTypeSubTlv) BgpSrteSegmentJTypeSubTlv { - obj.setNil() +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) setMsg(msg *otg.PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter { + proto.Merge(obj.obj, msg) return obj } -type marshalbgpSrteSegmentJTypeSubTlv struct { - obj *bgpSrteSegmentJTypeSubTlv +type marshalpatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter struct { + obj *patternFlowSnmpv2CVariableBindingValueBigCounterValueCounter } -type marshalBgpSrteSegmentJTypeSubTlv interface { - // ToProto marshals BgpSrteSegmentJTypeSubTlv to protobuf object *otg.BgpSrteSegmentJTypeSubTlv - ToProto() (*otg.BgpSrteSegmentJTypeSubTlv, error) - // ToPbText marshals BgpSrteSegmentJTypeSubTlv to protobuf text +type marshalPatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter interface { + // ToProto marshals PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter to protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter + ToProto() (*otg.PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter, error) + // ToPbText marshals PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpSrteSegmentJTypeSubTlv to YAML text + // ToYaml marshals PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter to YAML text ToYaml() (string, error) - // ToJson marshals BgpSrteSegmentJTypeSubTlv to JSON text + // ToJson marshals PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter to JSON text ToJson() (string, error) } -type unMarshalbgpSrteSegmentJTypeSubTlv struct { - obj *bgpSrteSegmentJTypeSubTlv +type unMarshalpatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter struct { + obj *patternFlowSnmpv2CVariableBindingValueBigCounterValueCounter } -type unMarshalBgpSrteSegmentJTypeSubTlv interface { - // FromProto unmarshals BgpSrteSegmentJTypeSubTlv from protobuf object *otg.BgpSrteSegmentJTypeSubTlv - FromProto(msg *otg.BgpSrteSegmentJTypeSubTlv) (BgpSrteSegmentJTypeSubTlv, error) - // FromPbText unmarshals BgpSrteSegmentJTypeSubTlv from protobuf text +type unMarshalPatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter interface { + // FromProto unmarshals PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter from protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter + FromProto(msg *otg.PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) (PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter, error) + // FromPbText unmarshals PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpSrteSegmentJTypeSubTlv from YAML text + // FromYaml unmarshals PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter from YAML text FromYaml(value string) error - // FromJson unmarshals BgpSrteSegmentJTypeSubTlv from JSON text + // FromJson unmarshals PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter from JSON text FromJson(value string) error } -func (obj *bgpSrteSegmentJTypeSubTlv) Marshal() marshalBgpSrteSegmentJTypeSubTlv { +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) Marshal() marshalPatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter { if obj.marshaller == nil { - obj.marshaller = &marshalbgpSrteSegmentJTypeSubTlv{obj: obj} + obj.marshaller = &marshalpatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter{obj: obj} } return obj.marshaller } -func (obj *bgpSrteSegmentJTypeSubTlv) Unmarshal() unMarshalBgpSrteSegmentJTypeSubTlv { +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) Unmarshal() unMarshalPatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpSrteSegmentJTypeSubTlv{obj: obj} + obj.unMarshaller = &unMarshalpatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpSrteSegmentJTypeSubTlv) ToProto() (*otg.BgpSrteSegmentJTypeSubTlv, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) ToProto() (*otg.PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -350426,7 +363908,7 @@ func (m *marshalbgpSrteSegmentJTypeSubTlv) ToProto() (*otg.BgpSrteSegmentJTypeSu return m.obj.msg(), nil } -func (m *unMarshalbgpSrteSegmentJTypeSubTlv) FromProto(msg *otg.BgpSrteSegmentJTypeSubTlv) (BgpSrteSegmentJTypeSubTlv, error) { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) FromProto(msg *otg.PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) (PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -350435,7 +363917,7 @@ func (m *unMarshalbgpSrteSegmentJTypeSubTlv) FromProto(msg *otg.BgpSrteSegmentJT return newObj, nil } -func (m *marshalbgpSrteSegmentJTypeSubTlv) ToPbText() (string, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -350447,12 +363929,12 @@ func (m *marshalbgpSrteSegmentJTypeSubTlv) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalbgpSrteSegmentJTypeSubTlv) FromPbText(value string) error { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - m.obj.setNil() + vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -350460,7 +363942,7 @@ func (m *unMarshalbgpSrteSegmentJTypeSubTlv) FromPbText(value string) error { return retObj } -func (m *marshalbgpSrteSegmentJTypeSubTlv) ToYaml() (string, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -350481,7 +363963,7 @@ func (m *marshalbgpSrteSegmentJTypeSubTlv) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrteSegmentJTypeSubTlv) FromYaml(value string) error { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) FromYaml(value string) error { if value == "" { value = "{}" } @@ -350498,7 +363980,7 @@ func (m *unMarshalbgpSrteSegmentJTypeSubTlv) FromYaml(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - m.obj.setNil() + vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -350506,7 +363988,7 @@ func (m *unMarshalbgpSrteSegmentJTypeSubTlv) FromYaml(value string) error { return nil } -func (m *marshalbgpSrteSegmentJTypeSubTlv) ToJson() (string, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -350524,7 +364006,7 @@ func (m *marshalbgpSrteSegmentJTypeSubTlv) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrteSegmentJTypeSubTlv) FromJson(value string) error { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -350537,7 +364019,7 @@ func (m *unMarshalbgpSrteSegmentJTypeSubTlv) FromJson(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - m.obj.setNil() + err := m.obj.validateToAndFrom() if err != nil { return err @@ -350545,19 +364027,19 @@ func (m *unMarshalbgpSrteSegmentJTypeSubTlv) FromJson(value string) error { return nil } -func (obj *bgpSrteSegmentJTypeSubTlv) validateToAndFrom() error { +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpSrteSegmentJTypeSubTlv) validate() error { +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpSrteSegmentJTypeSubTlv) String() string { +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -350565,12 +364047,12 @@ func (obj *bgpSrteSegmentJTypeSubTlv) String() string { return str } -func (obj *bgpSrteSegmentJTypeSubTlv) Clone() (BgpSrteSegmentJTypeSubTlv, error) { +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) Clone() (PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpSrteSegmentJTypeSubTlv() + newObj := NewPatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -350582,393 +364064,203 @@ func (obj *bgpSrteSegmentJTypeSubTlv) Clone() (BgpSrteSegmentJTypeSubTlv, error) return newObj, nil } -func (obj *bgpSrteSegmentJTypeSubTlv) setNil() { - obj.srv6SidEndpointBehaviorHolder = nil - obj.validationErrors = nil - obj.warnings = nil - obj.constraints = make(map[string]map[string]Constraints) -} - -// BgpSrteSegmentJTypeSubTlv is type J: IPv6 Address, Interface ID for local and remote pair for SRv6 with optional SID. -type BgpSrteSegmentJTypeSubTlv interface { +// PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter is integer counter pattern +type PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter interface { Validation - // msg marshals BgpSrteSegmentJTypeSubTlv to protobuf object *otg.BgpSrteSegmentJTypeSubTlv + // msg marshals PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter to protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter // and doesn't set defaults - msg() *otg.BgpSrteSegmentJTypeSubTlv - // setMsg unmarshals BgpSrteSegmentJTypeSubTlv from protobuf object *otg.BgpSrteSegmentJTypeSubTlv + msg() *otg.PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter + // setMsg unmarshals PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter from protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter // and doesn't set defaults - setMsg(*otg.BgpSrteSegmentJTypeSubTlv) BgpSrteSegmentJTypeSubTlv + setMsg(*otg.PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter // provides marshal interface - Marshal() marshalBgpSrteSegmentJTypeSubTlv + Marshal() marshalPatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter // provides unmarshal interface - Unmarshal() unMarshalBgpSrteSegmentJTypeSubTlv - // validate validates BgpSrteSegmentJTypeSubTlv + Unmarshal() unMarshalPatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter + // validate validates PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter validate() error // A stringer function String() string // Clones the object - Clone() (BgpSrteSegmentJTypeSubTlv, error) + Clone() (PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Flags returns string, set in BgpSrteSegmentJTypeSubTlv. - Flags() string - // SetFlags assigns string provided by user to BgpSrteSegmentJTypeSubTlv - SetFlags(value string) BgpSrteSegmentJTypeSubTlv - // HasFlags checks if Flags has been set in BgpSrteSegmentJTypeSubTlv - HasFlags() bool - // SrAlgorithm returns uint32, set in BgpSrteSegmentJTypeSubTlv. - SrAlgorithm() uint32 - // SetSrAlgorithm assigns uint32 provided by user to BgpSrteSegmentJTypeSubTlv - SetSrAlgorithm(value uint32) BgpSrteSegmentJTypeSubTlv - // HasSrAlgorithm checks if SrAlgorithm has been set in BgpSrteSegmentJTypeSubTlv - HasSrAlgorithm() bool - // LocalInterfaceId returns uint32, set in BgpSrteSegmentJTypeSubTlv. - LocalInterfaceId() uint32 - // SetLocalInterfaceId assigns uint32 provided by user to BgpSrteSegmentJTypeSubTlv - SetLocalInterfaceId(value uint32) BgpSrteSegmentJTypeSubTlv - // HasLocalInterfaceId checks if LocalInterfaceId has been set in BgpSrteSegmentJTypeSubTlv - HasLocalInterfaceId() bool - // LocalIpv6NodeAddress returns string, set in BgpSrteSegmentJTypeSubTlv. - LocalIpv6NodeAddress() string - // SetLocalIpv6NodeAddress assigns string provided by user to BgpSrteSegmentJTypeSubTlv - SetLocalIpv6NodeAddress(value string) BgpSrteSegmentJTypeSubTlv - // RemoteInterfaceId returns uint32, set in BgpSrteSegmentJTypeSubTlv. - RemoteInterfaceId() uint32 - // SetRemoteInterfaceId assigns uint32 provided by user to BgpSrteSegmentJTypeSubTlv - SetRemoteInterfaceId(value uint32) BgpSrteSegmentJTypeSubTlv - // HasRemoteInterfaceId checks if RemoteInterfaceId has been set in BgpSrteSegmentJTypeSubTlv - HasRemoteInterfaceId() bool - // RemoteIpv6NodeAddress returns string, set in BgpSrteSegmentJTypeSubTlv. - RemoteIpv6NodeAddress() string - // SetRemoteIpv6NodeAddress assigns string provided by user to BgpSrteSegmentJTypeSubTlv - SetRemoteIpv6NodeAddress(value string) BgpSrteSegmentJTypeSubTlv - // Srv6Sid returns string, set in BgpSrteSegmentJTypeSubTlv. - Srv6Sid() string - // SetSrv6Sid assigns string provided by user to BgpSrteSegmentJTypeSubTlv - SetSrv6Sid(value string) BgpSrteSegmentJTypeSubTlv - // HasSrv6Sid checks if Srv6Sid has been set in BgpSrteSegmentJTypeSubTlv - HasSrv6Sid() bool - // Srv6SidEndpointBehavior returns BgpSrteSRv6SIDEndpointBehaviorAndStructure, set in BgpSrteSegmentJTypeSubTlv. - // BgpSrteSRv6SIDEndpointBehaviorAndStructure is configuration for SRv6 Endpoint Behavior and SID Structure. Its optional. Summation of lengths for Locator Block, Locator Node, Function, and Argument MUST be less than or equal to 128. - Srv6SidEndpointBehavior() BgpSrteSRv6SIDEndpointBehaviorAndStructure - // SetSrv6SidEndpointBehavior assigns BgpSrteSRv6SIDEndpointBehaviorAndStructure provided by user to BgpSrteSegmentJTypeSubTlv. - // BgpSrteSRv6SIDEndpointBehaviorAndStructure is configuration for SRv6 Endpoint Behavior and SID Structure. Its optional. Summation of lengths for Locator Block, Locator Node, Function, and Argument MUST be less than or equal to 128. - SetSrv6SidEndpointBehavior(value BgpSrteSRv6SIDEndpointBehaviorAndStructure) BgpSrteSegmentJTypeSubTlv - // HasSrv6SidEndpointBehavior checks if Srv6SidEndpointBehavior has been set in BgpSrteSegmentJTypeSubTlv - HasSrv6SidEndpointBehavior() bool - setNil() -} - -// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 -// Flags returns a string -func (obj *bgpSrteSegmentJTypeSubTlv) Flags() string { - - return *obj.obj.Flags - -} - -// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 -// Flags returns a string -func (obj *bgpSrteSegmentJTypeSubTlv) HasFlags() bool { - return obj.obj.Flags != nil -} - -// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 -// SetFlags sets the string value in the BgpSrteSegmentJTypeSubTlv object -func (obj *bgpSrteSegmentJTypeSubTlv) SetFlags(value string) BgpSrteSegmentJTypeSubTlv { - - obj.obj.Flags = &value - return obj -} - -// SR Algorithm identifier when A-Flag in on. -// SrAlgorithm returns a uint32 -func (obj *bgpSrteSegmentJTypeSubTlv) SrAlgorithm() uint32 { - - return *obj.obj.SrAlgorithm - -} - -// SR Algorithm identifier when A-Flag in on. -// SrAlgorithm returns a uint32 -func (obj *bgpSrteSegmentJTypeSubTlv) HasSrAlgorithm() bool { - return obj.obj.SrAlgorithm != nil -} - -// SR Algorithm identifier when A-Flag in on. -// SetSrAlgorithm sets the uint32 value in the BgpSrteSegmentJTypeSubTlv object -func (obj *bgpSrteSegmentJTypeSubTlv) SetSrAlgorithm(value uint32) BgpSrteSegmentJTypeSubTlv { - - obj.obj.SrAlgorithm = &value - return obj -} - -// Local Interface ID: The Interface Index as defined in [RFC8664]. -// LocalInterfaceId returns a uint32 -func (obj *bgpSrteSegmentJTypeSubTlv) LocalInterfaceId() uint32 { - - return *obj.obj.LocalInterfaceId - + // Start returns uint64, set in PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter. + Start() uint64 + // SetStart assigns uint64 provided by user to PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter + SetStart(value uint64) PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter + // HasStart checks if Start has been set in PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter + HasStart() bool + // Step returns uint64, set in PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter. + Step() uint64 + // SetStep assigns uint64 provided by user to PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter + SetStep(value uint64) PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter + // HasStep checks if Step has been set in PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter + HasStep() bool + // Count returns uint64, set in PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter. + Count() uint64 + // SetCount assigns uint64 provided by user to PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter + SetCount(value uint64) PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter + // HasCount checks if Count has been set in PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter + HasCount() bool } -// Local Interface ID: The Interface Index as defined in [RFC8664]. -// LocalInterfaceId returns a uint32 -func (obj *bgpSrteSegmentJTypeSubTlv) HasLocalInterfaceId() bool { - return obj.obj.LocalInterfaceId != nil -} +// description is TBD +// Start returns a uint64 +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) Start() uint64 { -// Local Interface ID: The Interface Index as defined in [RFC8664]. -// SetLocalInterfaceId sets the uint32 value in the BgpSrteSegmentJTypeSubTlv object -func (obj *bgpSrteSegmentJTypeSubTlv) SetLocalInterfaceId(value uint32) BgpSrteSegmentJTypeSubTlv { + return *obj.obj.Start - obj.obj.LocalInterfaceId = &value - return obj } -// IPv6 address representing a node. -// LocalIpv6NodeAddress returns a string -func (obj *bgpSrteSegmentJTypeSubTlv) LocalIpv6NodeAddress() string { - - return *obj.obj.LocalIpv6NodeAddress - +// description is TBD +// Start returns a uint64 +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) HasStart() bool { + return obj.obj.Start != nil } -// IPv6 address representing a node. -// SetLocalIpv6NodeAddress sets the string value in the BgpSrteSegmentJTypeSubTlv object -func (obj *bgpSrteSegmentJTypeSubTlv) SetLocalIpv6NodeAddress(value string) BgpSrteSegmentJTypeSubTlv { +// description is TBD +// SetStart sets the uint64 value in the PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter object +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) SetStart(value uint64) PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter { - obj.obj.LocalIpv6NodeAddress = &value + obj.obj.Start = &value return obj } -// Local Interface ID: The Interface Index as defined in [RFC8664]. -// RemoteInterfaceId returns a uint32 -func (obj *bgpSrteSegmentJTypeSubTlv) RemoteInterfaceId() uint32 { - - return *obj.obj.RemoteInterfaceId - -} - -// Local Interface ID: The Interface Index as defined in [RFC8664]. -// RemoteInterfaceId returns a uint32 -func (obj *bgpSrteSegmentJTypeSubTlv) HasRemoteInterfaceId() bool { - return obj.obj.RemoteInterfaceId != nil -} +// description is TBD +// Step returns a uint64 +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) Step() uint64 { -// Local Interface ID: The Interface Index as defined in [RFC8664]. -// SetRemoteInterfaceId sets the uint32 value in the BgpSrteSegmentJTypeSubTlv object -func (obj *bgpSrteSegmentJTypeSubTlv) SetRemoteInterfaceId(value uint32) BgpSrteSegmentJTypeSubTlv { + return *obj.obj.Step - obj.obj.RemoteInterfaceId = &value - return obj } -// IPv6 address representing a node. -// RemoteIpv6NodeAddress returns a string -func (obj *bgpSrteSegmentJTypeSubTlv) RemoteIpv6NodeAddress() string { - - return *obj.obj.RemoteIpv6NodeAddress - +// description is TBD +// Step returns a uint64 +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) HasStep() bool { + return obj.obj.Step != nil } -// IPv6 address representing a node. -// SetRemoteIpv6NodeAddress sets the string value in the BgpSrteSegmentJTypeSubTlv object -func (obj *bgpSrteSegmentJTypeSubTlv) SetRemoteIpv6NodeAddress(value string) BgpSrteSegmentJTypeSubTlv { +// description is TBD +// SetStep sets the uint64 value in the PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter object +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) SetStep(value uint64) PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter { - obj.obj.RemoteIpv6NodeAddress = &value + obj.obj.Step = &value return obj } -// Optional SRv6 SID. -// Srv6Sid returns a string -func (obj *bgpSrteSegmentJTypeSubTlv) Srv6Sid() string { - - return *obj.obj.Srv6Sid - -} - -// Optional SRv6 SID. -// Srv6Sid returns a string -func (obj *bgpSrteSegmentJTypeSubTlv) HasSrv6Sid() bool { - return obj.obj.Srv6Sid != nil -} - -// Optional SRv6 SID. -// SetSrv6Sid sets the string value in the BgpSrteSegmentJTypeSubTlv object -func (obj *bgpSrteSegmentJTypeSubTlv) SetSrv6Sid(value string) BgpSrteSegmentJTypeSubTlv { +// description is TBD +// Count returns a uint64 +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) Count() uint64 { - obj.obj.Srv6Sid = &value - return obj -} + return *obj.obj.Count -// Optional SRv6 Endpoint Behavior and SID Structure. -// Srv6SidEndpointBehavior returns a BgpSrteSRv6SIDEndpointBehaviorAndStructure -func (obj *bgpSrteSegmentJTypeSubTlv) Srv6SidEndpointBehavior() BgpSrteSRv6SIDEndpointBehaviorAndStructure { - if obj.obj.Srv6SidEndpointBehavior == nil { - obj.obj.Srv6SidEndpointBehavior = NewBgpSrteSRv6SIDEndpointBehaviorAndStructure().msg() - } - if obj.srv6SidEndpointBehaviorHolder == nil { - obj.srv6SidEndpointBehaviorHolder = &bgpSrteSRv6SIDEndpointBehaviorAndStructure{obj: obj.obj.Srv6SidEndpointBehavior} - } - return obj.srv6SidEndpointBehaviorHolder } -// Optional SRv6 Endpoint Behavior and SID Structure. -// Srv6SidEndpointBehavior returns a BgpSrteSRv6SIDEndpointBehaviorAndStructure -func (obj *bgpSrteSegmentJTypeSubTlv) HasSrv6SidEndpointBehavior() bool { - return obj.obj.Srv6SidEndpointBehavior != nil +// description is TBD +// Count returns a uint64 +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) HasCount() bool { + return obj.obj.Count != nil } -// Optional SRv6 Endpoint Behavior and SID Structure. -// SetSrv6SidEndpointBehavior sets the BgpSrteSRv6SIDEndpointBehaviorAndStructure value in the BgpSrteSegmentJTypeSubTlv object -func (obj *bgpSrteSegmentJTypeSubTlv) SetSrv6SidEndpointBehavior(value BgpSrteSRv6SIDEndpointBehaviorAndStructure) BgpSrteSegmentJTypeSubTlv { - - obj.srv6SidEndpointBehaviorHolder = nil - obj.obj.Srv6SidEndpointBehavior = value.msg() +// description is TBD +// SetCount sets the uint64 value in the PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter object +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) SetCount(value uint64) PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter { + obj.obj.Count = &value return obj } -func (obj *bgpSrteSegmentJTypeSubTlv) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Flags != nil { - - err := obj.validateHex(obj.Flags()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentJTypeSubTlv.Flags")) - } - - } - - // LocalIpv6NodeAddress is required - if obj.obj.LocalIpv6NodeAddress == nil { - vObj.validationErrors = append(vObj.validationErrors, "LocalIpv6NodeAddress is required field on interface BgpSrteSegmentJTypeSubTlv") - } - if obj.obj.LocalIpv6NodeAddress != nil { - - err := obj.validateIpv6(obj.LocalIpv6NodeAddress()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentJTypeSubTlv.LocalIpv6NodeAddress")) - } - - } - - // RemoteIpv6NodeAddress is required - if obj.obj.RemoteIpv6NodeAddress == nil { - vObj.validationErrors = append(vObj.validationErrors, "RemoteIpv6NodeAddress is required field on interface BgpSrteSegmentJTypeSubTlv") - } - if obj.obj.RemoteIpv6NodeAddress != nil { - - err := obj.validateIpv6(obj.RemoteIpv6NodeAddress()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentJTypeSubTlv.RemoteIpv6NodeAddress")) - } - - } - - if obj.obj.Srv6Sid != nil { - - err := obj.validateIpv6(obj.Srv6Sid()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentJTypeSubTlv.Srv6Sid")) - } - - } - - if obj.obj.Srv6SidEndpointBehavior != nil { - - obj.Srv6SidEndpointBehavior().validateObj(vObj, set_default) - } - } -func (obj *bgpSrteSegmentJTypeSubTlv) setDefault() { - if obj.obj.SrAlgorithm == nil { - obj.SetSrAlgorithm(0) +func (obj *patternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) setDefault() { + if obj.obj.Start == nil { + obj.SetStart(0) } - if obj.obj.LocalInterfaceId == nil { - obj.SetLocalInterfaceId(0) + if obj.obj.Step == nil { + obj.SetStep(1) } - if obj.obj.RemoteInterfaceId == nil { - obj.SetRemoteInterfaceId(0) + if obj.obj.Count == nil { + obj.SetCount(1) } } -// ***** BgpSrteSegmentKTypeSubTlv ***** -type bgpSrteSegmentKTypeSubTlv struct { +// ***** PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter ***** +type patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter struct { validation - obj *otg.BgpSrteSegmentKTypeSubTlv - marshaller marshalBgpSrteSegmentKTypeSubTlv - unMarshaller unMarshalBgpSrteSegmentKTypeSubTlv - srv6SidEndpointBehaviorHolder BgpSrteSRv6SIDEndpointBehaviorAndStructure + obj *otg.PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter + marshaller marshalPatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter + unMarshaller unMarshalPatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter } -func NewBgpSrteSegmentKTypeSubTlv() BgpSrteSegmentKTypeSubTlv { - obj := bgpSrteSegmentKTypeSubTlv{obj: &otg.BgpSrteSegmentKTypeSubTlv{}} +func NewPatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter() PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter { + obj := patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter{obj: &otg.PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter{}} obj.setDefault() return &obj } -func (obj *bgpSrteSegmentKTypeSubTlv) msg() *otg.BgpSrteSegmentKTypeSubTlv { +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) msg() *otg.PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter { return obj.obj } -func (obj *bgpSrteSegmentKTypeSubTlv) setMsg(msg *otg.BgpSrteSegmentKTypeSubTlv) BgpSrteSegmentKTypeSubTlv { - obj.setNil() +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) setMsg(msg *otg.PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter { + proto.Merge(obj.obj, msg) return obj } -type marshalbgpSrteSegmentKTypeSubTlv struct { - obj *bgpSrteSegmentKTypeSubTlv +type marshalpatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter struct { + obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter } -type marshalBgpSrteSegmentKTypeSubTlv interface { - // ToProto marshals BgpSrteSegmentKTypeSubTlv to protobuf object *otg.BgpSrteSegmentKTypeSubTlv - ToProto() (*otg.BgpSrteSegmentKTypeSubTlv, error) - // ToPbText marshals BgpSrteSegmentKTypeSubTlv to protobuf text +type marshalPatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter interface { + // ToProto marshals PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter to protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter + ToProto() (*otg.PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter, error) + // ToPbText marshals PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter to protobuf text ToPbText() (string, error) - // ToYaml marshals BgpSrteSegmentKTypeSubTlv to YAML text + // ToYaml marshals PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter to YAML text ToYaml() (string, error) - // ToJson marshals BgpSrteSegmentKTypeSubTlv to JSON text + // ToJson marshals PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter to JSON text ToJson() (string, error) } -type unMarshalbgpSrteSegmentKTypeSubTlv struct { - obj *bgpSrteSegmentKTypeSubTlv +type unMarshalpatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter struct { + obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter } -type unMarshalBgpSrteSegmentKTypeSubTlv interface { - // FromProto unmarshals BgpSrteSegmentKTypeSubTlv from protobuf object *otg.BgpSrteSegmentKTypeSubTlv - FromProto(msg *otg.BgpSrteSegmentKTypeSubTlv) (BgpSrteSegmentKTypeSubTlv, error) - // FromPbText unmarshals BgpSrteSegmentKTypeSubTlv from protobuf text +type unMarshalPatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter interface { + // FromProto unmarshals PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter from protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter + FromProto(msg *otg.PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) (PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter, error) + // FromPbText unmarshals PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter from protobuf text FromPbText(value string) error - // FromYaml unmarshals BgpSrteSegmentKTypeSubTlv from YAML text + // FromYaml unmarshals PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter from YAML text FromYaml(value string) error - // FromJson unmarshals BgpSrteSegmentKTypeSubTlv from JSON text + // FromJson unmarshals PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter from JSON text FromJson(value string) error } -func (obj *bgpSrteSegmentKTypeSubTlv) Marshal() marshalBgpSrteSegmentKTypeSubTlv { +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) Marshal() marshalPatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter { if obj.marshaller == nil { - obj.marshaller = &marshalbgpSrteSegmentKTypeSubTlv{obj: obj} + obj.marshaller = &marshalpatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter{obj: obj} } return obj.marshaller } -func (obj *bgpSrteSegmentKTypeSubTlv) Unmarshal() unMarshalBgpSrteSegmentKTypeSubTlv { +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) Unmarshal() unMarshalPatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter { if obj.unMarshaller == nil { - obj.unMarshaller = &unMarshalbgpSrteSegmentKTypeSubTlv{obj: obj} + obj.unMarshaller = &unMarshalpatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter{obj: obj} } return obj.unMarshaller } -func (m *marshalbgpSrteSegmentKTypeSubTlv) ToProto() (*otg.BgpSrteSegmentKTypeSubTlv, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) ToProto() (*otg.PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter, error) { err := m.obj.validateToAndFrom() if err != nil { return nil, err @@ -350976,7 +364268,7 @@ func (m *marshalbgpSrteSegmentKTypeSubTlv) ToProto() (*otg.BgpSrteSegmentKTypeSu return m.obj.msg(), nil } -func (m *unMarshalbgpSrteSegmentKTypeSubTlv) FromProto(msg *otg.BgpSrteSegmentKTypeSubTlv) (BgpSrteSegmentKTypeSubTlv, error) { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) FromProto(msg *otg.PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) (PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter, error) { newObj := m.obj.setMsg(msg) err := newObj.validateToAndFrom() if err != nil { @@ -350985,7 +364277,7 @@ func (m *unMarshalbgpSrteSegmentKTypeSubTlv) FromProto(msg *otg.BgpSrteSegmentKT return newObj, nil } -func (m *marshalbgpSrteSegmentKTypeSubTlv) ToPbText() (string, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) ToPbText() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -350997,12 +364289,12 @@ func (m *marshalbgpSrteSegmentKTypeSubTlv) ToPbText() (string, error) { return string(protoMarshal), nil } -func (m *unMarshalbgpSrteSegmentKTypeSubTlv) FromPbText(value string) error { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) FromPbText(value string) error { retObj := proto.Unmarshal([]byte(value), m.obj.msg()) if retObj != nil { return retObj } - m.obj.setNil() + vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -351010,7 +364302,7 @@ func (m *unMarshalbgpSrteSegmentKTypeSubTlv) FromPbText(value string) error { return retObj } -func (m *marshalbgpSrteSegmentKTypeSubTlv) ToYaml() (string, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) ToYaml() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -351031,7 +364323,7 @@ func (m *marshalbgpSrteSegmentKTypeSubTlv) ToYaml() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrteSegmentKTypeSubTlv) FromYaml(value string) error { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) FromYaml(value string) error { if value == "" { value = "{}" } @@ -351048,7 +364340,7 @@ func (m *unMarshalbgpSrteSegmentKTypeSubTlv) FromYaml(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - m.obj.setNil() + vErr := m.obj.validateToAndFrom() if vErr != nil { return vErr @@ -351056,7 +364348,7 @@ func (m *unMarshalbgpSrteSegmentKTypeSubTlv) FromYaml(value string) error { return nil } -func (m *marshalbgpSrteSegmentKTypeSubTlv) ToJson() (string, error) { +func (m *marshalpatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) ToJson() (string, error) { vErr := m.obj.validateToAndFrom() if vErr != nil { return "", vErr @@ -351074,7 +364366,7 @@ func (m *marshalbgpSrteSegmentKTypeSubTlv) ToJson() (string, error) { return string(data), nil } -func (m *unMarshalbgpSrteSegmentKTypeSubTlv) FromJson(value string) error { +func (m *unMarshalpatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) FromJson(value string) error { opts := protojson.UnmarshalOptions{ AllowPartial: true, DiscardUnknown: false, @@ -351087,7 +364379,7 @@ func (m *unMarshalbgpSrteSegmentKTypeSubTlv) FromJson(value string) error { return fmt.Errorf("unmarshal error %s", strings.Replace( uError.Error(), "\u00a0", " ", -1)[7:]) } - m.obj.setNil() + err := m.obj.validateToAndFrom() if err != nil { return err @@ -351095,19 +364387,19 @@ func (m *unMarshalbgpSrteSegmentKTypeSubTlv) FromJson(value string) error { return nil } -func (obj *bgpSrteSegmentKTypeSubTlv) validateToAndFrom() error { +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) validateToAndFrom() error { // emptyVars() obj.validateObj(&obj.validation, true) return obj.validationResult() } -func (obj *bgpSrteSegmentKTypeSubTlv) validate() error { +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) validate() error { // emptyVars() obj.validateObj(&obj.validation, false) return obj.validationResult() } -func (obj *bgpSrteSegmentKTypeSubTlv) String() string { +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) String() string { str, err := obj.Marshal().ToYaml() if err != nil { return err.Error() @@ -351115,12 +364407,12 @@ func (obj *bgpSrteSegmentKTypeSubTlv) String() string { return str } -func (obj *bgpSrteSegmentKTypeSubTlv) Clone() (BgpSrteSegmentKTypeSubTlv, error) { +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) Clone() (PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter, error) { vErr := obj.validate() if vErr != nil { return nil, vErr } - newObj := NewBgpSrteSegmentKTypeSubTlv() + newObj := NewPatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter() data, err := proto.Marshal(obj.msg()) if err != nil { return nil, err @@ -351132,257 +364424,130 @@ func (obj *bgpSrteSegmentKTypeSubTlv) Clone() (BgpSrteSegmentKTypeSubTlv, error) return newObj, nil } -func (obj *bgpSrteSegmentKTypeSubTlv) setNil() { - obj.srv6SidEndpointBehaviorHolder = nil - obj.validationErrors = nil - obj.warnings = nil - obj.constraints = make(map[string]map[string]Constraints) -} - -// BgpSrteSegmentKTypeSubTlv is type K: IPv6 Local and Remote addresses for SRv6 with optional SID. -type BgpSrteSegmentKTypeSubTlv interface { +// PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter is integer counter pattern +type PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter interface { Validation - // msg marshals BgpSrteSegmentKTypeSubTlv to protobuf object *otg.BgpSrteSegmentKTypeSubTlv + // msg marshals PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter to protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter // and doesn't set defaults - msg() *otg.BgpSrteSegmentKTypeSubTlv - // setMsg unmarshals BgpSrteSegmentKTypeSubTlv from protobuf object *otg.BgpSrteSegmentKTypeSubTlv + msg() *otg.PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter + // setMsg unmarshals PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter from protobuf object *otg.PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter // and doesn't set defaults - setMsg(*otg.BgpSrteSegmentKTypeSubTlv) BgpSrteSegmentKTypeSubTlv + setMsg(*otg.PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter // provides marshal interface - Marshal() marshalBgpSrteSegmentKTypeSubTlv + Marshal() marshalPatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter // provides unmarshal interface - Unmarshal() unMarshalBgpSrteSegmentKTypeSubTlv - // validate validates BgpSrteSegmentKTypeSubTlv + Unmarshal() unMarshalPatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter + // validate validates PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter validate() error // A stringer function String() string // Clones the object - Clone() (BgpSrteSegmentKTypeSubTlv, error) + Clone() (PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter, error) validateToAndFrom() error validateObj(vObj *validation, set_default bool) setDefault() - // Flags returns string, set in BgpSrteSegmentKTypeSubTlv. - Flags() string - // SetFlags assigns string provided by user to BgpSrteSegmentKTypeSubTlv - SetFlags(value string) BgpSrteSegmentKTypeSubTlv - // HasFlags checks if Flags has been set in BgpSrteSegmentKTypeSubTlv - HasFlags() bool - // SrAlgorithm returns uint32, set in BgpSrteSegmentKTypeSubTlv. - SrAlgorithm() uint32 - // SetSrAlgorithm assigns uint32 provided by user to BgpSrteSegmentKTypeSubTlv - SetSrAlgorithm(value uint32) BgpSrteSegmentKTypeSubTlv - // HasSrAlgorithm checks if SrAlgorithm has been set in BgpSrteSegmentKTypeSubTlv - HasSrAlgorithm() bool - // LocalIpv6Address returns string, set in BgpSrteSegmentKTypeSubTlv. - LocalIpv6Address() string - // SetLocalIpv6Address assigns string provided by user to BgpSrteSegmentKTypeSubTlv - SetLocalIpv6Address(value string) BgpSrteSegmentKTypeSubTlv - // RemoteIpv6Address returns string, set in BgpSrteSegmentKTypeSubTlv. - RemoteIpv6Address() string - // SetRemoteIpv6Address assigns string provided by user to BgpSrteSegmentKTypeSubTlv - SetRemoteIpv6Address(value string) BgpSrteSegmentKTypeSubTlv - // Srv6Sid returns string, set in BgpSrteSegmentKTypeSubTlv. - Srv6Sid() string - // SetSrv6Sid assigns string provided by user to BgpSrteSegmentKTypeSubTlv - SetSrv6Sid(value string) BgpSrteSegmentKTypeSubTlv - // HasSrv6Sid checks if Srv6Sid has been set in BgpSrteSegmentKTypeSubTlv - HasSrv6Sid() bool - // Srv6SidEndpointBehavior returns BgpSrteSRv6SIDEndpointBehaviorAndStructure, set in BgpSrteSegmentKTypeSubTlv. - // BgpSrteSRv6SIDEndpointBehaviorAndStructure is configuration for SRv6 Endpoint Behavior and SID Structure. Its optional. Summation of lengths for Locator Block, Locator Node, Function, and Argument MUST be less than or equal to 128. - Srv6SidEndpointBehavior() BgpSrteSRv6SIDEndpointBehaviorAndStructure - // SetSrv6SidEndpointBehavior assigns BgpSrteSRv6SIDEndpointBehaviorAndStructure provided by user to BgpSrteSegmentKTypeSubTlv. - // BgpSrteSRv6SIDEndpointBehaviorAndStructure is configuration for SRv6 Endpoint Behavior and SID Structure. Its optional. Summation of lengths for Locator Block, Locator Node, Function, and Argument MUST be less than or equal to 128. - SetSrv6SidEndpointBehavior(value BgpSrteSRv6SIDEndpointBehaviorAndStructure) BgpSrteSegmentKTypeSubTlv - // HasSrv6SidEndpointBehavior checks if Srv6SidEndpointBehavior has been set in BgpSrteSegmentKTypeSubTlv - HasSrv6SidEndpointBehavior() bool - setNil() -} - -// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 -// Flags returns a string -func (obj *bgpSrteSegmentKTypeSubTlv) Flags() string { - - return *obj.obj.Flags - -} - -// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 -// Flags returns a string -func (obj *bgpSrteSegmentKTypeSubTlv) HasFlags() bool { - return obj.obj.Flags != nil -} - -// One octet bitmap for flags including V-Flag, A-Flag, S-Flag, B-Flag etc. as defined in https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13#section-2.4.4.2.12 -// SetFlags sets the string value in the BgpSrteSegmentKTypeSubTlv object -func (obj *bgpSrteSegmentKTypeSubTlv) SetFlags(value string) BgpSrteSegmentKTypeSubTlv { - - obj.obj.Flags = &value - return obj + // Start returns uint32, set in PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter. + Start() uint32 + // SetStart assigns uint32 provided by user to PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter + SetStart(value uint32) PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter + // HasStart checks if Start has been set in PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter + HasStart() bool + // Step returns uint32, set in PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter. + Step() uint32 + // SetStep assigns uint32 provided by user to PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter + SetStep(value uint32) PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter + // HasStep checks if Step has been set in PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter + HasStep() bool + // Count returns uint32, set in PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter. + Count() uint32 + // SetCount assigns uint32 provided by user to PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter + SetCount(value uint32) PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter + // HasCount checks if Count has been set in PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter + HasCount() bool } -// SR Algorithm identifier when A-Flag in on. -// SrAlgorithm returns a uint32 -func (obj *bgpSrteSegmentKTypeSubTlv) SrAlgorithm() uint32 { +// description is TBD +// Start returns a uint32 +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) Start() uint32 { - return *obj.obj.SrAlgorithm + return *obj.obj.Start } -// SR Algorithm identifier when A-Flag in on. -// SrAlgorithm returns a uint32 -func (obj *bgpSrteSegmentKTypeSubTlv) HasSrAlgorithm() bool { - return obj.obj.SrAlgorithm != nil +// description is TBD +// Start returns a uint32 +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) HasStart() bool { + return obj.obj.Start != nil } -// SR Algorithm identifier when A-Flag in on. -// SetSrAlgorithm sets the uint32 value in the BgpSrteSegmentKTypeSubTlv object -func (obj *bgpSrteSegmentKTypeSubTlv) SetSrAlgorithm(value uint32) BgpSrteSegmentKTypeSubTlv { +// description is TBD +// SetStart sets the uint32 value in the PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter object +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) SetStart(value uint32) PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter { - obj.obj.SrAlgorithm = &value + obj.obj.Start = &value return obj } -// IPv6 address representing a node. -// LocalIpv6Address returns a string -func (obj *bgpSrteSegmentKTypeSubTlv) LocalIpv6Address() string { - - return *obj.obj.LocalIpv6Address - -} +// description is TBD +// Step returns a uint32 +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) Step() uint32 { -// IPv6 address representing a node. -// SetLocalIpv6Address sets the string value in the BgpSrteSegmentKTypeSubTlv object -func (obj *bgpSrteSegmentKTypeSubTlv) SetLocalIpv6Address(value string) BgpSrteSegmentKTypeSubTlv { + return *obj.obj.Step - obj.obj.LocalIpv6Address = &value - return obj } -// IPv6 address representing a node. -// RemoteIpv6Address returns a string -func (obj *bgpSrteSegmentKTypeSubTlv) RemoteIpv6Address() string { - - return *obj.obj.RemoteIpv6Address - +// description is TBD +// Step returns a uint32 +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) HasStep() bool { + return obj.obj.Step != nil } -// IPv6 address representing a node. -// SetRemoteIpv6Address sets the string value in the BgpSrteSegmentKTypeSubTlv object -func (obj *bgpSrteSegmentKTypeSubTlv) SetRemoteIpv6Address(value string) BgpSrteSegmentKTypeSubTlv { +// description is TBD +// SetStep sets the uint32 value in the PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter object +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) SetStep(value uint32) PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter { - obj.obj.RemoteIpv6Address = &value + obj.obj.Step = &value return obj } -// Optional SRv6 SID. -// Srv6Sid returns a string -func (obj *bgpSrteSegmentKTypeSubTlv) Srv6Sid() string { - - return *obj.obj.Srv6Sid - -} - -// Optional SRv6 SID. -// Srv6Sid returns a string -func (obj *bgpSrteSegmentKTypeSubTlv) HasSrv6Sid() bool { - return obj.obj.Srv6Sid != nil -} - -// Optional SRv6 SID. -// SetSrv6Sid sets the string value in the BgpSrteSegmentKTypeSubTlv object -func (obj *bgpSrteSegmentKTypeSubTlv) SetSrv6Sid(value string) BgpSrteSegmentKTypeSubTlv { +// description is TBD +// Count returns a uint32 +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) Count() uint32 { - obj.obj.Srv6Sid = &value - return obj -} + return *obj.obj.Count -// Optional SRv6 Endpoint Behavior and SID Structure. -// Srv6SidEndpointBehavior returns a BgpSrteSRv6SIDEndpointBehaviorAndStructure -func (obj *bgpSrteSegmentKTypeSubTlv) Srv6SidEndpointBehavior() BgpSrteSRv6SIDEndpointBehaviorAndStructure { - if obj.obj.Srv6SidEndpointBehavior == nil { - obj.obj.Srv6SidEndpointBehavior = NewBgpSrteSRv6SIDEndpointBehaviorAndStructure().msg() - } - if obj.srv6SidEndpointBehaviorHolder == nil { - obj.srv6SidEndpointBehaviorHolder = &bgpSrteSRv6SIDEndpointBehaviorAndStructure{obj: obj.obj.Srv6SidEndpointBehavior} - } - return obj.srv6SidEndpointBehaviorHolder } -// Optional SRv6 Endpoint Behavior and SID Structure. -// Srv6SidEndpointBehavior returns a BgpSrteSRv6SIDEndpointBehaviorAndStructure -func (obj *bgpSrteSegmentKTypeSubTlv) HasSrv6SidEndpointBehavior() bool { - return obj.obj.Srv6SidEndpointBehavior != nil +// description is TBD +// Count returns a uint32 +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) HasCount() bool { + return obj.obj.Count != nil } -// Optional SRv6 Endpoint Behavior and SID Structure. -// SetSrv6SidEndpointBehavior sets the BgpSrteSRv6SIDEndpointBehaviorAndStructure value in the BgpSrteSegmentKTypeSubTlv object -func (obj *bgpSrteSegmentKTypeSubTlv) SetSrv6SidEndpointBehavior(value BgpSrteSRv6SIDEndpointBehaviorAndStructure) BgpSrteSegmentKTypeSubTlv { - - obj.srv6SidEndpointBehaviorHolder = nil - obj.obj.Srv6SidEndpointBehavior = value.msg() +// description is TBD +// SetCount sets the uint32 value in the PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter object +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) SetCount(value uint32) PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter { + obj.obj.Count = &value return obj } -func (obj *bgpSrteSegmentKTypeSubTlv) validateObj(vObj *validation, set_default bool) { +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() } - if obj.obj.Flags != nil { - - err := obj.validateHex(obj.Flags()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentKTypeSubTlv.Flags")) - } - - } - - // LocalIpv6Address is required - if obj.obj.LocalIpv6Address == nil { - vObj.validationErrors = append(vObj.validationErrors, "LocalIpv6Address is required field on interface BgpSrteSegmentKTypeSubTlv") - } - if obj.obj.LocalIpv6Address != nil { - - err := obj.validateIpv6(obj.LocalIpv6Address()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentKTypeSubTlv.LocalIpv6Address")) - } - - } - - // RemoteIpv6Address is required - if obj.obj.RemoteIpv6Address == nil { - vObj.validationErrors = append(vObj.validationErrors, "RemoteIpv6Address is required field on interface BgpSrteSegmentKTypeSubTlv") - } - if obj.obj.RemoteIpv6Address != nil { - - err := obj.validateIpv6(obj.RemoteIpv6Address()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentKTypeSubTlv.RemoteIpv6Address")) - } - - } - - if obj.obj.Srv6Sid != nil { - - err := obj.validateIpv6(obj.Srv6Sid()) - if err != nil { - vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on BgpSrteSegmentKTypeSubTlv.Srv6Sid")) - } +} +func (obj *patternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) setDefault() { + if obj.obj.Start == nil { + obj.SetStart(0) } - - if obj.obj.Srv6SidEndpointBehavior != nil { - - obj.Srv6SidEndpointBehavior().validateObj(vObj, set_default) + if obj.obj.Step == nil { + obj.SetStep(1) } - -} - -func (obj *bgpSrteSegmentKTypeSubTlv) setDefault() { - if obj.obj.SrAlgorithm == nil { - obj.SetSrAlgorithm(0) + if obj.obj.Count == nil { + obj.SetCount(1) } } diff --git a/gosnappi/otg/otg.pb.go b/gosnappi/otg/otg.pb.go index 22a46e71..7c7ab0c8 100644 --- a/gosnappi/otg/otg.pb.go +++ b/gosnappi/otg/otg.pb.go @@ -1,4 +1,4 @@ -// Open Traffic Generator API 0.13.5 +// Open Traffic Generator API 0.13.6 // Open Traffic Generator API defines a model-driven, vendor-neutral and standard // interface for emulating layer 2-7 network devices and generating test traffic. // @@ -3620,6 +3620,7 @@ const ( FlowHeader_Choice_ppp FlowHeader_Choice_Enum = 17 FlowHeader_Choice_igmpv1 FlowHeader_Choice_Enum = 18 FlowHeader_Choice_mpls FlowHeader_Choice_Enum = 19 + FlowHeader_Choice_snmpv2c FlowHeader_Choice_Enum = 20 ) // Enum value maps for FlowHeader_Choice_Enum. @@ -3645,6 +3646,7 @@ var ( 17: "ppp", 18: "igmpv1", 19: "mpls", + 20: "snmpv2c", } FlowHeader_Choice_Enum_value = map[string]int32{ "unspecified": 0, @@ -3667,6 +3669,7 @@ var ( "ppp": 17, "igmpv1": 18, "mpls": 19, + "snmpv2c": 20, } ) @@ -3939,6 +3942,246 @@ func (FlowIcmpv6_Choice_Enum) EnumDescriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{188, 0, 0} } +type FlowSnmpv2CData_Choice_Enum int32 + +const ( + FlowSnmpv2CData_Choice_unspecified FlowSnmpv2CData_Choice_Enum = 0 + FlowSnmpv2CData_Choice_get_request FlowSnmpv2CData_Choice_Enum = 1 + FlowSnmpv2CData_Choice_get_next_request FlowSnmpv2CData_Choice_Enum = 2 + FlowSnmpv2CData_Choice_response FlowSnmpv2CData_Choice_Enum = 3 + FlowSnmpv2CData_Choice_set_request FlowSnmpv2CData_Choice_Enum = 4 + FlowSnmpv2CData_Choice_get_bulk_request FlowSnmpv2CData_Choice_Enum = 5 + FlowSnmpv2CData_Choice_inform_request FlowSnmpv2CData_Choice_Enum = 6 + FlowSnmpv2CData_Choice_snmpv2_trap FlowSnmpv2CData_Choice_Enum = 7 + FlowSnmpv2CData_Choice_report FlowSnmpv2CData_Choice_Enum = 8 +) + +// Enum value maps for FlowSnmpv2CData_Choice_Enum. +var ( + FlowSnmpv2CData_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 1: "get_request", + 2: "get_next_request", + 3: "response", + 4: "set_request", + 5: "get_bulk_request", + 6: "inform_request", + 7: "snmpv2_trap", + 8: "report", + } + FlowSnmpv2CData_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "get_request": 1, + "get_next_request": 2, + "response": 3, + "set_request": 4, + "get_bulk_request": 5, + "inform_request": 6, + "snmpv2_trap": 7, + "report": 8, + } +) + +func (x FlowSnmpv2CData_Choice_Enum) Enum() *FlowSnmpv2CData_Choice_Enum { + p := new(FlowSnmpv2CData_Choice_Enum) + *p = x + return p +} + +func (x FlowSnmpv2CData_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (FlowSnmpv2CData_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[74].Descriptor() +} + +func (FlowSnmpv2CData_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[74] +} + +func (x FlowSnmpv2CData_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use FlowSnmpv2CData_Choice_Enum.Descriptor instead. +func (FlowSnmpv2CData_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{194, 0, 0} +} + +type FlowSnmpv2CPDU_ErrorStatus_Enum int32 + +const ( + FlowSnmpv2CPDU_ErrorStatus_unspecified FlowSnmpv2CPDU_ErrorStatus_Enum = 0 + FlowSnmpv2CPDU_ErrorStatus_no_error FlowSnmpv2CPDU_ErrorStatus_Enum = 1 + FlowSnmpv2CPDU_ErrorStatus_too_big FlowSnmpv2CPDU_ErrorStatus_Enum = 2 + FlowSnmpv2CPDU_ErrorStatus_no_such_name FlowSnmpv2CPDU_ErrorStatus_Enum = 3 + FlowSnmpv2CPDU_ErrorStatus_bad_value FlowSnmpv2CPDU_ErrorStatus_Enum = 4 + FlowSnmpv2CPDU_ErrorStatus_read_only FlowSnmpv2CPDU_ErrorStatus_Enum = 5 + FlowSnmpv2CPDU_ErrorStatus_gen_err FlowSnmpv2CPDU_ErrorStatus_Enum = 6 + FlowSnmpv2CPDU_ErrorStatus_no_access FlowSnmpv2CPDU_ErrorStatus_Enum = 7 + FlowSnmpv2CPDU_ErrorStatus_wrong_type FlowSnmpv2CPDU_ErrorStatus_Enum = 8 + FlowSnmpv2CPDU_ErrorStatus_wrong_length FlowSnmpv2CPDU_ErrorStatus_Enum = 9 + FlowSnmpv2CPDU_ErrorStatus_wrong_encoding FlowSnmpv2CPDU_ErrorStatus_Enum = 10 + FlowSnmpv2CPDU_ErrorStatus_wrong_value FlowSnmpv2CPDU_ErrorStatus_Enum = 11 + FlowSnmpv2CPDU_ErrorStatus_no_creation FlowSnmpv2CPDU_ErrorStatus_Enum = 12 + FlowSnmpv2CPDU_ErrorStatus_inconsistent_value FlowSnmpv2CPDU_ErrorStatus_Enum = 13 + FlowSnmpv2CPDU_ErrorStatus_resource_unavailable FlowSnmpv2CPDU_ErrorStatus_Enum = 14 + FlowSnmpv2CPDU_ErrorStatus_commit_failed FlowSnmpv2CPDU_ErrorStatus_Enum = 15 + FlowSnmpv2CPDU_ErrorStatus_undo_failed FlowSnmpv2CPDU_ErrorStatus_Enum = 16 + FlowSnmpv2CPDU_ErrorStatus_authorization_error FlowSnmpv2CPDU_ErrorStatus_Enum = 17 + FlowSnmpv2CPDU_ErrorStatus_not_writable FlowSnmpv2CPDU_ErrorStatus_Enum = 18 + FlowSnmpv2CPDU_ErrorStatus_inconsistent_name FlowSnmpv2CPDU_ErrorStatus_Enum = 19 +) + +// Enum value maps for FlowSnmpv2CPDU_ErrorStatus_Enum. +var ( + FlowSnmpv2CPDU_ErrorStatus_Enum_name = map[int32]string{ + 0: "unspecified", + 1: "no_error", + 2: "too_big", + 3: "no_such_name", + 4: "bad_value", + 5: "read_only", + 6: "gen_err", + 7: "no_access", + 8: "wrong_type", + 9: "wrong_length", + 10: "wrong_encoding", + 11: "wrong_value", + 12: "no_creation", + 13: "inconsistent_value", + 14: "resource_unavailable", + 15: "commit_failed", + 16: "undo_failed", + 17: "authorization_error", + 18: "not_writable", + 19: "inconsistent_name", + } + FlowSnmpv2CPDU_ErrorStatus_Enum_value = map[string]int32{ + "unspecified": 0, + "no_error": 1, + "too_big": 2, + "no_such_name": 3, + "bad_value": 4, + "read_only": 5, + "gen_err": 6, + "no_access": 7, + "wrong_type": 8, + "wrong_length": 9, + "wrong_encoding": 10, + "wrong_value": 11, + "no_creation": 12, + "inconsistent_value": 13, + "resource_unavailable": 14, + "commit_failed": 15, + "undo_failed": 16, + "authorization_error": 17, + "not_writable": 18, + "inconsistent_name": 19, + } +) + +func (x FlowSnmpv2CPDU_ErrorStatus_Enum) Enum() *FlowSnmpv2CPDU_ErrorStatus_Enum { + p := new(FlowSnmpv2CPDU_ErrorStatus_Enum) + *p = x + return p +} + +func (x FlowSnmpv2CPDU_ErrorStatus_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (FlowSnmpv2CPDU_ErrorStatus_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[75].Descriptor() +} + +func (FlowSnmpv2CPDU_ErrorStatus_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[75] +} + +func (x FlowSnmpv2CPDU_ErrorStatus_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use FlowSnmpv2CPDU_ErrorStatus_Enum.Descriptor instead. +func (FlowSnmpv2CPDU_ErrorStatus_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{195, 0, 0} +} + +type FlowSnmpv2CVariableBindingValue_Choice_Enum int32 + +const ( + FlowSnmpv2CVariableBindingValue_Choice_unspecified FlowSnmpv2CVariableBindingValue_Choice_Enum = 0 + FlowSnmpv2CVariableBindingValue_Choice_no_value FlowSnmpv2CVariableBindingValue_Choice_Enum = 1 + FlowSnmpv2CVariableBindingValue_Choice_integer_value FlowSnmpv2CVariableBindingValue_Choice_Enum = 2 + FlowSnmpv2CVariableBindingValue_Choice_string_value FlowSnmpv2CVariableBindingValue_Choice_Enum = 3 + FlowSnmpv2CVariableBindingValue_Choice_object_identifier_value FlowSnmpv2CVariableBindingValue_Choice_Enum = 4 + FlowSnmpv2CVariableBindingValue_Choice_ip_address_value FlowSnmpv2CVariableBindingValue_Choice_Enum = 5 + FlowSnmpv2CVariableBindingValue_Choice_counter_value FlowSnmpv2CVariableBindingValue_Choice_Enum = 6 + FlowSnmpv2CVariableBindingValue_Choice_timeticks_value FlowSnmpv2CVariableBindingValue_Choice_Enum = 7 + FlowSnmpv2CVariableBindingValue_Choice_arbitrary_value FlowSnmpv2CVariableBindingValue_Choice_Enum = 8 + FlowSnmpv2CVariableBindingValue_Choice_big_counter_value FlowSnmpv2CVariableBindingValue_Choice_Enum = 9 + FlowSnmpv2CVariableBindingValue_Choice_unsigned_integer_value FlowSnmpv2CVariableBindingValue_Choice_Enum = 10 +) + +// Enum value maps for FlowSnmpv2CVariableBindingValue_Choice_Enum. +var ( + FlowSnmpv2CVariableBindingValue_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 1: "no_value", + 2: "integer_value", + 3: "string_value", + 4: "object_identifier_value", + 5: "ip_address_value", + 6: "counter_value", + 7: "timeticks_value", + 8: "arbitrary_value", + 9: "big_counter_value", + 10: "unsigned_integer_value", + } + FlowSnmpv2CVariableBindingValue_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "no_value": 1, + "integer_value": 2, + "string_value": 3, + "object_identifier_value": 4, + "ip_address_value": 5, + "counter_value": 6, + "timeticks_value": 7, + "arbitrary_value": 8, + "big_counter_value": 9, + "unsigned_integer_value": 10, + } +) + +func (x FlowSnmpv2CVariableBindingValue_Choice_Enum) Enum() *FlowSnmpv2CVariableBindingValue_Choice_Enum { + p := new(FlowSnmpv2CVariableBindingValue_Choice_Enum) + *p = x + return p +} + +func (x FlowSnmpv2CVariableBindingValue_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (FlowSnmpv2CVariableBindingValue_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[76].Descriptor() +} + +func (FlowSnmpv2CVariableBindingValue_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[76] +} + +func (x FlowSnmpv2CVariableBindingValue_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use FlowSnmpv2CVariableBindingValue_Choice_Enum.Descriptor instead. +func (FlowSnmpv2CVariableBindingValue_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{198, 0, 0} +} + type FlowSize_Choice_Enum int32 const ( @@ -3978,11 +4221,11 @@ func (x FlowSize_Choice_Enum) String() string { } func (FlowSize_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[74].Descriptor() + return file_otg_proto_enumTypes[77].Descriptor() } func (FlowSize_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[74] + return &file_otg_proto_enumTypes[77] } func (x FlowSize_Choice_Enum) Number() protoreflect.EnumNumber { @@ -3991,7 +4234,7 @@ func (x FlowSize_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowSize_Choice_Enum.Descriptor instead. func (FlowSize_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{193, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{199, 0, 0} } type FlowSizeWeightPairs_Choice_Enum int32 @@ -4027,11 +4270,11 @@ func (x FlowSizeWeightPairs_Choice_Enum) String() string { } func (FlowSizeWeightPairs_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[75].Descriptor() + return file_otg_proto_enumTypes[78].Descriptor() } func (FlowSizeWeightPairs_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[75] + return &file_otg_proto_enumTypes[78] } func (x FlowSizeWeightPairs_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4040,7 +4283,7 @@ func (x FlowSizeWeightPairs_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowSizeWeightPairs_Choice_Enum.Descriptor instead. func (FlowSizeWeightPairs_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{196, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{202, 0, 0} } type FlowSizeWeightPairs_Predefined_Enum int32 @@ -4085,11 +4328,11 @@ func (x FlowSizeWeightPairs_Predefined_Enum) String() string { } func (FlowSizeWeightPairs_Predefined_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[76].Descriptor() + return file_otg_proto_enumTypes[79].Descriptor() } func (FlowSizeWeightPairs_Predefined_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[76] + return &file_otg_proto_enumTypes[79] } func (x FlowSizeWeightPairs_Predefined_Enum) Number() protoreflect.EnumNumber { @@ -4098,7 +4341,7 @@ func (x FlowSizeWeightPairs_Predefined_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowSizeWeightPairs_Predefined_Enum.Descriptor instead. func (FlowSizeWeightPairs_Predefined_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{196, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{202, 1, 0} } type FlowRate_Choice_Enum int32 @@ -4146,11 +4389,11 @@ func (x FlowRate_Choice_Enum) String() string { } func (FlowRate_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[77].Descriptor() + return file_otg_proto_enumTypes[80].Descriptor() } func (FlowRate_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[77] + return &file_otg_proto_enumTypes[80] } func (x FlowRate_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4159,7 +4402,7 @@ func (x FlowRate_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowRate_Choice_Enum.Descriptor instead. func (FlowRate_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{198, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{204, 0, 0} } type FlowDuration_Choice_Enum int32 @@ -4201,11 +4444,11 @@ func (x FlowDuration_Choice_Enum) String() string { } func (FlowDuration_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[78].Descriptor() + return file_otg_proto_enumTypes[81].Descriptor() } func (FlowDuration_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[78] + return &file_otg_proto_enumTypes[81] } func (x FlowDuration_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4214,7 +4457,7 @@ func (x FlowDuration_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowDuration_Choice_Enum.Descriptor instead. func (FlowDuration_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{199, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{205, 0, 0} } type FlowDelay_Choice_Enum int32 @@ -4253,11 +4496,11 @@ func (x FlowDelay_Choice_Enum) String() string { } func (FlowDelay_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[79].Descriptor() + return file_otg_proto_enumTypes[82].Descriptor() } func (FlowDelay_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[79] + return &file_otg_proto_enumTypes[82] } func (x FlowDelay_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4266,7 +4509,7 @@ func (x FlowDelay_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowDelay_Choice_Enum.Descriptor instead. func (FlowDelay_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{201, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{207, 0, 0} } type FlowDurationInterBurstGap_Choice_Enum int32 @@ -4305,11 +4548,11 @@ func (x FlowDurationInterBurstGap_Choice_Enum) String() string { } func (FlowDurationInterBurstGap_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[80].Descriptor() + return file_otg_proto_enumTypes[83].Descriptor() } func (FlowDurationInterBurstGap_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[80] + return &file_otg_proto_enumTypes[83] } func (x FlowDurationInterBurstGap_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4318,7 +4561,7 @@ func (x FlowDurationInterBurstGap_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use FlowDurationInterBurstGap_Choice_Enum.Descriptor instead. func (FlowDurationInterBurstGap_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{205, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{211, 0, 0} } type FlowLatencyMetrics_Mode_Enum int32 @@ -4354,11 +4597,11 @@ func (x FlowLatencyMetrics_Mode_Enum) String() string { } func (FlowLatencyMetrics_Mode_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[81].Descriptor() + return file_otg_proto_enumTypes[84].Descriptor() } func (FlowLatencyMetrics_Mode_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[81] + return &file_otg_proto_enumTypes[84] } func (x FlowLatencyMetrics_Mode_Enum) Number() protoreflect.EnumNumber { @@ -4367,7 +4610,7 @@ func (x FlowLatencyMetrics_Mode_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowLatencyMetrics_Mode_Enum.Descriptor instead. func (FlowLatencyMetrics_Mode_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{207, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{213, 0, 0} } type FlowRxTxRatio_Choice_Enum int32 @@ -4403,11 +4646,11 @@ func (x FlowRxTxRatio_Choice_Enum) String() string { } func (FlowRxTxRatio_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[82].Descriptor() + return file_otg_proto_enumTypes[85].Descriptor() } func (FlowRxTxRatio_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[82] + return &file_otg_proto_enumTypes[85] } func (x FlowRxTxRatio_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4416,7 +4659,7 @@ func (x FlowRxTxRatio_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowRxTxRatio_Choice_Enum.Descriptor instead. func (FlowRxTxRatio_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{209, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{215, 0, 0} } type EventRequest_Type_Enum int32 @@ -4464,11 +4707,11 @@ func (x EventRequest_Type_Enum) String() string { } func (EventRequest_Type_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[83].Descriptor() + return file_otg_proto_enumTypes[86].Descriptor() } func (EventRequest_Type_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[83] + return &file_otg_proto_enumTypes[86] } func (x EventRequest_Type_Enum) Number() protoreflect.EnumNumber { @@ -4477,7 +4720,7 @@ func (x EventRequest_Type_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use EventRequest_Type_Enum.Descriptor instead. func (EventRequest_Type_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{215, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{221, 0, 0} } type LldpConnection_Choice_Enum int32 @@ -4510,11 +4753,11 @@ func (x LldpConnection_Choice_Enum) String() string { } func (LldpConnection_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[84].Descriptor() + return file_otg_proto_enumTypes[87].Descriptor() } func (LldpConnection_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[84] + return &file_otg_proto_enumTypes[87] } func (x LldpConnection_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4523,7 +4766,7 @@ func (x LldpConnection_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use LldpConnection_Choice_Enum.Descriptor instead. func (LldpConnection_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{218, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{224, 0, 0} } type LldpChassisId_Choice_Enum int32 @@ -4562,11 +4805,11 @@ func (x LldpChassisId_Choice_Enum) String() string { } func (LldpChassisId_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[85].Descriptor() + return file_otg_proto_enumTypes[88].Descriptor() } func (LldpChassisId_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[85] + return &file_otg_proto_enumTypes[88] } func (x LldpChassisId_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4575,7 +4818,7 @@ func (x LldpChassisId_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use LldpChassisId_Choice_Enum.Descriptor instead. func (LldpChassisId_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{219, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{225, 0, 0} } type LldpPortId_Choice_Enum int32 @@ -4614,11 +4857,11 @@ func (x LldpPortId_Choice_Enum) String() string { } func (LldpPortId_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[86].Descriptor() + return file_otg_proto_enumTypes[89].Descriptor() } func (LldpPortId_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[86] + return &file_otg_proto_enumTypes[89] } func (x LldpPortId_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4627,7 +4870,7 @@ func (x LldpPortId_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use LldpPortId_Choice_Enum.Descriptor instead. func (LldpPortId_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{220, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{226, 0, 0} } type LldpChassisMacSubType_Choice_Enum int32 @@ -4663,11 +4906,11 @@ func (x LldpChassisMacSubType_Choice_Enum) String() string { } func (LldpChassisMacSubType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[87].Descriptor() + return file_otg_proto_enumTypes[90].Descriptor() } func (LldpChassisMacSubType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[87] + return &file_otg_proto_enumTypes[90] } func (x LldpChassisMacSubType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4676,7 +4919,7 @@ func (x LldpChassisMacSubType_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use LldpChassisMacSubType_Choice_Enum.Descriptor instead. func (LldpChassisMacSubType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{221, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{227, 0, 0} } type LldpPortInterfaceNameSubType_Choice_Enum int32 @@ -4712,11 +4955,11 @@ func (x LldpPortInterfaceNameSubType_Choice_Enum) String() string { } func (LldpPortInterfaceNameSubType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[88].Descriptor() + return file_otg_proto_enumTypes[91].Descriptor() } func (LldpPortInterfaceNameSubType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[88] + return &file_otg_proto_enumTypes[91] } func (x LldpPortInterfaceNameSubType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4725,7 +4968,7 @@ func (x LldpPortInterfaceNameSubType_Choice_Enum) Number() protoreflect.EnumNumb // Deprecated: Use LldpPortInterfaceNameSubType_Choice_Enum.Descriptor instead. func (LldpPortInterfaceNameSubType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{222, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{228, 0, 0} } type LldpSystemName_Choice_Enum int32 @@ -4761,11 +5004,11 @@ func (x LldpSystemName_Choice_Enum) String() string { } func (LldpSystemName_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[89].Descriptor() + return file_otg_proto_enumTypes[92].Descriptor() } func (LldpSystemName_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[89] + return &file_otg_proto_enumTypes[92] } func (x LldpSystemName_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4774,7 +5017,7 @@ func (x LldpSystemName_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use LldpSystemName_Choice_Enum.Descriptor instead. func (LldpSystemName_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{223, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{229, 0, 0} } type Error_Kind_Enum int32 @@ -4810,11 +5053,11 @@ func (x Error_Kind_Enum) String() string { } func (Error_Kind_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[90].Descriptor() + return file_otg_proto_enumTypes[93].Descriptor() } func (Error_Kind_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[90] + return &file_otg_proto_enumTypes[93] } func (x Error_Kind_Enum) Number() protoreflect.EnumNumber { @@ -4823,7 +5066,7 @@ func (x Error_Kind_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use Error_Kind_Enum.Descriptor instead. func (Error_Kind_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{224, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{230, 0, 0} } type ConfigUpdate_Choice_Enum int32 @@ -4856,11 +5099,11 @@ func (x ConfigUpdate_Choice_Enum) String() string { } func (ConfigUpdate_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[91].Descriptor() + return file_otg_proto_enumTypes[94].Descriptor() } func (ConfigUpdate_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[91] + return &file_otg_proto_enumTypes[94] } func (x ConfigUpdate_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4869,7 +5112,7 @@ func (x ConfigUpdate_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use ConfigUpdate_Choice_Enum.Descriptor instead. func (ConfigUpdate_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{226, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{232, 0, 0} } type FlowsUpdate_PropertyNames_Enum int32 @@ -4905,11 +5148,11 @@ func (x FlowsUpdate_PropertyNames_Enum) String() string { } func (FlowsUpdate_PropertyNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[92].Descriptor() + return file_otg_proto_enumTypes[95].Descriptor() } func (FlowsUpdate_PropertyNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[92] + return &file_otg_proto_enumTypes[95] } func (x FlowsUpdate_PropertyNames_Enum) Number() protoreflect.EnumNumber { @@ -4918,7 +5161,7 @@ func (x FlowsUpdate_PropertyNames_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowsUpdate_PropertyNames_Enum.Descriptor instead. func (FlowsUpdate_PropertyNames_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{227, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{233, 0, 0} } type ControlState_Choice_Enum int32 @@ -4957,11 +5200,11 @@ func (x ControlState_Choice_Enum) String() string { } func (ControlState_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[93].Descriptor() + return file_otg_proto_enumTypes[96].Descriptor() } func (ControlState_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[93] + return &file_otg_proto_enumTypes[96] } func (x ControlState_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4970,7 +5213,7 @@ func (x ControlState_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use ControlState_Choice_Enum.Descriptor instead. func (ControlState_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{228, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{234, 0, 0} } type StatePort_Choice_Enum int32 @@ -5006,11 +5249,11 @@ func (x StatePort_Choice_Enum) String() string { } func (StatePort_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[94].Descriptor() + return file_otg_proto_enumTypes[97].Descriptor() } func (StatePort_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[94] + return &file_otg_proto_enumTypes[97] } func (x StatePort_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5019,7 +5262,7 @@ func (x StatePort_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StatePort_Choice_Enum.Descriptor instead. func (StatePort_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{229, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{235, 0, 0} } type StateTraffic_Choice_Enum int32 @@ -5052,11 +5295,11 @@ func (x StateTraffic_Choice_Enum) String() string { } func (StateTraffic_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[95].Descriptor() + return file_otg_proto_enumTypes[98].Descriptor() } func (StateTraffic_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[95] + return &file_otg_proto_enumTypes[98] } func (x StateTraffic_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5065,7 +5308,7 @@ func (x StateTraffic_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StateTraffic_Choice_Enum.Descriptor instead. func (StateTraffic_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{230, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{236, 0, 0} } type StateProtocol_Choice_Enum int32 @@ -5110,11 +5353,11 @@ func (x StateProtocol_Choice_Enum) String() string { } func (StateProtocol_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[96].Descriptor() + return file_otg_proto_enumTypes[99].Descriptor() } func (StateProtocol_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[96] + return &file_otg_proto_enumTypes[99] } func (x StateProtocol_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5123,7 +5366,7 @@ func (x StateProtocol_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StateProtocol_Choice_Enum.Descriptor instead. func (StateProtocol_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{231, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{237, 0, 0} } type StatePortLink_State_Enum int32 @@ -5159,11 +5402,11 @@ func (x StatePortLink_State_Enum) String() string { } func (StatePortLink_State_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[97].Descriptor() + return file_otg_proto_enumTypes[100].Descriptor() } func (StatePortLink_State_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[97] + return &file_otg_proto_enumTypes[100] } func (x StatePortLink_State_Enum) Number() protoreflect.EnumNumber { @@ -5172,7 +5415,7 @@ func (x StatePortLink_State_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StatePortLink_State_Enum.Descriptor instead. func (StatePortLink_State_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{232, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{238, 0, 0} } type StatePortCapture_State_Enum int32 @@ -5208,11 +5451,11 @@ func (x StatePortCapture_State_Enum) String() string { } func (StatePortCapture_State_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[98].Descriptor() + return file_otg_proto_enumTypes[101].Descriptor() } func (StatePortCapture_State_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[98] + return &file_otg_proto_enumTypes[101] } func (x StatePortCapture_State_Enum) Number() protoreflect.EnumNumber { @@ -5221,7 +5464,7 @@ func (x StatePortCapture_State_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StatePortCapture_State_Enum.Descriptor instead. func (StatePortCapture_State_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{233, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{239, 0, 0} } type StateTrafficFlowTransmit_State_Enum int32 @@ -5263,11 +5506,11 @@ func (x StateTrafficFlowTransmit_State_Enum) String() string { } func (StateTrafficFlowTransmit_State_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[99].Descriptor() + return file_otg_proto_enumTypes[102].Descriptor() } func (StateTrafficFlowTransmit_State_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[99] + return &file_otg_proto_enumTypes[102] } func (x StateTrafficFlowTransmit_State_Enum) Number() protoreflect.EnumNumber { @@ -5276,7 +5519,7 @@ func (x StateTrafficFlowTransmit_State_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StateTrafficFlowTransmit_State_Enum.Descriptor instead. func (StateTrafficFlowTransmit_State_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{234, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{240, 0, 0} } type StateProtocolAll_State_Enum int32 @@ -5312,11 +5555,11 @@ func (x StateProtocolAll_State_Enum) String() string { } func (StateProtocolAll_State_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[100].Descriptor() + return file_otg_proto_enumTypes[103].Descriptor() } func (StateProtocolAll_State_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[100] + return &file_otg_proto_enumTypes[103] } func (x StateProtocolAll_State_Enum) Number() protoreflect.EnumNumber { @@ -5325,7 +5568,7 @@ func (x StateProtocolAll_State_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StateProtocolAll_State_Enum.Descriptor instead. func (StateProtocolAll_State_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{235, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{241, 0, 0} } type StateProtocolRoute_State_Enum int32 @@ -5361,11 +5604,11 @@ func (x StateProtocolRoute_State_Enum) String() string { } func (StateProtocolRoute_State_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[101].Descriptor() + return file_otg_proto_enumTypes[104].Descriptor() } func (StateProtocolRoute_State_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[101] + return &file_otg_proto_enumTypes[104] } func (x StateProtocolRoute_State_Enum) Number() protoreflect.EnumNumber { @@ -5374,7 +5617,7 @@ func (x StateProtocolRoute_State_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StateProtocolRoute_State_Enum.Descriptor instead. func (StateProtocolRoute_State_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{236, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{242, 0, 0} } type StateProtocolLacp_Choice_Enum int32 @@ -5410,11 +5653,11 @@ func (x StateProtocolLacp_Choice_Enum) String() string { } func (StateProtocolLacp_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[102].Descriptor() + return file_otg_proto_enumTypes[105].Descriptor() } func (StateProtocolLacp_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[102] + return &file_otg_proto_enumTypes[105] } func (x StateProtocolLacp_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5423,7 +5666,7 @@ func (x StateProtocolLacp_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StateProtocolLacp_Choice_Enum.Descriptor instead. func (StateProtocolLacp_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{237, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{243, 0, 0} } type StateProtocolLacpAdmin_State_Enum int32 @@ -5459,11 +5702,11 @@ func (x StateProtocolLacpAdmin_State_Enum) String() string { } func (StateProtocolLacpAdmin_State_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[103].Descriptor() + return file_otg_proto_enumTypes[106].Descriptor() } func (StateProtocolLacpAdmin_State_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[103] + return &file_otg_proto_enumTypes[106] } func (x StateProtocolLacpAdmin_State_Enum) Number() protoreflect.EnumNumber { @@ -5472,7 +5715,7 @@ func (x StateProtocolLacpAdmin_State_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StateProtocolLacpAdmin_State_Enum.Descriptor instead. func (StateProtocolLacpAdmin_State_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{238, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{244, 0, 0} } type StateProtocolLacpMemberPorts_State_Enum int32 @@ -5508,11 +5751,11 @@ func (x StateProtocolLacpMemberPorts_State_Enum) String() string { } func (StateProtocolLacpMemberPorts_State_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[104].Descriptor() + return file_otg_proto_enumTypes[107].Descriptor() } func (StateProtocolLacpMemberPorts_State_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[104] + return &file_otg_proto_enumTypes[107] } func (x StateProtocolLacpMemberPorts_State_Enum) Number() protoreflect.EnumNumber { @@ -5521,7 +5764,7 @@ func (x StateProtocolLacpMemberPorts_State_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use StateProtocolLacpMemberPorts_State_Enum.Descriptor instead. func (StateProtocolLacpMemberPorts_State_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{239, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{245, 0, 0} } type StateProtocolBgp_Choice_Enum int32 @@ -5554,11 +5797,11 @@ func (x StateProtocolBgp_Choice_Enum) String() string { } func (StateProtocolBgp_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[105].Descriptor() + return file_otg_proto_enumTypes[108].Descriptor() } func (StateProtocolBgp_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[105] + return &file_otg_proto_enumTypes[108] } func (x StateProtocolBgp_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5567,7 +5810,7 @@ func (x StateProtocolBgp_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StateProtocolBgp_Choice_Enum.Descriptor instead. func (StateProtocolBgp_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{240, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{246, 0, 0} } type StateProtocolBgpPeers_State_Enum int32 @@ -5603,11 +5846,11 @@ func (x StateProtocolBgpPeers_State_Enum) String() string { } func (StateProtocolBgpPeers_State_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[106].Descriptor() + return file_otg_proto_enumTypes[109].Descriptor() } func (StateProtocolBgpPeers_State_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[106] + return &file_otg_proto_enumTypes[109] } func (x StateProtocolBgpPeers_State_Enum) Number() protoreflect.EnumNumber { @@ -5616,7 +5859,7 @@ func (x StateProtocolBgpPeers_State_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StateProtocolBgpPeers_State_Enum.Descriptor instead. func (StateProtocolBgpPeers_State_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{241, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{247, 0, 0} } type StateProtocolIsis_Choice_Enum int32 @@ -5649,11 +5892,11 @@ func (x StateProtocolIsis_Choice_Enum) String() string { } func (StateProtocolIsis_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[107].Descriptor() + return file_otg_proto_enumTypes[110].Descriptor() } func (StateProtocolIsis_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[107] + return &file_otg_proto_enumTypes[110] } func (x StateProtocolIsis_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5662,7 +5905,7 @@ func (x StateProtocolIsis_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StateProtocolIsis_Choice_Enum.Descriptor instead. func (StateProtocolIsis_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{242, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{248, 0, 0} } type StateProtocolIsisRouters_State_Enum int32 @@ -5698,11 +5941,11 @@ func (x StateProtocolIsisRouters_State_Enum) String() string { } func (StateProtocolIsisRouters_State_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[108].Descriptor() + return file_otg_proto_enumTypes[111].Descriptor() } func (StateProtocolIsisRouters_State_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[108] + return &file_otg_proto_enumTypes[111] } func (x StateProtocolIsisRouters_State_Enum) Number() protoreflect.EnumNumber { @@ -5711,7 +5954,7 @@ func (x StateProtocolIsisRouters_State_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StateProtocolIsisRouters_State_Enum.Descriptor instead. func (StateProtocolIsisRouters_State_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{243, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{249, 0, 0} } type ControlAction_Choice_Enum int32 @@ -5744,11 +5987,11 @@ func (x ControlAction_Choice_Enum) String() string { } func (ControlAction_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[109].Descriptor() + return file_otg_proto_enumTypes[112].Descriptor() } func (ControlAction_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[109] + return &file_otg_proto_enumTypes[112] } func (x ControlAction_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5757,7 +6000,7 @@ func (x ControlAction_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use ControlAction_Choice_Enum.Descriptor instead. func (ControlAction_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{244, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{250, 0, 0} } type ActionResponse_Choice_Enum int32 @@ -5790,11 +6033,11 @@ func (x ActionResponse_Choice_Enum) String() string { } func (ActionResponse_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[110].Descriptor() + return file_otg_proto_enumTypes[113].Descriptor() } func (ActionResponse_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[110] + return &file_otg_proto_enumTypes[113] } func (x ActionResponse_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5803,7 +6046,7 @@ func (x ActionResponse_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use ActionResponse_Choice_Enum.Descriptor instead. func (ActionResponse_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{246, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{252, 0, 0} } type ActionProtocol_Choice_Enum int32 @@ -5842,11 +6085,11 @@ func (x ActionProtocol_Choice_Enum) String() string { } func (ActionProtocol_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[111].Descriptor() + return file_otg_proto_enumTypes[114].Descriptor() } func (ActionProtocol_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[111] + return &file_otg_proto_enumTypes[114] } func (x ActionProtocol_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5855,7 +6098,7 @@ func (x ActionProtocol_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use ActionProtocol_Choice_Enum.Descriptor instead. func (ActionProtocol_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{247, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{253, 0, 0} } type ActionResponseProtocol_Choice_Enum int32 @@ -5891,11 +6134,11 @@ func (x ActionResponseProtocol_Choice_Enum) String() string { } func (ActionResponseProtocol_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[112].Descriptor() + return file_otg_proto_enumTypes[115].Descriptor() } func (ActionResponseProtocol_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[112] + return &file_otg_proto_enumTypes[115] } func (x ActionResponseProtocol_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5904,7 +6147,7 @@ func (x ActionResponseProtocol_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use ActionResponseProtocol_Choice_Enum.Descriptor instead. func (ActionResponseProtocol_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{248, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{254, 0, 0} } type ActionProtocolIpv4_Choice_Enum int32 @@ -5937,11 +6180,11 @@ func (x ActionProtocolIpv4_Choice_Enum) String() string { } func (ActionProtocolIpv4_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[113].Descriptor() + return file_otg_proto_enumTypes[116].Descriptor() } func (ActionProtocolIpv4_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[113] + return &file_otg_proto_enumTypes[116] } func (x ActionProtocolIpv4_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5950,7 +6193,7 @@ func (x ActionProtocolIpv4_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use ActionProtocolIpv4_Choice_Enum.Descriptor instead. func (ActionProtocolIpv4_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{249, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{255, 0, 0} } type ActionResponseProtocolIpv4_Choice_Enum int32 @@ -5983,11 +6226,11 @@ func (x ActionResponseProtocolIpv4_Choice_Enum) String() string { } func (ActionResponseProtocolIpv4_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[114].Descriptor() + return file_otg_proto_enumTypes[117].Descriptor() } func (ActionResponseProtocolIpv4_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[114] + return &file_otg_proto_enumTypes[117] } func (x ActionResponseProtocolIpv4_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5996,7 +6239,7 @@ func (x ActionResponseProtocolIpv4_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use ActionResponseProtocolIpv4_Choice_Enum.Descriptor instead. func (ActionResponseProtocolIpv4_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{250, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{256, 0, 0} } type ActionResponseProtocolIpv4PingResponse_Result_Enum int32 @@ -6032,11 +6275,11 @@ func (x ActionResponseProtocolIpv4PingResponse_Result_Enum) String() string { } func (ActionResponseProtocolIpv4PingResponse_Result_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[115].Descriptor() + return file_otg_proto_enumTypes[118].Descriptor() } func (ActionResponseProtocolIpv4PingResponse_Result_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[115] + return &file_otg_proto_enumTypes[118] } func (x ActionResponseProtocolIpv4PingResponse_Result_Enum) Number() protoreflect.EnumNumber { @@ -6045,7 +6288,7 @@ func (x ActionResponseProtocolIpv4PingResponse_Result_Enum) Number() protoreflec // Deprecated: Use ActionResponseProtocolIpv4PingResponse_Result_Enum.Descriptor instead. func (ActionResponseProtocolIpv4PingResponse_Result_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{254, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{260, 0, 0} } type ActionProtocolIpv6_Choice_Enum int32 @@ -6078,11 +6321,11 @@ func (x ActionProtocolIpv6_Choice_Enum) String() string { } func (ActionProtocolIpv6_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[116].Descriptor() + return file_otg_proto_enumTypes[119].Descriptor() } func (ActionProtocolIpv6_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[116] + return &file_otg_proto_enumTypes[119] } func (x ActionProtocolIpv6_Choice_Enum) Number() protoreflect.EnumNumber { @@ -6091,7 +6334,7 @@ func (x ActionProtocolIpv6_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use ActionProtocolIpv6_Choice_Enum.Descriptor instead. func (ActionProtocolIpv6_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{255, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{261, 0, 0} } type ActionResponseProtocolIpv6_Choice_Enum int32 @@ -6124,11 +6367,11 @@ func (x ActionResponseProtocolIpv6_Choice_Enum) String() string { } func (ActionResponseProtocolIpv6_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[117].Descriptor() + return file_otg_proto_enumTypes[120].Descriptor() } func (ActionResponseProtocolIpv6_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[117] + return &file_otg_proto_enumTypes[120] } func (x ActionResponseProtocolIpv6_Choice_Enum) Number() protoreflect.EnumNumber { @@ -6137,7 +6380,7 @@ func (x ActionResponseProtocolIpv6_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use ActionResponseProtocolIpv6_Choice_Enum.Descriptor instead. func (ActionResponseProtocolIpv6_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{256, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{262, 0, 0} } type ActionResponseProtocolIpv6PingResponse_Result_Enum int32 @@ -6173,11 +6416,11 @@ func (x ActionResponseProtocolIpv6PingResponse_Result_Enum) String() string { } func (ActionResponseProtocolIpv6PingResponse_Result_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[118].Descriptor() + return file_otg_proto_enumTypes[121].Descriptor() } func (ActionResponseProtocolIpv6PingResponse_Result_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[118] + return &file_otg_proto_enumTypes[121] } func (x ActionResponseProtocolIpv6PingResponse_Result_Enum) Number() protoreflect.EnumNumber { @@ -6186,7 +6429,7 @@ func (x ActionResponseProtocolIpv6PingResponse_Result_Enum) Number() protoreflec // Deprecated: Use ActionResponseProtocolIpv6PingResponse_Result_Enum.Descriptor instead. func (ActionResponseProtocolIpv6PingResponse_Result_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{260, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{266, 0, 0} } type ActionProtocolBgp_Choice_Enum int32 @@ -6222,11 +6465,11 @@ func (x ActionProtocolBgp_Choice_Enum) String() string { } func (ActionProtocolBgp_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[119].Descriptor() + return file_otg_proto_enumTypes[122].Descriptor() } func (ActionProtocolBgp_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[119] + return &file_otg_proto_enumTypes[122] } func (x ActionProtocolBgp_Choice_Enum) Number() protoreflect.EnumNumber { @@ -6235,7 +6478,7 @@ func (x ActionProtocolBgp_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use ActionProtocolBgp_Choice_Enum.Descriptor instead. func (ActionProtocolBgp_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{261, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{267, 0, 0} } type ActionProtocolBgpNotification_Choice_Enum int32 @@ -6286,11 +6529,11 @@ func (x ActionProtocolBgpNotification_Choice_Enum) String() string { } func (ActionProtocolBgpNotification_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[120].Descriptor() + return file_otg_proto_enumTypes[123].Descriptor() } func (ActionProtocolBgpNotification_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[120] + return &file_otg_proto_enumTypes[123] } func (x ActionProtocolBgpNotification_Choice_Enum) Number() protoreflect.EnumNumber { @@ -6299,7 +6542,7 @@ func (x ActionProtocolBgpNotification_Choice_Enum) Number() protoreflect.EnumNum // Deprecated: Use ActionProtocolBgpNotification_Choice_Enum.Descriptor instead. func (ActionProtocolBgpNotification_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{262, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{268, 0, 0} } type MetricsRequest_Choice_Enum int32 @@ -6356,11 +6599,11 @@ func (x MetricsRequest_Choice_Enum) String() string { } func (MetricsRequest_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[121].Descriptor() + return file_otg_proto_enumTypes[124].Descriptor() } func (MetricsRequest_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[121] + return &file_otg_proto_enumTypes[124] } func (x MetricsRequest_Choice_Enum) Number() protoreflect.EnumNumber { @@ -6369,7 +6612,7 @@ func (x MetricsRequest_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use MetricsRequest_Choice_Enum.Descriptor instead. func (MetricsRequest_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{264, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{270, 0, 0} } type MetricsResponse_Choice_Enum int32 @@ -6426,11 +6669,11 @@ func (x MetricsResponse_Choice_Enum) String() string { } func (MetricsResponse_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[122].Descriptor() + return file_otg_proto_enumTypes[125].Descriptor() } func (MetricsResponse_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[122] + return &file_otg_proto_enumTypes[125] } func (x MetricsResponse_Choice_Enum) Number() protoreflect.EnumNumber { @@ -6439,7 +6682,7 @@ func (x MetricsResponse_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use MetricsResponse_Choice_Enum.Descriptor instead. func (MetricsResponse_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{265, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{271, 0, 0} } type PortMetricsRequest_ColumnNames_Enum int32 @@ -6505,11 +6748,11 @@ func (x PortMetricsRequest_ColumnNames_Enum) String() string { } func (PortMetricsRequest_ColumnNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[123].Descriptor() + return file_otg_proto_enumTypes[126].Descriptor() } func (PortMetricsRequest_ColumnNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[123] + return &file_otg_proto_enumTypes[126] } func (x PortMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { @@ -6518,7 +6761,7 @@ func (x PortMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PortMetricsRequest_ColumnNames_Enum.Descriptor instead. func (PortMetricsRequest_ColumnNames_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{266, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{272, 0, 0} } type PortMetric_Link_Enum int32 @@ -6554,11 +6797,11 @@ func (x PortMetric_Link_Enum) String() string { } func (PortMetric_Link_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[124].Descriptor() + return file_otg_proto_enumTypes[127].Descriptor() } func (PortMetric_Link_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[124] + return &file_otg_proto_enumTypes[127] } func (x PortMetric_Link_Enum) Number() protoreflect.EnumNumber { @@ -6567,7 +6810,7 @@ func (x PortMetric_Link_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PortMetric_Link_Enum.Descriptor instead. func (PortMetric_Link_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{267, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{273, 0, 0} } type PortMetric_Capture_Enum int32 @@ -6603,11 +6846,11 @@ func (x PortMetric_Capture_Enum) String() string { } func (PortMetric_Capture_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[125].Descriptor() + return file_otg_proto_enumTypes[128].Descriptor() } func (PortMetric_Capture_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[125] + return &file_otg_proto_enumTypes[128] } func (x PortMetric_Capture_Enum) Number() protoreflect.EnumNumber { @@ -6616,7 +6859,7 @@ func (x PortMetric_Capture_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PortMetric_Capture_Enum.Descriptor instead. func (PortMetric_Capture_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{267, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{273, 1, 0} } type PortMetric_Transmit_Enum int32 @@ -6652,11 +6895,11 @@ func (x PortMetric_Transmit_Enum) String() string { } func (PortMetric_Transmit_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[126].Descriptor() + return file_otg_proto_enumTypes[129].Descriptor() } func (PortMetric_Transmit_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[126] + return &file_otg_proto_enumTypes[129] } func (x PortMetric_Transmit_Enum) Number() protoreflect.EnumNumber { @@ -6665,7 +6908,7 @@ func (x PortMetric_Transmit_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PortMetric_Transmit_Enum.Descriptor instead. func (PortMetric_Transmit_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{267, 2, 0} + return file_otg_proto_rawDescGZIP(), []int{273, 2, 0} } type FlowMetricsRequest_MetricNames_Enum int32 @@ -6716,11 +6959,11 @@ func (x FlowMetricsRequest_MetricNames_Enum) String() string { } func (FlowMetricsRequest_MetricNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[127].Descriptor() + return file_otg_proto_enumTypes[130].Descriptor() } func (FlowMetricsRequest_MetricNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[127] + return &file_otg_proto_enumTypes[130] } func (x FlowMetricsRequest_MetricNames_Enum) Number() protoreflect.EnumNumber { @@ -6729,7 +6972,7 @@ func (x FlowMetricsRequest_MetricNames_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowMetricsRequest_MetricNames_Enum.Descriptor instead. func (FlowMetricsRequest_MetricNames_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{268, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{274, 0, 0} } type FlowTaggedMetricsFilter_MetricNames_Enum int32 @@ -6777,11 +7020,11 @@ func (x FlowTaggedMetricsFilter_MetricNames_Enum) String() string { } func (FlowTaggedMetricsFilter_MetricNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[128].Descriptor() + return file_otg_proto_enumTypes[131].Descriptor() } func (FlowTaggedMetricsFilter_MetricNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[128] + return &file_otg_proto_enumTypes[131] } func (x FlowTaggedMetricsFilter_MetricNames_Enum) Number() protoreflect.EnumNumber { @@ -6790,7 +7033,7 @@ func (x FlowTaggedMetricsFilter_MetricNames_Enum) Number() protoreflect.EnumNumb // Deprecated: Use FlowTaggedMetricsFilter_MetricNames_Enum.Descriptor instead. func (FlowTaggedMetricsFilter_MetricNames_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{269, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{275, 0, 0} } type FlowMetric_Transmit_Enum int32 @@ -6829,11 +7072,11 @@ func (x FlowMetric_Transmit_Enum) String() string { } func (FlowMetric_Transmit_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[129].Descriptor() + return file_otg_proto_enumTypes[132].Descriptor() } func (FlowMetric_Transmit_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[129] + return &file_otg_proto_enumTypes[132] } func (x FlowMetric_Transmit_Enum) Number() protoreflect.EnumNumber { @@ -6842,7 +7085,7 @@ func (x FlowMetric_Transmit_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowMetric_Transmit_Enum.Descriptor instead. func (FlowMetric_Transmit_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{271, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{277, 0, 0} } type FlowMetricTagValue_Choice_Enum int32 @@ -6878,11 +7121,11 @@ func (x FlowMetricTagValue_Choice_Enum) String() string { } func (FlowMetricTagValue_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[130].Descriptor() + return file_otg_proto_enumTypes[133].Descriptor() } func (FlowMetricTagValue_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[130] + return &file_otg_proto_enumTypes[133] } func (x FlowMetricTagValue_Choice_Enum) Number() protoreflect.EnumNumber { @@ -6891,7 +7134,7 @@ func (x FlowMetricTagValue_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowMetricTagValue_Choice_Enum.Descriptor instead. func (FlowMetricTagValue_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{274, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{280, 0, 0} } type Bgpv4MetricsRequest_ColumnNames_Enum int32 @@ -6969,11 +7212,11 @@ func (x Bgpv4MetricsRequest_ColumnNames_Enum) String() string { } func (Bgpv4MetricsRequest_ColumnNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[131].Descriptor() + return file_otg_proto_enumTypes[134].Descriptor() } func (Bgpv4MetricsRequest_ColumnNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[131] + return &file_otg_proto_enumTypes[134] } func (x Bgpv4MetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { @@ -6982,7 +7225,7 @@ func (x Bgpv4MetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use Bgpv4MetricsRequest_ColumnNames_Enum.Descriptor instead. func (Bgpv4MetricsRequest_ColumnNames_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{277, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{283, 0, 0} } type Bgpv4Metric_SessionState_Enum int32 @@ -7018,11 +7261,11 @@ func (x Bgpv4Metric_SessionState_Enum) String() string { } func (Bgpv4Metric_SessionState_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[132].Descriptor() + return file_otg_proto_enumTypes[135].Descriptor() } func (Bgpv4Metric_SessionState_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[132] + return &file_otg_proto_enumTypes[135] } func (x Bgpv4Metric_SessionState_Enum) Number() protoreflect.EnumNumber { @@ -7031,7 +7274,7 @@ func (x Bgpv4Metric_SessionState_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use Bgpv4Metric_SessionState_Enum.Descriptor instead. func (Bgpv4Metric_SessionState_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{278, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{284, 0, 0} } type Bgpv4Metric_FsmState_Enum int32 @@ -7079,11 +7322,11 @@ func (x Bgpv4Metric_FsmState_Enum) String() string { } func (Bgpv4Metric_FsmState_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[133].Descriptor() + return file_otg_proto_enumTypes[136].Descriptor() } func (Bgpv4Metric_FsmState_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[133] + return &file_otg_proto_enumTypes[136] } func (x Bgpv4Metric_FsmState_Enum) Number() protoreflect.EnumNumber { @@ -7092,7 +7335,7 @@ func (x Bgpv4Metric_FsmState_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use Bgpv4Metric_FsmState_Enum.Descriptor instead. func (Bgpv4Metric_FsmState_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{278, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{284, 1, 0} } type Bgpv6MetricsRequest_ColumnNames_Enum int32 @@ -7170,11 +7413,11 @@ func (x Bgpv6MetricsRequest_ColumnNames_Enum) String() string { } func (Bgpv6MetricsRequest_ColumnNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[134].Descriptor() + return file_otg_proto_enumTypes[137].Descriptor() } func (Bgpv6MetricsRequest_ColumnNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[134] + return &file_otg_proto_enumTypes[137] } func (x Bgpv6MetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { @@ -7183,7 +7426,7 @@ func (x Bgpv6MetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use Bgpv6MetricsRequest_ColumnNames_Enum.Descriptor instead. func (Bgpv6MetricsRequest_ColumnNames_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{279, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{285, 0, 0} } type Bgpv6Metric_SessionState_Enum int32 @@ -7219,11 +7462,11 @@ func (x Bgpv6Metric_SessionState_Enum) String() string { } func (Bgpv6Metric_SessionState_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[135].Descriptor() + return file_otg_proto_enumTypes[138].Descriptor() } func (Bgpv6Metric_SessionState_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[135] + return &file_otg_proto_enumTypes[138] } func (x Bgpv6Metric_SessionState_Enum) Number() protoreflect.EnumNumber { @@ -7232,7 +7475,7 @@ func (x Bgpv6Metric_SessionState_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use Bgpv6Metric_SessionState_Enum.Descriptor instead. func (Bgpv6Metric_SessionState_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{280, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{286, 0, 0} } type Bgpv6Metric_FsmState_Enum int32 @@ -7280,11 +7523,11 @@ func (x Bgpv6Metric_FsmState_Enum) String() string { } func (Bgpv6Metric_FsmState_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[136].Descriptor() + return file_otg_proto_enumTypes[139].Descriptor() } func (Bgpv6Metric_FsmState_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[136] + return &file_otg_proto_enumTypes[139] } func (x Bgpv6Metric_FsmState_Enum) Number() protoreflect.EnumNumber { @@ -7293,7 +7536,7 @@ func (x Bgpv6Metric_FsmState_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use Bgpv6Metric_FsmState_Enum.Descriptor instead. func (Bgpv6Metric_FsmState_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{280, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{286, 1, 0} } type IsisMetricsRequest_ColumnNames_Enum int32 @@ -7401,11 +7644,11 @@ func (x IsisMetricsRequest_ColumnNames_Enum) String() string { } func (IsisMetricsRequest_ColumnNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[137].Descriptor() + return file_otg_proto_enumTypes[140].Descriptor() } func (IsisMetricsRequest_ColumnNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[137] + return &file_otg_proto_enumTypes[140] } func (x IsisMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { @@ -7414,7 +7657,7 @@ func (x IsisMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use IsisMetricsRequest_ColumnNames_Enum.Descriptor instead. func (IsisMetricsRequest_ColumnNames_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{281, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{287, 0, 0} } type LagMetricsRequest_ColumnNames_Enum int32 @@ -7474,11 +7717,11 @@ func (x LagMetricsRequest_ColumnNames_Enum) String() string { } func (LagMetricsRequest_ColumnNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[138].Descriptor() + return file_otg_proto_enumTypes[141].Descriptor() } func (LagMetricsRequest_ColumnNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[138] + return &file_otg_proto_enumTypes[141] } func (x LagMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { @@ -7487,7 +7730,7 @@ func (x LagMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use LagMetricsRequest_ColumnNames_Enum.Descriptor instead. func (LagMetricsRequest_ColumnNames_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{283, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{289, 0, 0} } type LagMetric_OperStatus_Enum int32 @@ -7523,11 +7766,11 @@ func (x LagMetric_OperStatus_Enum) String() string { } func (LagMetric_OperStatus_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[139].Descriptor() + return file_otg_proto_enumTypes[142].Descriptor() } func (LagMetric_OperStatus_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[139] + return &file_otg_proto_enumTypes[142] } func (x LagMetric_OperStatus_Enum) Number() protoreflect.EnumNumber { @@ -7536,7 +7779,7 @@ func (x LagMetric_OperStatus_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use LagMetric_OperStatus_Enum.Descriptor instead. func (LagMetric_OperStatus_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{284, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{290, 0, 0} } type LacpMetricsRequest_ColumnNames_Enum int32 @@ -7611,11 +7854,11 @@ func (x LacpMetricsRequest_ColumnNames_Enum) String() string { } func (LacpMetricsRequest_ColumnNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[140].Descriptor() + return file_otg_proto_enumTypes[143].Descriptor() } func (LacpMetricsRequest_ColumnNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[140] + return &file_otg_proto_enumTypes[143] } func (x LacpMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { @@ -7624,7 +7867,7 @@ func (x LacpMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use LacpMetricsRequest_ColumnNames_Enum.Descriptor instead. func (LacpMetricsRequest_ColumnNames_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{285, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{291, 0, 0} } type LacpMetric_Activity_Enum int32 @@ -7660,11 +7903,11 @@ func (x LacpMetric_Activity_Enum) String() string { } func (LacpMetric_Activity_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[141].Descriptor() + return file_otg_proto_enumTypes[144].Descriptor() } func (LacpMetric_Activity_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[141] + return &file_otg_proto_enumTypes[144] } func (x LacpMetric_Activity_Enum) Number() protoreflect.EnumNumber { @@ -7673,7 +7916,7 @@ func (x LacpMetric_Activity_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use LacpMetric_Activity_Enum.Descriptor instead. func (LacpMetric_Activity_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{286, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{292, 0, 0} } type LacpMetric_Timeout_Enum int32 @@ -7709,11 +7952,11 @@ func (x LacpMetric_Timeout_Enum) String() string { } func (LacpMetric_Timeout_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[142].Descriptor() + return file_otg_proto_enumTypes[145].Descriptor() } func (LacpMetric_Timeout_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[142] + return &file_otg_proto_enumTypes[145] } func (x LacpMetric_Timeout_Enum) Number() protoreflect.EnumNumber { @@ -7722,7 +7965,7 @@ func (x LacpMetric_Timeout_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use LacpMetric_Timeout_Enum.Descriptor instead. func (LacpMetric_Timeout_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{286, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{292, 1, 0} } type LacpMetric_Synchronization_Enum int32 @@ -7758,11 +8001,11 @@ func (x LacpMetric_Synchronization_Enum) String() string { } func (LacpMetric_Synchronization_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[143].Descriptor() + return file_otg_proto_enumTypes[146].Descriptor() } func (LacpMetric_Synchronization_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[143] + return &file_otg_proto_enumTypes[146] } func (x LacpMetric_Synchronization_Enum) Number() protoreflect.EnumNumber { @@ -7771,7 +8014,7 @@ func (x LacpMetric_Synchronization_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use LacpMetric_Synchronization_Enum.Descriptor instead. func (LacpMetric_Synchronization_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{286, 2, 0} + return file_otg_proto_rawDescGZIP(), []int{292, 2, 0} } type LldpMetricsRequest_ColumnNames_Enum int32 @@ -7819,11 +8062,11 @@ func (x LldpMetricsRequest_ColumnNames_Enum) String() string { } func (LldpMetricsRequest_ColumnNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[144].Descriptor() + return file_otg_proto_enumTypes[147].Descriptor() } func (LldpMetricsRequest_ColumnNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[144] + return &file_otg_proto_enumTypes[147] } func (x LldpMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { @@ -7832,7 +8075,7 @@ func (x LldpMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use LldpMetricsRequest_ColumnNames_Enum.Descriptor instead. func (LldpMetricsRequest_ColumnNames_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{287, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{293, 0, 0} } type RsvpMetricsRequest_ColumnNames_Enum int32 @@ -7952,11 +8195,11 @@ func (x RsvpMetricsRequest_ColumnNames_Enum) String() string { } func (RsvpMetricsRequest_ColumnNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[145].Descriptor() + return file_otg_proto_enumTypes[148].Descriptor() } func (RsvpMetricsRequest_ColumnNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[145] + return &file_otg_proto_enumTypes[148] } func (x RsvpMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { @@ -7965,7 +8208,7 @@ func (x RsvpMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use RsvpMetricsRequest_ColumnNames_Enum.Descriptor instead. func (RsvpMetricsRequest_ColumnNames_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{289, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{295, 0, 0} } type StatesRequest_Choice_Enum int32 @@ -8013,11 +8256,11 @@ func (x StatesRequest_Choice_Enum) String() string { } func (StatesRequest_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[146].Descriptor() + return file_otg_proto_enumTypes[149].Descriptor() } func (StatesRequest_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[146] + return &file_otg_proto_enumTypes[149] } func (x StatesRequest_Choice_Enum) Number() protoreflect.EnumNumber { @@ -8026,7 +8269,7 @@ func (x StatesRequest_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StatesRequest_Choice_Enum.Descriptor instead. func (StatesRequest_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{291, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{297, 0, 0} } type StatesResponse_Choice_Enum int32 @@ -8074,11 +8317,11 @@ func (x StatesResponse_Choice_Enum) String() string { } func (StatesResponse_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[147].Descriptor() + return file_otg_proto_enumTypes[150].Descriptor() } func (StatesResponse_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[147] + return &file_otg_proto_enumTypes[150] } func (x StatesResponse_Choice_Enum) Number() protoreflect.EnumNumber { @@ -8087,7 +8330,7 @@ func (x StatesResponse_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use StatesResponse_Choice_Enum.Descriptor instead. func (StatesResponse_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{292, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{298, 0, 0} } type BgpPrefixStateRequest_PrefixFilters_Enum int32 @@ -8123,11 +8366,11 @@ func (x BgpPrefixStateRequest_PrefixFilters_Enum) String() string { } func (BgpPrefixStateRequest_PrefixFilters_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[148].Descriptor() + return file_otg_proto_enumTypes[151].Descriptor() } func (BgpPrefixStateRequest_PrefixFilters_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[148] + return &file_otg_proto_enumTypes[151] } func (x BgpPrefixStateRequest_PrefixFilters_Enum) Number() protoreflect.EnumNumber { @@ -8136,7 +8379,7 @@ func (x BgpPrefixStateRequest_PrefixFilters_Enum) Number() protoreflect.EnumNumb // Deprecated: Use BgpPrefixStateRequest_PrefixFilters_Enum.Descriptor instead. func (BgpPrefixStateRequest_PrefixFilters_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{297, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{303, 0, 0} } type BgpPrefixIpv4UnicastFilter_Origin_Enum int32 @@ -8175,11 +8418,11 @@ func (x BgpPrefixIpv4UnicastFilter_Origin_Enum) String() string { } func (BgpPrefixIpv4UnicastFilter_Origin_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[149].Descriptor() + return file_otg_proto_enumTypes[152].Descriptor() } func (BgpPrefixIpv4UnicastFilter_Origin_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[149] + return &file_otg_proto_enumTypes[152] } func (x BgpPrefixIpv4UnicastFilter_Origin_Enum) Number() protoreflect.EnumNumber { @@ -8188,7 +8431,7 @@ func (x BgpPrefixIpv4UnicastFilter_Origin_Enum) Number() protoreflect.EnumNumber // Deprecated: Use BgpPrefixIpv4UnicastFilter_Origin_Enum.Descriptor instead. func (BgpPrefixIpv4UnicastFilter_Origin_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{298, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{304, 0, 0} } type BgpPrefixIpv6UnicastFilter_Origin_Enum int32 @@ -8227,11 +8470,11 @@ func (x BgpPrefixIpv6UnicastFilter_Origin_Enum) String() string { } func (BgpPrefixIpv6UnicastFilter_Origin_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[150].Descriptor() + return file_otg_proto_enumTypes[153].Descriptor() } func (BgpPrefixIpv6UnicastFilter_Origin_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[150] + return &file_otg_proto_enumTypes[153] } func (x BgpPrefixIpv6UnicastFilter_Origin_Enum) Number() protoreflect.EnumNumber { @@ -8240,7 +8483,7 @@ func (x BgpPrefixIpv6UnicastFilter_Origin_Enum) Number() protoreflect.EnumNumber // Deprecated: Use BgpPrefixIpv6UnicastFilter_Origin_Enum.Descriptor instead. func (BgpPrefixIpv6UnicastFilter_Origin_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{299, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{305, 0, 0} } type BgpPrefixIpv4UnicastState_Origin_Enum int32 @@ -8279,11 +8522,11 @@ func (x BgpPrefixIpv4UnicastState_Origin_Enum) String() string { } func (BgpPrefixIpv4UnicastState_Origin_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[151].Descriptor() + return file_otg_proto_enumTypes[154].Descriptor() } func (BgpPrefixIpv4UnicastState_Origin_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[151] + return &file_otg_proto_enumTypes[154] } func (x BgpPrefixIpv4UnicastState_Origin_Enum) Number() protoreflect.EnumNumber { @@ -8292,7 +8535,7 @@ func (x BgpPrefixIpv4UnicastState_Origin_Enum) Number() protoreflect.EnumNumber // Deprecated: Use BgpPrefixIpv4UnicastState_Origin_Enum.Descriptor instead. func (BgpPrefixIpv4UnicastState_Origin_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{301, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{307, 0, 0} } type BgpPrefixIpv6UnicastState_Origin_Enum int32 @@ -8331,11 +8574,11 @@ func (x BgpPrefixIpv6UnicastState_Origin_Enum) String() string { } func (BgpPrefixIpv6UnicastState_Origin_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[152].Descriptor() + return file_otg_proto_enumTypes[155].Descriptor() } func (BgpPrefixIpv6UnicastState_Origin_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[152] + return &file_otg_proto_enumTypes[155] } func (x BgpPrefixIpv6UnicastState_Origin_Enum) Number() protoreflect.EnumNumber { @@ -8344,7 +8587,7 @@ func (x BgpPrefixIpv6UnicastState_Origin_Enum) Number() protoreflect.EnumNumber // Deprecated: Use BgpPrefixIpv6UnicastState_Origin_Enum.Descriptor instead. func (BgpPrefixIpv6UnicastState_Origin_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{302, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{308, 0, 0} } type ResultBgpCommunity_Type_Enum int32 @@ -8392,11 +8635,11 @@ func (x ResultBgpCommunity_Type_Enum) String() string { } func (ResultBgpCommunity_Type_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[153].Descriptor() + return file_otg_proto_enumTypes[156].Descriptor() } func (ResultBgpCommunity_Type_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[153] + return &file_otg_proto_enumTypes[156] } func (x ResultBgpCommunity_Type_Enum) Number() protoreflect.EnumNumber { @@ -8405,7 +8648,7 @@ func (x ResultBgpCommunity_Type_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use ResultBgpCommunity_Type_Enum.Descriptor instead. func (ResultBgpCommunity_Type_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{303, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{309, 0, 0} } type ResultBgpAsPathSegment_Type_Enum int32 @@ -8447,11 +8690,11 @@ func (x ResultBgpAsPathSegment_Type_Enum) String() string { } func (ResultBgpAsPathSegment_Type_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[154].Descriptor() + return file_otg_proto_enumTypes[157].Descriptor() } func (ResultBgpAsPathSegment_Type_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[154] + return &file_otg_proto_enumTypes[157] } func (x ResultBgpAsPathSegment_Type_Enum) Number() protoreflect.EnumNumber { @@ -8460,7 +8703,7 @@ func (x ResultBgpAsPathSegment_Type_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use ResultBgpAsPathSegment_Type_Enum.Descriptor instead. func (ResultBgpAsPathSegment_Type_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{305, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{311, 0, 0} } type IsisLspState_PduType_Enum int32 @@ -8496,11 +8739,11 @@ func (x IsisLspState_PduType_Enum) String() string { } func (IsisLspState_PduType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[155].Descriptor() + return file_otg_proto_enumTypes[158].Descriptor() } func (IsisLspState_PduType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[155] + return &file_otg_proto_enumTypes[158] } func (x IsisLspState_PduType_Enum) Number() protoreflect.EnumNumber { @@ -8509,7 +8752,7 @@ func (x IsisLspState_PduType_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use IsisLspState_PduType_Enum.Descriptor instead. func (IsisLspState_PduType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{308, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{314, 0, 0} } type IsisLspV4Prefix_RedistributionType_Enum int32 @@ -8545,11 +8788,11 @@ func (x IsisLspV4Prefix_RedistributionType_Enum) String() string { } func (IsisLspV4Prefix_RedistributionType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[156].Descriptor() + return file_otg_proto_enumTypes[159].Descriptor() } func (IsisLspV4Prefix_RedistributionType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[156] + return &file_otg_proto_enumTypes[159] } func (x IsisLspV4Prefix_RedistributionType_Enum) Number() protoreflect.EnumNumber { @@ -8558,7 +8801,7 @@ func (x IsisLspV4Prefix_RedistributionType_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use IsisLspV4Prefix_RedistributionType_Enum.Descriptor instead. func (IsisLspV4Prefix_RedistributionType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{317, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{323, 0, 0} } type IsisLspV4Prefix_OriginType_Enum int32 @@ -8594,11 +8837,11 @@ func (x IsisLspV4Prefix_OriginType_Enum) String() string { } func (IsisLspV4Prefix_OriginType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[157].Descriptor() + return file_otg_proto_enumTypes[160].Descriptor() } func (IsisLspV4Prefix_OriginType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[157] + return &file_otg_proto_enumTypes[160] } func (x IsisLspV4Prefix_OriginType_Enum) Number() protoreflect.EnumNumber { @@ -8607,7 +8850,7 @@ func (x IsisLspV4Prefix_OriginType_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use IsisLspV4Prefix_OriginType_Enum.Descriptor instead. func (IsisLspV4Prefix_OriginType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{317, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{323, 1, 0} } type IsisLspExtendedV4Prefix_RedistributionType_Enum int32 @@ -8643,11 +8886,11 @@ func (x IsisLspExtendedV4Prefix_RedistributionType_Enum) String() string { } func (IsisLspExtendedV4Prefix_RedistributionType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[158].Descriptor() + return file_otg_proto_enumTypes[161].Descriptor() } func (IsisLspExtendedV4Prefix_RedistributionType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[158] + return &file_otg_proto_enumTypes[161] } func (x IsisLspExtendedV4Prefix_RedistributionType_Enum) Number() protoreflect.EnumNumber { @@ -8656,7 +8899,7 @@ func (x IsisLspExtendedV4Prefix_RedistributionType_Enum) Number() protoreflect.E // Deprecated: Use IsisLspExtendedV4Prefix_RedistributionType_Enum.Descriptor instead. func (IsisLspExtendedV4Prefix_RedistributionType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{319, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{325, 0, 0} } type IsisLspV6Prefix_RedistributionType_Enum int32 @@ -8692,11 +8935,11 @@ func (x IsisLspV6Prefix_RedistributionType_Enum) String() string { } func (IsisLspV6Prefix_RedistributionType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[159].Descriptor() + return file_otg_proto_enumTypes[162].Descriptor() } func (IsisLspV6Prefix_RedistributionType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[159] + return &file_otg_proto_enumTypes[162] } func (x IsisLspV6Prefix_RedistributionType_Enum) Number() protoreflect.EnumNumber { @@ -8705,7 +8948,7 @@ func (x IsisLspV6Prefix_RedistributionType_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use IsisLspV6Prefix_RedistributionType_Enum.Descriptor instead. func (IsisLspV6Prefix_RedistributionType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{321, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{327, 0, 0} } type IsisLspV6Prefix_OriginType_Enum int32 @@ -8741,11 +8984,11 @@ func (x IsisLspV6Prefix_OriginType_Enum) String() string { } func (IsisLspV6Prefix_OriginType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[160].Descriptor() + return file_otg_proto_enumTypes[163].Descriptor() } func (IsisLspV6Prefix_OriginType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[160] + return &file_otg_proto_enumTypes[163] } func (x IsisLspV6Prefix_OriginType_Enum) Number() protoreflect.EnumNumber { @@ -8754,7 +8997,7 @@ func (x IsisLspV6Prefix_OriginType_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use IsisLspV6Prefix_OriginType_Enum.Descriptor instead. func (IsisLspV6Prefix_OriginType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{321, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{327, 1, 0} } type LldpNeighborsState_ChassisIdType_Enum int32 @@ -8805,11 +9048,11 @@ func (x LldpNeighborsState_ChassisIdType_Enum) String() string { } func (LldpNeighborsState_ChassisIdType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[161].Descriptor() + return file_otg_proto_enumTypes[164].Descriptor() } func (LldpNeighborsState_ChassisIdType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[161] + return &file_otg_proto_enumTypes[164] } func (x LldpNeighborsState_ChassisIdType_Enum) Number() protoreflect.EnumNumber { @@ -8818,7 +9061,7 @@ func (x LldpNeighborsState_ChassisIdType_Enum) Number() protoreflect.EnumNumber // Deprecated: Use LldpNeighborsState_ChassisIdType_Enum.Descriptor instead. func (LldpNeighborsState_ChassisIdType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{324, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{330, 0, 0} } type LldpNeighborsState_PortIdType_Enum int32 @@ -8869,11 +9112,11 @@ func (x LldpNeighborsState_PortIdType_Enum) String() string { } func (LldpNeighborsState_PortIdType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[162].Descriptor() + return file_otg_proto_enumTypes[165].Descriptor() } func (LldpNeighborsState_PortIdType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[162] + return &file_otg_proto_enumTypes[165] } func (x LldpNeighborsState_PortIdType_Enum) Number() protoreflect.EnumNumber { @@ -8882,7 +9125,7 @@ func (x LldpNeighborsState_PortIdType_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use LldpNeighborsState_PortIdType_Enum.Descriptor instead. func (LldpNeighborsState_PortIdType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{324, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{330, 1, 0} } type LldpCapabilityState_CapabilityName_Enum int32 @@ -8945,11 +9188,11 @@ func (x LldpCapabilityState_CapabilityName_Enum) String() string { } func (LldpCapabilityState_CapabilityName_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[163].Descriptor() + return file_otg_proto_enumTypes[166].Descriptor() } func (LldpCapabilityState_CapabilityName_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[163] + return &file_otg_proto_enumTypes[166] } func (x LldpCapabilityState_CapabilityName_Enum) Number() protoreflect.EnumNumber { @@ -8958,7 +9201,7 @@ func (x LldpCapabilityState_CapabilityName_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use LldpCapabilityState_CapabilityName_Enum.Descriptor instead. func (LldpCapabilityState_CapabilityName_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{326, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{332, 0, 0} } type RsvpLspState_SessionStatus_Enum int32 @@ -8994,11 +9237,11 @@ func (x RsvpLspState_SessionStatus_Enum) String() string { } func (RsvpLspState_SessionStatus_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[164].Descriptor() + return file_otg_proto_enumTypes[167].Descriptor() } func (RsvpLspState_SessionStatus_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[164] + return &file_otg_proto_enumTypes[167] } func (x RsvpLspState_SessionStatus_Enum) Number() protoreflect.EnumNumber { @@ -9007,7 +9250,7 @@ func (x RsvpLspState_SessionStatus_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use RsvpLspState_SessionStatus_Enum.Descriptor instead. func (RsvpLspState_SessionStatus_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{330, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{336, 0, 0} } type RsvpLspState_LastFlapReason_Enum int32 @@ -9046,11 +9289,11 @@ func (x RsvpLspState_LastFlapReason_Enum) String() string { } func (RsvpLspState_LastFlapReason_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[165].Descriptor() + return file_otg_proto_enumTypes[168].Descriptor() } func (RsvpLspState_LastFlapReason_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[165] + return &file_otg_proto_enumTypes[168] } func (x RsvpLspState_LastFlapReason_Enum) Number() protoreflect.EnumNumber { @@ -9059,7 +9302,7 @@ func (x RsvpLspState_LastFlapReason_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use RsvpLspState_LastFlapReason_Enum.Descriptor instead. func (RsvpLspState_LastFlapReason_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{330, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{336, 1, 0} } type RsvpLspIpv4Ero_Type_Enum int32 @@ -9107,11 +9350,11 @@ func (x RsvpLspIpv4Ero_Type_Enum) String() string { } func (RsvpLspIpv4Ero_Type_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[166].Descriptor() + return file_otg_proto_enumTypes[169].Descriptor() } func (RsvpLspIpv4Ero_Type_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[166] + return &file_otg_proto_enumTypes[169] } func (x RsvpLspIpv4Ero_Type_Enum) Number() protoreflect.EnumNumber { @@ -9120,7 +9363,7 @@ func (x RsvpLspIpv4Ero_Type_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use RsvpLspIpv4Ero_Type_Enum.Descriptor instead. func (RsvpLspIpv4Ero_Type_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{332, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{338, 0, 0} } type PatternFlowEthernetDst_Choice_Enum int32 @@ -9165,11 +9408,11 @@ func (x PatternFlowEthernetDst_Choice_Enum) String() string { } func (PatternFlowEthernetDst_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[167].Descriptor() + return file_otg_proto_enumTypes[170].Descriptor() } func (PatternFlowEthernetDst_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[167] + return &file_otg_proto_enumTypes[170] } func (x PatternFlowEthernetDst_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9178,7 +9421,7 @@ func (x PatternFlowEthernetDst_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowEthernetDst_Choice_Enum.Descriptor instead. func (PatternFlowEthernetDst_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{336, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{342, 0, 0} } type PatternFlowEthernetSrc_Choice_Enum int32 @@ -9220,11 +9463,11 @@ func (x PatternFlowEthernetSrc_Choice_Enum) String() string { } func (PatternFlowEthernetSrc_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[168].Descriptor() + return file_otg_proto_enumTypes[171].Descriptor() } func (PatternFlowEthernetSrc_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[168] + return &file_otg_proto_enumTypes[171] } func (x PatternFlowEthernetSrc_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9233,7 +9476,7 @@ func (x PatternFlowEthernetSrc_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowEthernetSrc_Choice_Enum.Descriptor instead. func (PatternFlowEthernetSrc_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{339, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{345, 0, 0} } type PatternFlowEthernetEtherType_Choice_Enum int32 @@ -9278,11 +9521,11 @@ func (x PatternFlowEthernetEtherType_Choice_Enum) String() string { } func (PatternFlowEthernetEtherType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[169].Descriptor() + return file_otg_proto_enumTypes[172].Descriptor() } func (PatternFlowEthernetEtherType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[169] + return &file_otg_proto_enumTypes[172] } func (x PatternFlowEthernetEtherType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9291,7 +9534,7 @@ func (x PatternFlowEthernetEtherType_Choice_Enum) Number() protoreflect.EnumNumb // Deprecated: Use PatternFlowEthernetEtherType_Choice_Enum.Descriptor instead. func (PatternFlowEthernetEtherType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{342, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{348, 0, 0} } type PatternFlowEthernetPfcQueue_Choice_Enum int32 @@ -9333,11 +9576,11 @@ func (x PatternFlowEthernetPfcQueue_Choice_Enum) String() string { } func (PatternFlowEthernetPfcQueue_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[170].Descriptor() + return file_otg_proto_enumTypes[173].Descriptor() } func (PatternFlowEthernetPfcQueue_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[170] + return &file_otg_proto_enumTypes[173] } func (x PatternFlowEthernetPfcQueue_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9346,7 +9589,7 @@ func (x PatternFlowEthernetPfcQueue_Choice_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use PatternFlowEthernetPfcQueue_Choice_Enum.Descriptor instead. func (PatternFlowEthernetPfcQueue_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{345, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{351, 0, 0} } type PatternFlowVlanPriority_Choice_Enum int32 @@ -9388,11 +9631,11 @@ func (x PatternFlowVlanPriority_Choice_Enum) String() string { } func (PatternFlowVlanPriority_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[171].Descriptor() + return file_otg_proto_enumTypes[174].Descriptor() } func (PatternFlowVlanPriority_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[171] + return &file_otg_proto_enumTypes[174] } func (x PatternFlowVlanPriority_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9401,7 +9644,7 @@ func (x PatternFlowVlanPriority_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowVlanPriority_Choice_Enum.Descriptor instead. func (PatternFlowVlanPriority_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{348, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{354, 0, 0} } type PatternFlowVlanCfi_Choice_Enum int32 @@ -9443,11 +9686,11 @@ func (x PatternFlowVlanCfi_Choice_Enum) String() string { } func (PatternFlowVlanCfi_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[172].Descriptor() + return file_otg_proto_enumTypes[175].Descriptor() } func (PatternFlowVlanCfi_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[172] + return &file_otg_proto_enumTypes[175] } func (x PatternFlowVlanCfi_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9456,7 +9699,7 @@ func (x PatternFlowVlanCfi_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowVlanCfi_Choice_Enum.Descriptor instead. func (PatternFlowVlanCfi_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{351, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{357, 0, 0} } type PatternFlowVlanId_Choice_Enum int32 @@ -9498,11 +9741,11 @@ func (x PatternFlowVlanId_Choice_Enum) String() string { } func (PatternFlowVlanId_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[173].Descriptor() + return file_otg_proto_enumTypes[176].Descriptor() } func (PatternFlowVlanId_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[173] + return &file_otg_proto_enumTypes[176] } func (x PatternFlowVlanId_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9511,7 +9754,7 @@ func (x PatternFlowVlanId_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowVlanId_Choice_Enum.Descriptor instead. func (PatternFlowVlanId_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{354, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{360, 0, 0} } type PatternFlowVlanTpid_Choice_Enum int32 @@ -9553,11 +9796,11 @@ func (x PatternFlowVlanTpid_Choice_Enum) String() string { } func (PatternFlowVlanTpid_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[174].Descriptor() + return file_otg_proto_enumTypes[177].Descriptor() } func (PatternFlowVlanTpid_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[174] + return &file_otg_proto_enumTypes[177] } func (x PatternFlowVlanTpid_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9566,7 +9809,7 @@ func (x PatternFlowVlanTpid_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowVlanTpid_Choice_Enum.Descriptor instead. func (PatternFlowVlanTpid_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{357, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{363, 0, 0} } type PatternFlowVxlanFlags_Choice_Enum int32 @@ -9608,11 +9851,11 @@ func (x PatternFlowVxlanFlags_Choice_Enum) String() string { } func (PatternFlowVxlanFlags_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[175].Descriptor() + return file_otg_proto_enumTypes[178].Descriptor() } func (PatternFlowVxlanFlags_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[175] + return &file_otg_proto_enumTypes[178] } func (x PatternFlowVxlanFlags_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9621,7 +9864,7 @@ func (x PatternFlowVxlanFlags_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowVxlanFlags_Choice_Enum.Descriptor instead. func (PatternFlowVxlanFlags_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{360, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{366, 0, 0} } type PatternFlowVxlanReserved0_Choice_Enum int32 @@ -9663,11 +9906,11 @@ func (x PatternFlowVxlanReserved0_Choice_Enum) String() string { } func (PatternFlowVxlanReserved0_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[176].Descriptor() + return file_otg_proto_enumTypes[179].Descriptor() } func (PatternFlowVxlanReserved0_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[176] + return &file_otg_proto_enumTypes[179] } func (x PatternFlowVxlanReserved0_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9676,7 +9919,7 @@ func (x PatternFlowVxlanReserved0_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowVxlanReserved0_Choice_Enum.Descriptor instead. func (PatternFlowVxlanReserved0_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{363, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{369, 0, 0} } type PatternFlowVxlanVni_Choice_Enum int32 @@ -9721,11 +9964,11 @@ func (x PatternFlowVxlanVni_Choice_Enum) String() string { } func (PatternFlowVxlanVni_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[177].Descriptor() + return file_otg_proto_enumTypes[180].Descriptor() } func (PatternFlowVxlanVni_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[177] + return &file_otg_proto_enumTypes[180] } func (x PatternFlowVxlanVni_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9734,7 +9977,7 @@ func (x PatternFlowVxlanVni_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowVxlanVni_Choice_Enum.Descriptor instead. func (PatternFlowVxlanVni_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{366, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{372, 0, 0} } type PatternFlowVxlanReserved1_Choice_Enum int32 @@ -9776,11 +10019,11 @@ func (x PatternFlowVxlanReserved1_Choice_Enum) String() string { } func (PatternFlowVxlanReserved1_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[178].Descriptor() + return file_otg_proto_enumTypes[181].Descriptor() } func (PatternFlowVxlanReserved1_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[178] + return &file_otg_proto_enumTypes[181] } func (x PatternFlowVxlanReserved1_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9789,7 +10032,7 @@ func (x PatternFlowVxlanReserved1_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowVxlanReserved1_Choice_Enum.Descriptor instead. func (PatternFlowVxlanReserved1_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{369, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{375, 0, 0} } type PatternFlowIpv4Version_Choice_Enum int32 @@ -9831,11 +10074,11 @@ func (x PatternFlowIpv4Version_Choice_Enum) String() string { } func (PatternFlowIpv4Version_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[179].Descriptor() + return file_otg_proto_enumTypes[182].Descriptor() } func (PatternFlowIpv4Version_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[179] + return &file_otg_proto_enumTypes[182] } func (x PatternFlowIpv4Version_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9844,7 +10087,7 @@ func (x PatternFlowIpv4Version_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv4Version_Choice_Enum.Descriptor instead. func (PatternFlowIpv4Version_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{372, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{378, 0, 0} } type PatternFlowIpv4HeaderLength_Choice_Enum int32 @@ -9889,11 +10132,11 @@ func (x PatternFlowIpv4HeaderLength_Choice_Enum) String() string { } func (PatternFlowIpv4HeaderLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[180].Descriptor() + return file_otg_proto_enumTypes[183].Descriptor() } func (PatternFlowIpv4HeaderLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[180] + return &file_otg_proto_enumTypes[183] } func (x PatternFlowIpv4HeaderLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9902,7 +10145,7 @@ func (x PatternFlowIpv4HeaderLength_Choice_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use PatternFlowIpv4HeaderLength_Choice_Enum.Descriptor instead. func (PatternFlowIpv4HeaderLength_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{375, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{381, 0, 0} } type PatternFlowIpv4TotalLength_Choice_Enum int32 @@ -9947,11 +10190,11 @@ func (x PatternFlowIpv4TotalLength_Choice_Enum) String() string { } func (PatternFlowIpv4TotalLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[181].Descriptor() + return file_otg_proto_enumTypes[184].Descriptor() } func (PatternFlowIpv4TotalLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[181] + return &file_otg_proto_enumTypes[184] } func (x PatternFlowIpv4TotalLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9960,7 +10203,7 @@ func (x PatternFlowIpv4TotalLength_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowIpv4TotalLength_Choice_Enum.Descriptor instead. func (PatternFlowIpv4TotalLength_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{378, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{384, 0, 0} } type PatternFlowIpv4Identification_Choice_Enum int32 @@ -10002,11 +10245,11 @@ func (x PatternFlowIpv4Identification_Choice_Enum) String() string { } func (PatternFlowIpv4Identification_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[182].Descriptor() + return file_otg_proto_enumTypes[185].Descriptor() } func (PatternFlowIpv4Identification_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[182] + return &file_otg_proto_enumTypes[185] } func (x PatternFlowIpv4Identification_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10015,7 +10258,7 @@ func (x PatternFlowIpv4Identification_Choice_Enum) Number() protoreflect.EnumNum // Deprecated: Use PatternFlowIpv4Identification_Choice_Enum.Descriptor instead. func (PatternFlowIpv4Identification_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{381, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{387, 0, 0} } type PatternFlowIpv4Reserved_Choice_Enum int32 @@ -10057,11 +10300,11 @@ func (x PatternFlowIpv4Reserved_Choice_Enum) String() string { } func (PatternFlowIpv4Reserved_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[183].Descriptor() + return file_otg_proto_enumTypes[186].Descriptor() } func (PatternFlowIpv4Reserved_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[183] + return &file_otg_proto_enumTypes[186] } func (x PatternFlowIpv4Reserved_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10070,7 +10313,7 @@ func (x PatternFlowIpv4Reserved_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv4Reserved_Choice_Enum.Descriptor instead. func (PatternFlowIpv4Reserved_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{384, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{390, 0, 0} } type PatternFlowIpv4DontFragment_Choice_Enum int32 @@ -10112,11 +10355,11 @@ func (x PatternFlowIpv4DontFragment_Choice_Enum) String() string { } func (PatternFlowIpv4DontFragment_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[184].Descriptor() + return file_otg_proto_enumTypes[187].Descriptor() } func (PatternFlowIpv4DontFragment_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[184] + return &file_otg_proto_enumTypes[187] } func (x PatternFlowIpv4DontFragment_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10125,7 +10368,7 @@ func (x PatternFlowIpv4DontFragment_Choice_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use PatternFlowIpv4DontFragment_Choice_Enum.Descriptor instead. func (PatternFlowIpv4DontFragment_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{387, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{393, 0, 0} } type PatternFlowIpv4MoreFragments_Choice_Enum int32 @@ -10167,11 +10410,11 @@ func (x PatternFlowIpv4MoreFragments_Choice_Enum) String() string { } func (PatternFlowIpv4MoreFragments_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[185].Descriptor() + return file_otg_proto_enumTypes[188].Descriptor() } func (PatternFlowIpv4MoreFragments_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[185] + return &file_otg_proto_enumTypes[188] } func (x PatternFlowIpv4MoreFragments_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10180,7 +10423,7 @@ func (x PatternFlowIpv4MoreFragments_Choice_Enum) Number() protoreflect.EnumNumb // Deprecated: Use PatternFlowIpv4MoreFragments_Choice_Enum.Descriptor instead. func (PatternFlowIpv4MoreFragments_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{390, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{396, 0, 0} } type PatternFlowIpv4FragmentOffset_Choice_Enum int32 @@ -10222,11 +10465,11 @@ func (x PatternFlowIpv4FragmentOffset_Choice_Enum) String() string { } func (PatternFlowIpv4FragmentOffset_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[186].Descriptor() + return file_otg_proto_enumTypes[189].Descriptor() } func (PatternFlowIpv4FragmentOffset_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[186] + return &file_otg_proto_enumTypes[189] } func (x PatternFlowIpv4FragmentOffset_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10235,7 +10478,7 @@ func (x PatternFlowIpv4FragmentOffset_Choice_Enum) Number() protoreflect.EnumNum // Deprecated: Use PatternFlowIpv4FragmentOffset_Choice_Enum.Descriptor instead. func (PatternFlowIpv4FragmentOffset_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{393, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{399, 0, 0} } type PatternFlowIpv4TimeToLive_Choice_Enum int32 @@ -10277,11 +10520,11 @@ func (x PatternFlowIpv4TimeToLive_Choice_Enum) String() string { } func (PatternFlowIpv4TimeToLive_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[187].Descriptor() + return file_otg_proto_enumTypes[190].Descriptor() } func (PatternFlowIpv4TimeToLive_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[187] + return &file_otg_proto_enumTypes[190] } func (x PatternFlowIpv4TimeToLive_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10290,7 +10533,7 @@ func (x PatternFlowIpv4TimeToLive_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowIpv4TimeToLive_Choice_Enum.Descriptor instead. func (PatternFlowIpv4TimeToLive_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{396, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{402, 0, 0} } type PatternFlowIpv4Protocol_Choice_Enum int32 @@ -10335,11 +10578,11 @@ func (x PatternFlowIpv4Protocol_Choice_Enum) String() string { } func (PatternFlowIpv4Protocol_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[188].Descriptor() + return file_otg_proto_enumTypes[191].Descriptor() } func (PatternFlowIpv4Protocol_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[188] + return &file_otg_proto_enumTypes[191] } func (x PatternFlowIpv4Protocol_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10348,7 +10591,7 @@ func (x PatternFlowIpv4Protocol_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv4Protocol_Choice_Enum.Descriptor instead. func (PatternFlowIpv4Protocol_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{399, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{405, 0, 0} } type PatternFlowIpv4HeaderChecksum_Choice_Enum int32 @@ -10384,11 +10627,11 @@ func (x PatternFlowIpv4HeaderChecksum_Choice_Enum) String() string { } func (PatternFlowIpv4HeaderChecksum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[189].Descriptor() + return file_otg_proto_enumTypes[192].Descriptor() } func (PatternFlowIpv4HeaderChecksum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[189] + return &file_otg_proto_enumTypes[192] } func (x PatternFlowIpv4HeaderChecksum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10397,7 +10640,7 @@ func (x PatternFlowIpv4HeaderChecksum_Choice_Enum) Number() protoreflect.EnumNum // Deprecated: Use PatternFlowIpv4HeaderChecksum_Choice_Enum.Descriptor instead. func (PatternFlowIpv4HeaderChecksum_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{400, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{406, 0, 0} } type PatternFlowIpv4HeaderChecksum_Generated_Enum int32 @@ -10433,11 +10676,11 @@ func (x PatternFlowIpv4HeaderChecksum_Generated_Enum) String() string { } func (PatternFlowIpv4HeaderChecksum_Generated_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[190].Descriptor() + return file_otg_proto_enumTypes[193].Descriptor() } func (PatternFlowIpv4HeaderChecksum_Generated_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[190] + return &file_otg_proto_enumTypes[193] } func (x PatternFlowIpv4HeaderChecksum_Generated_Enum) Number() protoreflect.EnumNumber { @@ -10446,7 +10689,7 @@ func (x PatternFlowIpv4HeaderChecksum_Generated_Enum) Number() protoreflect.Enum // Deprecated: Use PatternFlowIpv4HeaderChecksum_Generated_Enum.Descriptor instead. func (PatternFlowIpv4HeaderChecksum_Generated_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{400, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{406, 1, 0} } type PatternFlowIpv4Src_Choice_Enum int32 @@ -10488,11 +10731,11 @@ func (x PatternFlowIpv4Src_Choice_Enum) String() string { } func (PatternFlowIpv4Src_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[191].Descriptor() + return file_otg_proto_enumTypes[194].Descriptor() } func (PatternFlowIpv4Src_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[191] + return &file_otg_proto_enumTypes[194] } func (x PatternFlowIpv4Src_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10501,7 +10744,7 @@ func (x PatternFlowIpv4Src_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv4Src_Choice_Enum.Descriptor instead. func (PatternFlowIpv4Src_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{403, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{409, 0, 0} } type PatternFlowIpv4Dst_Choice_Enum int32 @@ -10543,11 +10786,11 @@ func (x PatternFlowIpv4Dst_Choice_Enum) String() string { } func (PatternFlowIpv4Dst_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[192].Descriptor() + return file_otg_proto_enumTypes[195].Descriptor() } func (PatternFlowIpv4Dst_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[192] + return &file_otg_proto_enumTypes[195] } func (x PatternFlowIpv4Dst_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10556,7 +10799,7 @@ func (x PatternFlowIpv4Dst_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv4Dst_Choice_Enum.Descriptor instead. func (PatternFlowIpv4Dst_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{406, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{412, 0, 0} } type PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice_Enum int32 @@ -10598,11 +10841,11 @@ func (x PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice_Enum) String() string } func (PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[193].Descriptor() + return file_otg_proto_enumTypes[196].Descriptor() } func (PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[193] + return &file_otg_proto_enumTypes[196] } func (x PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10611,7 +10854,7 @@ func (x PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice_Enum) Number() protore // Deprecated: Use PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice_Enum.Descriptor instead. func (PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{408, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{414, 0, 0} } type PatternFlowIpv4OptionsCustomTypeOptionClass_Choice_Enum int32 @@ -10653,11 +10896,11 @@ func (x PatternFlowIpv4OptionsCustomTypeOptionClass_Choice_Enum) String() string } func (PatternFlowIpv4OptionsCustomTypeOptionClass_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[194].Descriptor() + return file_otg_proto_enumTypes[197].Descriptor() } func (PatternFlowIpv4OptionsCustomTypeOptionClass_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[194] + return &file_otg_proto_enumTypes[197] } func (x PatternFlowIpv4OptionsCustomTypeOptionClass_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10666,7 +10909,7 @@ func (x PatternFlowIpv4OptionsCustomTypeOptionClass_Choice_Enum) Number() protor // Deprecated: Use PatternFlowIpv4OptionsCustomTypeOptionClass_Choice_Enum.Descriptor instead. func (PatternFlowIpv4OptionsCustomTypeOptionClass_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{410, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{416, 0, 0} } type PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice_Enum int32 @@ -10708,11 +10951,11 @@ func (x PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice_Enum) String() strin } func (PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[195].Descriptor() + return file_otg_proto_enumTypes[198].Descriptor() } func (PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[195] + return &file_otg_proto_enumTypes[198] } func (x PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10721,7 +10964,7 @@ func (x PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice_Enum) Number() proto // Deprecated: Use PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice_Enum.Descriptor instead. func (PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{412, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{418, 0, 0} } type PatternFlowIpv4PriorityRaw_Choice_Enum int32 @@ -10763,11 +11006,11 @@ func (x PatternFlowIpv4PriorityRaw_Choice_Enum) String() string { } func (PatternFlowIpv4PriorityRaw_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[196].Descriptor() + return file_otg_proto_enumTypes[199].Descriptor() } func (PatternFlowIpv4PriorityRaw_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[196] + return &file_otg_proto_enumTypes[199] } func (x PatternFlowIpv4PriorityRaw_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10776,7 +11019,7 @@ func (x PatternFlowIpv4PriorityRaw_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowIpv4PriorityRaw_Choice_Enum.Descriptor instead. func (PatternFlowIpv4PriorityRaw_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{415, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{421, 0, 0} } type PatternFlowIpv4DscpPhb_Choice_Enum int32 @@ -10818,11 +11061,11 @@ func (x PatternFlowIpv4DscpPhb_Choice_Enum) String() string { } func (PatternFlowIpv4DscpPhb_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[197].Descriptor() + return file_otg_proto_enumTypes[200].Descriptor() } func (PatternFlowIpv4DscpPhb_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[197] + return &file_otg_proto_enumTypes[200] } func (x PatternFlowIpv4DscpPhb_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10831,7 +11074,7 @@ func (x PatternFlowIpv4DscpPhb_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv4DscpPhb_Choice_Enum.Descriptor instead. func (PatternFlowIpv4DscpPhb_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{418, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{424, 0, 0} } type PatternFlowIpv4DscpEcn_Choice_Enum int32 @@ -10873,11 +11116,11 @@ func (x PatternFlowIpv4DscpEcn_Choice_Enum) String() string { } func (PatternFlowIpv4DscpEcn_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[198].Descriptor() + return file_otg_proto_enumTypes[201].Descriptor() } func (PatternFlowIpv4DscpEcn_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[198] + return &file_otg_proto_enumTypes[201] } func (x PatternFlowIpv4DscpEcn_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10886,7 +11129,7 @@ func (x PatternFlowIpv4DscpEcn_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv4DscpEcn_Choice_Enum.Descriptor instead. func (PatternFlowIpv4DscpEcn_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{421, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{427, 0, 0} } type PatternFlowIpv4TosPrecedence_Choice_Enum int32 @@ -10928,11 +11171,11 @@ func (x PatternFlowIpv4TosPrecedence_Choice_Enum) String() string { } func (PatternFlowIpv4TosPrecedence_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[199].Descriptor() + return file_otg_proto_enumTypes[202].Descriptor() } func (PatternFlowIpv4TosPrecedence_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[199] + return &file_otg_proto_enumTypes[202] } func (x PatternFlowIpv4TosPrecedence_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10941,7 +11184,7 @@ func (x PatternFlowIpv4TosPrecedence_Choice_Enum) Number() protoreflect.EnumNumb // Deprecated: Use PatternFlowIpv4TosPrecedence_Choice_Enum.Descriptor instead. func (PatternFlowIpv4TosPrecedence_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{424, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{430, 0, 0} } type PatternFlowIpv4TosDelay_Choice_Enum int32 @@ -10983,11 +11226,11 @@ func (x PatternFlowIpv4TosDelay_Choice_Enum) String() string { } func (PatternFlowIpv4TosDelay_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[200].Descriptor() + return file_otg_proto_enumTypes[203].Descriptor() } func (PatternFlowIpv4TosDelay_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[200] + return &file_otg_proto_enumTypes[203] } func (x PatternFlowIpv4TosDelay_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10996,7 +11239,7 @@ func (x PatternFlowIpv4TosDelay_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv4TosDelay_Choice_Enum.Descriptor instead. func (PatternFlowIpv4TosDelay_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{427, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{433, 0, 0} } type PatternFlowIpv4TosThroughput_Choice_Enum int32 @@ -11038,11 +11281,11 @@ func (x PatternFlowIpv4TosThroughput_Choice_Enum) String() string { } func (PatternFlowIpv4TosThroughput_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[201].Descriptor() + return file_otg_proto_enumTypes[204].Descriptor() } func (PatternFlowIpv4TosThroughput_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[201] + return &file_otg_proto_enumTypes[204] } func (x PatternFlowIpv4TosThroughput_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11051,7 +11294,7 @@ func (x PatternFlowIpv4TosThroughput_Choice_Enum) Number() protoreflect.EnumNumb // Deprecated: Use PatternFlowIpv4TosThroughput_Choice_Enum.Descriptor instead. func (PatternFlowIpv4TosThroughput_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{430, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{436, 0, 0} } type PatternFlowIpv4TosReliability_Choice_Enum int32 @@ -11093,11 +11336,11 @@ func (x PatternFlowIpv4TosReliability_Choice_Enum) String() string { } func (PatternFlowIpv4TosReliability_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[202].Descriptor() + return file_otg_proto_enumTypes[205].Descriptor() } func (PatternFlowIpv4TosReliability_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[202] + return &file_otg_proto_enumTypes[205] } func (x PatternFlowIpv4TosReliability_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11106,7 +11349,7 @@ func (x PatternFlowIpv4TosReliability_Choice_Enum) Number() protoreflect.EnumNum // Deprecated: Use PatternFlowIpv4TosReliability_Choice_Enum.Descriptor instead. func (PatternFlowIpv4TosReliability_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{433, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{439, 0, 0} } type PatternFlowIpv4TosMonetary_Choice_Enum int32 @@ -11148,11 +11391,11 @@ func (x PatternFlowIpv4TosMonetary_Choice_Enum) String() string { } func (PatternFlowIpv4TosMonetary_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[203].Descriptor() + return file_otg_proto_enumTypes[206].Descriptor() } func (PatternFlowIpv4TosMonetary_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[203] + return &file_otg_proto_enumTypes[206] } func (x PatternFlowIpv4TosMonetary_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11161,7 +11404,7 @@ func (x PatternFlowIpv4TosMonetary_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowIpv4TosMonetary_Choice_Enum.Descriptor instead. func (PatternFlowIpv4TosMonetary_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{436, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{442, 0, 0} } type PatternFlowIpv4TosUnused_Choice_Enum int32 @@ -11203,11 +11446,11 @@ func (x PatternFlowIpv4TosUnused_Choice_Enum) String() string { } func (PatternFlowIpv4TosUnused_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[204].Descriptor() + return file_otg_proto_enumTypes[207].Descriptor() } func (PatternFlowIpv4TosUnused_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[204] + return &file_otg_proto_enumTypes[207] } func (x PatternFlowIpv4TosUnused_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11216,7 +11459,7 @@ func (x PatternFlowIpv4TosUnused_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv4TosUnused_Choice_Enum.Descriptor instead. func (PatternFlowIpv4TosUnused_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{439, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{445, 0, 0} } type PatternFlowIpv6Version_Choice_Enum int32 @@ -11258,11 +11501,11 @@ func (x PatternFlowIpv6Version_Choice_Enum) String() string { } func (PatternFlowIpv6Version_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[205].Descriptor() + return file_otg_proto_enumTypes[208].Descriptor() } func (PatternFlowIpv6Version_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[205] + return &file_otg_proto_enumTypes[208] } func (x PatternFlowIpv6Version_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11271,7 +11514,7 @@ func (x PatternFlowIpv6Version_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv6Version_Choice_Enum.Descriptor instead. func (PatternFlowIpv6Version_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{442, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{448, 0, 0} } type PatternFlowIpv6TrafficClass_Choice_Enum int32 @@ -11313,11 +11556,11 @@ func (x PatternFlowIpv6TrafficClass_Choice_Enum) String() string { } func (PatternFlowIpv6TrafficClass_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[206].Descriptor() + return file_otg_proto_enumTypes[209].Descriptor() } func (PatternFlowIpv6TrafficClass_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[206] + return &file_otg_proto_enumTypes[209] } func (x PatternFlowIpv6TrafficClass_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11326,7 +11569,7 @@ func (x PatternFlowIpv6TrafficClass_Choice_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use PatternFlowIpv6TrafficClass_Choice_Enum.Descriptor instead. func (PatternFlowIpv6TrafficClass_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{445, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{451, 0, 0} } type PatternFlowIpv6FlowLabel_Choice_Enum int32 @@ -11368,11 +11611,11 @@ func (x PatternFlowIpv6FlowLabel_Choice_Enum) String() string { } func (PatternFlowIpv6FlowLabel_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[207].Descriptor() + return file_otg_proto_enumTypes[210].Descriptor() } func (PatternFlowIpv6FlowLabel_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[207] + return &file_otg_proto_enumTypes[210] } func (x PatternFlowIpv6FlowLabel_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11381,7 +11624,7 @@ func (x PatternFlowIpv6FlowLabel_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv6FlowLabel_Choice_Enum.Descriptor instead. func (PatternFlowIpv6FlowLabel_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{448, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{454, 0, 0} } type PatternFlowIpv6PayloadLength_Choice_Enum int32 @@ -11426,11 +11669,11 @@ func (x PatternFlowIpv6PayloadLength_Choice_Enum) String() string { } func (PatternFlowIpv6PayloadLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[208].Descriptor() + return file_otg_proto_enumTypes[211].Descriptor() } func (PatternFlowIpv6PayloadLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[208] + return &file_otg_proto_enumTypes[211] } func (x PatternFlowIpv6PayloadLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11439,7 +11682,7 @@ func (x PatternFlowIpv6PayloadLength_Choice_Enum) Number() protoreflect.EnumNumb // Deprecated: Use PatternFlowIpv6PayloadLength_Choice_Enum.Descriptor instead. func (PatternFlowIpv6PayloadLength_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{451, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{457, 0, 0} } type PatternFlowIpv6NextHeader_Choice_Enum int32 @@ -11484,11 +11727,11 @@ func (x PatternFlowIpv6NextHeader_Choice_Enum) String() string { } func (PatternFlowIpv6NextHeader_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[209].Descriptor() + return file_otg_proto_enumTypes[212].Descriptor() } func (PatternFlowIpv6NextHeader_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[209] + return &file_otg_proto_enumTypes[212] } func (x PatternFlowIpv6NextHeader_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11497,7 +11740,7 @@ func (x PatternFlowIpv6NextHeader_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowIpv6NextHeader_Choice_Enum.Descriptor instead. func (PatternFlowIpv6NextHeader_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{454, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{460, 0, 0} } type PatternFlowIpv6HopLimit_Choice_Enum int32 @@ -11539,11 +11782,11 @@ func (x PatternFlowIpv6HopLimit_Choice_Enum) String() string { } func (PatternFlowIpv6HopLimit_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[210].Descriptor() + return file_otg_proto_enumTypes[213].Descriptor() } func (PatternFlowIpv6HopLimit_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[210] + return &file_otg_proto_enumTypes[213] } func (x PatternFlowIpv6HopLimit_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11552,7 +11795,7 @@ func (x PatternFlowIpv6HopLimit_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv6HopLimit_Choice_Enum.Descriptor instead. func (PatternFlowIpv6HopLimit_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{457, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{463, 0, 0} } type PatternFlowIpv6Src_Choice_Enum int32 @@ -11594,11 +11837,11 @@ func (x PatternFlowIpv6Src_Choice_Enum) String() string { } func (PatternFlowIpv6Src_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[211].Descriptor() + return file_otg_proto_enumTypes[214].Descriptor() } func (PatternFlowIpv6Src_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[211] + return &file_otg_proto_enumTypes[214] } func (x PatternFlowIpv6Src_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11607,7 +11850,7 @@ func (x PatternFlowIpv6Src_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv6Src_Choice_Enum.Descriptor instead. func (PatternFlowIpv6Src_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{460, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{466, 0, 0} } type PatternFlowIpv6Dst_Choice_Enum int32 @@ -11649,11 +11892,11 @@ func (x PatternFlowIpv6Dst_Choice_Enum) String() string { } func (PatternFlowIpv6Dst_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[212].Descriptor() + return file_otg_proto_enumTypes[215].Descriptor() } func (PatternFlowIpv6Dst_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[212] + return &file_otg_proto_enumTypes[215] } func (x PatternFlowIpv6Dst_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11662,7 +11905,7 @@ func (x PatternFlowIpv6Dst_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIpv6Dst_Choice_Enum.Descriptor instead. func (PatternFlowIpv6Dst_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{463, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{469, 0, 0} } type PatternFlowPfcPauseDst_Choice_Enum int32 @@ -11704,11 +11947,11 @@ func (x PatternFlowPfcPauseDst_Choice_Enum) String() string { } func (PatternFlowPfcPauseDst_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[213].Descriptor() + return file_otg_proto_enumTypes[216].Descriptor() } func (PatternFlowPfcPauseDst_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[213] + return &file_otg_proto_enumTypes[216] } func (x PatternFlowPfcPauseDst_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11717,7 +11960,7 @@ func (x PatternFlowPfcPauseDst_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowPfcPauseDst_Choice_Enum.Descriptor instead. func (PatternFlowPfcPauseDst_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{466, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{472, 0, 0} } type PatternFlowPfcPauseSrc_Choice_Enum int32 @@ -11759,11 +12002,11 @@ func (x PatternFlowPfcPauseSrc_Choice_Enum) String() string { } func (PatternFlowPfcPauseSrc_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[214].Descriptor() + return file_otg_proto_enumTypes[217].Descriptor() } func (PatternFlowPfcPauseSrc_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[214] + return &file_otg_proto_enumTypes[217] } func (x PatternFlowPfcPauseSrc_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11772,7 +12015,7 @@ func (x PatternFlowPfcPauseSrc_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowPfcPauseSrc_Choice_Enum.Descriptor instead. func (PatternFlowPfcPauseSrc_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{469, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{475, 0, 0} } type PatternFlowPfcPauseEtherType_Choice_Enum int32 @@ -11814,11 +12057,11 @@ func (x PatternFlowPfcPauseEtherType_Choice_Enum) String() string { } func (PatternFlowPfcPauseEtherType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[215].Descriptor() + return file_otg_proto_enumTypes[218].Descriptor() } func (PatternFlowPfcPauseEtherType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[215] + return &file_otg_proto_enumTypes[218] } func (x PatternFlowPfcPauseEtherType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11827,7 +12070,7 @@ func (x PatternFlowPfcPauseEtherType_Choice_Enum) Number() protoreflect.EnumNumb // Deprecated: Use PatternFlowPfcPauseEtherType_Choice_Enum.Descriptor instead. func (PatternFlowPfcPauseEtherType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{472, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{478, 0, 0} } type PatternFlowPfcPauseControlOpCode_Choice_Enum int32 @@ -11869,11 +12112,11 @@ func (x PatternFlowPfcPauseControlOpCode_Choice_Enum) String() string { } func (PatternFlowPfcPauseControlOpCode_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[216].Descriptor() + return file_otg_proto_enumTypes[219].Descriptor() } func (PatternFlowPfcPauseControlOpCode_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[216] + return &file_otg_proto_enumTypes[219] } func (x PatternFlowPfcPauseControlOpCode_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11882,7 +12125,7 @@ func (x PatternFlowPfcPauseControlOpCode_Choice_Enum) Number() protoreflect.Enum // Deprecated: Use PatternFlowPfcPauseControlOpCode_Choice_Enum.Descriptor instead. func (PatternFlowPfcPauseControlOpCode_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{475, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{481, 0, 0} } type PatternFlowPfcPauseClassEnableVector_Choice_Enum int32 @@ -11924,11 +12167,11 @@ func (x PatternFlowPfcPauseClassEnableVector_Choice_Enum) String() string { } func (PatternFlowPfcPauseClassEnableVector_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[217].Descriptor() + return file_otg_proto_enumTypes[220].Descriptor() } func (PatternFlowPfcPauseClassEnableVector_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[217] + return &file_otg_proto_enumTypes[220] } func (x PatternFlowPfcPauseClassEnableVector_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11937,7 +12180,7 @@ func (x PatternFlowPfcPauseClassEnableVector_Choice_Enum) Number() protoreflect. // Deprecated: Use PatternFlowPfcPauseClassEnableVector_Choice_Enum.Descriptor instead. func (PatternFlowPfcPauseClassEnableVector_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{478, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{484, 0, 0} } type PatternFlowPfcPausePauseClass0_Choice_Enum int32 @@ -11979,11 +12222,11 @@ func (x PatternFlowPfcPausePauseClass0_Choice_Enum) String() string { } func (PatternFlowPfcPausePauseClass0_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[218].Descriptor() + return file_otg_proto_enumTypes[221].Descriptor() } func (PatternFlowPfcPausePauseClass0_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[218] + return &file_otg_proto_enumTypes[221] } func (x PatternFlowPfcPausePauseClass0_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11992,7 +12235,7 @@ func (x PatternFlowPfcPausePauseClass0_Choice_Enum) Number() protoreflect.EnumNu // Deprecated: Use PatternFlowPfcPausePauseClass0_Choice_Enum.Descriptor instead. func (PatternFlowPfcPausePauseClass0_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{481, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{487, 0, 0} } type PatternFlowPfcPausePauseClass1_Choice_Enum int32 @@ -12034,11 +12277,11 @@ func (x PatternFlowPfcPausePauseClass1_Choice_Enum) String() string { } func (PatternFlowPfcPausePauseClass1_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[219].Descriptor() + return file_otg_proto_enumTypes[222].Descriptor() } func (PatternFlowPfcPausePauseClass1_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[219] + return &file_otg_proto_enumTypes[222] } func (x PatternFlowPfcPausePauseClass1_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12047,7 +12290,7 @@ func (x PatternFlowPfcPausePauseClass1_Choice_Enum) Number() protoreflect.EnumNu // Deprecated: Use PatternFlowPfcPausePauseClass1_Choice_Enum.Descriptor instead. func (PatternFlowPfcPausePauseClass1_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{484, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{490, 0, 0} } type PatternFlowPfcPausePauseClass2_Choice_Enum int32 @@ -12089,11 +12332,11 @@ func (x PatternFlowPfcPausePauseClass2_Choice_Enum) String() string { } func (PatternFlowPfcPausePauseClass2_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[220].Descriptor() + return file_otg_proto_enumTypes[223].Descriptor() } func (PatternFlowPfcPausePauseClass2_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[220] + return &file_otg_proto_enumTypes[223] } func (x PatternFlowPfcPausePauseClass2_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12102,7 +12345,7 @@ func (x PatternFlowPfcPausePauseClass2_Choice_Enum) Number() protoreflect.EnumNu // Deprecated: Use PatternFlowPfcPausePauseClass2_Choice_Enum.Descriptor instead. func (PatternFlowPfcPausePauseClass2_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{487, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{493, 0, 0} } type PatternFlowPfcPausePauseClass3_Choice_Enum int32 @@ -12144,11 +12387,11 @@ func (x PatternFlowPfcPausePauseClass3_Choice_Enum) String() string { } func (PatternFlowPfcPausePauseClass3_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[221].Descriptor() + return file_otg_proto_enumTypes[224].Descriptor() } func (PatternFlowPfcPausePauseClass3_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[221] + return &file_otg_proto_enumTypes[224] } func (x PatternFlowPfcPausePauseClass3_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12157,7 +12400,7 @@ func (x PatternFlowPfcPausePauseClass3_Choice_Enum) Number() protoreflect.EnumNu // Deprecated: Use PatternFlowPfcPausePauseClass3_Choice_Enum.Descriptor instead. func (PatternFlowPfcPausePauseClass3_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{490, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{496, 0, 0} } type PatternFlowPfcPausePauseClass4_Choice_Enum int32 @@ -12199,11 +12442,11 @@ func (x PatternFlowPfcPausePauseClass4_Choice_Enum) String() string { } func (PatternFlowPfcPausePauseClass4_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[222].Descriptor() + return file_otg_proto_enumTypes[225].Descriptor() } func (PatternFlowPfcPausePauseClass4_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[222] + return &file_otg_proto_enumTypes[225] } func (x PatternFlowPfcPausePauseClass4_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12212,7 +12455,7 @@ func (x PatternFlowPfcPausePauseClass4_Choice_Enum) Number() protoreflect.EnumNu // Deprecated: Use PatternFlowPfcPausePauseClass4_Choice_Enum.Descriptor instead. func (PatternFlowPfcPausePauseClass4_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{493, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{499, 0, 0} } type PatternFlowPfcPausePauseClass5_Choice_Enum int32 @@ -12254,11 +12497,11 @@ func (x PatternFlowPfcPausePauseClass5_Choice_Enum) String() string { } func (PatternFlowPfcPausePauseClass5_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[223].Descriptor() + return file_otg_proto_enumTypes[226].Descriptor() } func (PatternFlowPfcPausePauseClass5_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[223] + return &file_otg_proto_enumTypes[226] } func (x PatternFlowPfcPausePauseClass5_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12267,7 +12510,7 @@ func (x PatternFlowPfcPausePauseClass5_Choice_Enum) Number() protoreflect.EnumNu // Deprecated: Use PatternFlowPfcPausePauseClass5_Choice_Enum.Descriptor instead. func (PatternFlowPfcPausePauseClass5_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{496, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{502, 0, 0} } type PatternFlowPfcPausePauseClass6_Choice_Enum int32 @@ -12309,11 +12552,11 @@ func (x PatternFlowPfcPausePauseClass6_Choice_Enum) String() string { } func (PatternFlowPfcPausePauseClass6_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[224].Descriptor() + return file_otg_proto_enumTypes[227].Descriptor() } func (PatternFlowPfcPausePauseClass6_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[224] + return &file_otg_proto_enumTypes[227] } func (x PatternFlowPfcPausePauseClass6_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12322,7 +12565,7 @@ func (x PatternFlowPfcPausePauseClass6_Choice_Enum) Number() protoreflect.EnumNu // Deprecated: Use PatternFlowPfcPausePauseClass6_Choice_Enum.Descriptor instead. func (PatternFlowPfcPausePauseClass6_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{499, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{505, 0, 0} } type PatternFlowPfcPausePauseClass7_Choice_Enum int32 @@ -12364,11 +12607,11 @@ func (x PatternFlowPfcPausePauseClass7_Choice_Enum) String() string { } func (PatternFlowPfcPausePauseClass7_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[225].Descriptor() + return file_otg_proto_enumTypes[228].Descriptor() } func (PatternFlowPfcPausePauseClass7_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[225] + return &file_otg_proto_enumTypes[228] } func (x PatternFlowPfcPausePauseClass7_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12377,7 +12620,7 @@ func (x PatternFlowPfcPausePauseClass7_Choice_Enum) Number() protoreflect.EnumNu // Deprecated: Use PatternFlowPfcPausePauseClass7_Choice_Enum.Descriptor instead. func (PatternFlowPfcPausePauseClass7_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{502, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{508, 0, 0} } type PatternFlowEthernetPauseDst_Choice_Enum int32 @@ -12419,11 +12662,11 @@ func (x PatternFlowEthernetPauseDst_Choice_Enum) String() string { } func (PatternFlowEthernetPauseDst_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[226].Descriptor() + return file_otg_proto_enumTypes[229].Descriptor() } func (PatternFlowEthernetPauseDst_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[226] + return &file_otg_proto_enumTypes[229] } func (x PatternFlowEthernetPauseDst_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12432,7 +12675,7 @@ func (x PatternFlowEthernetPauseDst_Choice_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use PatternFlowEthernetPauseDst_Choice_Enum.Descriptor instead. func (PatternFlowEthernetPauseDst_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{505, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{511, 0, 0} } type PatternFlowEthernetPauseSrc_Choice_Enum int32 @@ -12474,11 +12717,11 @@ func (x PatternFlowEthernetPauseSrc_Choice_Enum) String() string { } func (PatternFlowEthernetPauseSrc_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[227].Descriptor() + return file_otg_proto_enumTypes[230].Descriptor() } func (PatternFlowEthernetPauseSrc_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[227] + return &file_otg_proto_enumTypes[230] } func (x PatternFlowEthernetPauseSrc_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12487,7 +12730,7 @@ func (x PatternFlowEthernetPauseSrc_Choice_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use PatternFlowEthernetPauseSrc_Choice_Enum.Descriptor instead. func (PatternFlowEthernetPauseSrc_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{508, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{514, 0, 0} } type PatternFlowEthernetPauseEtherType_Choice_Enum int32 @@ -12529,11 +12772,11 @@ func (x PatternFlowEthernetPauseEtherType_Choice_Enum) String() string { } func (PatternFlowEthernetPauseEtherType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[228].Descriptor() + return file_otg_proto_enumTypes[231].Descriptor() } func (PatternFlowEthernetPauseEtherType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[228] + return &file_otg_proto_enumTypes[231] } func (x PatternFlowEthernetPauseEtherType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12542,7 +12785,7 @@ func (x PatternFlowEthernetPauseEtherType_Choice_Enum) Number() protoreflect.Enu // Deprecated: Use PatternFlowEthernetPauseEtherType_Choice_Enum.Descriptor instead. func (PatternFlowEthernetPauseEtherType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{511, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{517, 0, 0} } type PatternFlowEthernetPauseControlOpCode_Choice_Enum int32 @@ -12584,11 +12827,11 @@ func (x PatternFlowEthernetPauseControlOpCode_Choice_Enum) String() string { } func (PatternFlowEthernetPauseControlOpCode_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[229].Descriptor() + return file_otg_proto_enumTypes[232].Descriptor() } func (PatternFlowEthernetPauseControlOpCode_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[229] + return &file_otg_proto_enumTypes[232] } func (x PatternFlowEthernetPauseControlOpCode_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12597,7 +12840,7 @@ func (x PatternFlowEthernetPauseControlOpCode_Choice_Enum) Number() protoreflect // Deprecated: Use PatternFlowEthernetPauseControlOpCode_Choice_Enum.Descriptor instead. func (PatternFlowEthernetPauseControlOpCode_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{514, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{520, 0, 0} } type PatternFlowEthernetPauseTime_Choice_Enum int32 @@ -12639,11 +12882,11 @@ func (x PatternFlowEthernetPauseTime_Choice_Enum) String() string { } func (PatternFlowEthernetPauseTime_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[230].Descriptor() + return file_otg_proto_enumTypes[233].Descriptor() } func (PatternFlowEthernetPauseTime_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[230] + return &file_otg_proto_enumTypes[233] } func (x PatternFlowEthernetPauseTime_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12652,7 +12895,7 @@ func (x PatternFlowEthernetPauseTime_Choice_Enum) Number() protoreflect.EnumNumb // Deprecated: Use PatternFlowEthernetPauseTime_Choice_Enum.Descriptor instead. func (PatternFlowEthernetPauseTime_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{517, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{523, 0, 0} } type PatternFlowTcpSrcPort_Choice_Enum int32 @@ -12694,11 +12937,11 @@ func (x PatternFlowTcpSrcPort_Choice_Enum) String() string { } func (PatternFlowTcpSrcPort_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[231].Descriptor() + return file_otg_proto_enumTypes[234].Descriptor() } func (PatternFlowTcpSrcPort_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[231] + return &file_otg_proto_enumTypes[234] } func (x PatternFlowTcpSrcPort_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12707,7 +12950,7 @@ func (x PatternFlowTcpSrcPort_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpSrcPort_Choice_Enum.Descriptor instead. func (PatternFlowTcpSrcPort_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{520, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{526, 0, 0} } type PatternFlowTcpDstPort_Choice_Enum int32 @@ -12749,11 +12992,11 @@ func (x PatternFlowTcpDstPort_Choice_Enum) String() string { } func (PatternFlowTcpDstPort_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[232].Descriptor() + return file_otg_proto_enumTypes[235].Descriptor() } func (PatternFlowTcpDstPort_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[232] + return &file_otg_proto_enumTypes[235] } func (x PatternFlowTcpDstPort_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12762,7 +13005,7 @@ func (x PatternFlowTcpDstPort_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpDstPort_Choice_Enum.Descriptor instead. func (PatternFlowTcpDstPort_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{523, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{529, 0, 0} } type PatternFlowTcpSeqNum_Choice_Enum int32 @@ -12804,11 +13047,11 @@ func (x PatternFlowTcpSeqNum_Choice_Enum) String() string { } func (PatternFlowTcpSeqNum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[233].Descriptor() + return file_otg_proto_enumTypes[236].Descriptor() } func (PatternFlowTcpSeqNum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[233] + return &file_otg_proto_enumTypes[236] } func (x PatternFlowTcpSeqNum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12817,7 +13060,7 @@ func (x PatternFlowTcpSeqNum_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpSeqNum_Choice_Enum.Descriptor instead. func (PatternFlowTcpSeqNum_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{526, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{532, 0, 0} } type PatternFlowTcpAckNum_Choice_Enum int32 @@ -12859,11 +13102,11 @@ func (x PatternFlowTcpAckNum_Choice_Enum) String() string { } func (PatternFlowTcpAckNum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[234].Descriptor() + return file_otg_proto_enumTypes[237].Descriptor() } func (PatternFlowTcpAckNum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[234] + return &file_otg_proto_enumTypes[237] } func (x PatternFlowTcpAckNum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12872,7 +13115,7 @@ func (x PatternFlowTcpAckNum_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpAckNum_Choice_Enum.Descriptor instead. func (PatternFlowTcpAckNum_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{529, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{535, 0, 0} } type PatternFlowTcpDataOffset_Choice_Enum int32 @@ -12914,11 +13157,11 @@ func (x PatternFlowTcpDataOffset_Choice_Enum) String() string { } func (PatternFlowTcpDataOffset_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[235].Descriptor() + return file_otg_proto_enumTypes[238].Descriptor() } func (PatternFlowTcpDataOffset_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[235] + return &file_otg_proto_enumTypes[238] } func (x PatternFlowTcpDataOffset_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12927,7 +13170,7 @@ func (x PatternFlowTcpDataOffset_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpDataOffset_Choice_Enum.Descriptor instead. func (PatternFlowTcpDataOffset_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{532, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{538, 0, 0} } type PatternFlowTcpEcnNs_Choice_Enum int32 @@ -12969,11 +13212,11 @@ func (x PatternFlowTcpEcnNs_Choice_Enum) String() string { } func (PatternFlowTcpEcnNs_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[236].Descriptor() + return file_otg_proto_enumTypes[239].Descriptor() } func (PatternFlowTcpEcnNs_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[236] + return &file_otg_proto_enumTypes[239] } func (x PatternFlowTcpEcnNs_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12982,7 +13225,7 @@ func (x PatternFlowTcpEcnNs_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpEcnNs_Choice_Enum.Descriptor instead. func (PatternFlowTcpEcnNs_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{535, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{541, 0, 0} } type PatternFlowTcpEcnCwr_Choice_Enum int32 @@ -13024,11 +13267,11 @@ func (x PatternFlowTcpEcnCwr_Choice_Enum) String() string { } func (PatternFlowTcpEcnCwr_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[237].Descriptor() + return file_otg_proto_enumTypes[240].Descriptor() } func (PatternFlowTcpEcnCwr_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[237] + return &file_otg_proto_enumTypes[240] } func (x PatternFlowTcpEcnCwr_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13037,7 +13280,7 @@ func (x PatternFlowTcpEcnCwr_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpEcnCwr_Choice_Enum.Descriptor instead. func (PatternFlowTcpEcnCwr_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{538, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{544, 0, 0} } type PatternFlowTcpEcnEcho_Choice_Enum int32 @@ -13079,11 +13322,11 @@ func (x PatternFlowTcpEcnEcho_Choice_Enum) String() string { } func (PatternFlowTcpEcnEcho_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[238].Descriptor() + return file_otg_proto_enumTypes[241].Descriptor() } func (PatternFlowTcpEcnEcho_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[238] + return &file_otg_proto_enumTypes[241] } func (x PatternFlowTcpEcnEcho_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13092,7 +13335,7 @@ func (x PatternFlowTcpEcnEcho_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpEcnEcho_Choice_Enum.Descriptor instead. func (PatternFlowTcpEcnEcho_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{541, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{547, 0, 0} } type PatternFlowTcpCtlUrg_Choice_Enum int32 @@ -13134,11 +13377,11 @@ func (x PatternFlowTcpCtlUrg_Choice_Enum) String() string { } func (PatternFlowTcpCtlUrg_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[239].Descriptor() + return file_otg_proto_enumTypes[242].Descriptor() } func (PatternFlowTcpCtlUrg_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[239] + return &file_otg_proto_enumTypes[242] } func (x PatternFlowTcpCtlUrg_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13147,7 +13390,7 @@ func (x PatternFlowTcpCtlUrg_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpCtlUrg_Choice_Enum.Descriptor instead. func (PatternFlowTcpCtlUrg_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{544, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{550, 0, 0} } type PatternFlowTcpCtlAck_Choice_Enum int32 @@ -13189,11 +13432,11 @@ func (x PatternFlowTcpCtlAck_Choice_Enum) String() string { } func (PatternFlowTcpCtlAck_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[240].Descriptor() + return file_otg_proto_enumTypes[243].Descriptor() } func (PatternFlowTcpCtlAck_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[240] + return &file_otg_proto_enumTypes[243] } func (x PatternFlowTcpCtlAck_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13202,7 +13445,7 @@ func (x PatternFlowTcpCtlAck_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpCtlAck_Choice_Enum.Descriptor instead. func (PatternFlowTcpCtlAck_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{547, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{553, 0, 0} } type PatternFlowTcpCtlPsh_Choice_Enum int32 @@ -13244,11 +13487,11 @@ func (x PatternFlowTcpCtlPsh_Choice_Enum) String() string { } func (PatternFlowTcpCtlPsh_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[241].Descriptor() + return file_otg_proto_enumTypes[244].Descriptor() } func (PatternFlowTcpCtlPsh_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[241] + return &file_otg_proto_enumTypes[244] } func (x PatternFlowTcpCtlPsh_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13257,7 +13500,7 @@ func (x PatternFlowTcpCtlPsh_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpCtlPsh_Choice_Enum.Descriptor instead. func (PatternFlowTcpCtlPsh_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{550, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{556, 0, 0} } type PatternFlowTcpCtlRst_Choice_Enum int32 @@ -13299,11 +13542,11 @@ func (x PatternFlowTcpCtlRst_Choice_Enum) String() string { } func (PatternFlowTcpCtlRst_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[242].Descriptor() + return file_otg_proto_enumTypes[245].Descriptor() } func (PatternFlowTcpCtlRst_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[242] + return &file_otg_proto_enumTypes[245] } func (x PatternFlowTcpCtlRst_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13312,7 +13555,7 @@ func (x PatternFlowTcpCtlRst_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpCtlRst_Choice_Enum.Descriptor instead. func (PatternFlowTcpCtlRst_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{553, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{559, 0, 0} } type PatternFlowTcpCtlSyn_Choice_Enum int32 @@ -13354,11 +13597,11 @@ func (x PatternFlowTcpCtlSyn_Choice_Enum) String() string { } func (PatternFlowTcpCtlSyn_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[243].Descriptor() + return file_otg_proto_enumTypes[246].Descriptor() } func (PatternFlowTcpCtlSyn_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[243] + return &file_otg_proto_enumTypes[246] } func (x PatternFlowTcpCtlSyn_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13367,7 +13610,7 @@ func (x PatternFlowTcpCtlSyn_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpCtlSyn_Choice_Enum.Descriptor instead. func (PatternFlowTcpCtlSyn_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{556, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{562, 0, 0} } type PatternFlowTcpCtlFin_Choice_Enum int32 @@ -13409,11 +13652,11 @@ func (x PatternFlowTcpCtlFin_Choice_Enum) String() string { } func (PatternFlowTcpCtlFin_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[244].Descriptor() + return file_otg_proto_enumTypes[247].Descriptor() } func (PatternFlowTcpCtlFin_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[244] + return &file_otg_proto_enumTypes[247] } func (x PatternFlowTcpCtlFin_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13422,7 +13665,7 @@ func (x PatternFlowTcpCtlFin_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpCtlFin_Choice_Enum.Descriptor instead. func (PatternFlowTcpCtlFin_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{559, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{565, 0, 0} } type PatternFlowTcpWindow_Choice_Enum int32 @@ -13464,11 +13707,11 @@ func (x PatternFlowTcpWindow_Choice_Enum) String() string { } func (PatternFlowTcpWindow_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[245].Descriptor() + return file_otg_proto_enumTypes[248].Descriptor() } func (PatternFlowTcpWindow_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[245] + return &file_otg_proto_enumTypes[248] } func (x PatternFlowTcpWindow_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13477,7 +13720,7 @@ func (x PatternFlowTcpWindow_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpWindow_Choice_Enum.Descriptor instead. func (PatternFlowTcpWindow_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{562, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{568, 0, 0} } type PatternFlowUdpSrcPort_Choice_Enum int32 @@ -13519,11 +13762,11 @@ func (x PatternFlowUdpSrcPort_Choice_Enum) String() string { } func (PatternFlowUdpSrcPort_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[246].Descriptor() + return file_otg_proto_enumTypes[249].Descriptor() } func (PatternFlowUdpSrcPort_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[246] + return &file_otg_proto_enumTypes[249] } func (x PatternFlowUdpSrcPort_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13532,7 +13775,7 @@ func (x PatternFlowUdpSrcPort_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowUdpSrcPort_Choice_Enum.Descriptor instead. func (PatternFlowUdpSrcPort_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{565, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{571, 0, 0} } type PatternFlowUdpDstPort_Choice_Enum int32 @@ -13574,11 +13817,11 @@ func (x PatternFlowUdpDstPort_Choice_Enum) String() string { } func (PatternFlowUdpDstPort_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[247].Descriptor() + return file_otg_proto_enumTypes[250].Descriptor() } func (PatternFlowUdpDstPort_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[247] + return &file_otg_proto_enumTypes[250] } func (x PatternFlowUdpDstPort_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13587,7 +13830,7 @@ func (x PatternFlowUdpDstPort_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowUdpDstPort_Choice_Enum.Descriptor instead. func (PatternFlowUdpDstPort_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{568, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{574, 0, 0} } type PatternFlowUdpLength_Choice_Enum int32 @@ -13629,11 +13872,11 @@ func (x PatternFlowUdpLength_Choice_Enum) String() string { } func (PatternFlowUdpLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[248].Descriptor() + return file_otg_proto_enumTypes[251].Descriptor() } func (PatternFlowUdpLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[248] + return &file_otg_proto_enumTypes[251] } func (x PatternFlowUdpLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13642,7 +13885,7 @@ func (x PatternFlowUdpLength_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowUdpLength_Choice_Enum.Descriptor instead. func (PatternFlowUdpLength_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{571, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{577, 0, 0} } type PatternFlowUdpChecksum_Choice_Enum int32 @@ -13678,11 +13921,11 @@ func (x PatternFlowUdpChecksum_Choice_Enum) String() string { } func (PatternFlowUdpChecksum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[249].Descriptor() + return file_otg_proto_enumTypes[252].Descriptor() } func (PatternFlowUdpChecksum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[249] + return &file_otg_proto_enumTypes[252] } func (x PatternFlowUdpChecksum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13691,7 +13934,7 @@ func (x PatternFlowUdpChecksum_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowUdpChecksum_Choice_Enum.Descriptor instead. func (PatternFlowUdpChecksum_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{572, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{578, 0, 0} } type PatternFlowUdpChecksum_Generated_Enum int32 @@ -13727,11 +13970,11 @@ func (x PatternFlowUdpChecksum_Generated_Enum) String() string { } func (PatternFlowUdpChecksum_Generated_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[250].Descriptor() + return file_otg_proto_enumTypes[253].Descriptor() } func (PatternFlowUdpChecksum_Generated_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[250] + return &file_otg_proto_enumTypes[253] } func (x PatternFlowUdpChecksum_Generated_Enum) Number() protoreflect.EnumNumber { @@ -13740,7 +13983,7 @@ func (x PatternFlowUdpChecksum_Generated_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowUdpChecksum_Generated_Enum.Descriptor instead. func (PatternFlowUdpChecksum_Generated_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{572, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{578, 1, 0} } type PatternFlowGreChecksumPresent_Choice_Enum int32 @@ -13782,11 +14025,11 @@ func (x PatternFlowGreChecksumPresent_Choice_Enum) String() string { } func (PatternFlowGreChecksumPresent_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[251].Descriptor() + return file_otg_proto_enumTypes[254].Descriptor() } func (PatternFlowGreChecksumPresent_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[251] + return &file_otg_proto_enumTypes[254] } func (x PatternFlowGreChecksumPresent_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13795,7 +14038,7 @@ func (x PatternFlowGreChecksumPresent_Choice_Enum) Number() protoreflect.EnumNum // Deprecated: Use PatternFlowGreChecksumPresent_Choice_Enum.Descriptor instead. func (PatternFlowGreChecksumPresent_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{575, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{581, 0, 0} } type PatternFlowGreReserved0_Choice_Enum int32 @@ -13837,11 +14080,11 @@ func (x PatternFlowGreReserved0_Choice_Enum) String() string { } func (PatternFlowGreReserved0_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[252].Descriptor() + return file_otg_proto_enumTypes[255].Descriptor() } func (PatternFlowGreReserved0_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[252] + return &file_otg_proto_enumTypes[255] } func (x PatternFlowGreReserved0_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13850,7 +14093,7 @@ func (x PatternFlowGreReserved0_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGreReserved0_Choice_Enum.Descriptor instead. func (PatternFlowGreReserved0_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{578, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{584, 0, 0} } type PatternFlowGreVersion_Choice_Enum int32 @@ -13892,11 +14135,11 @@ func (x PatternFlowGreVersion_Choice_Enum) String() string { } func (PatternFlowGreVersion_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[253].Descriptor() + return file_otg_proto_enumTypes[256].Descriptor() } func (PatternFlowGreVersion_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[253] + return &file_otg_proto_enumTypes[256] } func (x PatternFlowGreVersion_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13905,7 +14148,7 @@ func (x PatternFlowGreVersion_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGreVersion_Choice_Enum.Descriptor instead. func (PatternFlowGreVersion_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{581, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{587, 0, 0} } type PatternFlowGreProtocol_Choice_Enum int32 @@ -13947,11 +14190,11 @@ func (x PatternFlowGreProtocol_Choice_Enum) String() string { } func (PatternFlowGreProtocol_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[254].Descriptor() + return file_otg_proto_enumTypes[257].Descriptor() } func (PatternFlowGreProtocol_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[254] + return &file_otg_proto_enumTypes[257] } func (x PatternFlowGreProtocol_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13960,7 +14203,7 @@ func (x PatternFlowGreProtocol_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGreProtocol_Choice_Enum.Descriptor instead. func (PatternFlowGreProtocol_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{584, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{590, 0, 0} } type PatternFlowGreChecksum_Choice_Enum int32 @@ -13996,11 +14239,11 @@ func (x PatternFlowGreChecksum_Choice_Enum) String() string { } func (PatternFlowGreChecksum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[255].Descriptor() + return file_otg_proto_enumTypes[258].Descriptor() } func (PatternFlowGreChecksum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[255] + return &file_otg_proto_enumTypes[258] } func (x PatternFlowGreChecksum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14009,7 +14252,7 @@ func (x PatternFlowGreChecksum_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGreChecksum_Choice_Enum.Descriptor instead. func (PatternFlowGreChecksum_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{585, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{591, 0, 0} } type PatternFlowGreChecksum_Generated_Enum int32 @@ -14045,11 +14288,11 @@ func (x PatternFlowGreChecksum_Generated_Enum) String() string { } func (PatternFlowGreChecksum_Generated_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[256].Descriptor() + return file_otg_proto_enumTypes[259].Descriptor() } func (PatternFlowGreChecksum_Generated_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[256] + return &file_otg_proto_enumTypes[259] } func (x PatternFlowGreChecksum_Generated_Enum) Number() protoreflect.EnumNumber { @@ -14058,7 +14301,7 @@ func (x PatternFlowGreChecksum_Generated_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowGreChecksum_Generated_Enum.Descriptor instead. func (PatternFlowGreChecksum_Generated_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{585, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{591, 1, 0} } type PatternFlowGreReserved1_Choice_Enum int32 @@ -14100,11 +14343,11 @@ func (x PatternFlowGreReserved1_Choice_Enum) String() string { } func (PatternFlowGreReserved1_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[257].Descriptor() + return file_otg_proto_enumTypes[260].Descriptor() } func (PatternFlowGreReserved1_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[257] + return &file_otg_proto_enumTypes[260] } func (x PatternFlowGreReserved1_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14113,7 +14356,7 @@ func (x PatternFlowGreReserved1_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGreReserved1_Choice_Enum.Descriptor instead. func (PatternFlowGreReserved1_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{588, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{594, 0, 0} } type PatternFlowGtpv1Version_Choice_Enum int32 @@ -14155,11 +14398,11 @@ func (x PatternFlowGtpv1Version_Choice_Enum) String() string { } func (PatternFlowGtpv1Version_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[258].Descriptor() + return file_otg_proto_enumTypes[261].Descriptor() } func (PatternFlowGtpv1Version_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[258] + return &file_otg_proto_enumTypes[261] } func (x PatternFlowGtpv1Version_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14168,7 +14411,7 @@ func (x PatternFlowGtpv1Version_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGtpv1Version_Choice_Enum.Descriptor instead. func (PatternFlowGtpv1Version_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{591, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{597, 0, 0} } type PatternFlowGtpv1ProtocolType_Choice_Enum int32 @@ -14210,11 +14453,11 @@ func (x PatternFlowGtpv1ProtocolType_Choice_Enum) String() string { } func (PatternFlowGtpv1ProtocolType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[259].Descriptor() + return file_otg_proto_enumTypes[262].Descriptor() } func (PatternFlowGtpv1ProtocolType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[259] + return &file_otg_proto_enumTypes[262] } func (x PatternFlowGtpv1ProtocolType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14223,7 +14466,7 @@ func (x PatternFlowGtpv1ProtocolType_Choice_Enum) Number() protoreflect.EnumNumb // Deprecated: Use PatternFlowGtpv1ProtocolType_Choice_Enum.Descriptor instead. func (PatternFlowGtpv1ProtocolType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{594, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{600, 0, 0} } type PatternFlowGtpv1Reserved_Choice_Enum int32 @@ -14265,11 +14508,11 @@ func (x PatternFlowGtpv1Reserved_Choice_Enum) String() string { } func (PatternFlowGtpv1Reserved_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[260].Descriptor() + return file_otg_proto_enumTypes[263].Descriptor() } func (PatternFlowGtpv1Reserved_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[260] + return &file_otg_proto_enumTypes[263] } func (x PatternFlowGtpv1Reserved_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14278,7 +14521,7 @@ func (x PatternFlowGtpv1Reserved_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGtpv1Reserved_Choice_Enum.Descriptor instead. func (PatternFlowGtpv1Reserved_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{597, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{603, 0, 0} } type PatternFlowGtpv1EFlag_Choice_Enum int32 @@ -14320,11 +14563,11 @@ func (x PatternFlowGtpv1EFlag_Choice_Enum) String() string { } func (PatternFlowGtpv1EFlag_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[261].Descriptor() + return file_otg_proto_enumTypes[264].Descriptor() } func (PatternFlowGtpv1EFlag_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[261] + return &file_otg_proto_enumTypes[264] } func (x PatternFlowGtpv1EFlag_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14333,7 +14576,7 @@ func (x PatternFlowGtpv1EFlag_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGtpv1EFlag_Choice_Enum.Descriptor instead. func (PatternFlowGtpv1EFlag_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{600, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{606, 0, 0} } type PatternFlowGtpv1SFlag_Choice_Enum int32 @@ -14375,11 +14618,11 @@ func (x PatternFlowGtpv1SFlag_Choice_Enum) String() string { } func (PatternFlowGtpv1SFlag_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[262].Descriptor() + return file_otg_proto_enumTypes[265].Descriptor() } func (PatternFlowGtpv1SFlag_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[262] + return &file_otg_proto_enumTypes[265] } func (x PatternFlowGtpv1SFlag_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14388,7 +14631,7 @@ func (x PatternFlowGtpv1SFlag_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGtpv1SFlag_Choice_Enum.Descriptor instead. func (PatternFlowGtpv1SFlag_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{603, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{609, 0, 0} } type PatternFlowGtpv1PnFlag_Choice_Enum int32 @@ -14430,11 +14673,11 @@ func (x PatternFlowGtpv1PnFlag_Choice_Enum) String() string { } func (PatternFlowGtpv1PnFlag_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[263].Descriptor() + return file_otg_proto_enumTypes[266].Descriptor() } func (PatternFlowGtpv1PnFlag_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[263] + return &file_otg_proto_enumTypes[266] } func (x PatternFlowGtpv1PnFlag_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14443,7 +14686,7 @@ func (x PatternFlowGtpv1PnFlag_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGtpv1PnFlag_Choice_Enum.Descriptor instead. func (PatternFlowGtpv1PnFlag_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{606, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{612, 0, 0} } type PatternFlowGtpv1MessageType_Choice_Enum int32 @@ -14485,11 +14728,11 @@ func (x PatternFlowGtpv1MessageType_Choice_Enum) String() string { } func (PatternFlowGtpv1MessageType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[264].Descriptor() + return file_otg_proto_enumTypes[267].Descriptor() } func (PatternFlowGtpv1MessageType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[264] + return &file_otg_proto_enumTypes[267] } func (x PatternFlowGtpv1MessageType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14498,7 +14741,7 @@ func (x PatternFlowGtpv1MessageType_Choice_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use PatternFlowGtpv1MessageType_Choice_Enum.Descriptor instead. func (PatternFlowGtpv1MessageType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{609, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{615, 0, 0} } type PatternFlowGtpv1MessageLength_Choice_Enum int32 @@ -14540,11 +14783,11 @@ func (x PatternFlowGtpv1MessageLength_Choice_Enum) String() string { } func (PatternFlowGtpv1MessageLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[265].Descriptor() + return file_otg_proto_enumTypes[268].Descriptor() } func (PatternFlowGtpv1MessageLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[265] + return &file_otg_proto_enumTypes[268] } func (x PatternFlowGtpv1MessageLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14553,7 +14796,7 @@ func (x PatternFlowGtpv1MessageLength_Choice_Enum) Number() protoreflect.EnumNum // Deprecated: Use PatternFlowGtpv1MessageLength_Choice_Enum.Descriptor instead. func (PatternFlowGtpv1MessageLength_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{612, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{618, 0, 0} } type PatternFlowGtpv1Teid_Choice_Enum int32 @@ -14595,11 +14838,11 @@ func (x PatternFlowGtpv1Teid_Choice_Enum) String() string { } func (PatternFlowGtpv1Teid_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[266].Descriptor() + return file_otg_proto_enumTypes[269].Descriptor() } func (PatternFlowGtpv1Teid_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[266] + return &file_otg_proto_enumTypes[269] } func (x PatternFlowGtpv1Teid_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14608,7 +14851,7 @@ func (x PatternFlowGtpv1Teid_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGtpv1Teid_Choice_Enum.Descriptor instead. func (PatternFlowGtpv1Teid_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{615, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{621, 0, 0} } type PatternFlowGtpv1SquenceNumber_Choice_Enum int32 @@ -14650,11 +14893,11 @@ func (x PatternFlowGtpv1SquenceNumber_Choice_Enum) String() string { } func (PatternFlowGtpv1SquenceNumber_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[267].Descriptor() + return file_otg_proto_enumTypes[270].Descriptor() } func (PatternFlowGtpv1SquenceNumber_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[267] + return &file_otg_proto_enumTypes[270] } func (x PatternFlowGtpv1SquenceNumber_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14663,7 +14906,7 @@ func (x PatternFlowGtpv1SquenceNumber_Choice_Enum) Number() protoreflect.EnumNum // Deprecated: Use PatternFlowGtpv1SquenceNumber_Choice_Enum.Descriptor instead. func (PatternFlowGtpv1SquenceNumber_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{618, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{624, 0, 0} } type PatternFlowGtpv1NPduNumber_Choice_Enum int32 @@ -14705,11 +14948,11 @@ func (x PatternFlowGtpv1NPduNumber_Choice_Enum) String() string { } func (PatternFlowGtpv1NPduNumber_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[268].Descriptor() + return file_otg_proto_enumTypes[271].Descriptor() } func (PatternFlowGtpv1NPduNumber_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[268] + return &file_otg_proto_enumTypes[271] } func (x PatternFlowGtpv1NPduNumber_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14718,7 +14961,7 @@ func (x PatternFlowGtpv1NPduNumber_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowGtpv1NPduNumber_Choice_Enum.Descriptor instead. func (PatternFlowGtpv1NPduNumber_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{621, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{627, 0, 0} } type PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum int32 @@ -14760,11 +15003,11 @@ func (x PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum) String() string { } func (PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[269].Descriptor() + return file_otg_proto_enumTypes[272].Descriptor() } func (PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[269] + return &file_otg_proto_enumTypes[272] } func (x PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14773,7 +15016,7 @@ func (x PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum) Number() protorefle // Deprecated: Use PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum.Descriptor instead. func (PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{624, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{630, 0, 0} } type PatternFlowGtpExtensionExtensionLength_Choice_Enum int32 @@ -14815,11 +15058,11 @@ func (x PatternFlowGtpExtensionExtensionLength_Choice_Enum) String() string { } func (PatternFlowGtpExtensionExtensionLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[270].Descriptor() + return file_otg_proto_enumTypes[273].Descriptor() } func (PatternFlowGtpExtensionExtensionLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[270] + return &file_otg_proto_enumTypes[273] } func (x PatternFlowGtpExtensionExtensionLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14828,7 +15071,7 @@ func (x PatternFlowGtpExtensionExtensionLength_Choice_Enum) Number() protoreflec // Deprecated: Use PatternFlowGtpExtensionExtensionLength_Choice_Enum.Descriptor instead. func (PatternFlowGtpExtensionExtensionLength_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{627, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{633, 0, 0} } type PatternFlowGtpExtensionContents_Choice_Enum int32 @@ -14870,11 +15113,11 @@ func (x PatternFlowGtpExtensionContents_Choice_Enum) String() string { } func (PatternFlowGtpExtensionContents_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[271].Descriptor() + return file_otg_proto_enumTypes[274].Descriptor() } func (PatternFlowGtpExtensionContents_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[271] + return &file_otg_proto_enumTypes[274] } func (x PatternFlowGtpExtensionContents_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14883,7 +15126,7 @@ func (x PatternFlowGtpExtensionContents_Choice_Enum) Number() protoreflect.EnumN // Deprecated: Use PatternFlowGtpExtensionContents_Choice_Enum.Descriptor instead. func (PatternFlowGtpExtensionContents_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{630, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{636, 0, 0} } type PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum int32 @@ -14925,11 +15168,11 @@ func (x PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum) String() string } func (PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[272].Descriptor() + return file_otg_proto_enumTypes[275].Descriptor() } func (PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[272] + return &file_otg_proto_enumTypes[275] } func (x PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14938,7 +15181,7 @@ func (x PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum) Number() protore // Deprecated: Use PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum.Descriptor instead. func (PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{633, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{639, 0, 0} } type PatternFlowGtpv2Version_Choice_Enum int32 @@ -14980,11 +15223,11 @@ func (x PatternFlowGtpv2Version_Choice_Enum) String() string { } func (PatternFlowGtpv2Version_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[273].Descriptor() + return file_otg_proto_enumTypes[276].Descriptor() } func (PatternFlowGtpv2Version_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[273] + return &file_otg_proto_enumTypes[276] } func (x PatternFlowGtpv2Version_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14993,7 +15236,7 @@ func (x PatternFlowGtpv2Version_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGtpv2Version_Choice_Enum.Descriptor instead. func (PatternFlowGtpv2Version_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{636, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{642, 0, 0} } type PatternFlowGtpv2PiggybackingFlag_Choice_Enum int32 @@ -15035,11 +15278,11 @@ func (x PatternFlowGtpv2PiggybackingFlag_Choice_Enum) String() string { } func (PatternFlowGtpv2PiggybackingFlag_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[274].Descriptor() + return file_otg_proto_enumTypes[277].Descriptor() } func (PatternFlowGtpv2PiggybackingFlag_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[274] + return &file_otg_proto_enumTypes[277] } func (x PatternFlowGtpv2PiggybackingFlag_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15048,7 +15291,7 @@ func (x PatternFlowGtpv2PiggybackingFlag_Choice_Enum) Number() protoreflect.Enum // Deprecated: Use PatternFlowGtpv2PiggybackingFlag_Choice_Enum.Descriptor instead. func (PatternFlowGtpv2PiggybackingFlag_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{639, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{645, 0, 0} } type PatternFlowGtpv2TeidFlag_Choice_Enum int32 @@ -15090,11 +15333,11 @@ func (x PatternFlowGtpv2TeidFlag_Choice_Enum) String() string { } func (PatternFlowGtpv2TeidFlag_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[275].Descriptor() + return file_otg_proto_enumTypes[278].Descriptor() } func (PatternFlowGtpv2TeidFlag_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[275] + return &file_otg_proto_enumTypes[278] } func (x PatternFlowGtpv2TeidFlag_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15103,7 +15346,7 @@ func (x PatternFlowGtpv2TeidFlag_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGtpv2TeidFlag_Choice_Enum.Descriptor instead. func (PatternFlowGtpv2TeidFlag_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{642, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{648, 0, 0} } type PatternFlowGtpv2Spare1_Choice_Enum int32 @@ -15145,11 +15388,11 @@ func (x PatternFlowGtpv2Spare1_Choice_Enum) String() string { } func (PatternFlowGtpv2Spare1_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[276].Descriptor() + return file_otg_proto_enumTypes[279].Descriptor() } func (PatternFlowGtpv2Spare1_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[276] + return &file_otg_proto_enumTypes[279] } func (x PatternFlowGtpv2Spare1_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15158,7 +15401,7 @@ func (x PatternFlowGtpv2Spare1_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGtpv2Spare1_Choice_Enum.Descriptor instead. func (PatternFlowGtpv2Spare1_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{645, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{651, 0, 0} } type PatternFlowGtpv2MessageType_Choice_Enum int32 @@ -15200,11 +15443,11 @@ func (x PatternFlowGtpv2MessageType_Choice_Enum) String() string { } func (PatternFlowGtpv2MessageType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[277].Descriptor() + return file_otg_proto_enumTypes[280].Descriptor() } func (PatternFlowGtpv2MessageType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[277] + return &file_otg_proto_enumTypes[280] } func (x PatternFlowGtpv2MessageType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15213,7 +15456,7 @@ func (x PatternFlowGtpv2MessageType_Choice_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use PatternFlowGtpv2MessageType_Choice_Enum.Descriptor instead. func (PatternFlowGtpv2MessageType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{648, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{654, 0, 0} } type PatternFlowGtpv2MessageLength_Choice_Enum int32 @@ -15255,11 +15498,11 @@ func (x PatternFlowGtpv2MessageLength_Choice_Enum) String() string { } func (PatternFlowGtpv2MessageLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[278].Descriptor() + return file_otg_proto_enumTypes[281].Descriptor() } func (PatternFlowGtpv2MessageLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[278] + return &file_otg_proto_enumTypes[281] } func (x PatternFlowGtpv2MessageLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15268,7 +15511,7 @@ func (x PatternFlowGtpv2MessageLength_Choice_Enum) Number() protoreflect.EnumNum // Deprecated: Use PatternFlowGtpv2MessageLength_Choice_Enum.Descriptor instead. func (PatternFlowGtpv2MessageLength_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{651, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{657, 0, 0} } type PatternFlowGtpv2Teid_Choice_Enum int32 @@ -15310,11 +15553,11 @@ func (x PatternFlowGtpv2Teid_Choice_Enum) String() string { } func (PatternFlowGtpv2Teid_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[279].Descriptor() + return file_otg_proto_enumTypes[282].Descriptor() } func (PatternFlowGtpv2Teid_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[279] + return &file_otg_proto_enumTypes[282] } func (x PatternFlowGtpv2Teid_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15323,7 +15566,7 @@ func (x PatternFlowGtpv2Teid_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGtpv2Teid_Choice_Enum.Descriptor instead. func (PatternFlowGtpv2Teid_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{654, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{660, 0, 0} } type PatternFlowGtpv2SequenceNumber_Choice_Enum int32 @@ -15365,11 +15608,11 @@ func (x PatternFlowGtpv2SequenceNumber_Choice_Enum) String() string { } func (PatternFlowGtpv2SequenceNumber_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[280].Descriptor() + return file_otg_proto_enumTypes[283].Descriptor() } func (PatternFlowGtpv2SequenceNumber_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[280] + return &file_otg_proto_enumTypes[283] } func (x PatternFlowGtpv2SequenceNumber_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15378,7 +15621,7 @@ func (x PatternFlowGtpv2SequenceNumber_Choice_Enum) Number() protoreflect.EnumNu // Deprecated: Use PatternFlowGtpv2SequenceNumber_Choice_Enum.Descriptor instead. func (PatternFlowGtpv2SequenceNumber_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{657, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{663, 0, 0} } type PatternFlowGtpv2Spare2_Choice_Enum int32 @@ -15420,11 +15663,11 @@ func (x PatternFlowGtpv2Spare2_Choice_Enum) String() string { } func (PatternFlowGtpv2Spare2_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[281].Descriptor() + return file_otg_proto_enumTypes[284].Descriptor() } func (PatternFlowGtpv2Spare2_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[281] + return &file_otg_proto_enumTypes[284] } func (x PatternFlowGtpv2Spare2_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15433,7 +15676,7 @@ func (x PatternFlowGtpv2Spare2_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowGtpv2Spare2_Choice_Enum.Descriptor instead. func (PatternFlowGtpv2Spare2_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{660, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{666, 0, 0} } type PatternFlowArpHardwareType_Choice_Enum int32 @@ -15475,11 +15718,11 @@ func (x PatternFlowArpHardwareType_Choice_Enum) String() string { } func (PatternFlowArpHardwareType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[282].Descriptor() + return file_otg_proto_enumTypes[285].Descriptor() } func (PatternFlowArpHardwareType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[282] + return &file_otg_proto_enumTypes[285] } func (x PatternFlowArpHardwareType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15488,7 +15731,7 @@ func (x PatternFlowArpHardwareType_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowArpHardwareType_Choice_Enum.Descriptor instead. func (PatternFlowArpHardwareType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{663, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{669, 0, 0} } type PatternFlowArpProtocolType_Choice_Enum int32 @@ -15530,11 +15773,11 @@ func (x PatternFlowArpProtocolType_Choice_Enum) String() string { } func (PatternFlowArpProtocolType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[283].Descriptor() + return file_otg_proto_enumTypes[286].Descriptor() } func (PatternFlowArpProtocolType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[283] + return &file_otg_proto_enumTypes[286] } func (x PatternFlowArpProtocolType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15543,7 +15786,7 @@ func (x PatternFlowArpProtocolType_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowArpProtocolType_Choice_Enum.Descriptor instead. func (PatternFlowArpProtocolType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{666, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{672, 0, 0} } type PatternFlowArpHardwareLength_Choice_Enum int32 @@ -15585,11 +15828,11 @@ func (x PatternFlowArpHardwareLength_Choice_Enum) String() string { } func (PatternFlowArpHardwareLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[284].Descriptor() + return file_otg_proto_enumTypes[287].Descriptor() } func (PatternFlowArpHardwareLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[284] + return &file_otg_proto_enumTypes[287] } func (x PatternFlowArpHardwareLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15598,7 +15841,7 @@ func (x PatternFlowArpHardwareLength_Choice_Enum) Number() protoreflect.EnumNumb // Deprecated: Use PatternFlowArpHardwareLength_Choice_Enum.Descriptor instead. func (PatternFlowArpHardwareLength_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{669, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{675, 0, 0} } type PatternFlowArpProtocolLength_Choice_Enum int32 @@ -15640,11 +15883,11 @@ func (x PatternFlowArpProtocolLength_Choice_Enum) String() string { } func (PatternFlowArpProtocolLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[285].Descriptor() + return file_otg_proto_enumTypes[288].Descriptor() } func (PatternFlowArpProtocolLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[285] + return &file_otg_proto_enumTypes[288] } func (x PatternFlowArpProtocolLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15653,7 +15896,7 @@ func (x PatternFlowArpProtocolLength_Choice_Enum) Number() protoreflect.EnumNumb // Deprecated: Use PatternFlowArpProtocolLength_Choice_Enum.Descriptor instead. func (PatternFlowArpProtocolLength_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{672, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{678, 0, 0} } type PatternFlowArpOperation_Choice_Enum int32 @@ -15695,11 +15938,11 @@ func (x PatternFlowArpOperation_Choice_Enum) String() string { } func (PatternFlowArpOperation_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[286].Descriptor() + return file_otg_proto_enumTypes[289].Descriptor() } func (PatternFlowArpOperation_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[286] + return &file_otg_proto_enumTypes[289] } func (x PatternFlowArpOperation_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15708,7 +15951,7 @@ func (x PatternFlowArpOperation_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowArpOperation_Choice_Enum.Descriptor instead. func (PatternFlowArpOperation_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{675, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{681, 0, 0} } type PatternFlowArpSenderHardwareAddr_Choice_Enum int32 @@ -15750,11 +15993,11 @@ func (x PatternFlowArpSenderHardwareAddr_Choice_Enum) String() string { } func (PatternFlowArpSenderHardwareAddr_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[287].Descriptor() + return file_otg_proto_enumTypes[290].Descriptor() } func (PatternFlowArpSenderHardwareAddr_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[287] + return &file_otg_proto_enumTypes[290] } func (x PatternFlowArpSenderHardwareAddr_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15763,7 +16006,7 @@ func (x PatternFlowArpSenderHardwareAddr_Choice_Enum) Number() protoreflect.Enum // Deprecated: Use PatternFlowArpSenderHardwareAddr_Choice_Enum.Descriptor instead. func (PatternFlowArpSenderHardwareAddr_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{678, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{684, 0, 0} } type PatternFlowArpSenderProtocolAddr_Choice_Enum int32 @@ -15805,11 +16048,11 @@ func (x PatternFlowArpSenderProtocolAddr_Choice_Enum) String() string { } func (PatternFlowArpSenderProtocolAddr_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[288].Descriptor() + return file_otg_proto_enumTypes[291].Descriptor() } func (PatternFlowArpSenderProtocolAddr_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[288] + return &file_otg_proto_enumTypes[291] } func (x PatternFlowArpSenderProtocolAddr_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15818,7 +16061,7 @@ func (x PatternFlowArpSenderProtocolAddr_Choice_Enum) Number() protoreflect.Enum // Deprecated: Use PatternFlowArpSenderProtocolAddr_Choice_Enum.Descriptor instead. func (PatternFlowArpSenderProtocolAddr_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{681, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{687, 0, 0} } type PatternFlowArpTargetHardwareAddr_Choice_Enum int32 @@ -15860,11 +16103,11 @@ func (x PatternFlowArpTargetHardwareAddr_Choice_Enum) String() string { } func (PatternFlowArpTargetHardwareAddr_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[289].Descriptor() + return file_otg_proto_enumTypes[292].Descriptor() } func (PatternFlowArpTargetHardwareAddr_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[289] + return &file_otg_proto_enumTypes[292] } func (x PatternFlowArpTargetHardwareAddr_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15873,7 +16116,7 @@ func (x PatternFlowArpTargetHardwareAddr_Choice_Enum) Number() protoreflect.Enum // Deprecated: Use PatternFlowArpTargetHardwareAddr_Choice_Enum.Descriptor instead. func (PatternFlowArpTargetHardwareAddr_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{684, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{690, 0, 0} } type PatternFlowArpTargetProtocolAddr_Choice_Enum int32 @@ -15915,11 +16158,11 @@ func (x PatternFlowArpTargetProtocolAddr_Choice_Enum) String() string { } func (PatternFlowArpTargetProtocolAddr_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[290].Descriptor() + return file_otg_proto_enumTypes[293].Descriptor() } func (PatternFlowArpTargetProtocolAddr_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[290] + return &file_otg_proto_enumTypes[293] } func (x PatternFlowArpTargetProtocolAddr_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15928,7 +16171,7 @@ func (x PatternFlowArpTargetProtocolAddr_Choice_Enum) Number() protoreflect.Enum // Deprecated: Use PatternFlowArpTargetProtocolAddr_Choice_Enum.Descriptor instead. func (PatternFlowArpTargetProtocolAddr_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{687, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{693, 0, 0} } type PatternFlowIcmpEchoType_Choice_Enum int32 @@ -15970,11 +16213,11 @@ func (x PatternFlowIcmpEchoType_Choice_Enum) String() string { } func (PatternFlowIcmpEchoType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[291].Descriptor() + return file_otg_proto_enumTypes[294].Descriptor() } func (PatternFlowIcmpEchoType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[291] + return &file_otg_proto_enumTypes[294] } func (x PatternFlowIcmpEchoType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15983,7 +16226,7 @@ func (x PatternFlowIcmpEchoType_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIcmpEchoType_Choice_Enum.Descriptor instead. func (PatternFlowIcmpEchoType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{690, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{696, 0, 0} } type PatternFlowIcmpEchoCode_Choice_Enum int32 @@ -16025,11 +16268,11 @@ func (x PatternFlowIcmpEchoCode_Choice_Enum) String() string { } func (PatternFlowIcmpEchoCode_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[292].Descriptor() + return file_otg_proto_enumTypes[295].Descriptor() } func (PatternFlowIcmpEchoCode_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[292] + return &file_otg_proto_enumTypes[295] } func (x PatternFlowIcmpEchoCode_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16038,7 +16281,7 @@ func (x PatternFlowIcmpEchoCode_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIcmpEchoCode_Choice_Enum.Descriptor instead. func (PatternFlowIcmpEchoCode_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{693, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{699, 0, 0} } type PatternFlowIcmpEchoChecksum_Choice_Enum int32 @@ -16074,11 +16317,11 @@ func (x PatternFlowIcmpEchoChecksum_Choice_Enum) String() string { } func (PatternFlowIcmpEchoChecksum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[293].Descriptor() + return file_otg_proto_enumTypes[296].Descriptor() } func (PatternFlowIcmpEchoChecksum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[293] + return &file_otg_proto_enumTypes[296] } func (x PatternFlowIcmpEchoChecksum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16087,7 +16330,7 @@ func (x PatternFlowIcmpEchoChecksum_Choice_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use PatternFlowIcmpEchoChecksum_Choice_Enum.Descriptor instead. func (PatternFlowIcmpEchoChecksum_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{694, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{700, 0, 0} } type PatternFlowIcmpEchoChecksum_Generated_Enum int32 @@ -16123,11 +16366,11 @@ func (x PatternFlowIcmpEchoChecksum_Generated_Enum) String() string { } func (PatternFlowIcmpEchoChecksum_Generated_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[294].Descriptor() + return file_otg_proto_enumTypes[297].Descriptor() } func (PatternFlowIcmpEchoChecksum_Generated_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[294] + return &file_otg_proto_enumTypes[297] } func (x PatternFlowIcmpEchoChecksum_Generated_Enum) Number() protoreflect.EnumNumber { @@ -16136,7 +16379,7 @@ func (x PatternFlowIcmpEchoChecksum_Generated_Enum) Number() protoreflect.EnumNu // Deprecated: Use PatternFlowIcmpEchoChecksum_Generated_Enum.Descriptor instead. func (PatternFlowIcmpEchoChecksum_Generated_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{694, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{700, 1, 0} } type PatternFlowIcmpEchoIdentifier_Choice_Enum int32 @@ -16178,11 +16421,11 @@ func (x PatternFlowIcmpEchoIdentifier_Choice_Enum) String() string { } func (PatternFlowIcmpEchoIdentifier_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[295].Descriptor() + return file_otg_proto_enumTypes[298].Descriptor() } func (PatternFlowIcmpEchoIdentifier_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[295] + return &file_otg_proto_enumTypes[298] } func (x PatternFlowIcmpEchoIdentifier_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16191,7 +16434,7 @@ func (x PatternFlowIcmpEchoIdentifier_Choice_Enum) Number() protoreflect.EnumNum // Deprecated: Use PatternFlowIcmpEchoIdentifier_Choice_Enum.Descriptor instead. func (PatternFlowIcmpEchoIdentifier_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{697, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{703, 0, 0} } type PatternFlowIcmpEchoSequenceNumber_Choice_Enum int32 @@ -16233,11 +16476,11 @@ func (x PatternFlowIcmpEchoSequenceNumber_Choice_Enum) String() string { } func (PatternFlowIcmpEchoSequenceNumber_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[296].Descriptor() + return file_otg_proto_enumTypes[299].Descriptor() } func (PatternFlowIcmpEchoSequenceNumber_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[296] + return &file_otg_proto_enumTypes[299] } func (x PatternFlowIcmpEchoSequenceNumber_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16246,7 +16489,7 @@ func (x PatternFlowIcmpEchoSequenceNumber_Choice_Enum) Number() protoreflect.Enu // Deprecated: Use PatternFlowIcmpEchoSequenceNumber_Choice_Enum.Descriptor instead. func (PatternFlowIcmpEchoSequenceNumber_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{700, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{706, 0, 0} } type PatternFlowIcmpCommonChecksum_Choice_Enum int32 @@ -16282,11 +16525,11 @@ func (x PatternFlowIcmpCommonChecksum_Choice_Enum) String() string { } func (PatternFlowIcmpCommonChecksum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[297].Descriptor() + return file_otg_proto_enumTypes[300].Descriptor() } func (PatternFlowIcmpCommonChecksum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[297] + return &file_otg_proto_enumTypes[300] } func (x PatternFlowIcmpCommonChecksum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16295,7 +16538,7 @@ func (x PatternFlowIcmpCommonChecksum_Choice_Enum) Number() protoreflect.EnumNum // Deprecated: Use PatternFlowIcmpCommonChecksum_Choice_Enum.Descriptor instead. func (PatternFlowIcmpCommonChecksum_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{701, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{707, 0, 0} } type PatternFlowIcmpCommonChecksum_Generated_Enum int32 @@ -16331,11 +16574,11 @@ func (x PatternFlowIcmpCommonChecksum_Generated_Enum) String() string { } func (PatternFlowIcmpCommonChecksum_Generated_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[298].Descriptor() + return file_otg_proto_enumTypes[301].Descriptor() } func (PatternFlowIcmpCommonChecksum_Generated_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[298] + return &file_otg_proto_enumTypes[301] } func (x PatternFlowIcmpCommonChecksum_Generated_Enum) Number() protoreflect.EnumNumber { @@ -16344,7 +16587,7 @@ func (x PatternFlowIcmpCommonChecksum_Generated_Enum) Number() protoreflect.Enum // Deprecated: Use PatternFlowIcmpCommonChecksum_Generated_Enum.Descriptor instead. func (PatternFlowIcmpCommonChecksum_Generated_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{701, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{707, 1, 0} } type PatternFlowIcmpNextFieldsIdentifier_Choice_Enum int32 @@ -16386,11 +16629,11 @@ func (x PatternFlowIcmpNextFieldsIdentifier_Choice_Enum) String() string { } func (PatternFlowIcmpNextFieldsIdentifier_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[299].Descriptor() + return file_otg_proto_enumTypes[302].Descriptor() } func (PatternFlowIcmpNextFieldsIdentifier_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[299] + return &file_otg_proto_enumTypes[302] } func (x PatternFlowIcmpNextFieldsIdentifier_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16399,7 +16642,7 @@ func (x PatternFlowIcmpNextFieldsIdentifier_Choice_Enum) Number() protoreflect.E // Deprecated: Use PatternFlowIcmpNextFieldsIdentifier_Choice_Enum.Descriptor instead. func (PatternFlowIcmpNextFieldsIdentifier_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{704, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{710, 0, 0} } type PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum int32 @@ -16441,11 +16684,11 @@ func (x PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum) String() string { } func (PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[300].Descriptor() + return file_otg_proto_enumTypes[303].Descriptor() } func (PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[300] + return &file_otg_proto_enumTypes[303] } func (x PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16454,7 +16697,7 @@ func (x PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum) Number() protorefle // Deprecated: Use PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum.Descriptor instead. func (PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{707, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{713, 0, 0} } type PatternFlowIcmpv6EchoType_Choice_Enum int32 @@ -16496,11 +16739,11 @@ func (x PatternFlowIcmpv6EchoType_Choice_Enum) String() string { } func (PatternFlowIcmpv6EchoType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[301].Descriptor() + return file_otg_proto_enumTypes[304].Descriptor() } func (PatternFlowIcmpv6EchoType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[301] + return &file_otg_proto_enumTypes[304] } func (x PatternFlowIcmpv6EchoType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16509,7 +16752,7 @@ func (x PatternFlowIcmpv6EchoType_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowIcmpv6EchoType_Choice_Enum.Descriptor instead. func (PatternFlowIcmpv6EchoType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{710, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{716, 0, 0} } type PatternFlowIcmpv6EchoCode_Choice_Enum int32 @@ -16551,11 +16794,11 @@ func (x PatternFlowIcmpv6EchoCode_Choice_Enum) String() string { } func (PatternFlowIcmpv6EchoCode_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[302].Descriptor() + return file_otg_proto_enumTypes[305].Descriptor() } func (PatternFlowIcmpv6EchoCode_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[302] + return &file_otg_proto_enumTypes[305] } func (x PatternFlowIcmpv6EchoCode_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16564,7 +16807,7 @@ func (x PatternFlowIcmpv6EchoCode_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowIcmpv6EchoCode_Choice_Enum.Descriptor instead. func (PatternFlowIcmpv6EchoCode_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{713, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{719, 0, 0} } type PatternFlowIcmpv6EchoIdentifier_Choice_Enum int32 @@ -16606,11 +16849,11 @@ func (x PatternFlowIcmpv6EchoIdentifier_Choice_Enum) String() string { } func (PatternFlowIcmpv6EchoIdentifier_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[303].Descriptor() + return file_otg_proto_enumTypes[306].Descriptor() } func (PatternFlowIcmpv6EchoIdentifier_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[303] + return &file_otg_proto_enumTypes[306] } func (x PatternFlowIcmpv6EchoIdentifier_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16619,7 +16862,7 @@ func (x PatternFlowIcmpv6EchoIdentifier_Choice_Enum) Number() protoreflect.EnumN // Deprecated: Use PatternFlowIcmpv6EchoIdentifier_Choice_Enum.Descriptor instead. func (PatternFlowIcmpv6EchoIdentifier_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{716, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{722, 0, 0} } type PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum int32 @@ -16661,11 +16904,11 @@ func (x PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum) String() string { } func (PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[304].Descriptor() + return file_otg_proto_enumTypes[307].Descriptor() } func (PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[304] + return &file_otg_proto_enumTypes[307] } func (x PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16674,7 +16917,7 @@ func (x PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum) Number() protoreflect.E // Deprecated: Use PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum.Descriptor instead. func (PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{719, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{725, 0, 0} } type PatternFlowIcmpv6EchoChecksum_Choice_Enum int32 @@ -16710,11 +16953,11 @@ func (x PatternFlowIcmpv6EchoChecksum_Choice_Enum) String() string { } func (PatternFlowIcmpv6EchoChecksum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[305].Descriptor() + return file_otg_proto_enumTypes[308].Descriptor() } func (PatternFlowIcmpv6EchoChecksum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[305] + return &file_otg_proto_enumTypes[308] } func (x PatternFlowIcmpv6EchoChecksum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16723,7 +16966,7 @@ func (x PatternFlowIcmpv6EchoChecksum_Choice_Enum) Number() protoreflect.EnumNum // Deprecated: Use PatternFlowIcmpv6EchoChecksum_Choice_Enum.Descriptor instead. func (PatternFlowIcmpv6EchoChecksum_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{720, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{726, 0, 0} } type PatternFlowIcmpv6EchoChecksum_Generated_Enum int32 @@ -16759,11 +17002,11 @@ func (x PatternFlowIcmpv6EchoChecksum_Generated_Enum) String() string { } func (PatternFlowIcmpv6EchoChecksum_Generated_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[306].Descriptor() + return file_otg_proto_enumTypes[309].Descriptor() } func (PatternFlowIcmpv6EchoChecksum_Generated_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[306] + return &file_otg_proto_enumTypes[309] } func (x PatternFlowIcmpv6EchoChecksum_Generated_Enum) Number() protoreflect.EnumNumber { @@ -16772,7 +17015,7 @@ func (x PatternFlowIcmpv6EchoChecksum_Generated_Enum) Number() protoreflect.Enum // Deprecated: Use PatternFlowIcmpv6EchoChecksum_Generated_Enum.Descriptor instead. func (PatternFlowIcmpv6EchoChecksum_Generated_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{720, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{726, 1, 0} } type PatternFlowIcmpv6CommonChecksum_Choice_Enum int32 @@ -16808,11 +17051,11 @@ func (x PatternFlowIcmpv6CommonChecksum_Choice_Enum) String() string { } func (PatternFlowIcmpv6CommonChecksum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[307].Descriptor() + return file_otg_proto_enumTypes[310].Descriptor() } func (PatternFlowIcmpv6CommonChecksum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[307] + return &file_otg_proto_enumTypes[310] } func (x PatternFlowIcmpv6CommonChecksum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16821,7 +17064,7 @@ func (x PatternFlowIcmpv6CommonChecksum_Choice_Enum) Number() protoreflect.EnumN // Deprecated: Use PatternFlowIcmpv6CommonChecksum_Choice_Enum.Descriptor instead. func (PatternFlowIcmpv6CommonChecksum_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{721, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{727, 0, 0} } type PatternFlowIcmpv6CommonChecksum_Generated_Enum int32 @@ -16857,11 +17100,11 @@ func (x PatternFlowIcmpv6CommonChecksum_Generated_Enum) String() string { } func (PatternFlowIcmpv6CommonChecksum_Generated_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[308].Descriptor() + return file_otg_proto_enumTypes[311].Descriptor() } func (PatternFlowIcmpv6CommonChecksum_Generated_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[308] + return &file_otg_proto_enumTypes[311] } func (x PatternFlowIcmpv6CommonChecksum_Generated_Enum) Number() protoreflect.EnumNumber { @@ -16870,7 +17113,7 @@ func (x PatternFlowIcmpv6CommonChecksum_Generated_Enum) Number() protoreflect.En // Deprecated: Use PatternFlowIcmpv6CommonChecksum_Generated_Enum.Descriptor instead. func (PatternFlowIcmpv6CommonChecksum_Generated_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{721, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{727, 1, 0} } type PatternFlowPppAddress_Choice_Enum int32 @@ -16912,11 +17155,11 @@ func (x PatternFlowPppAddress_Choice_Enum) String() string { } func (PatternFlowPppAddress_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[309].Descriptor() + return file_otg_proto_enumTypes[312].Descriptor() } func (PatternFlowPppAddress_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[309] + return &file_otg_proto_enumTypes[312] } func (x PatternFlowPppAddress_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16925,7 +17168,7 @@ func (x PatternFlowPppAddress_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowPppAddress_Choice_Enum.Descriptor instead. func (PatternFlowPppAddress_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{724, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{730, 0, 0} } type PatternFlowPppControl_Choice_Enum int32 @@ -16967,11 +17210,11 @@ func (x PatternFlowPppControl_Choice_Enum) String() string { } func (PatternFlowPppControl_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[310].Descriptor() + return file_otg_proto_enumTypes[313].Descriptor() } func (PatternFlowPppControl_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[310] + return &file_otg_proto_enumTypes[313] } func (x PatternFlowPppControl_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16980,7 +17223,7 @@ func (x PatternFlowPppControl_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowPppControl_Choice_Enum.Descriptor instead. func (PatternFlowPppControl_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{727, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{733, 0, 0} } type PatternFlowPppProtocolType_Choice_Enum int32 @@ -17025,11 +17268,11 @@ func (x PatternFlowPppProtocolType_Choice_Enum) String() string { } func (PatternFlowPppProtocolType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[311].Descriptor() + return file_otg_proto_enumTypes[314].Descriptor() } func (PatternFlowPppProtocolType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[311] + return &file_otg_proto_enumTypes[314] } func (x PatternFlowPppProtocolType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -17038,7 +17281,7 @@ func (x PatternFlowPppProtocolType_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowPppProtocolType_Choice_Enum.Descriptor instead. func (PatternFlowPppProtocolType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{730, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{736, 0, 0} } type PatternFlowIgmpv1Version_Choice_Enum int32 @@ -17080,11 +17323,11 @@ func (x PatternFlowIgmpv1Version_Choice_Enum) String() string { } func (PatternFlowIgmpv1Version_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[312].Descriptor() + return file_otg_proto_enumTypes[315].Descriptor() } func (PatternFlowIgmpv1Version_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[312] + return &file_otg_proto_enumTypes[315] } func (x PatternFlowIgmpv1Version_Choice_Enum) Number() protoreflect.EnumNumber { @@ -17093,7 +17336,7 @@ func (x PatternFlowIgmpv1Version_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIgmpv1Version_Choice_Enum.Descriptor instead. func (PatternFlowIgmpv1Version_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{733, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{739, 0, 0} } type PatternFlowIgmpv1Type_Choice_Enum int32 @@ -17135,11 +17378,11 @@ func (x PatternFlowIgmpv1Type_Choice_Enum) String() string { } func (PatternFlowIgmpv1Type_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[313].Descriptor() + return file_otg_proto_enumTypes[316].Descriptor() } func (PatternFlowIgmpv1Type_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[313] + return &file_otg_proto_enumTypes[316] } func (x PatternFlowIgmpv1Type_Choice_Enum) Number() protoreflect.EnumNumber { @@ -17148,7 +17391,7 @@ func (x PatternFlowIgmpv1Type_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIgmpv1Type_Choice_Enum.Descriptor instead. func (PatternFlowIgmpv1Type_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{736, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{742, 0, 0} } type PatternFlowIgmpv1Unused_Choice_Enum int32 @@ -17190,11 +17433,11 @@ func (x PatternFlowIgmpv1Unused_Choice_Enum) String() string { } func (PatternFlowIgmpv1Unused_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[314].Descriptor() + return file_otg_proto_enumTypes[317].Descriptor() } func (PatternFlowIgmpv1Unused_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[314] + return &file_otg_proto_enumTypes[317] } func (x PatternFlowIgmpv1Unused_Choice_Enum) Number() protoreflect.EnumNumber { @@ -17203,7 +17446,7 @@ func (x PatternFlowIgmpv1Unused_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowIgmpv1Unused_Choice_Enum.Descriptor instead. func (PatternFlowIgmpv1Unused_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{739, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{745, 0, 0} } type PatternFlowIgmpv1Checksum_Choice_Enum int32 @@ -17239,11 +17482,11 @@ func (x PatternFlowIgmpv1Checksum_Choice_Enum) String() string { } func (PatternFlowIgmpv1Checksum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[315].Descriptor() + return file_otg_proto_enumTypes[318].Descriptor() } func (PatternFlowIgmpv1Checksum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[315] + return &file_otg_proto_enumTypes[318] } func (x PatternFlowIgmpv1Checksum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -17252,7 +17495,7 @@ func (x PatternFlowIgmpv1Checksum_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowIgmpv1Checksum_Choice_Enum.Descriptor instead. func (PatternFlowIgmpv1Checksum_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{740, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{746, 0, 0} } type PatternFlowIgmpv1Checksum_Generated_Enum int32 @@ -17288,11 +17531,11 @@ func (x PatternFlowIgmpv1Checksum_Generated_Enum) String() string { } func (PatternFlowIgmpv1Checksum_Generated_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[316].Descriptor() + return file_otg_proto_enumTypes[319].Descriptor() } func (PatternFlowIgmpv1Checksum_Generated_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[316] + return &file_otg_proto_enumTypes[319] } func (x PatternFlowIgmpv1Checksum_Generated_Enum) Number() protoreflect.EnumNumber { @@ -17301,7 +17544,7 @@ func (x PatternFlowIgmpv1Checksum_Generated_Enum) Number() protoreflect.EnumNumb // Deprecated: Use PatternFlowIgmpv1Checksum_Generated_Enum.Descriptor instead. func (PatternFlowIgmpv1Checksum_Generated_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{740, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{746, 1, 0} } type PatternFlowIgmpv1GroupAddress_Choice_Enum int32 @@ -17343,11 +17586,11 @@ func (x PatternFlowIgmpv1GroupAddress_Choice_Enum) String() string { } func (PatternFlowIgmpv1GroupAddress_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[317].Descriptor() + return file_otg_proto_enumTypes[320].Descriptor() } func (PatternFlowIgmpv1GroupAddress_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[317] + return &file_otg_proto_enumTypes[320] } func (x PatternFlowIgmpv1GroupAddress_Choice_Enum) Number() protoreflect.EnumNumber { @@ -17356,7 +17599,7 @@ func (x PatternFlowIgmpv1GroupAddress_Choice_Enum) Number() protoreflect.EnumNum // Deprecated: Use PatternFlowIgmpv1GroupAddress_Choice_Enum.Descriptor instead. func (PatternFlowIgmpv1GroupAddress_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{743, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{749, 0, 0} } type PatternFlowMplsLabel_Choice_Enum int32 @@ -17401,11 +17644,11 @@ func (x PatternFlowMplsLabel_Choice_Enum) String() string { } func (PatternFlowMplsLabel_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[318].Descriptor() + return file_otg_proto_enumTypes[321].Descriptor() } func (PatternFlowMplsLabel_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[318] + return &file_otg_proto_enumTypes[321] } func (x PatternFlowMplsLabel_Choice_Enum) Number() protoreflect.EnumNumber { @@ -17414,7 +17657,7 @@ func (x PatternFlowMplsLabel_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowMplsLabel_Choice_Enum.Descriptor instead. func (PatternFlowMplsLabel_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{746, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{752, 0, 0} } type PatternFlowMplsTrafficClass_Choice_Enum int32 @@ -17456,11 +17699,11 @@ func (x PatternFlowMplsTrafficClass_Choice_Enum) String() string { } func (PatternFlowMplsTrafficClass_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[319].Descriptor() + return file_otg_proto_enumTypes[322].Descriptor() } func (PatternFlowMplsTrafficClass_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[319] + return &file_otg_proto_enumTypes[322] } func (x PatternFlowMplsTrafficClass_Choice_Enum) Number() protoreflect.EnumNumber { @@ -17469,7 +17712,7 @@ func (x PatternFlowMplsTrafficClass_Choice_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use PatternFlowMplsTrafficClass_Choice_Enum.Descriptor instead. func (PatternFlowMplsTrafficClass_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{749, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{755, 0, 0} } type PatternFlowMplsBottomOfStack_Choice_Enum int32 @@ -17514,11 +17757,11 @@ func (x PatternFlowMplsBottomOfStack_Choice_Enum) String() string { } func (PatternFlowMplsBottomOfStack_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[320].Descriptor() + return file_otg_proto_enumTypes[323].Descriptor() } func (PatternFlowMplsBottomOfStack_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[320] + return &file_otg_proto_enumTypes[323] } func (x PatternFlowMplsBottomOfStack_Choice_Enum) Number() protoreflect.EnumNumber { @@ -17527,7 +17770,7 @@ func (x PatternFlowMplsBottomOfStack_Choice_Enum) Number() protoreflect.EnumNumb // Deprecated: Use PatternFlowMplsBottomOfStack_Choice_Enum.Descriptor instead. func (PatternFlowMplsBottomOfStack_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{752, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{758, 0, 0} } type PatternFlowMplsTimeToLive_Choice_Enum int32 @@ -17569,11 +17812,11 @@ func (x PatternFlowMplsTimeToLive_Choice_Enum) String() string { } func (PatternFlowMplsTimeToLive_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[321].Descriptor() + return file_otg_proto_enumTypes[324].Descriptor() } func (PatternFlowMplsTimeToLive_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[321] + return &file_otg_proto_enumTypes[324] } func (x PatternFlowMplsTimeToLive_Choice_Enum) Number() protoreflect.EnumNumber { @@ -17582,436 +17825,765 @@ func (x PatternFlowMplsTimeToLive_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowMplsTimeToLive_Choice_Enum.Descriptor instead. func (PatternFlowMplsTimeToLive_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{755, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{761, 0, 0} } -// A container for all models that are part of the configuration. -type Config struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +type PatternFlowSnmpv2CVersion_Choice_Enum int32 - // The ports that will be configured on the traffic generator. - Ports []*Port `protobuf:"bytes,1,rep,name=ports,proto3" json:"ports,omitempty"` - // The LAGs that will be configured on the traffic generator. - Lags []*Lag `protobuf:"bytes,2,rep,name=lags,proto3" json:"lags,omitempty"` - // The layer1 settings that will be configured on the traffic generator. - // Since layer1 settings usually vary across variety of test ports, these - // most likely won't be portable. - Layer1 []*Layer1 `protobuf:"bytes,3,rep,name=layer1,proto3" json:"layer1,omitempty"` - // The capture settings that will be configured on the traffic generator. - Captures []*Capture `protobuf:"bytes,4,rep,name=captures,proto3" json:"captures,omitempty"` - // The emulated devices that will be configured on the traffic generator. - // Each device contains configurations for network interfaces and - // protocols running on top of those interfaces. - Devices []*Device `protobuf:"bytes,5,rep,name=devices,proto3" json:"devices,omitempty"` - // The flows that will be configured on the traffic generator. - Flows []*Flow `protobuf:"bytes,6,rep,name=flows,proto3" json:"flows,omitempty"` - // Description missing in models - Events *Event `protobuf:"bytes,7,opt,name=events,proto3" json:"events,omitempty"` - // Description missing in models - Options *ConfigOptions `protobuf:"bytes,8,opt,name=options,proto3" json:"options,omitempty"` - // LLDP protocol that will be configured on traffic generator. - Lldp []*Lldp `protobuf:"bytes,9,rep,name=lldp,proto3" json:"lldp,omitempty"` -} +const ( + PatternFlowSnmpv2CVersion_Choice_unspecified PatternFlowSnmpv2CVersion_Choice_Enum = 0 + PatternFlowSnmpv2CVersion_Choice_value PatternFlowSnmpv2CVersion_Choice_Enum = 2 + PatternFlowSnmpv2CVersion_Choice_values PatternFlowSnmpv2CVersion_Choice_Enum = 3 + PatternFlowSnmpv2CVersion_Choice_increment PatternFlowSnmpv2CVersion_Choice_Enum = 4 + PatternFlowSnmpv2CVersion_Choice_decrement PatternFlowSnmpv2CVersion_Choice_Enum = 5 +) -func (x *Config) Reset() { - *x = Config{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +// Enum value maps for PatternFlowSnmpv2CVersion_Choice_Enum. +var ( + PatternFlowSnmpv2CVersion_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 2: "value", + 3: "values", + 4: "increment", + 5: "decrement", + } + PatternFlowSnmpv2CVersion_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "value": 2, + "values": 3, + "increment": 4, + "decrement": 5, } +) + +func (x PatternFlowSnmpv2CVersion_Choice_Enum) Enum() *PatternFlowSnmpv2CVersion_Choice_Enum { + p := new(PatternFlowSnmpv2CVersion_Choice_Enum) + *p = x + return p } -func (x *Config) String() string { - return protoimpl.X.MessageStringOf(x) +func (x PatternFlowSnmpv2CVersion_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -func (*Config) ProtoMessage() {} +func (PatternFlowSnmpv2CVersion_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[325].Descriptor() +} -func (x *Config) ProtoReflect() protoreflect.Message { - mi := &file_otg_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) +func (PatternFlowSnmpv2CVersion_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[325] } -// Deprecated: Use Config.ProtoReflect.Descriptor instead. -func (*Config) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{0} +func (x PatternFlowSnmpv2CVersion_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) } -func (x *Config) GetPorts() []*Port { - if x != nil { - return x.Ports - } - return nil +// Deprecated: Use PatternFlowSnmpv2CVersion_Choice_Enum.Descriptor instead. +func (PatternFlowSnmpv2CVersion_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{763, 0, 0} } -func (x *Config) GetLags() []*Lag { - if x != nil { - return x.Lags +type PatternFlowSnmpv2CPDURequestId_Choice_Enum int32 + +const ( + PatternFlowSnmpv2CPDURequestId_Choice_unspecified PatternFlowSnmpv2CPDURequestId_Choice_Enum = 0 + PatternFlowSnmpv2CPDURequestId_Choice_value PatternFlowSnmpv2CPDURequestId_Choice_Enum = 2 + PatternFlowSnmpv2CPDURequestId_Choice_values PatternFlowSnmpv2CPDURequestId_Choice_Enum = 3 + PatternFlowSnmpv2CPDURequestId_Choice_increment PatternFlowSnmpv2CPDURequestId_Choice_Enum = 4 + PatternFlowSnmpv2CPDURequestId_Choice_decrement PatternFlowSnmpv2CPDURequestId_Choice_Enum = 5 +) + +// Enum value maps for PatternFlowSnmpv2CPDURequestId_Choice_Enum. +var ( + PatternFlowSnmpv2CPDURequestId_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 2: "value", + 3: "values", + 4: "increment", + 5: "decrement", } - return nil + PatternFlowSnmpv2CPDURequestId_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "value": 2, + "values": 3, + "increment": 4, + "decrement": 5, + } +) + +func (x PatternFlowSnmpv2CPDURequestId_Choice_Enum) Enum() *PatternFlowSnmpv2CPDURequestId_Choice_Enum { + p := new(PatternFlowSnmpv2CPDURequestId_Choice_Enum) + *p = x + return p } -func (x *Config) GetLayer1() []*Layer1 { - if x != nil { - return x.Layer1 - } - return nil +func (x PatternFlowSnmpv2CPDURequestId_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -func (x *Config) GetCaptures() []*Capture { - if x != nil { - return x.Captures - } - return nil +func (PatternFlowSnmpv2CPDURequestId_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[326].Descriptor() } -func (x *Config) GetDevices() []*Device { - if x != nil { - return x.Devices - } - return nil +func (PatternFlowSnmpv2CPDURequestId_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[326] } -func (x *Config) GetFlows() []*Flow { - if x != nil { - return x.Flows - } - return nil +func (x PatternFlowSnmpv2CPDURequestId_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) } -func (x *Config) GetEvents() *Event { - if x != nil { - return x.Events - } - return nil +// Deprecated: Use PatternFlowSnmpv2CPDURequestId_Choice_Enum.Descriptor instead. +func (PatternFlowSnmpv2CPDURequestId_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{765, 0, 0} } -func (x *Config) GetOptions() *ConfigOptions { - if x != nil { - return x.Options +type PatternFlowSnmpv2CPDUErrorIndex_Choice_Enum int32 + +const ( + PatternFlowSnmpv2CPDUErrorIndex_Choice_unspecified PatternFlowSnmpv2CPDUErrorIndex_Choice_Enum = 0 + PatternFlowSnmpv2CPDUErrorIndex_Choice_value PatternFlowSnmpv2CPDUErrorIndex_Choice_Enum = 2 + PatternFlowSnmpv2CPDUErrorIndex_Choice_values PatternFlowSnmpv2CPDUErrorIndex_Choice_Enum = 3 + PatternFlowSnmpv2CPDUErrorIndex_Choice_increment PatternFlowSnmpv2CPDUErrorIndex_Choice_Enum = 4 + PatternFlowSnmpv2CPDUErrorIndex_Choice_decrement PatternFlowSnmpv2CPDUErrorIndex_Choice_Enum = 5 +) + +// Enum value maps for PatternFlowSnmpv2CPDUErrorIndex_Choice_Enum. +var ( + PatternFlowSnmpv2CPDUErrorIndex_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 2: "value", + 3: "values", + 4: "increment", + 5: "decrement", } - return nil + PatternFlowSnmpv2CPDUErrorIndex_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "value": 2, + "values": 3, + "increment": 4, + "decrement": 5, + } +) + +func (x PatternFlowSnmpv2CPDUErrorIndex_Choice_Enum) Enum() *PatternFlowSnmpv2CPDUErrorIndex_Choice_Enum { + p := new(PatternFlowSnmpv2CPDUErrorIndex_Choice_Enum) + *p = x + return p } -func (x *Config) GetLldp() []*Lldp { - if x != nil { - return x.Lldp - } - return nil +func (x PatternFlowSnmpv2CPDUErrorIndex_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -// Global configuration options. -type ConfigOptions struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (PatternFlowSnmpv2CPDUErrorIndex_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[327].Descriptor() +} - // Description missing in models - PortOptions *PortOptions `protobuf:"bytes,1,opt,name=port_options,json=portOptions,proto3" json:"port_options,omitempty"` - // Description missing in models - ProtocolOptions *ProtocolOptions `protobuf:"bytes,2,opt,name=protocol_options,json=protocolOptions,proto3" json:"protocol_options,omitempty"` +func (PatternFlowSnmpv2CPDUErrorIndex_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[327] } -func (x *ConfigOptions) Reset() { - *x = ConfigOptions{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (x PatternFlowSnmpv2CPDUErrorIndex_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) } -func (x *ConfigOptions) String() string { - return protoimpl.X.MessageStringOf(x) +// Deprecated: Use PatternFlowSnmpv2CPDUErrorIndex_Choice_Enum.Descriptor instead. +func (PatternFlowSnmpv2CPDUErrorIndex_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{767, 0, 0} } -func (*ConfigOptions) ProtoMessage() {} +type PatternFlowSnmpv2CBulkPDURequestId_Choice_Enum int32 -func (x *ConfigOptions) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +const ( + PatternFlowSnmpv2CBulkPDURequestId_Choice_unspecified PatternFlowSnmpv2CBulkPDURequestId_Choice_Enum = 0 + PatternFlowSnmpv2CBulkPDURequestId_Choice_value PatternFlowSnmpv2CBulkPDURequestId_Choice_Enum = 2 + PatternFlowSnmpv2CBulkPDURequestId_Choice_values PatternFlowSnmpv2CBulkPDURequestId_Choice_Enum = 3 + PatternFlowSnmpv2CBulkPDURequestId_Choice_increment PatternFlowSnmpv2CBulkPDURequestId_Choice_Enum = 4 + PatternFlowSnmpv2CBulkPDURequestId_Choice_decrement PatternFlowSnmpv2CBulkPDURequestId_Choice_Enum = 5 +) + +// Enum value maps for PatternFlowSnmpv2CBulkPDURequestId_Choice_Enum. +var ( + PatternFlowSnmpv2CBulkPDURequestId_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 2: "value", + 3: "values", + 4: "increment", + 5: "decrement", } - return mi.MessageOf(x) -} + PatternFlowSnmpv2CBulkPDURequestId_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "value": 2, + "values": 3, + "increment": 4, + "decrement": 5, + } +) -// Deprecated: Use ConfigOptions.ProtoReflect.Descriptor instead. -func (*ConfigOptions) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{1} +func (x PatternFlowSnmpv2CBulkPDURequestId_Choice_Enum) Enum() *PatternFlowSnmpv2CBulkPDURequestId_Choice_Enum { + p := new(PatternFlowSnmpv2CBulkPDURequestId_Choice_Enum) + *p = x + return p } -func (x *ConfigOptions) GetPortOptions() *PortOptions { - if x != nil { - return x.PortOptions - } - return nil +func (x PatternFlowSnmpv2CBulkPDURequestId_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -func (x *ConfigOptions) GetProtocolOptions() *ProtocolOptions { - if x != nil { - return x.ProtocolOptions - } - return nil +func (PatternFlowSnmpv2CBulkPDURequestId_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[328].Descriptor() } -// An abstract test port. -type Port struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The location of a test port. It is the endpoint where packets will emit from. - // Test port locations can be the following: - // - physical appliance with multiple ports - // - physical chassis with multiple cards and ports - // - local interface - // - virtual machine, docker container, kubernetes cluster - // - // The test port location format is implementation specific. Use the /results/capabilities - // API to determine what formats an implementation supports for the location property. - // Get the configured location state by using the /results/port API. - Location *string `protobuf:"bytes,1,opt,name=location,proto3,oneof" json:"location,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name *string `protobuf:"bytes,2,opt,name=name,proto3,oneof" json:"name,omitempty"` +func (PatternFlowSnmpv2CBulkPDURequestId_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[328] } -func (x *Port) Reset() { - *x = Port{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (x PatternFlowSnmpv2CBulkPDURequestId_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) } -func (x *Port) String() string { - return protoimpl.X.MessageStringOf(x) +// Deprecated: Use PatternFlowSnmpv2CBulkPDURequestId_Choice_Enum.Descriptor instead. +func (PatternFlowSnmpv2CBulkPDURequestId_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{769, 0, 0} } -func (*Port) ProtoMessage() {} +type PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_Enum int32 -func (x *Port) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +const ( + PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_unspecified PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_Enum = 0 + PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_value PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_Enum = 2 + PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_values PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_Enum = 3 +) + +// Enum value maps for PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_Enum. +var ( + PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 2: "value", + 3: "values", } - return mi.MessageOf(x) -} + PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "value": 2, + "values": 3, + } +) -// Deprecated: Use Port.ProtoReflect.Descriptor instead. -func (*Port) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{2} +func (x PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_Enum) Enum() *PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_Enum { + p := new(PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_Enum) + *p = x + return p } -func (x *Port) GetLocation() string { - if x != nil && x.Location != nil { - return *x.Location - } - return "" +func (x PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -func (x *Port) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" +func (PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[329].Descriptor() } -// Common port options that apply to all configured Port objects. -type PortOptions struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Preempt all the test port locations as defined by the Port.Port.properties.location. - // If the test ports defined by their location values are in use and this value is - // true, the test ports will be preempted. - // default = False - LocationPreemption *bool `protobuf:"varint,1,opt,name=location_preemption,json=locationPreemption,proto3,oneof" json:"location_preemption,omitempty"` +func (PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[329] } -func (x *PortOptions) Reset() { - *x = PortOptions{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (x PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) } -func (x *PortOptions) String() string { - return protoimpl.X.MessageStringOf(x) +// Deprecated: Use PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_Enum.Descriptor instead. +func (PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{770, 0, 0} } -func (*PortOptions) ProtoMessage() {} +type PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_Enum int32 -func (x *PortOptions) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +const ( + PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_unspecified PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_Enum = 0 + PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_value PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_Enum = 2 + PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_values PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_Enum = 3 + PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_increment PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_Enum = 4 + PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_decrement PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_Enum = 5 +) + +// Enum value maps for PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_Enum. +var ( + PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 2: "value", + 3: "values", + 4: "increment", + 5: "decrement", } - return mi.MessageOf(x) + PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "value": 2, + "values": 3, + "increment": 4, + "decrement": 5, + } +) + +func (x PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_Enum) Enum() *PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_Enum { + p := new(PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_Enum) + *p = x + return p } -// Deprecated: Use PortOptions.ProtoReflect.Descriptor instead. -func (*PortOptions) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{3} +func (x PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -func (x *PortOptions) GetLocationPreemption() bool { - if x != nil && x.LocationPreemption != nil { - return *x.LocationPreemption - } - return false +func (PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[330].Descriptor() } -// The container for LAG (ports group) - aggregation of multiple LAG members (ports) -type Lag struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[330] +} - // Description missing in models - Ports []*LagPort `protobuf:"bytes,1,rep,name=ports,proto3" json:"ports,omitempty"` - // Description missing in models - Protocol *LagProtocol `protobuf:"bytes,2,opt,name=protocol,proto3" json:"protocol,omitempty"` - // Specifies the mininum number of member interfaces that must be active for the aggregate - // interface to be available. - // If the aggregate interface is not available due to min-links criterion not being - // met, LACPDUs continue to be transmitted and received by the member interfaces if - // LACP is enabled, but other PDUs are not transmitted or received. - // default = 1 - MinLinks *uint32 `protobuf:"varint,3,opt,name=min_links,json=minLinks,proto3,oneof" json:"min_links,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name *string `protobuf:"bytes,4,opt,name=name,proto3,oneof" json:"name,omitempty"` +func (x PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) } -func (x *Lag) Reset() { - *x = Lag{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +// Deprecated: Use PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_Enum.Descriptor instead. +func (PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{772, 0, 0} +} + +type PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_Enum int32 + +const ( + PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_unspecified PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_Enum = 0 + PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_value PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_Enum = 2 + PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_values PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_Enum = 3 + PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_increment PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_Enum = 4 + PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_decrement PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_Enum = 5 +) + +// Enum value maps for PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_Enum. +var ( + PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 2: "value", + 3: "values", + 4: "increment", + 5: "decrement", + } + PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "value": 2, + "values": 3, + "increment": 4, + "decrement": 5, } +) + +func (x PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_Enum) Enum() *PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_Enum { + p := new(PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_Enum) + *p = x + return p } -func (x *Lag) String() string { - return protoimpl.X.MessageStringOf(x) +func (x PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -func (*Lag) ProtoMessage() {} +func (PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[331].Descriptor() +} -func (x *Lag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[331] +} + +func (x PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_Enum.Descriptor instead. +func (PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{774, 0, 0} +} + +type PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_Enum int32 + +const ( + PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_unspecified PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_Enum = 0 + PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_value PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_Enum = 2 + PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_values PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_Enum = 3 + PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_increment PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_Enum = 4 + PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_decrement PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_Enum = 5 +) + +// Enum value maps for PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_Enum. +var ( + PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 2: "value", + 3: "values", + 4: "increment", + 5: "decrement", } - return mi.MessageOf(x) + PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "value": 2, + "values": 3, + "increment": 4, + "decrement": 5, + } +) + +func (x PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_Enum) Enum() *PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_Enum { + p := new(PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_Enum) + *p = x + return p } -// Deprecated: Use Lag.ProtoReflect.Descriptor instead. -func (*Lag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{4} +func (x PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -func (x *Lag) GetPorts() []*LagPort { - if x != nil { - return x.Ports +func (PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[332].Descriptor() +} + +func (PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[332] +} + +func (x PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_Enum.Descriptor instead. +func (PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{776, 0, 0} +} + +type PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_Enum int32 + +const ( + PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_unspecified PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_Enum = 0 + PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_value PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_Enum = 2 + PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_values PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_Enum = 3 + PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_increment PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_Enum = 4 + PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_decrement PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_Enum = 5 +) + +// Enum value maps for PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_Enum. +var ( + PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 2: "value", + 3: "values", + 4: "increment", + 5: "decrement", } - return nil + PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "value": 2, + "values": 3, + "increment": 4, + "decrement": 5, + } +) + +func (x PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_Enum) Enum() *PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_Enum { + p := new(PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_Enum) + *p = x + return p } -func (x *Lag) GetProtocol() *LagProtocol { - if x != nil { - return x.Protocol +func (x PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[333].Descriptor() +} + +func (PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[333] +} + +func (x PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_Enum.Descriptor instead. +func (PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{778, 0, 0} +} + +type PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_Enum int32 + +const ( + PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_unspecified PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_Enum = 0 + PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_value PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_Enum = 2 + PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_values PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_Enum = 3 + PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_increment PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_Enum = 4 + PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_decrement PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_Enum = 5 +) + +// Enum value maps for PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_Enum. +var ( + PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 2: "value", + 3: "values", + 4: "increment", + 5: "decrement", } - return nil + PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "value": 2, + "values": 3, + "increment": 4, + "decrement": 5, + } +) + +func (x PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_Enum) Enum() *PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_Enum { + p := new(PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_Enum) + *p = x + return p } -func (x *Lag) GetMinLinks() uint32 { - if x != nil && x.MinLinks != nil { - return *x.MinLinks +func (x PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[334].Descriptor() +} + +func (PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[334] +} + +func (x PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_Enum.Descriptor instead. +func (PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{780, 0, 0} +} + +type PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_Enum int32 + +const ( + PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_unspecified PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_Enum = 0 + PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_value PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_Enum = 2 + PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_values PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_Enum = 3 + PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_increment PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_Enum = 4 + PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_decrement PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_Enum = 5 +) + +// Enum value maps for PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_Enum. +var ( + PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 2: "value", + 3: "values", + 4: "increment", + 5: "decrement", } - return 0 + PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "value": 2, + "values": 3, + "increment": 4, + "decrement": 5, + } +) + +func (x PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_Enum) Enum() *PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_Enum { + p := new(PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_Enum) + *p = x + return p } -func (x *Lag) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[335].Descriptor() +} + +func (PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[335] +} + +func (x PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_Enum.Descriptor instead. +func (PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{782, 0, 0} +} + +type PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_Enum int32 + +const ( + PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_unspecified PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_Enum = 0 + PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_value PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_Enum = 2 + PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_values PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_Enum = 3 + PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_increment PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_Enum = 4 + PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_decrement PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_Enum = 5 +) + +// Enum value maps for PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_Enum. +var ( + PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 2: "value", + 3: "values", + 4: "increment", + 5: "decrement", } - return "" + PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "value": 2, + "values": 3, + "increment": 4, + "decrement": 5, + } +) + +func (x PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_Enum) Enum() *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_Enum { + p := new(PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_Enum) + *p = x + return p } -// The container for a port's ethernet interface and LAG protocol settings -type LagPort struct { +func (x PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[336].Descriptor() +} + +func (PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[336] +} + +func (x PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_Enum.Descriptor instead. +func (PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{784, 0, 0} +} + +type PatternFlowSnmpv2CCommonRequestId_Choice_Enum int32 + +const ( + PatternFlowSnmpv2CCommonRequestId_Choice_unspecified PatternFlowSnmpv2CCommonRequestId_Choice_Enum = 0 + PatternFlowSnmpv2CCommonRequestId_Choice_value PatternFlowSnmpv2CCommonRequestId_Choice_Enum = 2 + PatternFlowSnmpv2CCommonRequestId_Choice_values PatternFlowSnmpv2CCommonRequestId_Choice_Enum = 3 + PatternFlowSnmpv2CCommonRequestId_Choice_increment PatternFlowSnmpv2CCommonRequestId_Choice_Enum = 4 + PatternFlowSnmpv2CCommonRequestId_Choice_decrement PatternFlowSnmpv2CCommonRequestId_Choice_Enum = 5 +) + +// Enum value maps for PatternFlowSnmpv2CCommonRequestId_Choice_Enum. +var ( + PatternFlowSnmpv2CCommonRequestId_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 2: "value", + 3: "values", + 4: "increment", + 5: "decrement", + } + PatternFlowSnmpv2CCommonRequestId_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "value": 2, + "values": 3, + "increment": 4, + "decrement": 5, + } +) + +func (x PatternFlowSnmpv2CCommonRequestId_Choice_Enum) Enum() *PatternFlowSnmpv2CCommonRequestId_Choice_Enum { + p := new(PatternFlowSnmpv2CCommonRequestId_Choice_Enum) + *p = x + return p +} + +func (x PatternFlowSnmpv2CCommonRequestId_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PatternFlowSnmpv2CCommonRequestId_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[337].Descriptor() +} + +func (PatternFlowSnmpv2CCommonRequestId_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[337] +} + +func (x PatternFlowSnmpv2CCommonRequestId_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PatternFlowSnmpv2CCommonRequestId_Choice_Enum.Descriptor instead. +func (PatternFlowSnmpv2CCommonRequestId_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{786, 0, 0} +} + +// A container for all models that are part of the configuration. +type Config struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of a port object that will be part of the LAG. - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - // required = true - PortName *string `protobuf:"bytes,1,opt,name=port_name,json=portName,proto3,oneof" json:"port_name,omitempty"` + // The ports that will be configured on the traffic generator. + Ports []*Port `protobuf:"bytes,1,rep,name=ports,proto3" json:"ports,omitempty"` + // The LAGs that will be configured on the traffic generator. + Lags []*Lag `protobuf:"bytes,2,rep,name=lags,proto3" json:"lags,omitempty"` + // The layer1 settings that will be configured on the traffic generator. + // Since layer1 settings usually vary across variety of test ports, these + // most likely won't be portable. + Layer1 []*Layer1 `protobuf:"bytes,3,rep,name=layer1,proto3" json:"layer1,omitempty"` + // The capture settings that will be configured on the traffic generator. + Captures []*Capture `protobuf:"bytes,4,rep,name=captures,proto3" json:"captures,omitempty"` + // The emulated devices that will be configured on the traffic generator. + // Each device contains configurations for network interfaces and + // protocols running on top of those interfaces. + Devices []*Device `protobuf:"bytes,5,rep,name=devices,proto3" json:"devices,omitempty"` + // The flows that will be configured on the traffic generator. + Flows []*Flow `protobuf:"bytes,6,rep,name=flows,proto3" json:"flows,omitempty"` // Description missing in models - Lacp *LagPortLacp `protobuf:"bytes,2,opt,name=lacp,proto3" json:"lacp,omitempty"` + Events *Event `protobuf:"bytes,7,opt,name=events,proto3" json:"events,omitempty"` // Description missing in models - // required = true - Ethernet *DeviceEthernetBase `protobuf:"bytes,3,opt,name=ethernet,proto3" json:"ethernet,omitempty"` + Options *ConfigOptions `protobuf:"bytes,8,opt,name=options,proto3" json:"options,omitempty"` + // LLDP protocol that will be configured on traffic generator. + Lldp []*Lldp `protobuf:"bytes,9,rep,name=lldp,proto3" json:"lldp,omitempty"` } -func (x *LagPort) Reset() { - *x = LagPort{} +func (x *Config) Reset() { + *x = Config{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[5] + mi := &file_otg_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LagPort) String() string { +func (x *Config) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LagPort) ProtoMessage() {} +func (*Config) ProtoMessage() {} -func (x *LagPort) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[5] +func (x *Config) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18022,64 +18594,103 @@ func (x *LagPort) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LagPort.ProtoReflect.Descriptor instead. -func (*LagPort) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{5} +// Deprecated: Use Config.ProtoReflect.Descriptor instead. +func (*Config) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{0} } -func (x *LagPort) GetPortName() string { - if x != nil && x.PortName != nil { - return *x.PortName +func (x *Config) GetPorts() []*Port { + if x != nil { + return x.Ports } - return "" + return nil } -func (x *LagPort) GetLacp() *LagPortLacp { +func (x *Config) GetLags() []*Lag { if x != nil { - return x.Lacp + return x.Lags } return nil } -func (x *LagPort) GetEthernet() *DeviceEthernetBase { +func (x *Config) GetLayer1() []*Layer1 { if x != nil { - return x.Ethernet + return x.Layer1 } return nil } -// Description missing in models -type LagProtocol struct { +func (x *Config) GetCaptures() []*Capture { + if x != nil { + return x.Captures + } + return nil +} + +func (x *Config) GetDevices() []*Device { + if x != nil { + return x.Devices + } + return nil +} + +func (x *Config) GetFlows() []*Flow { + if x != nil { + return x.Flows + } + return nil +} + +func (x *Config) GetEvents() *Event { + if x != nil { + return x.Events + } + return nil +} + +func (x *Config) GetOptions() *ConfigOptions { + if x != nil { + return x.Options + } + return nil +} + +func (x *Config) GetLldp() []*Lldp { + if x != nil { + return x.Lldp + } + return nil +} + +// Global configuration options. +type ConfigOptions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The type of controlling protocol for the LAG (ports group). - // default = Choice.Enum.lacp - Choice *LagProtocol_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LagProtocol_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Lacp *LagProtocolLacp `protobuf:"bytes,2,opt,name=lacp,proto3" json:"lacp,omitempty"` + PortOptions *PortOptions `protobuf:"bytes,1,opt,name=port_options,json=portOptions,proto3" json:"port_options,omitempty"` // Description missing in models - Static *LagProtocolStatic `protobuf:"bytes,3,opt,name=static,proto3" json:"static,omitempty"` + ProtocolOptions *ProtocolOptions `protobuf:"bytes,2,opt,name=protocol_options,json=protocolOptions,proto3" json:"protocol_options,omitempty"` } -func (x *LagProtocol) Reset() { - *x = LagProtocol{} +func (x *ConfigOptions) Reset() { + *x = ConfigOptions{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[6] + mi := &file_otg_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LagProtocol) String() string { +func (x *ConfigOptions) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LagProtocol) ProtoMessage() {} +func (*ConfigOptions) ProtoMessage() {} -func (x *LagProtocol) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[6] +func (x *ConfigOptions) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18090,60 +18701,65 @@ func (x *LagProtocol) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LagProtocol.ProtoReflect.Descriptor instead. -func (*LagProtocol) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{6} -} - -func (x *LagProtocol) GetChoice() LagProtocol_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return LagProtocol_Choice_unspecified +// Deprecated: Use ConfigOptions.ProtoReflect.Descriptor instead. +func (*ConfigOptions) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1} } -func (x *LagProtocol) GetLacp() *LagProtocolLacp { +func (x *ConfigOptions) GetPortOptions() *PortOptions { if x != nil { - return x.Lacp + return x.PortOptions } return nil } -func (x *LagProtocol) GetStatic() *LagProtocolStatic { +func (x *ConfigOptions) GetProtocolOptions() *ProtocolOptions { if x != nil { - return x.Static + return x.ProtocolOptions } return nil } -// The container for static link aggregation protocol settings. -type LagProtocolStatic struct { +// An abstract test port. +type Port struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The static lag id - // default = 0 - LagId *uint32 `protobuf:"varint,1,opt,name=lag_id,json=lagId,proto3,oneof" json:"lag_id,omitempty"` + // The location of a test port. It is the endpoint where packets will emit from. + // Test port locations can be the following: + // - physical appliance with multiple ports + // - physical chassis with multiple cards and ports + // - local interface + // - virtual machine, docker container, kubernetes cluster + // + // The test port location format is implementation specific. Use the /results/capabilities + // API to determine what formats an implementation supports for the location property. + // Get the configured location state by using the /results/port API. + Location *string `protobuf:"bytes,1,opt,name=location,proto3,oneof" json:"location,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name *string `protobuf:"bytes,2,opt,name=name,proto3,oneof" json:"name,omitempty"` } -func (x *LagProtocolStatic) Reset() { - *x = LagProtocolStatic{} +func (x *Port) Reset() { + *x = Port{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[7] + mi := &file_otg_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LagProtocolStatic) String() string { +func (x *Port) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LagProtocolStatic) ProtoMessage() {} +func (*Port) ProtoMessage() {} -func (x *LagProtocolStatic) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[7] +func (x *Port) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18154,52 +18770,55 @@ func (x *LagProtocolStatic) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LagProtocolStatic.ProtoReflect.Descriptor instead. -func (*LagProtocolStatic) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{7} +// Deprecated: Use Port.ProtoReflect.Descriptor instead. +func (*Port) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{2} } -func (x *LagProtocolStatic) GetLagId() uint32 { - if x != nil && x.LagId != nil { - return *x.LagId +func (x *Port) GetLocation() string { + if x != nil && x.Location != nil { + return *x.Location } - return 0 + return "" } -// The container for link aggregation control protocol settings of a LAG (ports group). -type LagProtocolLacp struct { +func (x *Port) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +// Common port options that apply to all configured Port objects. +type PortOptions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The actor system id - // default = 00:00:00:00:00:00 - ActorSystemId *string `protobuf:"bytes,1,opt,name=actor_system_id,json=actorSystemId,proto3,oneof" json:"actor_system_id,omitempty"` - // The actor system priority - // default = 0 - ActorSystemPriority *uint32 `protobuf:"varint,2,opt,name=actor_system_priority,json=actorSystemPriority,proto3,oneof" json:"actor_system_priority,omitempty"` - // The actor key - // default = 0 - ActorKey *uint32 `protobuf:"varint,3,opt,name=actor_key,json=actorKey,proto3,oneof" json:"actor_key,omitempty"` + // Preempt all the test port locations as defined by the Port.Port.properties.location. + // If the test ports defined by their location values are in use and this value is + // true, the test ports will be preempted. + // default = False + LocationPreemption *bool `protobuf:"varint,1,opt,name=location_preemption,json=locationPreemption,proto3,oneof" json:"location_preemption,omitempty"` } -func (x *LagProtocolLacp) Reset() { - *x = LagProtocolLacp{} +func (x *PortOptions) Reset() { + *x = PortOptions{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[8] + mi := &file_otg_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LagProtocolLacp) String() string { +func (x *PortOptions) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LagProtocolLacp) ProtoMessage() {} +func (*PortOptions) ProtoMessage() {} -func (x *LagProtocolLacp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[8] +func (x *PortOptions) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18210,8 +18829,341 @@ func (x *LagProtocolLacp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LagProtocolLacp.ProtoReflect.Descriptor instead. -func (*LagProtocolLacp) Descriptor() ([]byte, []int) { +// Deprecated: Use PortOptions.ProtoReflect.Descriptor instead. +func (*PortOptions) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{3} +} + +func (x *PortOptions) GetLocationPreemption() bool { + if x != nil && x.LocationPreemption != nil { + return *x.LocationPreemption + } + return false +} + +// The container for LAG (ports group) - aggregation of multiple LAG members (ports) +type Lag struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Description missing in models + Ports []*LagPort `protobuf:"bytes,1,rep,name=ports,proto3" json:"ports,omitempty"` + // Description missing in models + Protocol *LagProtocol `protobuf:"bytes,2,opt,name=protocol,proto3" json:"protocol,omitempty"` + // Specifies the mininum number of member interfaces that must be active for the aggregate + // interface to be available. + // If the aggregate interface is not available due to min-links criterion not being + // met, LACPDUs continue to be transmitted and received by the member interfaces if + // LACP is enabled, but other PDUs are not transmitted or received. + // default = 1 + MinLinks *uint32 `protobuf:"varint,3,opt,name=min_links,json=minLinks,proto3,oneof" json:"min_links,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name *string `protobuf:"bytes,4,opt,name=name,proto3,oneof" json:"name,omitempty"` +} + +func (x *Lag) Reset() { + *x = Lag{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Lag) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Lag) ProtoMessage() {} + +func (x *Lag) ProtoReflect() protoreflect.Message { + mi := &file_otg_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 Lag.ProtoReflect.Descriptor instead. +func (*Lag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{4} +} + +func (x *Lag) GetPorts() []*LagPort { + if x != nil { + return x.Ports + } + return nil +} + +func (x *Lag) GetProtocol() *LagProtocol { + if x != nil { + return x.Protocol + } + return nil +} + +func (x *Lag) GetMinLinks() uint32 { + if x != nil && x.MinLinks != nil { + return *x.MinLinks + } + return 0 +} + +func (x *Lag) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +// The container for a port's ethernet interface and LAG protocol settings +type LagPort struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of a port object that will be part of the LAG. + // + // x-constraint: + // - /components/schemas/Port/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name + // + // required = true + PortName *string `protobuf:"bytes,1,opt,name=port_name,json=portName,proto3,oneof" json:"port_name,omitempty"` + // Description missing in models + Lacp *LagPortLacp `protobuf:"bytes,2,opt,name=lacp,proto3" json:"lacp,omitempty"` + // Description missing in models + // required = true + Ethernet *DeviceEthernetBase `protobuf:"bytes,3,opt,name=ethernet,proto3" json:"ethernet,omitempty"` +} + +func (x *LagPort) Reset() { + *x = LagPort{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LagPort) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LagPort) ProtoMessage() {} + +func (x *LagPort) ProtoReflect() protoreflect.Message { + mi := &file_otg_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 LagPort.ProtoReflect.Descriptor instead. +func (*LagPort) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{5} +} + +func (x *LagPort) GetPortName() string { + if x != nil && x.PortName != nil { + return *x.PortName + } + return "" +} + +func (x *LagPort) GetLacp() *LagPortLacp { + if x != nil { + return x.Lacp + } + return nil +} + +func (x *LagPort) GetEthernet() *DeviceEthernetBase { + if x != nil { + return x.Ethernet + } + return nil +} + +// Description missing in models +type LagProtocol struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The type of controlling protocol for the LAG (ports group). + // default = Choice.Enum.lacp + Choice *LagProtocol_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LagProtocol_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Lacp *LagProtocolLacp `protobuf:"bytes,2,opt,name=lacp,proto3" json:"lacp,omitempty"` + // Description missing in models + Static *LagProtocolStatic `protobuf:"bytes,3,opt,name=static,proto3" json:"static,omitempty"` +} + +func (x *LagProtocol) Reset() { + *x = LagProtocol{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LagProtocol) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LagProtocol) ProtoMessage() {} + +func (x *LagProtocol) ProtoReflect() protoreflect.Message { + mi := &file_otg_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 LagProtocol.ProtoReflect.Descriptor instead. +func (*LagProtocol) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{6} +} + +func (x *LagProtocol) GetChoice() LagProtocol_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return LagProtocol_Choice_unspecified +} + +func (x *LagProtocol) GetLacp() *LagProtocolLacp { + if x != nil { + return x.Lacp + } + return nil +} + +func (x *LagProtocol) GetStatic() *LagProtocolStatic { + if x != nil { + return x.Static + } + return nil +} + +// The container for static link aggregation protocol settings. +type LagProtocolStatic struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The static lag id + // default = 0 + LagId *uint32 `protobuf:"varint,1,opt,name=lag_id,json=lagId,proto3,oneof" json:"lag_id,omitempty"` +} + +func (x *LagProtocolStatic) Reset() { + *x = LagProtocolStatic{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LagProtocolStatic) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LagProtocolStatic) ProtoMessage() {} + +func (x *LagProtocolStatic) ProtoReflect() protoreflect.Message { + mi := &file_otg_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 LagProtocolStatic.ProtoReflect.Descriptor instead. +func (*LagProtocolStatic) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{7} +} + +func (x *LagProtocolStatic) GetLagId() uint32 { + if x != nil && x.LagId != nil { + return *x.LagId + } + return 0 +} + +// The container for link aggregation control protocol settings of a LAG (ports group). +type LagProtocolLacp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The actor system id + // default = 00:00:00:00:00:00 + ActorSystemId *string `protobuf:"bytes,1,opt,name=actor_system_id,json=actorSystemId,proto3,oneof" json:"actor_system_id,omitempty"` + // The actor system priority + // default = 0 + ActorSystemPriority *uint32 `protobuf:"varint,2,opt,name=actor_system_priority,json=actorSystemPriority,proto3,oneof" json:"actor_system_priority,omitempty"` + // The actor key + // default = 0 + ActorKey *uint32 `protobuf:"varint,3,opt,name=actor_key,json=actorKey,proto3,oneof" json:"actor_key,omitempty"` +} + +func (x *LagProtocolLacp) Reset() { + *x = LagProtocolLacp{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LagProtocolLacp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LagProtocolLacp) ProtoMessage() {} + +func (x *LagProtocolLacp) ProtoReflect() protoreflect.Message { + mi := &file_otg_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 LagProtocolLacp.ProtoReflect.Descriptor instead. +func (*LagProtocolLacp) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{8} } @@ -32753,6 +33705,8 @@ type FlowHeader struct { Igmpv1 *FlowIgmpv1 `protobuf:"bytes,19,opt,name=igmpv1,proto3" json:"igmpv1,omitempty"` // Description missing in models Mpls *FlowMpls `protobuf:"bytes,20,opt,name=mpls,proto3" json:"mpls,omitempty"` + // Description missing in models + Snmpv2C *FlowSnmpv2C `protobuf:"bytes,21,opt,name=snmpv2c,proto3" json:"snmpv2c,omitempty"` } func (x *FlowHeader) Reset() { @@ -32927,6 +33881,13 @@ func (x *FlowHeader) GetMpls() *FlowMpls { return nil } +func (x *FlowHeader) GetSnmpv2C() *FlowSnmpv2C { + if x != nil { + return x.Snmpv2C + } + return nil +} + // Custom packet header type FlowCustom struct { state protoimpl.MessageState @@ -35656,6 +36617,603 @@ func (x *FlowMpls) GetTimeToLive() *PatternFlowMplsTimeToLive { return nil } +// SNMPv2C packet header as defined in RFC1901 and RFC3416. +type FlowSnmpv2C struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Description missing in models + Version *PatternFlowSnmpv2CVersion `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` + // It is an ASCII based octet string which identifies the SNMP community in which the + // sender and recipient of this message are located. It should match the read-only or + // read-write community string configured on the recipient for the PDU to be accepted. + // default = community + Community *string `protobuf:"bytes,2,opt,name=community,proto3,oneof" json:"community,omitempty"` + // Description missing in models + // required = true + Data *FlowSnmpv2CData `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *FlowSnmpv2C) Reset() { + *x = FlowSnmpv2C{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[193] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FlowSnmpv2C) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FlowSnmpv2C) ProtoMessage() {} + +func (x *FlowSnmpv2C) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[193] + 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 FlowSnmpv2C.ProtoReflect.Descriptor instead. +func (*FlowSnmpv2C) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{193} +} + +func (x *FlowSnmpv2C) GetVersion() *PatternFlowSnmpv2CVersion { + if x != nil { + return x.Version + } + return nil +} + +func (x *FlowSnmpv2C) GetCommunity() string { + if x != nil && x.Community != nil { + return *x.Community + } + return "" +} + +func (x *FlowSnmpv2C) GetData() *FlowSnmpv2CData { + if x != nil { + return x.Data + } + return nil +} + +// This contains the body of the SNMPv2C message. +// +// - Encoding of subsequent fields follow ASN.1 specification. +// Refer: http://www.itu.int/ITU-T/asn1/ +type FlowSnmpv2CData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Description missing in models + // required = true + Choice *FlowSnmpv2CData_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowSnmpv2CData_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + GetRequest *FlowSnmpv2CPDU `protobuf:"bytes,2,opt,name=get_request,json=getRequest,proto3" json:"get_request,omitempty"` + // Description missing in models + GetNextRequest *FlowSnmpv2CPDU `protobuf:"bytes,3,opt,name=get_next_request,json=getNextRequest,proto3" json:"get_next_request,omitempty"` + // Description missing in models + Response *FlowSnmpv2CPDU `protobuf:"bytes,4,opt,name=response,proto3" json:"response,omitempty"` + // Description missing in models + SetRequest *FlowSnmpv2CPDU `protobuf:"bytes,5,opt,name=set_request,json=setRequest,proto3" json:"set_request,omitempty"` + // Description missing in models + GetBulkRequest *FlowSnmpv2CBulkPDU `protobuf:"bytes,6,opt,name=get_bulk_request,json=getBulkRequest,proto3" json:"get_bulk_request,omitempty"` + // Description missing in models + InformRequest *FlowSnmpv2CPDU `protobuf:"bytes,7,opt,name=inform_request,json=informRequest,proto3" json:"inform_request,omitempty"` + // Description missing in models + Snmpv2Trap *FlowSnmpv2CPDU `protobuf:"bytes,8,opt,name=snmpv2_trap,json=snmpv2Trap,proto3" json:"snmpv2_trap,omitempty"` + // Description missing in models + Report *FlowSnmpv2CPDU `protobuf:"bytes,9,opt,name=report,proto3" json:"report,omitempty"` +} + +func (x *FlowSnmpv2CData) Reset() { + *x = FlowSnmpv2CData{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[194] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FlowSnmpv2CData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FlowSnmpv2CData) ProtoMessage() {} + +func (x *FlowSnmpv2CData) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[194] + 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 FlowSnmpv2CData.ProtoReflect.Descriptor instead. +func (*FlowSnmpv2CData) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{194} +} + +func (x *FlowSnmpv2CData) GetChoice() FlowSnmpv2CData_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return FlowSnmpv2CData_Choice_unspecified +} + +func (x *FlowSnmpv2CData) GetGetRequest() *FlowSnmpv2CPDU { + if x != nil { + return x.GetRequest + } + return nil +} + +func (x *FlowSnmpv2CData) GetGetNextRequest() *FlowSnmpv2CPDU { + if x != nil { + return x.GetNextRequest + } + return nil +} + +func (x *FlowSnmpv2CData) GetResponse() *FlowSnmpv2CPDU { + if x != nil { + return x.Response + } + return nil +} + +func (x *FlowSnmpv2CData) GetSetRequest() *FlowSnmpv2CPDU { + if x != nil { + return x.SetRequest + } + return nil +} + +func (x *FlowSnmpv2CData) GetGetBulkRequest() *FlowSnmpv2CBulkPDU { + if x != nil { + return x.GetBulkRequest + } + return nil +} + +func (x *FlowSnmpv2CData) GetInformRequest() *FlowSnmpv2CPDU { + if x != nil { + return x.InformRequest + } + return nil +} + +func (x *FlowSnmpv2CData) GetSnmpv2Trap() *FlowSnmpv2CPDU { + if x != nil { + return x.Snmpv2Trap + } + return nil +} + +func (x *FlowSnmpv2CData) GetReport() *FlowSnmpv2CPDU { + if x != nil { + return x.Report + } + return nil +} + +// This contains the body of the SNMPv2C PDU. +type FlowSnmpv2CPDU struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Description missing in models + RequestId *PatternFlowSnmpv2CPDURequestId `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` + // The SNMP agent places an error code in this field in the response message if an error + // occurred processing the request. + // default = ErrorStatus.Enum.no_error + ErrorStatus *FlowSnmpv2CPDU_ErrorStatus_Enum `protobuf:"varint,2,opt,name=error_status,json=errorStatus,proto3,enum=otg.FlowSnmpv2CPDU_ErrorStatus_Enum,oneof" json:"error_status,omitempty"` + // Description missing in models + ErrorIndex *PatternFlowSnmpv2CPDUErrorIndex `protobuf:"bytes,3,opt,name=error_index,json=errorIndex,proto3" json:"error_index,omitempty"` + // A Sequence of variable_bindings. + VariableBindings []*FlowSnmpv2CVariableBinding `protobuf:"bytes,4,rep,name=variable_bindings,json=variableBindings,proto3" json:"variable_bindings,omitempty"` +} + +func (x *FlowSnmpv2CPDU) Reset() { + *x = FlowSnmpv2CPDU{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[195] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FlowSnmpv2CPDU) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FlowSnmpv2CPDU) ProtoMessage() {} + +func (x *FlowSnmpv2CPDU) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[195] + 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 FlowSnmpv2CPDU.ProtoReflect.Descriptor instead. +func (*FlowSnmpv2CPDU) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{195} +} + +func (x *FlowSnmpv2CPDU) GetRequestId() *PatternFlowSnmpv2CPDURequestId { + if x != nil { + return x.RequestId + } + return nil +} + +func (x *FlowSnmpv2CPDU) GetErrorStatus() FlowSnmpv2CPDU_ErrorStatus_Enum { + if x != nil && x.ErrorStatus != nil { + return *x.ErrorStatus + } + return FlowSnmpv2CPDU_ErrorStatus_unspecified +} + +func (x *FlowSnmpv2CPDU) GetErrorIndex() *PatternFlowSnmpv2CPDUErrorIndex { + if x != nil { + return x.ErrorIndex + } + return nil +} + +func (x *FlowSnmpv2CPDU) GetVariableBindings() []*FlowSnmpv2CVariableBinding { + if x != nil { + return x.VariableBindings + } + return nil +} + +// The purpose of the GetBulkRequest-PDU is to request the transfer of a potentially +// large amount of data, including, but not limited to, the efficient and rapid retrieval +// of large tables. +type FlowSnmpv2CBulkPDU struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Description missing in models + RequestId *PatternFlowSnmpv2CBulkPDURequestId `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` + // Description missing in models + NonRepeaters *PatternFlowSnmpv2CBulkPDUNonRepeaters `protobuf:"bytes,2,opt,name=non_repeaters,json=nonRepeaters,proto3" json:"non_repeaters,omitempty"` + // Description missing in models + MaxRepetitions *PatternFlowSnmpv2CBulkPDUMaxRepetitions `protobuf:"bytes,3,opt,name=max_repetitions,json=maxRepetitions,proto3" json:"max_repetitions,omitempty"` + // A Sequence of variable_bindings. + VariableBindings []*FlowSnmpv2CVariableBinding `protobuf:"bytes,4,rep,name=variable_bindings,json=variableBindings,proto3" json:"variable_bindings,omitempty"` +} + +func (x *FlowSnmpv2CBulkPDU) Reset() { + *x = FlowSnmpv2CBulkPDU{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[196] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FlowSnmpv2CBulkPDU) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FlowSnmpv2CBulkPDU) ProtoMessage() {} + +func (x *FlowSnmpv2CBulkPDU) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[196] + 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 FlowSnmpv2CBulkPDU.ProtoReflect.Descriptor instead. +func (*FlowSnmpv2CBulkPDU) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{196} +} + +func (x *FlowSnmpv2CBulkPDU) GetRequestId() *PatternFlowSnmpv2CBulkPDURequestId { + if x != nil { + return x.RequestId + } + return nil +} + +func (x *FlowSnmpv2CBulkPDU) GetNonRepeaters() *PatternFlowSnmpv2CBulkPDUNonRepeaters { + if x != nil { + return x.NonRepeaters + } + return nil +} + +func (x *FlowSnmpv2CBulkPDU) GetMaxRepetitions() *PatternFlowSnmpv2CBulkPDUMaxRepetitions { + if x != nil { + return x.MaxRepetitions + } + return nil +} + +func (x *FlowSnmpv2CBulkPDU) GetVariableBindings() []*FlowSnmpv2CVariableBinding { + if x != nil { + return x.VariableBindings + } + return nil +} + +// A Sequence of two fields, an object_identifier and the value for/from that object_identifier. +type FlowSnmpv2CVariableBinding struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The Object Identifier points to a particular parameter in the SNMP agent. + // - Encoding of this field follows RFC2578(section 3.5) and ASN.1 X.690(section 8.1.3.6) + // specification. + // Refer: http://www.itu.int/ITU-T/asn1/ + // - According to BER, the first two numbers of any OID (x.y) are encoded as one value + // using the formula (40*x)+y. + // Example, the first two numbers of an SNMP OID 1.3... are encoded as 43 or 0x2B, + // because (40*1)+3 = 43. + // - After the first two numbers are encoded, the subsequent numbers in the OID are + // each encoded as a byte. + // - However, a special rule is required for large numbers because one byte can only + // represent a number from 0-127. + // - The rule for large numbers states that only the lower 7 bits in the byte are used + // for holding the value (0-127). + // - The highest order bit(8th) is used as a flag to indicate that this number spans + // more than one byte. Therefore, any number over 127 must be encoded using more than + // one byte. + // - Example, the number 2680 in the OID '1.3.6.1.4.1.2680.1.2.7.3.2.0' cannot be + // encoded using a single byte. + // According to this rule, the number 2680 must be encoded as 0x94 0x78. + // Since the most significant bit is set in the first byte (0x94), it indicates + // that number spans to the next byte. + // Since the most significant bit is not set in the next byte (0x78), it indicates + // that the number ends at the second byte. + // The value is derived by appending 7 bits from each of the concatenated bytes + // i.e (0x14 *128^1) + (0x78 * 128^0) = 2680. + // default = 0.1 + ObjectIdentifier *string `protobuf:"bytes,1,opt,name=object_identifier,json=objectIdentifier,proto3,oneof" json:"object_identifier,omitempty"` + // Description missing in models + Value *FlowSnmpv2CVariableBindingValue `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *FlowSnmpv2CVariableBinding) Reset() { + *x = FlowSnmpv2CVariableBinding{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[197] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FlowSnmpv2CVariableBinding) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FlowSnmpv2CVariableBinding) ProtoMessage() {} + +func (x *FlowSnmpv2CVariableBinding) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[197] + 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 FlowSnmpv2CVariableBinding.ProtoReflect.Descriptor instead. +func (*FlowSnmpv2CVariableBinding) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{197} +} + +func (x *FlowSnmpv2CVariableBinding) GetObjectIdentifier() string { + if x != nil && x.ObjectIdentifier != nil { + return *x.ObjectIdentifier + } + return "" +} + +func (x *FlowSnmpv2CVariableBinding) GetValue() *FlowSnmpv2CVariableBindingValue { + if x != nil { + return x.Value + } + return nil +} + +// The value for the object_identifier as per RFC2578. +type FlowSnmpv2CVariableBindingValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = Choice.Enum.no_value + Choice *FlowSnmpv2CVariableBindingValue_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowSnmpv2CVariableBindingValue_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + IntegerValue *PatternFlowSnmpv2CVariableBindingValueIntegerValue `protobuf:"bytes,2,opt,name=integer_value,json=integerValue,proto3" json:"integer_value,omitempty"` + // It contains the hex bytes of the value to be sent. As of now it is restricted to + // 5000 bytes. + // default = string + StringValue *string `protobuf:"bytes,3,opt,name=string_value,json=stringValue,proto3,oneof" json:"string_value,omitempty"` + // The Object Identifier points to a particular parameter in the SNMP agent. + // - Encoding of this field follows RFC2578(section 3.5) and ASN.1 X.690(section 8.1.3.6) + // specification. + // Refer: http://www.itu.int/ITU-T/asn1/ + // - According to BER, the first two numbers of any OID (x.y) are encoded as one value + // using the formula (40*x)+y. + // Example, the first two numbers of an SNMP OID 1.3... are encoded as 43 or 0x2B, + // because (40*1)+3 = 43. + // - After the first two numbers are encoded, the subsequent numbers in the OID are + // each encoded as a byte. + // - However, a special rule is required for large numbers because one byte can only + // represent a number from 0-127. + // - The rule for large numbers states that only the lower 7 bits in the byte are used + // for holding the value (0-127). + // - The highest order bit(8th) is used as a flag to indicate that this number spans + // more than one byte. Therefore, any number over 127 must be encoded using more than + // one byte. + // - Example, the number 2680 in the OID '1.3.6.1.4.1.2680.1.2.7.3.2.0' cannot be + // encoded using a single byte. + // According to this rule, the number 2680 must be encoded as 0x94 0x78. + // Since the most significant bit is set in the first byte (0x94), it indicates + // that number spans to the next byte. + // Since the most significant bit is not set in the next byte (0x78), it indicates + // that the number ends at the second byte. + // The value is derived by appending 7 bits from each of the concatenated bytes + // i.e (0x14 *128^1) + (0x78 * 128^0) = 2680. + // default = 0.1 + ObjectIdentifierValue *string `protobuf:"bytes,4,opt,name=object_identifier_value,json=objectIdentifierValue,proto3,oneof" json:"object_identifier_value,omitempty"` + // Description missing in models + IpAddressValue *PatternFlowSnmpv2CVariableBindingValueIpAddressValue `protobuf:"bytes,5,opt,name=ip_address_value,json=ipAddressValue,proto3" json:"ip_address_value,omitempty"` + // Description missing in models + CounterValue *PatternFlowSnmpv2CVariableBindingValueCounterValue `protobuf:"bytes,6,opt,name=counter_value,json=counterValue,proto3" json:"counter_value,omitempty"` + // Description missing in models + TimeticksValue *PatternFlowSnmpv2CVariableBindingValueTimeticksValue `protobuf:"bytes,7,opt,name=timeticks_value,json=timeticksValue,proto3" json:"timeticks_value,omitempty"` + // It contains the hex bytes of the value to be sent. As of now it is restricted to + // 5000 bytes. + // default = 00 + ArbitraryValue *string `protobuf:"bytes,8,opt,name=arbitrary_value,json=arbitraryValue,proto3,oneof" json:"arbitrary_value,omitempty"` + // Description missing in models + BigCounterValue *PatternFlowSnmpv2CVariableBindingValueBigCounterValue `protobuf:"bytes,9,opt,name=big_counter_value,json=bigCounterValue,proto3" json:"big_counter_value,omitempty"` + // Description missing in models + UnsignedIntegerValue *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue `protobuf:"bytes,10,opt,name=unsigned_integer_value,json=unsignedIntegerValue,proto3" json:"unsigned_integer_value,omitempty"` +} + +func (x *FlowSnmpv2CVariableBindingValue) Reset() { + *x = FlowSnmpv2CVariableBindingValue{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[198] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FlowSnmpv2CVariableBindingValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FlowSnmpv2CVariableBindingValue) ProtoMessage() {} + +func (x *FlowSnmpv2CVariableBindingValue) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[198] + 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 FlowSnmpv2CVariableBindingValue.ProtoReflect.Descriptor instead. +func (*FlowSnmpv2CVariableBindingValue) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{198} +} + +func (x *FlowSnmpv2CVariableBindingValue) GetChoice() FlowSnmpv2CVariableBindingValue_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return FlowSnmpv2CVariableBindingValue_Choice_unspecified +} + +func (x *FlowSnmpv2CVariableBindingValue) GetIntegerValue() *PatternFlowSnmpv2CVariableBindingValueIntegerValue { + if x != nil { + return x.IntegerValue + } + return nil +} + +func (x *FlowSnmpv2CVariableBindingValue) GetStringValue() string { + if x != nil && x.StringValue != nil { + return *x.StringValue + } + return "" +} + +func (x *FlowSnmpv2CVariableBindingValue) GetObjectIdentifierValue() string { + if x != nil && x.ObjectIdentifierValue != nil { + return *x.ObjectIdentifierValue + } + return "" +} + +func (x *FlowSnmpv2CVariableBindingValue) GetIpAddressValue() *PatternFlowSnmpv2CVariableBindingValueIpAddressValue { + if x != nil { + return x.IpAddressValue + } + return nil +} + +func (x *FlowSnmpv2CVariableBindingValue) GetCounterValue() *PatternFlowSnmpv2CVariableBindingValueCounterValue { + if x != nil { + return x.CounterValue + } + return nil +} + +func (x *FlowSnmpv2CVariableBindingValue) GetTimeticksValue() *PatternFlowSnmpv2CVariableBindingValueTimeticksValue { + if x != nil { + return x.TimeticksValue + } + return nil +} + +func (x *FlowSnmpv2CVariableBindingValue) GetArbitraryValue() string { + if x != nil && x.ArbitraryValue != nil { + return *x.ArbitraryValue + } + return "" +} + +func (x *FlowSnmpv2CVariableBindingValue) GetBigCounterValue() *PatternFlowSnmpv2CVariableBindingValueBigCounterValue { + if x != nil { + return x.BigCounterValue + } + return nil +} + +func (x *FlowSnmpv2CVariableBindingValue) GetUnsignedIntegerValue() *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue { + if x != nil { + return x.UnsignedIntegerValue + } + return nil +} + // The frame size which overrides the total length of the packet type FlowSize struct { state protoimpl.MessageState @@ -35679,7 +37237,7 @@ type FlowSize struct { func (x *FlowSize) Reset() { *x = FlowSize{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[193] + mi := &file_otg_proto_msgTypes[199] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -35692,7 +37250,7 @@ func (x *FlowSize) String() string { func (*FlowSize) ProtoMessage() {} func (x *FlowSize) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[193] + mi := &file_otg_proto_msgTypes[199] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -35705,7 +37263,7 @@ func (x *FlowSize) ProtoReflect() protoreflect.Message { // Deprecated: Use FlowSize.ProtoReflect.Descriptor instead. func (*FlowSize) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{193} + return file_otg_proto_rawDescGZIP(), []int{199} } func (x *FlowSize) GetChoice() FlowSize_Choice_Enum { @@ -35764,7 +37322,7 @@ type FlowSizeIncrement struct { func (x *FlowSizeIncrement) Reset() { *x = FlowSizeIncrement{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[194] + mi := &file_otg_proto_msgTypes[200] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -35777,7 +37335,7 @@ func (x *FlowSizeIncrement) String() string { func (*FlowSizeIncrement) ProtoMessage() {} func (x *FlowSizeIncrement) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[194] + mi := &file_otg_proto_msgTypes[200] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -35790,7 +37348,7 @@ func (x *FlowSizeIncrement) ProtoReflect() protoreflect.Message { // Deprecated: Use FlowSizeIncrement.ProtoReflect.Descriptor instead. func (*FlowSizeIncrement) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{194} + return file_otg_proto_rawDescGZIP(), []int{200} } func (x *FlowSizeIncrement) GetStart() uint32 { @@ -35831,7 +37389,7 @@ type FlowSizeRandom struct { func (x *FlowSizeRandom) Reset() { *x = FlowSizeRandom{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[195] + mi := &file_otg_proto_msgTypes[201] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -35844,7 +37402,7 @@ func (x *FlowSizeRandom) String() string { func (*FlowSizeRandom) ProtoMessage() {} func (x *FlowSizeRandom) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[195] + mi := &file_otg_proto_msgTypes[201] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -35857,7 +37415,7 @@ func (x *FlowSizeRandom) ProtoReflect() protoreflect.Message { // Deprecated: Use FlowSizeRandom.ProtoReflect.Descriptor instead. func (*FlowSizeRandom) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{195} + return file_otg_proto_rawDescGZIP(), []int{201} } func (x *FlowSizeRandom) GetMin() uint32 { @@ -35908,7 +37466,7 @@ type FlowSizeWeightPairs struct { func (x *FlowSizeWeightPairs) Reset() { *x = FlowSizeWeightPairs{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[196] + mi := &file_otg_proto_msgTypes[202] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -35921,7 +37479,7 @@ func (x *FlowSizeWeightPairs) String() string { func (*FlowSizeWeightPairs) ProtoMessage() {} func (x *FlowSizeWeightPairs) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[196] + mi := &file_otg_proto_msgTypes[202] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -35934,7 +37492,7 @@ func (x *FlowSizeWeightPairs) ProtoReflect() protoreflect.Message { // Deprecated: Use FlowSizeWeightPairs.ProtoReflect.Descriptor instead. func (*FlowSizeWeightPairs) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{196} + return file_otg_proto_rawDescGZIP(), []int{202} } func (x *FlowSizeWeightPairs) GetChoice() FlowSizeWeightPairs_Choice_Enum { @@ -35976,7 +37534,7 @@ type FlowSizeWeightPairsCustom struct { func (x *FlowSizeWeightPairsCustom) Reset() { *x = FlowSizeWeightPairsCustom{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[197] + mi := &file_otg_proto_msgTypes[203] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -35989,7 +37547,7 @@ func (x *FlowSizeWeightPairsCustom) String() string { func (*FlowSizeWeightPairsCustom) ProtoMessage() {} func (x *FlowSizeWeightPairsCustom) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[197] + mi := &file_otg_proto_msgTypes[203] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -36002,7 +37560,7 @@ func (x *FlowSizeWeightPairsCustom) ProtoReflect() protoreflect.Message { // Deprecated: Use FlowSizeWeightPairsCustom.ProtoReflect.Descriptor instead. func (*FlowSizeWeightPairsCustom) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{197} + return file_otg_proto_rawDescGZIP(), []int{203} } func (x *FlowSizeWeightPairsCustom) GetSize() uint32 { @@ -36051,7 +37609,7 @@ type FlowRate struct { func (x *FlowRate) Reset() { *x = FlowRate{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[198] + mi := &file_otg_proto_msgTypes[204] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -36064,7 +37622,7 @@ func (x *FlowRate) String() string { func (*FlowRate) ProtoMessage() {} func (x *FlowRate) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[198] + mi := &file_otg_proto_msgTypes[204] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -36077,7 +37635,7 @@ func (x *FlowRate) ProtoReflect() protoreflect.Message { // Deprecated: Use FlowRate.ProtoReflect.Descriptor instead. func (*FlowRate) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{198} + return file_otg_proto_rawDescGZIP(), []int{204} } func (x *FlowRate) GetChoice() FlowRate_Choice_Enum { @@ -36151,7 +37709,7 @@ type FlowDuration struct { func (x *FlowDuration) Reset() { *x = FlowDuration{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[199] + mi := &file_otg_proto_msgTypes[205] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -36164,7 +37722,7 @@ func (x *FlowDuration) String() string { func (*FlowDuration) ProtoMessage() {} func (x *FlowDuration) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[199] + mi := &file_otg_proto_msgTypes[205] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -36177,7 +37735,7 @@ func (x *FlowDuration) ProtoReflect() protoreflect.Message { // Deprecated: Use FlowDuration.ProtoReflect.Descriptor instead. func (*FlowDuration) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{199} + return file_otg_proto_rawDescGZIP(), []int{205} } func (x *FlowDuration) GetChoice() FlowDuration_Choice_Enum { @@ -36231,7 +37789,7 @@ type FlowContinuous struct { func (x *FlowContinuous) Reset() { *x = FlowContinuous{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[200] + mi := &file_otg_proto_msgTypes[206] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -36244,7 +37802,7 @@ func (x *FlowContinuous) String() string { func (*FlowContinuous) ProtoMessage() {} func (x *FlowContinuous) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[200] + mi := &file_otg_proto_msgTypes[206] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -36257,7 +37815,7 @@ func (x *FlowContinuous) ProtoReflect() protoreflect.Message { // Deprecated: Use FlowContinuous.ProtoReflect.Descriptor instead. func (*FlowContinuous) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{200} + return file_otg_proto_rawDescGZIP(), []int{206} } func (x *FlowContinuous) GetGap() uint32 { @@ -36301,7 +37859,7 @@ type FlowDelay struct { func (x *FlowDelay) Reset() { *x = FlowDelay{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[201] + mi := &file_otg_proto_msgTypes[207] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -36314,7 +37872,7 @@ func (x *FlowDelay) String() string { func (*FlowDelay) ProtoMessage() {} func (x *FlowDelay) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[201] + mi := &file_otg_proto_msgTypes[207] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -36327,7 +37885,7 @@ func (x *FlowDelay) ProtoReflect() protoreflect.Message { // Deprecated: Use FlowDelay.ProtoReflect.Descriptor instead. func (*FlowDelay) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{201} + return file_otg_proto_rawDescGZIP(), []int{207} } func (x *FlowDelay) GetChoice() FlowDelay_Choice_Enum { @@ -36377,7 +37935,7 @@ type FlowFixedPackets struct { func (x *FlowFixedPackets) Reset() { *x = FlowFixedPackets{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[202] + mi := &file_otg_proto_msgTypes[208] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -36390,7 +37948,7 @@ func (x *FlowFixedPackets) String() string { func (*FlowFixedPackets) ProtoMessage() {} func (x *FlowFixedPackets) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[202] + mi := &file_otg_proto_msgTypes[208] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -36403,7 +37961,7 @@ func (x *FlowFixedPackets) ProtoReflect() protoreflect.Message { // Deprecated: Use FlowFixedPackets.ProtoReflect.Descriptor instead. func (*FlowFixedPackets) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{202} + return file_otg_proto_rawDescGZIP(), []int{208} } func (x *FlowFixedPackets) GetPackets() uint32 { @@ -36446,7 +38004,7 @@ type FlowFixedSeconds struct { func (x *FlowFixedSeconds) Reset() { *x = FlowFixedSeconds{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[203] + mi := &file_otg_proto_msgTypes[209] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -36459,7 +38017,7 @@ func (x *FlowFixedSeconds) String() string { func (*FlowFixedSeconds) ProtoMessage() {} func (x *FlowFixedSeconds) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[203] + mi := &file_otg_proto_msgTypes[209] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -36472,7 +38030,7 @@ func (x *FlowFixedSeconds) ProtoReflect() protoreflect.Message { // Deprecated: Use FlowFixedSeconds.ProtoReflect.Descriptor instead. func (*FlowFixedSeconds) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{203} + return file_otg_proto_rawDescGZIP(), []int{209} } func (x *FlowFixedSeconds) GetSeconds() float32 { @@ -36521,7 +38079,7 @@ type FlowBurst struct { func (x *FlowBurst) Reset() { *x = FlowBurst{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[204] + mi := &file_otg_proto_msgTypes[210] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -36534,7 +38092,7 @@ func (x *FlowBurst) String() string { func (*FlowBurst) ProtoMessage() {} func (x *FlowBurst) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[204] + mi := &file_otg_proto_msgTypes[210] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -36547,7 +38105,7 @@ func (x *FlowBurst) ProtoReflect() protoreflect.Message { // Deprecated: Use FlowBurst.ProtoReflect.Descriptor instead. func (*FlowBurst) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{204} + return file_otg_proto_rawDescGZIP(), []int{210} } func (x *FlowBurst) GetBursts() uint32 { @@ -36604,7 +38162,7 @@ type FlowDurationInterBurstGap struct { func (x *FlowDurationInterBurstGap) Reset() { *x = FlowDurationInterBurstGap{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[205] + mi := &file_otg_proto_msgTypes[211] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -36617,7 +38175,7 @@ func (x *FlowDurationInterBurstGap) String() string { func (*FlowDurationInterBurstGap) ProtoMessage() {} func (x *FlowDurationInterBurstGap) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[205] + mi := &file_otg_proto_msgTypes[211] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -36630,7 +38188,7 @@ func (x *FlowDurationInterBurstGap) ProtoReflect() protoreflect.Message { // Deprecated: Use FlowDurationInterBurstGap.ProtoReflect.Descriptor instead. func (*FlowDurationInterBurstGap) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{205} + return file_otg_proto_rawDescGZIP(), []int{211} } func (x *FlowDurationInterBurstGap) GetChoice() FlowDurationInterBurstGap_Choice_Enum { @@ -36689,7 +38247,7 @@ type FlowMetrics struct { func (x *FlowMetrics) Reset() { *x = FlowMetrics{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[206] + mi := &file_otg_proto_msgTypes[212] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -36702,7 +38260,7 @@ func (x *FlowMetrics) String() string { func (*FlowMetrics) ProtoMessage() {} func (x *FlowMetrics) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[206] + mi := &file_otg_proto_msgTypes[212] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -36715,7 +38273,7 @@ func (x *FlowMetrics) ProtoReflect() protoreflect.Message { // Deprecated: Use FlowMetrics.ProtoReflect.Descriptor instead. func (*FlowMetrics) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{206} + return file_otg_proto_rawDescGZIP(), []int{212} } func (x *FlowMetrics) GetEnable() bool { @@ -36792,7 +38350,7 @@ type FlowLatencyMetrics struct { func (x *FlowLatencyMetrics) Reset() { *x = FlowLatencyMetrics{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[207] + mi := &file_otg_proto_msgTypes[213] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -36805,7 +38363,7 @@ func (x *FlowLatencyMetrics) String() string { func (*FlowLatencyMetrics) ProtoMessage() {} func (x *FlowLatencyMetrics) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[207] + mi := &file_otg_proto_msgTypes[213] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -36818,7 +38376,7 @@ func (x *FlowLatencyMetrics) ProtoReflect() protoreflect.Message { // Deprecated: Use FlowLatencyMetrics.ProtoReflect.Descriptor instead. func (*FlowLatencyMetrics) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{207} + return file_otg_proto_rawDescGZIP(), []int{213} } func (x *FlowLatencyMetrics) GetEnable() bool { @@ -36852,7 +38410,7 @@ type FlowPredefinedTags struct { func (x *FlowPredefinedTags) Reset() { *x = FlowPredefinedTags{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[208] + mi := &file_otg_proto_msgTypes[214] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -36865,7 +38423,7 @@ func (x *FlowPredefinedTags) String() string { func (*FlowPredefinedTags) ProtoMessage() {} func (x *FlowPredefinedTags) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[208] + mi := &file_otg_proto_msgTypes[214] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -36878,7 +38436,7 @@ func (x *FlowPredefinedTags) ProtoReflect() protoreflect.Message { // Deprecated: Use FlowPredefinedTags.ProtoReflect.Descriptor instead. func (*FlowPredefinedTags) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{208} + return file_otg_proto_rawDescGZIP(), []int{214} } func (x *FlowPredefinedTags) GetRxName() bool { @@ -36923,7 +38481,7 @@ type FlowRxTxRatio struct { func (x *FlowRxTxRatio) Reset() { *x = FlowRxTxRatio{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[209] + mi := &file_otg_proto_msgTypes[215] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -36936,7 +38494,7 @@ func (x *FlowRxTxRatio) String() string { func (*FlowRxTxRatio) ProtoMessage() {} func (x *FlowRxTxRatio) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[209] + mi := &file_otg_proto_msgTypes[215] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -36949,7 +38507,7 @@ func (x *FlowRxTxRatio) ProtoReflect() protoreflect.Message { // Deprecated: Use FlowRxTxRatio.ProtoReflect.Descriptor instead. func (*FlowRxTxRatio) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{209} + return file_otg_proto_rawDescGZIP(), []int{215} } func (x *FlowRxTxRatio) GetChoice() FlowRxTxRatio_Choice_Enum { @@ -36985,7 +38543,7 @@ type FlowRxTxRatioRxCount struct { func (x *FlowRxTxRatioRxCount) Reset() { *x = FlowRxTxRatioRxCount{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[210] + mi := &file_otg_proto_msgTypes[216] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -36998,7 +38556,7 @@ func (x *FlowRxTxRatioRxCount) String() string { func (*FlowRxTxRatioRxCount) ProtoMessage() {} func (x *FlowRxTxRatioRxCount) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[210] + mi := &file_otg_proto_msgTypes[216] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -37011,7 +38569,7 @@ func (x *FlowRxTxRatioRxCount) ProtoReflect() protoreflect.Message { // Deprecated: Use FlowRxTxRatioRxCount.ProtoReflect.Descriptor instead. func (*FlowRxTxRatioRxCount) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{210} + return file_otg_proto_rawDescGZIP(), []int{216} } // The optional container for event configuration. @@ -37036,7 +38594,7 @@ type Event struct { func (x *Event) Reset() { *x = Event{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[211] + mi := &file_otg_proto_msgTypes[217] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -37049,7 +38607,7 @@ func (x *Event) String() string { func (*Event) ProtoMessage() {} func (x *Event) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[211] + mi := &file_otg_proto_msgTypes[217] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -37062,7 +38620,7 @@ func (x *Event) ProtoReflect() protoreflect.Message { // Deprecated: Use Event.ProtoReflect.Descriptor instead. func (*Event) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{211} + return file_otg_proto_rawDescGZIP(), []int{217} } func (x *Event) GetEnable() bool { @@ -37113,7 +38671,7 @@ type EventRxRateThreshold struct { func (x *EventRxRateThreshold) Reset() { *x = EventRxRateThreshold{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[212] + mi := &file_otg_proto_msgTypes[218] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -37126,7 +38684,7 @@ func (x *EventRxRateThreshold) String() string { func (*EventRxRateThreshold) ProtoMessage() {} func (x *EventRxRateThreshold) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[212] + mi := &file_otg_proto_msgTypes[218] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -37139,7 +38697,7 @@ func (x *EventRxRateThreshold) ProtoReflect() protoreflect.Message { // Deprecated: Use EventRxRateThreshold.ProtoReflect.Descriptor instead. func (*EventRxRateThreshold) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{212} + return file_otg_proto_rawDescGZIP(), []int{218} } func (x *EventRxRateThreshold) GetEnable() bool { @@ -37170,7 +38728,7 @@ type EventLink struct { func (x *EventLink) Reset() { *x = EventLink{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[213] + mi := &file_otg_proto_msgTypes[219] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -37183,7 +38741,7 @@ func (x *EventLink) String() string { func (*EventLink) ProtoMessage() {} func (x *EventLink) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[213] + mi := &file_otg_proto_msgTypes[219] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -37196,7 +38754,7 @@ func (x *EventLink) ProtoReflect() protoreflect.Message { // Deprecated: Use EventLink.ProtoReflect.Descriptor instead. func (*EventLink) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{213} + return file_otg_proto_rawDescGZIP(), []int{219} } func (x *EventLink) GetEnable() bool { @@ -37221,7 +38779,7 @@ type EventRouteAdvertiseWithdraw struct { func (x *EventRouteAdvertiseWithdraw) Reset() { *x = EventRouteAdvertiseWithdraw{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[214] + mi := &file_otg_proto_msgTypes[220] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -37234,7 +38792,7 @@ func (x *EventRouteAdvertiseWithdraw) String() string { func (*EventRouteAdvertiseWithdraw) ProtoMessage() {} func (x *EventRouteAdvertiseWithdraw) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[214] + mi := &file_otg_proto_msgTypes[220] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -37247,7 +38805,7 @@ func (x *EventRouteAdvertiseWithdraw) ProtoReflect() protoreflect.Message { // Deprecated: Use EventRouteAdvertiseWithdraw.ProtoReflect.Descriptor instead. func (*EventRouteAdvertiseWithdraw) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{214} + return file_otg_proto_rawDescGZIP(), []int{220} } func (x *EventRouteAdvertiseWithdraw) GetEnable() bool { @@ -37284,7 +38842,7 @@ type EventRequest struct { func (x *EventRequest) Reset() { *x = EventRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[215] + mi := &file_otg_proto_msgTypes[221] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -37297,7 +38855,7 @@ func (x *EventRequest) String() string { func (*EventRequest) ProtoMessage() {} func (x *EventRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[215] + mi := &file_otg_proto_msgTypes[221] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -37310,7 +38868,7 @@ func (x *EventRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use EventRequest.ProtoReflect.Descriptor instead. func (*EventRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{215} + return file_otg_proto_rawDescGZIP(), []int{221} } func (x *EventRequest) GetType() []EventRequest_Type_Enum { @@ -37346,7 +38904,7 @@ type EventSubscription struct { func (x *EventSubscription) Reset() { *x = EventSubscription{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[216] + mi := &file_otg_proto_msgTypes[222] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -37359,7 +38917,7 @@ func (x *EventSubscription) String() string { func (*EventSubscription) ProtoMessage() {} func (x *EventSubscription) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[216] + mi := &file_otg_proto_msgTypes[222] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -37372,7 +38930,7 @@ func (x *EventSubscription) ProtoReflect() protoreflect.Message { // Deprecated: Use EventSubscription.ProtoReflect.Descriptor instead. func (*EventSubscription) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{216} + return file_otg_proto_rawDescGZIP(), []int{222} } func (x *EventSubscription) GetEvents() *EventRequest { @@ -37427,7 +38985,7 @@ type Lldp struct { func (x *Lldp) Reset() { *x = Lldp{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[217] + mi := &file_otg_proto_msgTypes[223] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -37440,7 +38998,7 @@ func (x *Lldp) String() string { func (*Lldp) ProtoMessage() {} func (x *Lldp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[217] + mi := &file_otg_proto_msgTypes[223] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -37453,7 +39011,7 @@ func (x *Lldp) ProtoReflect() protoreflect.Message { // Deprecated: Use Lldp.ProtoReflect.Descriptor instead. func (*Lldp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{217} + return file_otg_proto_rawDescGZIP(), []int{223} } func (x *Lldp) GetConnection() *LldpConnection { @@ -37527,7 +39085,7 @@ type LldpConnection struct { func (x *LldpConnection) Reset() { *x = LldpConnection{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[218] + mi := &file_otg_proto_msgTypes[224] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -37540,7 +39098,7 @@ func (x *LldpConnection) String() string { func (*LldpConnection) ProtoMessage() {} func (x *LldpConnection) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[218] + mi := &file_otg_proto_msgTypes[224] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -37553,7 +39111,7 @@ func (x *LldpConnection) ProtoReflect() protoreflect.Message { // Deprecated: Use LldpConnection.ProtoReflect.Descriptor instead. func (*LldpConnection) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{218} + return file_otg_proto_rawDescGZIP(), []int{224} } func (x *LldpConnection) GetChoice() LldpConnection_Choice_Enum { @@ -37593,7 +39151,7 @@ type LldpChassisId struct { func (x *LldpChassisId) Reset() { *x = LldpChassisId{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[219] + mi := &file_otg_proto_msgTypes[225] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -37606,7 +39164,7 @@ func (x *LldpChassisId) String() string { func (*LldpChassisId) ProtoMessage() {} func (x *LldpChassisId) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[219] + mi := &file_otg_proto_msgTypes[225] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -37619,7 +39177,7 @@ func (x *LldpChassisId) ProtoReflect() protoreflect.Message { // Deprecated: Use LldpChassisId.ProtoReflect.Descriptor instead. func (*LldpChassisId) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{219} + return file_otg_proto_rawDescGZIP(), []int{225} } func (x *LldpChassisId) GetChoice() LldpChassisId_Choice_Enum { @@ -37673,7 +39231,7 @@ type LldpPortId struct { func (x *LldpPortId) Reset() { *x = LldpPortId{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[220] + mi := &file_otg_proto_msgTypes[226] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -37686,7 +39244,7 @@ func (x *LldpPortId) String() string { func (*LldpPortId) ProtoMessage() {} func (x *LldpPortId) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[220] + mi := &file_otg_proto_msgTypes[226] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -37699,7 +39257,7 @@ func (x *LldpPortId) ProtoReflect() protoreflect.Message { // Deprecated: Use LldpPortId.ProtoReflect.Descriptor instead. func (*LldpPortId) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{220} + return file_otg_proto_rawDescGZIP(), []int{226} } func (x *LldpPortId) GetChoice() LldpPortId_Choice_Enum { @@ -37749,7 +39307,7 @@ type LldpChassisMacSubType struct { func (x *LldpChassisMacSubType) Reset() { *x = LldpChassisMacSubType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[221] + mi := &file_otg_proto_msgTypes[227] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -37762,7 +39320,7 @@ func (x *LldpChassisMacSubType) String() string { func (*LldpChassisMacSubType) ProtoMessage() {} func (x *LldpChassisMacSubType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[221] + mi := &file_otg_proto_msgTypes[227] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -37775,7 +39333,7 @@ func (x *LldpChassisMacSubType) ProtoReflect() protoreflect.Message { // Deprecated: Use LldpChassisMacSubType.ProtoReflect.Descriptor instead. func (*LldpChassisMacSubType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{221} + return file_otg_proto_rawDescGZIP(), []int{227} } func (x *LldpChassisMacSubType) GetChoice() LldpChassisMacSubType_Choice_Enum { @@ -37818,7 +39376,7 @@ type LldpPortInterfaceNameSubType struct { func (x *LldpPortInterfaceNameSubType) Reset() { *x = LldpPortInterfaceNameSubType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[222] + mi := &file_otg_proto_msgTypes[228] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -37831,7 +39389,7 @@ func (x *LldpPortInterfaceNameSubType) String() string { func (*LldpPortInterfaceNameSubType) ProtoMessage() {} func (x *LldpPortInterfaceNameSubType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[222] + mi := &file_otg_proto_msgTypes[228] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -37844,7 +39402,7 @@ func (x *LldpPortInterfaceNameSubType) ProtoReflect() protoreflect.Message { // Deprecated: Use LldpPortInterfaceNameSubType.ProtoReflect.Descriptor instead. func (*LldpPortInterfaceNameSubType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{222} + return file_otg_proto_rawDescGZIP(), []int{228} } func (x *LldpPortInterfaceNameSubType) GetChoice() LldpPortInterfaceNameSubType_Choice_Enum { @@ -37887,7 +39445,7 @@ type LldpSystemName struct { func (x *LldpSystemName) Reset() { *x = LldpSystemName{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[223] + mi := &file_otg_proto_msgTypes[229] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -37900,7 +39458,7 @@ func (x *LldpSystemName) String() string { func (*LldpSystemName) ProtoMessage() {} func (x *LldpSystemName) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[223] + mi := &file_otg_proto_msgTypes[229] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -37913,7 +39471,7 @@ func (x *LldpSystemName) ProtoReflect() protoreflect.Message { // Deprecated: Use LldpSystemName.ProtoReflect.Descriptor instead. func (*LldpSystemName) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{223} + return file_otg_proto_rawDescGZIP(), []int{229} } func (x *LldpSystemName) GetChoice() LldpSystemName_Choice_Enum { @@ -37962,7 +39520,7 @@ type Error struct { func (x *Error) Reset() { *x = Error{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[224] + mi := &file_otg_proto_msgTypes[230] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -37975,7 +39533,7 @@ func (x *Error) String() string { func (*Error) ProtoMessage() {} func (x *Error) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[224] + mi := &file_otg_proto_msgTypes[230] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -37988,7 +39546,7 @@ func (x *Error) ProtoReflect() protoreflect.Message { // Deprecated: Use Error.ProtoReflect.Descriptor instead. func (*Error) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{224} + return file_otg_proto_rawDescGZIP(), []int{230} } func (x *Error) GetCode() int32 { @@ -38026,7 +39584,7 @@ type Warning struct { func (x *Warning) Reset() { *x = Warning{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[225] + mi := &file_otg_proto_msgTypes[231] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -38039,7 +39597,7 @@ func (x *Warning) String() string { func (*Warning) ProtoMessage() {} func (x *Warning) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[225] + mi := &file_otg_proto_msgTypes[231] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38052,7 +39610,7 @@ func (x *Warning) ProtoReflect() protoreflect.Message { // Deprecated: Use Warning.ProtoReflect.Descriptor instead. func (*Warning) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{225} + return file_otg_proto_rawDescGZIP(), []int{231} } func (x *Warning) GetWarnings() []string { @@ -38077,7 +39635,7 @@ type ConfigUpdate struct { func (x *ConfigUpdate) Reset() { *x = ConfigUpdate{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[226] + mi := &file_otg_proto_msgTypes[232] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -38090,7 +39648,7 @@ func (x *ConfigUpdate) String() string { func (*ConfigUpdate) ProtoMessage() {} func (x *ConfigUpdate) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[226] + mi := &file_otg_proto_msgTypes[232] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38103,7 +39661,7 @@ func (x *ConfigUpdate) ProtoReflect() protoreflect.Message { // Deprecated: Use ConfigUpdate.ProtoReflect.Descriptor instead. func (*ConfigUpdate) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{226} + return file_otg_proto_rawDescGZIP(), []int{232} } func (x *ConfigUpdate) GetChoice() ConfigUpdate_Choice_Enum { @@ -38136,7 +39694,7 @@ type FlowsUpdate struct { func (x *FlowsUpdate) Reset() { *x = FlowsUpdate{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[227] + mi := &file_otg_proto_msgTypes[233] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -38149,7 +39707,7 @@ func (x *FlowsUpdate) String() string { func (*FlowsUpdate) ProtoMessage() {} func (x *FlowsUpdate) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[227] + mi := &file_otg_proto_msgTypes[233] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38162,7 +39720,7 @@ func (x *FlowsUpdate) ProtoReflect() protoreflect.Message { // Deprecated: Use FlowsUpdate.ProtoReflect.Descriptor instead. func (*FlowsUpdate) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{227} + return file_otg_proto_rawDescGZIP(), []int{233} } func (x *FlowsUpdate) GetPropertyNames() []FlowsUpdate_PropertyNames_Enum { @@ -38199,7 +39757,7 @@ type ControlState struct { func (x *ControlState) Reset() { *x = ControlState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[228] + mi := &file_otg_proto_msgTypes[234] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -38212,7 +39770,7 @@ func (x *ControlState) String() string { func (*ControlState) ProtoMessage() {} func (x *ControlState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[228] + mi := &file_otg_proto_msgTypes[234] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38225,7 +39783,7 @@ func (x *ControlState) ProtoReflect() protoreflect.Message { // Deprecated: Use ControlState.ProtoReflect.Descriptor instead. func (*ControlState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{228} + return file_otg_proto_rawDescGZIP(), []int{234} } func (x *ControlState) GetChoice() ControlState_Choice_Enum { @@ -38274,7 +39832,7 @@ type StatePort struct { func (x *StatePort) Reset() { *x = StatePort{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[229] + mi := &file_otg_proto_msgTypes[235] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -38287,7 +39845,7 @@ func (x *StatePort) String() string { func (*StatePort) ProtoMessage() {} func (x *StatePort) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[229] + mi := &file_otg_proto_msgTypes[235] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38300,7 +39858,7 @@ func (x *StatePort) ProtoReflect() protoreflect.Message { // Deprecated: Use StatePort.ProtoReflect.Descriptor instead. func (*StatePort) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{229} + return file_otg_proto_rawDescGZIP(), []int{235} } func (x *StatePort) GetChoice() StatePort_Choice_Enum { @@ -38340,7 +39898,7 @@ type StateTraffic struct { func (x *StateTraffic) Reset() { *x = StateTraffic{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[230] + mi := &file_otg_proto_msgTypes[236] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -38353,7 +39911,7 @@ func (x *StateTraffic) String() string { func (*StateTraffic) ProtoMessage() {} func (x *StateTraffic) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[230] + mi := &file_otg_proto_msgTypes[236] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38366,7 +39924,7 @@ func (x *StateTraffic) ProtoReflect() protoreflect.Message { // Deprecated: Use StateTraffic.ProtoReflect.Descriptor instead. func (*StateTraffic) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{230} + return file_otg_proto_rawDescGZIP(), []int{236} } func (x *StateTraffic) GetChoice() StateTraffic_Choice_Enum { @@ -38407,7 +39965,7 @@ type StateProtocol struct { func (x *StateProtocol) Reset() { *x = StateProtocol{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[231] + mi := &file_otg_proto_msgTypes[237] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -38420,7 +39978,7 @@ func (x *StateProtocol) String() string { func (*StateProtocol) ProtoMessage() {} func (x *StateProtocol) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[231] + mi := &file_otg_proto_msgTypes[237] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38433,7 +39991,7 @@ func (x *StateProtocol) ProtoReflect() protoreflect.Message { // Deprecated: Use StateProtocol.ProtoReflect.Descriptor instead. func (*StateProtocol) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{231} + return file_otg_proto_rawDescGZIP(), []int{237} } func (x *StateProtocol) GetChoice() StateProtocol_Choice_Enum { @@ -38500,7 +40058,7 @@ type StatePortLink struct { func (x *StatePortLink) Reset() { *x = StatePortLink{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[232] + mi := &file_otg_proto_msgTypes[238] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -38513,7 +40071,7 @@ func (x *StatePortLink) String() string { func (*StatePortLink) ProtoMessage() {} func (x *StatePortLink) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[232] + mi := &file_otg_proto_msgTypes[238] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38526,7 +40084,7 @@ func (x *StatePortLink) ProtoReflect() protoreflect.Message { // Deprecated: Use StatePortLink.ProtoReflect.Descriptor instead. func (*StatePortLink) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{232} + return file_otg_proto_rawDescGZIP(), []int{238} } func (x *StatePortLink) GetPortNames() []string { @@ -38568,7 +40126,7 @@ type StatePortCapture struct { func (x *StatePortCapture) Reset() { *x = StatePortCapture{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[233] + mi := &file_otg_proto_msgTypes[239] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -38581,7 +40139,7 @@ func (x *StatePortCapture) String() string { func (*StatePortCapture) ProtoMessage() {} func (x *StatePortCapture) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[233] + mi := &file_otg_proto_msgTypes[239] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38594,7 +40152,7 @@ func (x *StatePortCapture) ProtoReflect() protoreflect.Message { // Deprecated: Use StatePortCapture.ProtoReflect.Descriptor instead. func (*StatePortCapture) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{233} + return file_otg_proto_rawDescGZIP(), []int{239} } func (x *StatePortCapture) GetPortNames() []string { @@ -38647,7 +40205,7 @@ type StateTrafficFlowTransmit struct { func (x *StateTrafficFlowTransmit) Reset() { *x = StateTrafficFlowTransmit{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[234] + mi := &file_otg_proto_msgTypes[240] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -38660,7 +40218,7 @@ func (x *StateTrafficFlowTransmit) String() string { func (*StateTrafficFlowTransmit) ProtoMessage() {} func (x *StateTrafficFlowTransmit) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[234] + mi := &file_otg_proto_msgTypes[240] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38673,7 +40231,7 @@ func (x *StateTrafficFlowTransmit) ProtoReflect() protoreflect.Message { // Deprecated: Use StateTrafficFlowTransmit.ProtoReflect.Descriptor instead. func (*StateTrafficFlowTransmit) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{234} + return file_otg_proto_rawDescGZIP(), []int{240} } func (x *StateTrafficFlowTransmit) GetFlowNames() []string { @@ -38707,7 +40265,7 @@ type StateProtocolAll struct { func (x *StateProtocolAll) Reset() { *x = StateProtocolAll{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[235] + mi := &file_otg_proto_msgTypes[241] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -38720,7 +40278,7 @@ func (x *StateProtocolAll) String() string { func (*StateProtocolAll) ProtoMessage() {} func (x *StateProtocolAll) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[235] + mi := &file_otg_proto_msgTypes[241] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38733,7 +40291,7 @@ func (x *StateProtocolAll) ProtoReflect() protoreflect.Message { // Deprecated: Use StateProtocolAll.ProtoReflect.Descriptor instead. func (*StateProtocolAll) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{235} + return file_otg_proto_rawDescGZIP(), []int{241} } func (x *StateProtocolAll) GetState() StateProtocolAll_State_Enum { @@ -38772,7 +40330,7 @@ type StateProtocolRoute struct { func (x *StateProtocolRoute) Reset() { *x = StateProtocolRoute{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[236] + mi := &file_otg_proto_msgTypes[242] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -38785,7 +40343,7 @@ func (x *StateProtocolRoute) String() string { func (*StateProtocolRoute) ProtoMessage() {} func (x *StateProtocolRoute) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[236] + mi := &file_otg_proto_msgTypes[242] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38798,7 +40356,7 @@ func (x *StateProtocolRoute) ProtoReflect() protoreflect.Message { // Deprecated: Use StateProtocolRoute.ProtoReflect.Descriptor instead. func (*StateProtocolRoute) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{236} + return file_otg_proto_rawDescGZIP(), []int{242} } func (x *StateProtocolRoute) GetNames() []string { @@ -38833,7 +40391,7 @@ type StateProtocolLacp struct { func (x *StateProtocolLacp) Reset() { *x = StateProtocolLacp{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[237] + mi := &file_otg_proto_msgTypes[243] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -38846,7 +40404,7 @@ func (x *StateProtocolLacp) String() string { func (*StateProtocolLacp) ProtoMessage() {} func (x *StateProtocolLacp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[237] + mi := &file_otg_proto_msgTypes[243] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38859,7 +40417,7 @@ func (x *StateProtocolLacp) ProtoReflect() protoreflect.Message { // Deprecated: Use StateProtocolLacp.ProtoReflect.Descriptor instead. func (*StateProtocolLacp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{237} + return file_otg_proto_rawDescGZIP(), []int{243} } func (x *StateProtocolLacp) GetChoice() StateProtocolLacp_Choice_Enum { @@ -38908,7 +40466,7 @@ type StateProtocolLacpAdmin struct { func (x *StateProtocolLacpAdmin) Reset() { *x = StateProtocolLacpAdmin{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[238] + mi := &file_otg_proto_msgTypes[244] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -38921,7 +40479,7 @@ func (x *StateProtocolLacpAdmin) String() string { func (*StateProtocolLacpAdmin) ProtoMessage() {} func (x *StateProtocolLacpAdmin) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[238] + mi := &file_otg_proto_msgTypes[244] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38934,7 +40492,7 @@ func (x *StateProtocolLacpAdmin) ProtoReflect() protoreflect.Message { // Deprecated: Use StateProtocolLacpAdmin.ProtoReflect.Descriptor instead. func (*StateProtocolLacpAdmin) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{238} + return file_otg_proto_rawDescGZIP(), []int{244} } func (x *StateProtocolLacpAdmin) GetLagMemberNames() []string { @@ -38974,7 +40532,7 @@ type StateProtocolLacpMemberPorts struct { func (x *StateProtocolLacpMemberPorts) Reset() { *x = StateProtocolLacpMemberPorts{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[239] + mi := &file_otg_proto_msgTypes[245] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -38987,7 +40545,7 @@ func (x *StateProtocolLacpMemberPorts) String() string { func (*StateProtocolLacpMemberPorts) ProtoMessage() {} func (x *StateProtocolLacpMemberPorts) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[239] + mi := &file_otg_proto_msgTypes[245] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -39000,7 +40558,7 @@ func (x *StateProtocolLacpMemberPorts) ProtoReflect() protoreflect.Message { // Deprecated: Use StateProtocolLacpMemberPorts.ProtoReflect.Descriptor instead. func (*StateProtocolLacpMemberPorts) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{239} + return file_otg_proto_rawDescGZIP(), []int{245} } func (x *StateProtocolLacpMemberPorts) GetLagMemberNames() []string { @@ -39033,7 +40591,7 @@ type StateProtocolBgp struct { func (x *StateProtocolBgp) Reset() { *x = StateProtocolBgp{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[240] + mi := &file_otg_proto_msgTypes[246] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -39046,7 +40604,7 @@ func (x *StateProtocolBgp) String() string { func (*StateProtocolBgp) ProtoMessage() {} func (x *StateProtocolBgp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[240] + mi := &file_otg_proto_msgTypes[246] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -39059,7 +40617,7 @@ func (x *StateProtocolBgp) ProtoReflect() protoreflect.Message { // Deprecated: Use StateProtocolBgp.ProtoReflect.Descriptor instead. func (*StateProtocolBgp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{240} + return file_otg_proto_rawDescGZIP(), []int{246} } func (x *StateProtocolBgp) GetChoice() StateProtocolBgp_Choice_Enum { @@ -39104,7 +40662,7 @@ type StateProtocolBgpPeers struct { func (x *StateProtocolBgpPeers) Reset() { *x = StateProtocolBgpPeers{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[241] + mi := &file_otg_proto_msgTypes[247] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -39117,7 +40675,7 @@ func (x *StateProtocolBgpPeers) String() string { func (*StateProtocolBgpPeers) ProtoMessage() {} func (x *StateProtocolBgpPeers) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[241] + mi := &file_otg_proto_msgTypes[247] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -39130,7 +40688,7 @@ func (x *StateProtocolBgpPeers) ProtoReflect() protoreflect.Message { // Deprecated: Use StateProtocolBgpPeers.ProtoReflect.Descriptor instead. func (*StateProtocolBgpPeers) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{241} + return file_otg_proto_rawDescGZIP(), []int{247} } func (x *StateProtocolBgpPeers) GetPeerNames() []string { @@ -39163,7 +40721,7 @@ type StateProtocolIsis struct { func (x *StateProtocolIsis) Reset() { *x = StateProtocolIsis{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[242] + mi := &file_otg_proto_msgTypes[248] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -39176,7 +40734,7 @@ func (x *StateProtocolIsis) String() string { func (*StateProtocolIsis) ProtoMessage() {} func (x *StateProtocolIsis) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[242] + mi := &file_otg_proto_msgTypes[248] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -39189,7 +40747,7 @@ func (x *StateProtocolIsis) ProtoReflect() protoreflect.Message { // Deprecated: Use StateProtocolIsis.ProtoReflect.Descriptor instead. func (*StateProtocolIsis) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{242} + return file_otg_proto_rawDescGZIP(), []int{248} } func (x *StateProtocolIsis) GetChoice() StateProtocolIsis_Choice_Enum { @@ -39232,7 +40790,7 @@ type StateProtocolIsisRouters struct { func (x *StateProtocolIsisRouters) Reset() { *x = StateProtocolIsisRouters{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[243] + mi := &file_otg_proto_msgTypes[249] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -39245,7 +40803,7 @@ func (x *StateProtocolIsisRouters) String() string { func (*StateProtocolIsisRouters) ProtoMessage() {} func (x *StateProtocolIsisRouters) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[243] + mi := &file_otg_proto_msgTypes[249] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -39258,7 +40816,7 @@ func (x *StateProtocolIsisRouters) ProtoReflect() protoreflect.Message { // Deprecated: Use StateProtocolIsisRouters.ProtoReflect.Descriptor instead. func (*StateProtocolIsisRouters) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{243} + return file_otg_proto_rawDescGZIP(), []int{249} } func (x *StateProtocolIsisRouters) GetRouterNames() []string { @@ -39291,7 +40849,7 @@ type ControlAction struct { func (x *ControlAction) Reset() { *x = ControlAction{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[244] + mi := &file_otg_proto_msgTypes[250] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -39304,7 +40862,7 @@ func (x *ControlAction) String() string { func (*ControlAction) ProtoMessage() {} func (x *ControlAction) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[244] + mi := &file_otg_proto_msgTypes[250] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -39317,7 +40875,7 @@ func (x *ControlAction) ProtoReflect() protoreflect.Message { // Deprecated: Use ControlAction.ProtoReflect.Descriptor instead. func (*ControlAction) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{244} + return file_otg_proto_rawDescGZIP(), []int{250} } func (x *ControlAction) GetChoice() ControlAction_Choice_Enum { @@ -39349,7 +40907,7 @@ type ControlActionResponse struct { func (x *ControlActionResponse) Reset() { *x = ControlActionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[245] + mi := &file_otg_proto_msgTypes[251] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -39362,7 +40920,7 @@ func (x *ControlActionResponse) String() string { func (*ControlActionResponse) ProtoMessage() {} func (x *ControlActionResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[245] + mi := &file_otg_proto_msgTypes[251] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -39375,7 +40933,7 @@ func (x *ControlActionResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ControlActionResponse.ProtoReflect.Descriptor instead. func (*ControlActionResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{245} + return file_otg_proto_rawDescGZIP(), []int{251} } func (x *ControlActionResponse) GetWarnings() []string { @@ -39408,7 +40966,7 @@ type ActionResponse struct { func (x *ActionResponse) Reset() { *x = ActionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[246] + mi := &file_otg_proto_msgTypes[252] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -39421,7 +40979,7 @@ func (x *ActionResponse) String() string { func (*ActionResponse) ProtoMessage() {} func (x *ActionResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[246] + mi := &file_otg_proto_msgTypes[252] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -39434,7 +40992,7 @@ func (x *ActionResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ActionResponse.ProtoReflect.Descriptor instead. func (*ActionResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{246} + return file_otg_proto_rawDescGZIP(), []int{252} } func (x *ActionResponse) GetChoice() ActionResponse_Choice_Enum { @@ -39471,7 +41029,7 @@ type ActionProtocol struct { func (x *ActionProtocol) Reset() { *x = ActionProtocol{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[247] + mi := &file_otg_proto_msgTypes[253] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -39484,7 +41042,7 @@ func (x *ActionProtocol) String() string { func (*ActionProtocol) ProtoMessage() {} func (x *ActionProtocol) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[247] + mi := &file_otg_proto_msgTypes[253] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -39497,7 +41055,7 @@ func (x *ActionProtocol) ProtoReflect() protoreflect.Message { // Deprecated: Use ActionProtocol.ProtoReflect.Descriptor instead. func (*ActionProtocol) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{247} + return file_otg_proto_rawDescGZIP(), []int{253} } func (x *ActionProtocol) GetChoice() ActionProtocol_Choice_Enum { @@ -39546,7 +41104,7 @@ type ActionResponseProtocol struct { func (x *ActionResponseProtocol) Reset() { *x = ActionResponseProtocol{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[248] + mi := &file_otg_proto_msgTypes[254] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -39559,7 +41117,7 @@ func (x *ActionResponseProtocol) String() string { func (*ActionResponseProtocol) ProtoMessage() {} func (x *ActionResponseProtocol) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[248] + mi := &file_otg_proto_msgTypes[254] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -39572,7 +41130,7 @@ func (x *ActionResponseProtocol) ProtoReflect() protoreflect.Message { // Deprecated: Use ActionResponseProtocol.ProtoReflect.Descriptor instead. func (*ActionResponseProtocol) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{248} + return file_otg_proto_rawDescGZIP(), []int{254} } func (x *ActionResponseProtocol) GetChoice() ActionResponseProtocol_Choice_Enum { @@ -39612,7 +41170,7 @@ type ActionProtocolIpv4 struct { func (x *ActionProtocolIpv4) Reset() { *x = ActionProtocolIpv4{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[249] + mi := &file_otg_proto_msgTypes[255] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -39625,7 +41183,7 @@ func (x *ActionProtocolIpv4) String() string { func (*ActionProtocolIpv4) ProtoMessage() {} func (x *ActionProtocolIpv4) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[249] + mi := &file_otg_proto_msgTypes[255] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -39638,7 +41196,7 @@ func (x *ActionProtocolIpv4) ProtoReflect() protoreflect.Message { // Deprecated: Use ActionProtocolIpv4.ProtoReflect.Descriptor instead. func (*ActionProtocolIpv4) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{249} + return file_otg_proto_rawDescGZIP(), []int{255} } func (x *ActionProtocolIpv4) GetChoice() ActionProtocolIpv4_Choice_Enum { @@ -39671,7 +41229,7 @@ type ActionResponseProtocolIpv4 struct { func (x *ActionResponseProtocolIpv4) Reset() { *x = ActionResponseProtocolIpv4{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[250] + mi := &file_otg_proto_msgTypes[256] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -39684,7 +41242,7 @@ func (x *ActionResponseProtocolIpv4) String() string { func (*ActionResponseProtocolIpv4) ProtoMessage() {} func (x *ActionResponseProtocolIpv4) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[250] + mi := &file_otg_proto_msgTypes[256] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -39697,7 +41255,7 @@ func (x *ActionResponseProtocolIpv4) ProtoReflect() protoreflect.Message { // Deprecated: Use ActionResponseProtocolIpv4.ProtoReflect.Descriptor instead. func (*ActionResponseProtocolIpv4) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{250} + return file_otg_proto_rawDescGZIP(), []int{256} } func (x *ActionResponseProtocolIpv4) GetChoice() ActionResponseProtocolIpv4_Choice_Enum { @@ -39727,7 +41285,7 @@ type ActionProtocolIpv4Ping struct { func (x *ActionProtocolIpv4Ping) Reset() { *x = ActionProtocolIpv4Ping{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[251] + mi := &file_otg_proto_msgTypes[257] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -39740,7 +41298,7 @@ func (x *ActionProtocolIpv4Ping) String() string { func (*ActionProtocolIpv4Ping) ProtoMessage() {} func (x *ActionProtocolIpv4Ping) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[251] + mi := &file_otg_proto_msgTypes[257] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -39753,7 +41311,7 @@ func (x *ActionProtocolIpv4Ping) ProtoReflect() protoreflect.Message { // Deprecated: Use ActionProtocolIpv4Ping.ProtoReflect.Descriptor instead. func (*ActionProtocolIpv4Ping) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{251} + return file_otg_proto_rawDescGZIP(), []int{257} } func (x *ActionProtocolIpv4Ping) GetRequests() []*ActionProtocolIpv4PingRequest { @@ -39790,7 +41348,7 @@ type ActionProtocolIpv4PingRequest struct { func (x *ActionProtocolIpv4PingRequest) Reset() { *x = ActionProtocolIpv4PingRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[252] + mi := &file_otg_proto_msgTypes[258] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -39803,7 +41361,7 @@ func (x *ActionProtocolIpv4PingRequest) String() string { func (*ActionProtocolIpv4PingRequest) ProtoMessage() {} func (x *ActionProtocolIpv4PingRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[252] + mi := &file_otg_proto_msgTypes[258] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -39816,7 +41374,7 @@ func (x *ActionProtocolIpv4PingRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ActionProtocolIpv4PingRequest.ProtoReflect.Descriptor instead. func (*ActionProtocolIpv4PingRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{252} + return file_otg_proto_rawDescGZIP(), []int{258} } func (x *ActionProtocolIpv4PingRequest) GetSrcName() string { @@ -39846,7 +41404,7 @@ type ActionResponseProtocolIpv4Ping struct { func (x *ActionResponseProtocolIpv4Ping) Reset() { *x = ActionResponseProtocolIpv4Ping{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[253] + mi := &file_otg_proto_msgTypes[259] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -39859,7 +41417,7 @@ func (x *ActionResponseProtocolIpv4Ping) String() string { func (*ActionResponseProtocolIpv4Ping) ProtoMessage() {} func (x *ActionResponseProtocolIpv4Ping) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[253] + mi := &file_otg_proto_msgTypes[259] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -39872,7 +41430,7 @@ func (x *ActionResponseProtocolIpv4Ping) ProtoReflect() protoreflect.Message { // Deprecated: Use ActionResponseProtocolIpv4Ping.ProtoReflect.Descriptor instead. func (*ActionResponseProtocolIpv4Ping) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{253} + return file_otg_proto_rawDescGZIP(), []int{259} } func (x *ActionResponseProtocolIpv4Ping) GetResponses() []*ActionResponseProtocolIpv4PingResponse { @@ -39909,7 +41467,7 @@ type ActionResponseProtocolIpv4PingResponse struct { func (x *ActionResponseProtocolIpv4PingResponse) Reset() { *x = ActionResponseProtocolIpv4PingResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[254] + mi := &file_otg_proto_msgTypes[260] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -39922,7 +41480,7 @@ func (x *ActionResponseProtocolIpv4PingResponse) String() string { func (*ActionResponseProtocolIpv4PingResponse) ProtoMessage() {} func (x *ActionResponseProtocolIpv4PingResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[254] + mi := &file_otg_proto_msgTypes[260] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -39935,7 +41493,7 @@ func (x *ActionResponseProtocolIpv4PingResponse) ProtoReflect() protoreflect.Mes // Deprecated: Use ActionResponseProtocolIpv4PingResponse.ProtoReflect.Descriptor instead. func (*ActionResponseProtocolIpv4PingResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{254} + return file_otg_proto_rawDescGZIP(), []int{260} } func (x *ActionResponseProtocolIpv4PingResponse) GetSrcName() string { @@ -39975,7 +41533,7 @@ type ActionProtocolIpv6 struct { func (x *ActionProtocolIpv6) Reset() { *x = ActionProtocolIpv6{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[255] + mi := &file_otg_proto_msgTypes[261] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -39988,7 +41546,7 @@ func (x *ActionProtocolIpv6) String() string { func (*ActionProtocolIpv6) ProtoMessage() {} func (x *ActionProtocolIpv6) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[255] + mi := &file_otg_proto_msgTypes[261] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -40001,7 +41559,7 @@ func (x *ActionProtocolIpv6) ProtoReflect() protoreflect.Message { // Deprecated: Use ActionProtocolIpv6.ProtoReflect.Descriptor instead. func (*ActionProtocolIpv6) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{255} + return file_otg_proto_rawDescGZIP(), []int{261} } func (x *ActionProtocolIpv6) GetChoice() ActionProtocolIpv6_Choice_Enum { @@ -40034,7 +41592,7 @@ type ActionResponseProtocolIpv6 struct { func (x *ActionResponseProtocolIpv6) Reset() { *x = ActionResponseProtocolIpv6{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[256] + mi := &file_otg_proto_msgTypes[262] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -40047,7 +41605,7 @@ func (x *ActionResponseProtocolIpv6) String() string { func (*ActionResponseProtocolIpv6) ProtoMessage() {} func (x *ActionResponseProtocolIpv6) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[256] + mi := &file_otg_proto_msgTypes[262] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -40060,7 +41618,7 @@ func (x *ActionResponseProtocolIpv6) ProtoReflect() protoreflect.Message { // Deprecated: Use ActionResponseProtocolIpv6.ProtoReflect.Descriptor instead. func (*ActionResponseProtocolIpv6) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{256} + return file_otg_proto_rawDescGZIP(), []int{262} } func (x *ActionResponseProtocolIpv6) GetChoice() ActionResponseProtocolIpv6_Choice_Enum { @@ -40090,7 +41648,7 @@ type ActionProtocolIpv6Ping struct { func (x *ActionProtocolIpv6Ping) Reset() { *x = ActionProtocolIpv6Ping{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[257] + mi := &file_otg_proto_msgTypes[263] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -40103,7 +41661,7 @@ func (x *ActionProtocolIpv6Ping) String() string { func (*ActionProtocolIpv6Ping) ProtoMessage() {} func (x *ActionProtocolIpv6Ping) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[257] + mi := &file_otg_proto_msgTypes[263] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -40116,7 +41674,7 @@ func (x *ActionProtocolIpv6Ping) ProtoReflect() protoreflect.Message { // Deprecated: Use ActionProtocolIpv6Ping.ProtoReflect.Descriptor instead. func (*ActionProtocolIpv6Ping) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{257} + return file_otg_proto_rawDescGZIP(), []int{263} } func (x *ActionProtocolIpv6Ping) GetRequests() []*ActionProtocolIpv6PingRequest { @@ -40153,7 +41711,7 @@ type ActionProtocolIpv6PingRequest struct { func (x *ActionProtocolIpv6PingRequest) Reset() { *x = ActionProtocolIpv6PingRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[258] + mi := &file_otg_proto_msgTypes[264] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -40166,7 +41724,7 @@ func (x *ActionProtocolIpv6PingRequest) String() string { func (*ActionProtocolIpv6PingRequest) ProtoMessage() {} func (x *ActionProtocolIpv6PingRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[258] + mi := &file_otg_proto_msgTypes[264] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -40179,7 +41737,7 @@ func (x *ActionProtocolIpv6PingRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ActionProtocolIpv6PingRequest.ProtoReflect.Descriptor instead. func (*ActionProtocolIpv6PingRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{258} + return file_otg_proto_rawDescGZIP(), []int{264} } func (x *ActionProtocolIpv6PingRequest) GetSrcName() string { @@ -40209,7 +41767,7 @@ type ActionResponseProtocolIpv6Ping struct { func (x *ActionResponseProtocolIpv6Ping) Reset() { *x = ActionResponseProtocolIpv6Ping{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[259] + mi := &file_otg_proto_msgTypes[265] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -40222,7 +41780,7 @@ func (x *ActionResponseProtocolIpv6Ping) String() string { func (*ActionResponseProtocolIpv6Ping) ProtoMessage() {} func (x *ActionResponseProtocolIpv6Ping) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[259] + mi := &file_otg_proto_msgTypes[265] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -40235,7 +41793,7 @@ func (x *ActionResponseProtocolIpv6Ping) ProtoReflect() protoreflect.Message { // Deprecated: Use ActionResponseProtocolIpv6Ping.ProtoReflect.Descriptor instead. func (*ActionResponseProtocolIpv6Ping) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{259} + return file_otg_proto_rawDescGZIP(), []int{265} } func (x *ActionResponseProtocolIpv6Ping) GetResponses() []*ActionResponseProtocolIpv6PingResponse { @@ -40272,7 +41830,7 @@ type ActionResponseProtocolIpv6PingResponse struct { func (x *ActionResponseProtocolIpv6PingResponse) Reset() { *x = ActionResponseProtocolIpv6PingResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[260] + mi := &file_otg_proto_msgTypes[266] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -40285,7 +41843,7 @@ func (x *ActionResponseProtocolIpv6PingResponse) String() string { func (*ActionResponseProtocolIpv6PingResponse) ProtoMessage() {} func (x *ActionResponseProtocolIpv6PingResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[260] + mi := &file_otg_proto_msgTypes[266] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -40298,7 +41856,7 @@ func (x *ActionResponseProtocolIpv6PingResponse) ProtoReflect() protoreflect.Mes // Deprecated: Use ActionResponseProtocolIpv6PingResponse.ProtoReflect.Descriptor instead. func (*ActionResponseProtocolIpv6PingResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{260} + return file_otg_proto_rawDescGZIP(), []int{266} } func (x *ActionResponseProtocolIpv6PingResponse) GetSrcName() string { @@ -40340,7 +41898,7 @@ type ActionProtocolBgp struct { func (x *ActionProtocolBgp) Reset() { *x = ActionProtocolBgp{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[261] + mi := &file_otg_proto_msgTypes[267] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -40353,7 +41911,7 @@ func (x *ActionProtocolBgp) String() string { func (*ActionProtocolBgp) ProtoMessage() {} func (x *ActionProtocolBgp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[261] + mi := &file_otg_proto_msgTypes[267] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -40366,7 +41924,7 @@ func (x *ActionProtocolBgp) ProtoReflect() protoreflect.Message { // Deprecated: Use ActionProtocolBgp.ProtoReflect.Descriptor instead. func (*ActionProtocolBgp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{261} + return file_otg_proto_rawDescGZIP(), []int{267} } func (x *ActionProtocolBgp) GetChoice() ActionProtocolBgp_Choice_Enum { @@ -40438,7 +41996,7 @@ type ActionProtocolBgpNotification struct { func (x *ActionProtocolBgpNotification) Reset() { *x = ActionProtocolBgpNotification{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[262] + mi := &file_otg_proto_msgTypes[268] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -40451,7 +42009,7 @@ func (x *ActionProtocolBgpNotification) String() string { func (*ActionProtocolBgpNotification) ProtoMessage() {} func (x *ActionProtocolBgpNotification) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[262] + mi := &file_otg_proto_msgTypes[268] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -40464,7 +42022,7 @@ func (x *ActionProtocolBgpNotification) ProtoReflect() protoreflect.Message { // Deprecated: Use ActionProtocolBgpNotification.ProtoReflect.Descriptor instead. func (*ActionProtocolBgpNotification) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{262} + return file_otg_proto_rawDescGZIP(), []int{268} } func (x *ActionProtocolBgpNotification) GetNames() []string { @@ -40555,7 +42113,7 @@ type ActionProtocolBgpInitiateGracefulRestart struct { func (x *ActionProtocolBgpInitiateGracefulRestart) Reset() { *x = ActionProtocolBgpInitiateGracefulRestart{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[263] + mi := &file_otg_proto_msgTypes[269] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -40568,7 +42126,7 @@ func (x *ActionProtocolBgpInitiateGracefulRestart) String() string { func (*ActionProtocolBgpInitiateGracefulRestart) ProtoMessage() {} func (x *ActionProtocolBgpInitiateGracefulRestart) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[263] + mi := &file_otg_proto_msgTypes[269] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -40581,7 +42139,7 @@ func (x *ActionProtocolBgpInitiateGracefulRestart) ProtoReflect() protoreflect.M // Deprecated: Use ActionProtocolBgpInitiateGracefulRestart.ProtoReflect.Descriptor instead. func (*ActionProtocolBgpInitiateGracefulRestart) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{263} + return file_otg_proto_rawDescGZIP(), []int{269} } func (x *ActionProtocolBgpInitiateGracefulRestart) GetPeerNames() []string { @@ -40630,7 +42188,7 @@ type MetricsRequest struct { func (x *MetricsRequest) Reset() { *x = MetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[264] + mi := &file_otg_proto_msgTypes[270] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -40643,7 +42201,7 @@ func (x *MetricsRequest) String() string { func (*MetricsRequest) ProtoMessage() {} func (x *MetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[264] + mi := &file_otg_proto_msgTypes[270] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -40656,7 +42214,7 @@ func (x *MetricsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use MetricsRequest.ProtoReflect.Descriptor instead. func (*MetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{264} + return file_otg_proto_rawDescGZIP(), []int{270} } func (x *MetricsRequest) GetChoice() MetricsRequest_Choice_Enum { @@ -40761,7 +42319,7 @@ type MetricsResponse struct { func (x *MetricsResponse) Reset() { *x = MetricsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[265] + mi := &file_otg_proto_msgTypes[271] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -40774,7 +42332,7 @@ func (x *MetricsResponse) String() string { func (*MetricsResponse) ProtoMessage() {} func (x *MetricsResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[265] + mi := &file_otg_proto_msgTypes[271] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -40787,7 +42345,7 @@ func (x *MetricsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use MetricsResponse.ProtoReflect.Descriptor instead. func (*MetricsResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{265} + return file_otg_proto_rawDescGZIP(), []int{271} } func (x *MetricsResponse) GetChoice() MetricsResponse_Choice_Enum { @@ -40883,7 +42441,7 @@ type PortMetricsRequest struct { func (x *PortMetricsRequest) Reset() { *x = PortMetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[266] + mi := &file_otg_proto_msgTypes[272] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -40896,7 +42454,7 @@ func (x *PortMetricsRequest) String() string { func (*PortMetricsRequest) ProtoMessage() {} func (x *PortMetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[266] + mi := &file_otg_proto_msgTypes[272] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -40909,7 +42467,7 @@ func (x *PortMetricsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PortMetricsRequest.ProtoReflect.Descriptor instead. func (*PortMetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{266} + return file_otg_proto_rawDescGZIP(), []int{272} } func (x *PortMetricsRequest) GetPortNames() []string { @@ -40971,7 +42529,7 @@ type PortMetric struct { func (x *PortMetric) Reset() { *x = PortMetric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[267] + mi := &file_otg_proto_msgTypes[273] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -40984,7 +42542,7 @@ func (x *PortMetric) String() string { func (*PortMetric) ProtoMessage() {} func (x *PortMetric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[267] + mi := &file_otg_proto_msgTypes[273] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -40997,7 +42555,7 @@ func (x *PortMetric) ProtoReflect() protoreflect.Message { // Deprecated: Use PortMetric.ProtoReflect.Descriptor instead. func (*PortMetric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{267} + return file_otg_proto_rawDescGZIP(), []int{273} } func (x *PortMetric) GetName() string { @@ -41116,7 +42674,7 @@ type FlowMetricsRequest struct { func (x *FlowMetricsRequest) Reset() { *x = FlowMetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[268] + mi := &file_otg_proto_msgTypes[274] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -41129,7 +42687,7 @@ func (x *FlowMetricsRequest) String() string { func (*FlowMetricsRequest) ProtoMessage() {} func (x *FlowMetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[268] + mi := &file_otg_proto_msgTypes[274] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -41142,7 +42700,7 @@ func (x *FlowMetricsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use FlowMetricsRequest.ProtoReflect.Descriptor instead. func (*FlowMetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{268} + return file_otg_proto_rawDescGZIP(), []int{274} } func (x *FlowMetricsRequest) GetFlowNames() []string { @@ -41190,7 +42748,7 @@ type FlowTaggedMetricsFilter struct { func (x *FlowTaggedMetricsFilter) Reset() { *x = FlowTaggedMetricsFilter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[269] + mi := &file_otg_proto_msgTypes[275] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -41203,7 +42761,7 @@ func (x *FlowTaggedMetricsFilter) String() string { func (*FlowTaggedMetricsFilter) ProtoMessage() {} func (x *FlowTaggedMetricsFilter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[269] + mi := &file_otg_proto_msgTypes[275] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -41216,7 +42774,7 @@ func (x *FlowTaggedMetricsFilter) ProtoReflect() protoreflect.Message { // Deprecated: Use FlowTaggedMetricsFilter.ProtoReflect.Descriptor instead. func (*FlowTaggedMetricsFilter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{269} + return file_otg_proto_rawDescGZIP(), []int{275} } func (x *FlowTaggedMetricsFilter) GetInclude() bool { @@ -41265,7 +42823,7 @@ type FlowMetricTagFilter struct { func (x *FlowMetricTagFilter) Reset() { *x = FlowMetricTagFilter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[270] + mi := &file_otg_proto_msgTypes[276] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -41278,7 +42836,7 @@ func (x *FlowMetricTagFilter) String() string { func (*FlowMetricTagFilter) ProtoMessage() {} func (x *FlowMetricTagFilter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[270] + mi := &file_otg_proto_msgTypes[276] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -41291,7 +42849,7 @@ func (x *FlowMetricTagFilter) ProtoReflect() protoreflect.Message { // Deprecated: Use FlowMetricTagFilter.ProtoReflect.Descriptor instead. func (*FlowMetricTagFilter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{270} + return file_otg_proto_rawDescGZIP(), []int{276} } func (x *FlowMetricTagFilter) GetName() string { @@ -41351,7 +42909,7 @@ type FlowMetric struct { func (x *FlowMetric) Reset() { *x = FlowMetric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[271] + mi := &file_otg_proto_msgTypes[277] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -41364,7 +42922,7 @@ func (x *FlowMetric) String() string { func (*FlowMetric) ProtoMessage() {} func (x *FlowMetric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[271] + mi := &file_otg_proto_msgTypes[277] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -41377,7 +42935,7 @@ func (x *FlowMetric) ProtoReflect() protoreflect.Message { // Deprecated: Use FlowMetric.ProtoReflect.Descriptor instead. func (*FlowMetric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{271} + return file_otg_proto_rawDescGZIP(), []int{277} } func (x *FlowMetric) GetName() string { @@ -41511,7 +43069,7 @@ type FlowTaggedMetric struct { func (x *FlowTaggedMetric) Reset() { *x = FlowTaggedMetric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[272] + mi := &file_otg_proto_msgTypes[278] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -41524,7 +43082,7 @@ func (x *FlowTaggedMetric) String() string { func (*FlowTaggedMetric) ProtoMessage() {} func (x *FlowTaggedMetric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[272] + mi := &file_otg_proto_msgTypes[278] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -41537,7 +43095,7 @@ func (x *FlowTaggedMetric) ProtoReflect() protoreflect.Message { // Deprecated: Use FlowTaggedMetric.ProtoReflect.Descriptor instead. func (*FlowTaggedMetric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{272} + return file_otg_proto_rawDescGZIP(), []int{278} } func (x *FlowTaggedMetric) GetTags() []*FlowMetricTag { @@ -41625,7 +43183,7 @@ type FlowMetricTag struct { func (x *FlowMetricTag) Reset() { *x = FlowMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[273] + mi := &file_otg_proto_msgTypes[279] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -41638,7 +43196,7 @@ func (x *FlowMetricTag) String() string { func (*FlowMetricTag) ProtoMessage() {} func (x *FlowMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[273] + mi := &file_otg_proto_msgTypes[279] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -41651,7 +43209,7 @@ func (x *FlowMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use FlowMetricTag.ProtoReflect.Descriptor instead. func (*FlowMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{273} + return file_otg_proto_rawDescGZIP(), []int{279} } func (x *FlowMetricTag) GetName() string { @@ -41686,7 +43244,7 @@ type FlowMetricTagValue struct { func (x *FlowMetricTagValue) Reset() { *x = FlowMetricTagValue{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[274] + mi := &file_otg_proto_msgTypes[280] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -41699,7 +43257,7 @@ func (x *FlowMetricTagValue) String() string { func (*FlowMetricTagValue) ProtoMessage() {} func (x *FlowMetricTagValue) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[274] + mi := &file_otg_proto_msgTypes[280] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -41712,7 +43270,7 @@ func (x *FlowMetricTagValue) ProtoReflect() protoreflect.Message { // Deprecated: Use FlowMetricTagValue.ProtoReflect.Descriptor instead. func (*FlowMetricTagValue) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{274} + return file_otg_proto_rawDescGZIP(), []int{280} } func (x *FlowMetricTagValue) GetChoice() FlowMetricTagValue_Choice_Enum { @@ -41753,7 +43311,7 @@ type MetricTimestamp struct { func (x *MetricTimestamp) Reset() { *x = MetricTimestamp{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[275] + mi := &file_otg_proto_msgTypes[281] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -41766,7 +43324,7 @@ func (x *MetricTimestamp) String() string { func (*MetricTimestamp) ProtoMessage() {} func (x *MetricTimestamp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[275] + mi := &file_otg_proto_msgTypes[281] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -41779,7 +43337,7 @@ func (x *MetricTimestamp) ProtoReflect() protoreflect.Message { // Deprecated: Use MetricTimestamp.ProtoReflect.Descriptor instead. func (*MetricTimestamp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{275} + return file_otg_proto_rawDescGZIP(), []int{281} } func (x *MetricTimestamp) GetFirstTimestampNs() float64 { @@ -41817,7 +43375,7 @@ type MetricLatency struct { func (x *MetricLatency) Reset() { *x = MetricLatency{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[276] + mi := &file_otg_proto_msgTypes[282] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -41830,7 +43388,7 @@ func (x *MetricLatency) String() string { func (*MetricLatency) ProtoMessage() {} func (x *MetricLatency) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[276] + mi := &file_otg_proto_msgTypes[282] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -41843,7 +43401,7 @@ func (x *MetricLatency) ProtoReflect() protoreflect.Message { // Deprecated: Use MetricLatency.ProtoReflect.Descriptor instead. func (*MetricLatency) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{276} + return file_otg_proto_rawDescGZIP(), []int{282} } func (x *MetricLatency) GetMinimumNs() float64 { @@ -41891,7 +43449,7 @@ type Bgpv4MetricsRequest struct { func (x *Bgpv4MetricsRequest) Reset() { *x = Bgpv4MetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[277] + mi := &file_otg_proto_msgTypes[283] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -41904,7 +43462,7 @@ func (x *Bgpv4MetricsRequest) String() string { func (*Bgpv4MetricsRequest) ProtoMessage() {} func (x *Bgpv4MetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[277] + mi := &file_otg_proto_msgTypes[283] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -41917,7 +43475,7 @@ func (x *Bgpv4MetricsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use Bgpv4MetricsRequest.ProtoReflect.Descriptor instead. func (*Bgpv4MetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{277} + return file_otg_proto_rawDescGZIP(), []int{283} } func (x *Bgpv4MetricsRequest) GetPeerNames() []string { @@ -41994,7 +43552,7 @@ type Bgpv4Metric struct { func (x *Bgpv4Metric) Reset() { *x = Bgpv4Metric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[278] + mi := &file_otg_proto_msgTypes[284] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -42007,7 +43565,7 @@ func (x *Bgpv4Metric) String() string { func (*Bgpv4Metric) ProtoMessage() {} func (x *Bgpv4Metric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[278] + mi := &file_otg_proto_msgTypes[284] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -42020,7 +43578,7 @@ func (x *Bgpv4Metric) ProtoReflect() protoreflect.Message { // Deprecated: Use Bgpv4Metric.ProtoReflect.Descriptor instead. func (*Bgpv4Metric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{278} + return file_otg_proto_rawDescGZIP(), []int{284} } func (x *Bgpv4Metric) GetName() string { @@ -42166,7 +43724,7 @@ type Bgpv6MetricsRequest struct { func (x *Bgpv6MetricsRequest) Reset() { *x = Bgpv6MetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[279] + mi := &file_otg_proto_msgTypes[285] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -42179,7 +43737,7 @@ func (x *Bgpv6MetricsRequest) String() string { func (*Bgpv6MetricsRequest) ProtoMessage() {} func (x *Bgpv6MetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[279] + mi := &file_otg_proto_msgTypes[285] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -42192,7 +43750,7 @@ func (x *Bgpv6MetricsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use Bgpv6MetricsRequest.ProtoReflect.Descriptor instead. func (*Bgpv6MetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{279} + return file_otg_proto_rawDescGZIP(), []int{285} } func (x *Bgpv6MetricsRequest) GetPeerNames() []string { @@ -42269,7 +43827,7 @@ type Bgpv6Metric struct { func (x *Bgpv6Metric) Reset() { *x = Bgpv6Metric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[280] + mi := &file_otg_proto_msgTypes[286] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -42282,7 +43840,7 @@ func (x *Bgpv6Metric) String() string { func (*Bgpv6Metric) ProtoMessage() {} func (x *Bgpv6Metric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[280] + mi := &file_otg_proto_msgTypes[286] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -42295,7 +43853,7 @@ func (x *Bgpv6Metric) ProtoReflect() protoreflect.Message { // Deprecated: Use Bgpv6Metric.ProtoReflect.Descriptor instead. func (*Bgpv6Metric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{280} + return file_otg_proto_rawDescGZIP(), []int{286} } func (x *Bgpv6Metric) GetName() string { @@ -42441,7 +43999,7 @@ type IsisMetricsRequest struct { func (x *IsisMetricsRequest) Reset() { *x = IsisMetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[281] + mi := &file_otg_proto_msgTypes[287] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -42454,7 +44012,7 @@ func (x *IsisMetricsRequest) String() string { func (*IsisMetricsRequest) ProtoMessage() {} func (x *IsisMetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[281] + mi := &file_otg_proto_msgTypes[287] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -42467,7 +44025,7 @@ func (x *IsisMetricsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use IsisMetricsRequest.ProtoReflect.Descriptor instead. func (*IsisMetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{281} + return file_otg_proto_rawDescGZIP(), []int{287} } func (x *IsisMetricsRequest) GetRouterNames() []string { @@ -42549,7 +44107,7 @@ type IsisMetric struct { func (x *IsisMetric) Reset() { *x = IsisMetric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[282] + mi := &file_otg_proto_msgTypes[288] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -42562,7 +44120,7 @@ func (x *IsisMetric) String() string { func (*IsisMetric) ProtoMessage() {} func (x *IsisMetric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[282] + mi := &file_otg_proto_msgTypes[288] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -42575,7 +44133,7 @@ func (x *IsisMetric) ProtoReflect() protoreflect.Message { // Deprecated: Use IsisMetric.ProtoReflect.Descriptor instead. func (*IsisMetric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{282} + return file_otg_proto_rawDescGZIP(), []int{288} } func (x *IsisMetric) GetName() string { @@ -42790,7 +44348,7 @@ type LagMetricsRequest struct { func (x *LagMetricsRequest) Reset() { *x = LagMetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[283] + mi := &file_otg_proto_msgTypes[289] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -42803,7 +44361,7 @@ func (x *LagMetricsRequest) String() string { func (*LagMetricsRequest) ProtoMessage() {} func (x *LagMetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[283] + mi := &file_otg_proto_msgTypes[289] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -42816,7 +44374,7 @@ func (x *LagMetricsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use LagMetricsRequest.ProtoReflect.Descriptor instead. func (*LagMetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{283} + return file_otg_proto_rawDescGZIP(), []int{289} } func (x *LagMetricsRequest) GetLagNames() []string { @@ -42873,7 +44431,7 @@ type LagMetric struct { func (x *LagMetric) Reset() { *x = LagMetric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[284] + mi := &file_otg_proto_msgTypes[290] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -42886,7 +44444,7 @@ func (x *LagMetric) String() string { func (*LagMetric) ProtoMessage() {} func (x *LagMetric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[284] + mi := &file_otg_proto_msgTypes[290] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -42899,7 +44457,7 @@ func (x *LagMetric) ProtoReflect() protoreflect.Message { // Deprecated: Use LagMetric.ProtoReflect.Descriptor instead. func (*LagMetric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{284} + return file_otg_proto_rawDescGZIP(), []int{290} } func (x *LagMetric) GetName() string { @@ -43012,7 +44570,7 @@ type LacpMetricsRequest struct { func (x *LacpMetricsRequest) Reset() { *x = LacpMetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[285] + mi := &file_otg_proto_msgTypes[291] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -43025,7 +44583,7 @@ func (x *LacpMetricsRequest) String() string { func (*LacpMetricsRequest) ProtoMessage() {} func (x *LacpMetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[285] + mi := &file_otg_proto_msgTypes[291] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -43038,7 +44596,7 @@ func (x *LacpMetricsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use LacpMetricsRequest.ProtoReflect.Descriptor instead. func (*LacpMetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{285} + return file_otg_proto_rawDescGZIP(), []int{291} } func (x *LacpMetricsRequest) GetLagNames() []string { @@ -43110,7 +44668,7 @@ type LacpMetric struct { func (x *LacpMetric) Reset() { *x = LacpMetric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[286] + mi := &file_otg_proto_msgTypes[292] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -43123,7 +44681,7 @@ func (x *LacpMetric) String() string { func (*LacpMetric) ProtoMessage() {} func (x *LacpMetric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[286] + mi := &file_otg_proto_msgTypes[292] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -43136,7 +44694,7 @@ func (x *LacpMetric) ProtoReflect() protoreflect.Message { // Deprecated: Use LacpMetric.ProtoReflect.Descriptor instead. func (*LacpMetric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{286} + return file_otg_proto_rawDescGZIP(), []int{292} } func (x *LacpMetric) GetLagName() string { @@ -43281,7 +44839,7 @@ type LldpMetricsRequest struct { func (x *LldpMetricsRequest) Reset() { *x = LldpMetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[287] + mi := &file_otg_proto_msgTypes[293] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -43294,7 +44852,7 @@ func (x *LldpMetricsRequest) String() string { func (*LldpMetricsRequest) ProtoMessage() {} func (x *LldpMetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[287] + mi := &file_otg_proto_msgTypes[293] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -43307,7 +44865,7 @@ func (x *LldpMetricsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use LldpMetricsRequest.ProtoReflect.Descriptor instead. func (*LldpMetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{287} + return file_otg_proto_rawDescGZIP(), []int{293} } func (x *LldpMetricsRequest) GetLldpNames() []string { @@ -43359,7 +44917,7 @@ type LldpMetric struct { func (x *LldpMetric) Reset() { *x = LldpMetric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[288] + mi := &file_otg_proto_msgTypes[294] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -43372,7 +44930,7 @@ func (x *LldpMetric) String() string { func (*LldpMetric) ProtoMessage() {} func (x *LldpMetric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[288] + mi := &file_otg_proto_msgTypes[294] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -43385,7 +44943,7 @@ func (x *LldpMetric) ProtoReflect() protoreflect.Message { // Deprecated: Use LldpMetric.ProtoReflect.Descriptor instead. func (*LldpMetric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{288} + return file_otg_proto_rawDescGZIP(), []int{294} } func (x *LldpMetric) GetName() string { @@ -43460,7 +45018,7 @@ type RsvpMetricsRequest struct { func (x *RsvpMetricsRequest) Reset() { *x = RsvpMetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[289] + mi := &file_otg_proto_msgTypes[295] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -43473,7 +45031,7 @@ func (x *RsvpMetricsRequest) String() string { func (*RsvpMetricsRequest) ProtoMessage() {} func (x *RsvpMetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[289] + mi := &file_otg_proto_msgTypes[295] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -43486,7 +45044,7 @@ func (x *RsvpMetricsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RsvpMetricsRequest.ProtoReflect.Descriptor instead. func (*RsvpMetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{289} + return file_otg_proto_rawDescGZIP(), []int{295} } func (x *RsvpMetricsRequest) GetRouterNames() []string { @@ -43583,7 +45141,7 @@ type RsvpMetric struct { func (x *RsvpMetric) Reset() { *x = RsvpMetric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[290] + mi := &file_otg_proto_msgTypes[296] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -43596,7 +45154,7 @@ func (x *RsvpMetric) String() string { func (*RsvpMetric) ProtoMessage() {} func (x *RsvpMetric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[290] + mi := &file_otg_proto_msgTypes[296] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -43609,7 +45167,7 @@ func (x *RsvpMetric) ProtoReflect() protoreflect.Message { // Deprecated: Use RsvpMetric.ProtoReflect.Descriptor instead. func (*RsvpMetric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{290} + return file_otg_proto_rawDescGZIP(), []int{296} } func (x *RsvpMetric) GetName() string { @@ -43855,7 +45413,7 @@ type StatesRequest struct { func (x *StatesRequest) Reset() { *x = StatesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[291] + mi := &file_otg_proto_msgTypes[297] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -43868,7 +45426,7 @@ func (x *StatesRequest) String() string { func (*StatesRequest) ProtoMessage() {} func (x *StatesRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[291] + mi := &file_otg_proto_msgTypes[297] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -43881,7 +45439,7 @@ func (x *StatesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StatesRequest.ProtoReflect.Descriptor instead. func (*StatesRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{291} + return file_otg_proto_rawDescGZIP(), []int{297} } func (x *StatesRequest) GetChoice() StatesRequest_Choice_Enum { @@ -43959,7 +45517,7 @@ type StatesResponse struct { func (x *StatesResponse) Reset() { *x = StatesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[292] + mi := &file_otg_proto_msgTypes[298] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -43972,7 +45530,7 @@ func (x *StatesResponse) String() string { func (*StatesResponse) ProtoMessage() {} func (x *StatesResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[292] + mi := &file_otg_proto_msgTypes[298] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -43985,7 +45543,7 @@ func (x *StatesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StatesResponse.ProtoReflect.Descriptor instead. func (*StatesResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{292} + return file_otg_proto_rawDescGZIP(), []int{298} } func (x *StatesResponse) GetChoice() StatesResponse_Choice_Enum { @@ -44058,7 +45616,7 @@ type Neighborsv4StatesRequest struct { func (x *Neighborsv4StatesRequest) Reset() { *x = Neighborsv4StatesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[293] + mi := &file_otg_proto_msgTypes[299] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -44071,7 +45629,7 @@ func (x *Neighborsv4StatesRequest) String() string { func (*Neighborsv4StatesRequest) ProtoMessage() {} func (x *Neighborsv4StatesRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[293] + mi := &file_otg_proto_msgTypes[299] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -44084,7 +45642,7 @@ func (x *Neighborsv4StatesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use Neighborsv4StatesRequest.ProtoReflect.Descriptor instead. func (*Neighborsv4StatesRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{293} + return file_otg_proto_rawDescGZIP(), []int{299} } func (x *Neighborsv4StatesRequest) GetEthernetNames() []string { @@ -44114,7 +45672,7 @@ type Neighborsv4State struct { func (x *Neighborsv4State) Reset() { *x = Neighborsv4State{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[294] + mi := &file_otg_proto_msgTypes[300] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -44127,7 +45685,7 @@ func (x *Neighborsv4State) String() string { func (*Neighborsv4State) ProtoMessage() {} func (x *Neighborsv4State) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[294] + mi := &file_otg_proto_msgTypes[300] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -44140,7 +45698,7 @@ func (x *Neighborsv4State) ProtoReflect() protoreflect.Message { // Deprecated: Use Neighborsv4State.ProtoReflect.Descriptor instead. func (*Neighborsv4State) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{294} + return file_otg_proto_rawDescGZIP(), []int{300} } func (x *Neighborsv4State) GetEthernetName() string { @@ -44185,7 +45743,7 @@ type Neighborsv6StatesRequest struct { func (x *Neighborsv6StatesRequest) Reset() { *x = Neighborsv6StatesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[295] + mi := &file_otg_proto_msgTypes[301] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -44198,7 +45756,7 @@ func (x *Neighborsv6StatesRequest) String() string { func (*Neighborsv6StatesRequest) ProtoMessage() {} func (x *Neighborsv6StatesRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[295] + mi := &file_otg_proto_msgTypes[301] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -44211,7 +45769,7 @@ func (x *Neighborsv6StatesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use Neighborsv6StatesRequest.ProtoReflect.Descriptor instead. func (*Neighborsv6StatesRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{295} + return file_otg_proto_rawDescGZIP(), []int{301} } func (x *Neighborsv6StatesRequest) GetEthernetNames() []string { @@ -44241,7 +45799,7 @@ type Neighborsv6State struct { func (x *Neighborsv6State) Reset() { *x = Neighborsv6State{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[296] + mi := &file_otg_proto_msgTypes[302] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -44254,7 +45812,7 @@ func (x *Neighborsv6State) String() string { func (*Neighborsv6State) ProtoMessage() {} func (x *Neighborsv6State) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[296] + mi := &file_otg_proto_msgTypes[302] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -44267,7 +45825,7 @@ func (x *Neighborsv6State) ProtoReflect() protoreflect.Message { // Deprecated: Use Neighborsv6State.ProtoReflect.Descriptor instead. func (*Neighborsv6State) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{296} + return file_otg_proto_rawDescGZIP(), []int{302} } func (x *Neighborsv6State) GetEthernetName() string { @@ -44325,7 +45883,7 @@ type BgpPrefixStateRequest struct { func (x *BgpPrefixStateRequest) Reset() { *x = BgpPrefixStateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[297] + mi := &file_otg_proto_msgTypes[303] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -44338,7 +45896,7 @@ func (x *BgpPrefixStateRequest) String() string { func (*BgpPrefixStateRequest) ProtoMessage() {} func (x *BgpPrefixStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[297] + mi := &file_otg_proto_msgTypes[303] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -44351,7 +45909,7 @@ func (x *BgpPrefixStateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BgpPrefixStateRequest.ProtoReflect.Descriptor instead. func (*BgpPrefixStateRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{297} + return file_otg_proto_rawDescGZIP(), []int{303} } func (x *BgpPrefixStateRequest) GetBgpPeerNames() []string { @@ -44403,7 +45961,7 @@ type BgpPrefixIpv4UnicastFilter struct { func (x *BgpPrefixIpv4UnicastFilter) Reset() { *x = BgpPrefixIpv4UnicastFilter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[298] + mi := &file_otg_proto_msgTypes[304] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -44416,7 +45974,7 @@ func (x *BgpPrefixIpv4UnicastFilter) String() string { func (*BgpPrefixIpv4UnicastFilter) ProtoMessage() {} func (x *BgpPrefixIpv4UnicastFilter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[298] + mi := &file_otg_proto_msgTypes[304] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -44429,7 +45987,7 @@ func (x *BgpPrefixIpv4UnicastFilter) ProtoReflect() protoreflect.Message { // Deprecated: Use BgpPrefixIpv4UnicastFilter.ProtoReflect.Descriptor instead. func (*BgpPrefixIpv4UnicastFilter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{298} + return file_otg_proto_rawDescGZIP(), []int{304} } func (x *BgpPrefixIpv4UnicastFilter) GetAddresses() []string { @@ -44481,7 +46039,7 @@ type BgpPrefixIpv6UnicastFilter struct { func (x *BgpPrefixIpv6UnicastFilter) Reset() { *x = BgpPrefixIpv6UnicastFilter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[299] + mi := &file_otg_proto_msgTypes[305] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -44494,7 +46052,7 @@ func (x *BgpPrefixIpv6UnicastFilter) String() string { func (*BgpPrefixIpv6UnicastFilter) ProtoMessage() {} func (x *BgpPrefixIpv6UnicastFilter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[299] + mi := &file_otg_proto_msgTypes[305] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -44507,7 +46065,7 @@ func (x *BgpPrefixIpv6UnicastFilter) ProtoReflect() protoreflect.Message { // Deprecated: Use BgpPrefixIpv6UnicastFilter.ProtoReflect.Descriptor instead. func (*BgpPrefixIpv6UnicastFilter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{299} + return file_otg_proto_rawDescGZIP(), []int{305} } func (x *BgpPrefixIpv6UnicastFilter) GetAddresses() []string { @@ -44555,7 +46113,7 @@ type BgpPrefixesState struct { func (x *BgpPrefixesState) Reset() { *x = BgpPrefixesState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[300] + mi := &file_otg_proto_msgTypes[306] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -44568,7 +46126,7 @@ func (x *BgpPrefixesState) String() string { func (*BgpPrefixesState) ProtoMessage() {} func (x *BgpPrefixesState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[300] + mi := &file_otg_proto_msgTypes[306] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -44581,7 +46139,7 @@ func (x *BgpPrefixesState) ProtoReflect() protoreflect.Message { // Deprecated: Use BgpPrefixesState.ProtoReflect.Descriptor instead. func (*BgpPrefixesState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{300} + return file_otg_proto_rawDescGZIP(), []int{306} } func (x *BgpPrefixesState) GetBgpPeerName() string { @@ -44638,7 +46196,7 @@ type BgpPrefixIpv4UnicastState struct { func (x *BgpPrefixIpv4UnicastState) Reset() { *x = BgpPrefixIpv4UnicastState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[301] + mi := &file_otg_proto_msgTypes[307] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -44651,7 +46209,7 @@ func (x *BgpPrefixIpv4UnicastState) String() string { func (*BgpPrefixIpv4UnicastState) ProtoMessage() {} func (x *BgpPrefixIpv4UnicastState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[301] + mi := &file_otg_proto_msgTypes[307] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -44664,7 +46222,7 @@ func (x *BgpPrefixIpv4UnicastState) ProtoReflect() protoreflect.Message { // Deprecated: Use BgpPrefixIpv4UnicastState.ProtoReflect.Descriptor instead. func (*BgpPrefixIpv4UnicastState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{301} + return file_otg_proto_rawDescGZIP(), []int{307} } func (x *BgpPrefixIpv4UnicastState) GetIpv4Address() string { @@ -44770,7 +46328,7 @@ type BgpPrefixIpv6UnicastState struct { func (x *BgpPrefixIpv6UnicastState) Reset() { *x = BgpPrefixIpv6UnicastState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[302] + mi := &file_otg_proto_msgTypes[308] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -44783,7 +46341,7 @@ func (x *BgpPrefixIpv6UnicastState) String() string { func (*BgpPrefixIpv6UnicastState) ProtoMessage() {} func (x *BgpPrefixIpv6UnicastState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[302] + mi := &file_otg_proto_msgTypes[308] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -44796,7 +46354,7 @@ func (x *BgpPrefixIpv6UnicastState) ProtoReflect() protoreflect.Message { // Deprecated: Use BgpPrefixIpv6UnicastState.ProtoReflect.Descriptor instead. func (*BgpPrefixIpv6UnicastState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{302} + return file_otg_proto_rawDescGZIP(), []int{308} } func (x *BgpPrefixIpv6UnicastState) GetIpv6Address() string { @@ -44889,7 +46447,7 @@ type ResultBgpCommunity struct { func (x *ResultBgpCommunity) Reset() { *x = ResultBgpCommunity{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[303] + mi := &file_otg_proto_msgTypes[309] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -44902,7 +46460,7 @@ func (x *ResultBgpCommunity) String() string { func (*ResultBgpCommunity) ProtoMessage() {} func (x *ResultBgpCommunity) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[303] + mi := &file_otg_proto_msgTypes[309] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -44915,7 +46473,7 @@ func (x *ResultBgpCommunity) ProtoReflect() protoreflect.Message { // Deprecated: Use ResultBgpCommunity.ProtoReflect.Descriptor instead. func (*ResultBgpCommunity) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{303} + return file_otg_proto_rawDescGZIP(), []int{309} } func (x *ResultBgpCommunity) GetType() ResultBgpCommunity_Type_Enum { @@ -44953,7 +46511,7 @@ type ResultBgpAsPath struct { func (x *ResultBgpAsPath) Reset() { *x = ResultBgpAsPath{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[304] + mi := &file_otg_proto_msgTypes[310] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -44966,7 +46524,7 @@ func (x *ResultBgpAsPath) String() string { func (*ResultBgpAsPath) ProtoMessage() {} func (x *ResultBgpAsPath) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[304] + mi := &file_otg_proto_msgTypes[310] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -44979,7 +46537,7 @@ func (x *ResultBgpAsPath) ProtoReflect() protoreflect.Message { // Deprecated: Use ResultBgpAsPath.ProtoReflect.Descriptor instead. func (*ResultBgpAsPath) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{304} + return file_otg_proto_rawDescGZIP(), []int{310} } func (x *ResultBgpAsPath) GetSegments() []*ResultBgpAsPathSegment { @@ -45011,7 +46569,7 @@ type ResultBgpAsPathSegment struct { func (x *ResultBgpAsPathSegment) Reset() { *x = ResultBgpAsPathSegment{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[305] + mi := &file_otg_proto_msgTypes[311] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -45024,7 +46582,7 @@ func (x *ResultBgpAsPathSegment) String() string { func (*ResultBgpAsPathSegment) ProtoMessage() {} func (x *ResultBgpAsPathSegment) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[305] + mi := &file_otg_proto_msgTypes[311] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -45037,7 +46595,7 @@ func (x *ResultBgpAsPathSegment) ProtoReflect() protoreflect.Message { // Deprecated: Use ResultBgpAsPathSegment.ProtoReflect.Descriptor instead. func (*ResultBgpAsPathSegment) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{305} + return file_otg_proto_rawDescGZIP(), []int{311} } func (x *ResultBgpAsPathSegment) GetType() ResultBgpAsPathSegment_Type_Enum { @@ -45074,7 +46632,7 @@ type IsisLspsStateRequest struct { func (x *IsisLspsStateRequest) Reset() { *x = IsisLspsStateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[306] + mi := &file_otg_proto_msgTypes[312] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -45087,7 +46645,7 @@ func (x *IsisLspsStateRequest) String() string { func (*IsisLspsStateRequest) ProtoMessage() {} func (x *IsisLspsStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[306] + mi := &file_otg_proto_msgTypes[312] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -45100,7 +46658,7 @@ func (x *IsisLspsStateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use IsisLspsStateRequest.ProtoReflect.Descriptor instead. func (*IsisLspsStateRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{306} + return file_otg_proto_rawDescGZIP(), []int{312} } func (x *IsisLspsStateRequest) GetIsisRouterNames() []string { @@ -45125,7 +46683,7 @@ type IsisLspsState struct { func (x *IsisLspsState) Reset() { *x = IsisLspsState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[307] + mi := &file_otg_proto_msgTypes[313] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -45138,7 +46696,7 @@ func (x *IsisLspsState) String() string { func (*IsisLspsState) ProtoMessage() {} func (x *IsisLspsState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[307] + mi := &file_otg_proto_msgTypes[313] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -45151,7 +46709,7 @@ func (x *IsisLspsState) ProtoReflect() protoreflect.Message { // Deprecated: Use IsisLspsState.ProtoReflect.Descriptor instead. func (*IsisLspsState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{307} + return file_otg_proto_rawDescGZIP(), []int{313} } func (x *IsisLspsState) GetIsisRouterName() string { @@ -45205,7 +46763,7 @@ type IsisLspState struct { func (x *IsisLspState) Reset() { *x = IsisLspState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[308] + mi := &file_otg_proto_msgTypes[314] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -45218,7 +46776,7 @@ func (x *IsisLspState) String() string { func (*IsisLspState) ProtoMessage() {} func (x *IsisLspState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[308] + mi := &file_otg_proto_msgTypes[314] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -45231,7 +46789,7 @@ func (x *IsisLspState) ProtoReflect() protoreflect.Message { // Deprecated: Use IsisLspState.ProtoReflect.Descriptor instead. func (*IsisLspState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{308} + return file_otg_proto_rawDescGZIP(), []int{314} } func (x *IsisLspState) GetLspId() string { @@ -45315,7 +46873,7 @@ type IsisLspTlvs struct { func (x *IsisLspTlvs) Reset() { *x = IsisLspTlvs{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[309] + mi := &file_otg_proto_msgTypes[315] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -45328,7 +46886,7 @@ func (x *IsisLspTlvs) String() string { func (*IsisLspTlvs) ProtoMessage() {} func (x *IsisLspTlvs) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[309] + mi := &file_otg_proto_msgTypes[315] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -45341,7 +46899,7 @@ func (x *IsisLspTlvs) ProtoReflect() protoreflect.Message { // Deprecated: Use IsisLspTlvs.ProtoReflect.Descriptor instead. func (*IsisLspTlvs) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{309} + return file_otg_proto_rawDescGZIP(), []int{315} } func (x *IsisLspTlvs) GetHostnameTlvs() []*IsisLspHostname { @@ -45406,7 +46964,7 @@ type IsisLspHostname struct { func (x *IsisLspHostname) Reset() { *x = IsisLspHostname{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[310] + mi := &file_otg_proto_msgTypes[316] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -45419,7 +46977,7 @@ func (x *IsisLspHostname) String() string { func (*IsisLspHostname) ProtoMessage() {} func (x *IsisLspHostname) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[310] + mi := &file_otg_proto_msgTypes[316] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -45432,7 +46990,7 @@ func (x *IsisLspHostname) ProtoReflect() protoreflect.Message { // Deprecated: Use IsisLspHostname.ProtoReflect.Descriptor instead. func (*IsisLspHostname) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{310} + return file_otg_proto_rawDescGZIP(), []int{316} } func (x *IsisLspHostname) GetHostname() string { @@ -45469,7 +47027,7 @@ type IsisLspFlags struct { func (x *IsisLspFlags) Reset() { *x = IsisLspFlags{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[311] + mi := &file_otg_proto_msgTypes[317] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -45482,7 +47040,7 @@ func (x *IsisLspFlags) String() string { func (*IsisLspFlags) ProtoMessage() {} func (x *IsisLspFlags) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[311] + mi := &file_otg_proto_msgTypes[317] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -45495,7 +47053,7 @@ func (x *IsisLspFlags) ProtoReflect() protoreflect.Message { // Deprecated: Use IsisLspFlags.ProtoReflect.Descriptor instead. func (*IsisLspFlags) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{311} + return file_otg_proto_rawDescGZIP(), []int{317} } func (x *IsisLspFlags) GetPartitionRepair() bool { @@ -45554,7 +47112,7 @@ type IsisLspIsReachabilityTlv struct { func (x *IsisLspIsReachabilityTlv) Reset() { *x = IsisLspIsReachabilityTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[312] + mi := &file_otg_proto_msgTypes[318] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -45567,7 +47125,7 @@ func (x *IsisLspIsReachabilityTlv) String() string { func (*IsisLspIsReachabilityTlv) ProtoMessage() {} func (x *IsisLspIsReachabilityTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[312] + mi := &file_otg_proto_msgTypes[318] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -45580,7 +47138,7 @@ func (x *IsisLspIsReachabilityTlv) ProtoReflect() protoreflect.Message { // Deprecated: Use IsisLspIsReachabilityTlv.ProtoReflect.Descriptor instead. func (*IsisLspIsReachabilityTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{312} + return file_otg_proto_rawDescGZIP(), []int{318} } func (x *IsisLspIsReachabilityTlv) GetNeighbors() []*IsisLspneighbor { @@ -45604,7 +47162,7 @@ type IsisLspExtendedIsReachabilityTlv struct { func (x *IsisLspExtendedIsReachabilityTlv) Reset() { *x = IsisLspExtendedIsReachabilityTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[313] + mi := &file_otg_proto_msgTypes[319] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -45617,7 +47175,7 @@ func (x *IsisLspExtendedIsReachabilityTlv) String() string { func (*IsisLspExtendedIsReachabilityTlv) ProtoMessage() {} func (x *IsisLspExtendedIsReachabilityTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[313] + mi := &file_otg_proto_msgTypes[319] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -45630,7 +47188,7 @@ func (x *IsisLspExtendedIsReachabilityTlv) ProtoReflect() protoreflect.Message { // Deprecated: Use IsisLspExtendedIsReachabilityTlv.ProtoReflect.Descriptor instead. func (*IsisLspExtendedIsReachabilityTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{313} + return file_otg_proto_rawDescGZIP(), []int{319} } func (x *IsisLspExtendedIsReachabilityTlv) GetNeighbors() []*IsisLspneighbor { @@ -45653,7 +47211,7 @@ type IsisLspneighbor struct { func (x *IsisLspneighbor) Reset() { *x = IsisLspneighbor{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[314] + mi := &file_otg_proto_msgTypes[320] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -45666,7 +47224,7 @@ func (x *IsisLspneighbor) String() string { func (*IsisLspneighbor) ProtoMessage() {} func (x *IsisLspneighbor) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[314] + mi := &file_otg_proto_msgTypes[320] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -45679,7 +47237,7 @@ func (x *IsisLspneighbor) ProtoReflect() protoreflect.Message { // Deprecated: Use IsisLspneighbor.ProtoReflect.Descriptor instead. func (*IsisLspneighbor) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{314} + return file_otg_proto_rawDescGZIP(), []int{320} } func (x *IsisLspneighbor) GetSystemId() string { @@ -45704,7 +47262,7 @@ type IsisLspIpv4InternalReachabilityTlv struct { func (x *IsisLspIpv4InternalReachabilityTlv) Reset() { *x = IsisLspIpv4InternalReachabilityTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[315] + mi := &file_otg_proto_msgTypes[321] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -45717,7 +47275,7 @@ func (x *IsisLspIpv4InternalReachabilityTlv) String() string { func (*IsisLspIpv4InternalReachabilityTlv) ProtoMessage() {} func (x *IsisLspIpv4InternalReachabilityTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[315] + mi := &file_otg_proto_msgTypes[321] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -45730,7 +47288,7 @@ func (x *IsisLspIpv4InternalReachabilityTlv) ProtoReflect() protoreflect.Message // Deprecated: Use IsisLspIpv4InternalReachabilityTlv.ProtoReflect.Descriptor instead. func (*IsisLspIpv4InternalReachabilityTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{315} + return file_otg_proto_rawDescGZIP(), []int{321} } func (x *IsisLspIpv4InternalReachabilityTlv) GetPrefixes() []*IsisLspV4Prefix { @@ -45755,7 +47313,7 @@ type IsisLspIpv4ExternalReachabilityTlv struct { func (x *IsisLspIpv4ExternalReachabilityTlv) Reset() { *x = IsisLspIpv4ExternalReachabilityTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[316] + mi := &file_otg_proto_msgTypes[322] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -45768,7 +47326,7 @@ func (x *IsisLspIpv4ExternalReachabilityTlv) String() string { func (*IsisLspIpv4ExternalReachabilityTlv) ProtoMessage() {} func (x *IsisLspIpv4ExternalReachabilityTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[316] + mi := &file_otg_proto_msgTypes[322] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -45781,7 +47339,7 @@ func (x *IsisLspIpv4ExternalReachabilityTlv) ProtoReflect() protoreflect.Message // Deprecated: Use IsisLspIpv4ExternalReachabilityTlv.ProtoReflect.Descriptor instead. func (*IsisLspIpv4ExternalReachabilityTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{316} + return file_otg_proto_rawDescGZIP(), []int{322} } func (x *IsisLspIpv4ExternalReachabilityTlv) GetPrefixes() []*IsisLspV4Prefix { @@ -45820,7 +47378,7 @@ type IsisLspV4Prefix struct { func (x *IsisLspV4Prefix) Reset() { *x = IsisLspV4Prefix{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[317] + mi := &file_otg_proto_msgTypes[323] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -45833,7 +47391,7 @@ func (x *IsisLspV4Prefix) String() string { func (*IsisLspV4Prefix) ProtoMessage() {} func (x *IsisLspV4Prefix) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[317] + mi := &file_otg_proto_msgTypes[323] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -45846,7 +47404,7 @@ func (x *IsisLspV4Prefix) ProtoReflect() protoreflect.Message { // Deprecated: Use IsisLspV4Prefix.ProtoReflect.Descriptor instead. func (*IsisLspV4Prefix) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{317} + return file_otg_proto_rawDescGZIP(), []int{323} } func (x *IsisLspV4Prefix) GetIpv4Address() string { @@ -45899,7 +47457,7 @@ type IsisLspExtendedIpv4ReachabilityTlv struct { func (x *IsisLspExtendedIpv4ReachabilityTlv) Reset() { *x = IsisLspExtendedIpv4ReachabilityTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[318] + mi := &file_otg_proto_msgTypes[324] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -45912,7 +47470,7 @@ func (x *IsisLspExtendedIpv4ReachabilityTlv) String() string { func (*IsisLspExtendedIpv4ReachabilityTlv) ProtoMessage() {} func (x *IsisLspExtendedIpv4ReachabilityTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[318] + mi := &file_otg_proto_msgTypes[324] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -45925,7 +47483,7 @@ func (x *IsisLspExtendedIpv4ReachabilityTlv) ProtoReflect() protoreflect.Message // Deprecated: Use IsisLspExtendedIpv4ReachabilityTlv.ProtoReflect.Descriptor instead. func (*IsisLspExtendedIpv4ReachabilityTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{318} + return file_otg_proto_rawDescGZIP(), []int{324} } func (x *IsisLspExtendedIpv4ReachabilityTlv) GetPrefixes() []*IsisLspExtendedV4Prefix { @@ -45960,7 +47518,7 @@ type IsisLspExtendedV4Prefix struct { func (x *IsisLspExtendedV4Prefix) Reset() { *x = IsisLspExtendedV4Prefix{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[319] + mi := &file_otg_proto_msgTypes[325] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -45973,7 +47531,7 @@ func (x *IsisLspExtendedV4Prefix) String() string { func (*IsisLspExtendedV4Prefix) ProtoMessage() {} func (x *IsisLspExtendedV4Prefix) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[319] + mi := &file_otg_proto_msgTypes[325] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -45986,7 +47544,7 @@ func (x *IsisLspExtendedV4Prefix) ProtoReflect() protoreflect.Message { // Deprecated: Use IsisLspExtendedV4Prefix.ProtoReflect.Descriptor instead. func (*IsisLspExtendedV4Prefix) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{319} + return file_otg_proto_rawDescGZIP(), []int{325} } func (x *IsisLspExtendedV4Prefix) GetIpv4Address() string { @@ -46038,7 +47596,7 @@ type IsisLspIpv6ReachabilityTlv struct { func (x *IsisLspIpv6ReachabilityTlv) Reset() { *x = IsisLspIpv6ReachabilityTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[320] + mi := &file_otg_proto_msgTypes[326] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -46051,7 +47609,7 @@ func (x *IsisLspIpv6ReachabilityTlv) String() string { func (*IsisLspIpv6ReachabilityTlv) ProtoMessage() {} func (x *IsisLspIpv6ReachabilityTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[320] + mi := &file_otg_proto_msgTypes[326] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -46064,7 +47622,7 @@ func (x *IsisLspIpv6ReachabilityTlv) ProtoReflect() protoreflect.Message { // Deprecated: Use IsisLspIpv6ReachabilityTlv.ProtoReflect.Descriptor instead. func (*IsisLspIpv6ReachabilityTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{320} + return file_otg_proto_rawDescGZIP(), []int{326} } func (x *IsisLspIpv6ReachabilityTlv) GetPrefixes() []*IsisLspV6Prefix { @@ -46105,7 +47663,7 @@ type IsisLspV6Prefix struct { func (x *IsisLspV6Prefix) Reset() { *x = IsisLspV6Prefix{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[321] + mi := &file_otg_proto_msgTypes[327] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -46118,7 +47676,7 @@ func (x *IsisLspV6Prefix) String() string { func (*IsisLspV6Prefix) ProtoMessage() {} func (x *IsisLspV6Prefix) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[321] + mi := &file_otg_proto_msgTypes[327] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -46131,7 +47689,7 @@ func (x *IsisLspV6Prefix) ProtoReflect() protoreflect.Message { // Deprecated: Use IsisLspV6Prefix.ProtoReflect.Descriptor instead. func (*IsisLspV6Prefix) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{321} + return file_otg_proto_rawDescGZIP(), []int{327} } func (x *IsisLspV6Prefix) GetIpv6Address() string { @@ -46194,7 +47752,7 @@ type IsisLspPrefixAttributes struct { func (x *IsisLspPrefixAttributes) Reset() { *x = IsisLspPrefixAttributes{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[322] + mi := &file_otg_proto_msgTypes[328] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -46207,7 +47765,7 @@ func (x *IsisLspPrefixAttributes) String() string { func (*IsisLspPrefixAttributes) ProtoMessage() {} func (x *IsisLspPrefixAttributes) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[322] + mi := &file_otg_proto_msgTypes[328] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -46220,7 +47778,7 @@ func (x *IsisLspPrefixAttributes) ProtoReflect() protoreflect.Message { // Deprecated: Use IsisLspPrefixAttributes.ProtoReflect.Descriptor instead. func (*IsisLspPrefixAttributes) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{322} + return file_otg_proto_rawDescGZIP(), []int{328} } func (x *IsisLspPrefixAttributes) GetXFlag() bool { @@ -46268,7 +47826,7 @@ type LldpNeighborsStateRequest struct { func (x *LldpNeighborsStateRequest) Reset() { *x = LldpNeighborsStateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[323] + mi := &file_otg_proto_msgTypes[329] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -46281,7 +47839,7 @@ func (x *LldpNeighborsStateRequest) String() string { func (*LldpNeighborsStateRequest) ProtoMessage() {} func (x *LldpNeighborsStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[323] + mi := &file_otg_proto_msgTypes[329] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -46294,7 +47852,7 @@ func (x *LldpNeighborsStateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use LldpNeighborsStateRequest.ProtoReflect.Descriptor instead. func (*LldpNeighborsStateRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{323} + return file_otg_proto_rawDescGZIP(), []int{329} } func (x *LldpNeighborsStateRequest) GetLldpNames() []string { @@ -46373,7 +47931,7 @@ type LldpNeighborsState struct { func (x *LldpNeighborsState) Reset() { *x = LldpNeighborsState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[324] + mi := &file_otg_proto_msgTypes[330] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -46386,7 +47944,7 @@ func (x *LldpNeighborsState) String() string { func (*LldpNeighborsState) ProtoMessage() {} func (x *LldpNeighborsState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[324] + mi := &file_otg_proto_msgTypes[330] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -46399,7 +47957,7 @@ func (x *LldpNeighborsState) ProtoReflect() protoreflect.Message { // Deprecated: Use LldpNeighborsState.ProtoReflect.Descriptor instead. func (*LldpNeighborsState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{324} + return file_otg_proto_rawDescGZIP(), []int{330} } func (x *LldpNeighborsState) GetLldpName() string { @@ -46536,7 +48094,7 @@ type LldpCustomTLVState struct { func (x *LldpCustomTLVState) Reset() { *x = LldpCustomTLVState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[325] + mi := &file_otg_proto_msgTypes[331] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -46549,7 +48107,7 @@ func (x *LldpCustomTLVState) String() string { func (*LldpCustomTLVState) ProtoMessage() {} func (x *LldpCustomTLVState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[325] + mi := &file_otg_proto_msgTypes[331] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -46562,7 +48120,7 @@ func (x *LldpCustomTLVState) ProtoReflect() protoreflect.Message { // Deprecated: Use LldpCustomTLVState.ProtoReflect.Descriptor instead. func (*LldpCustomTLVState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{325} + return file_otg_proto_rawDescGZIP(), []int{331} } func (x *LldpCustomTLVState) GetCustomType() uint32 { @@ -46603,7 +48161,7 @@ type LldpCapabilityState struct { func (x *LldpCapabilityState) Reset() { *x = LldpCapabilityState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[326] + mi := &file_otg_proto_msgTypes[332] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -46616,7 +48174,7 @@ func (x *LldpCapabilityState) String() string { func (*LldpCapabilityState) ProtoMessage() {} func (x *LldpCapabilityState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[326] + mi := &file_otg_proto_msgTypes[332] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -46629,7 +48187,7 @@ func (x *LldpCapabilityState) ProtoReflect() protoreflect.Message { // Deprecated: Use LldpCapabilityState.ProtoReflect.Descriptor instead. func (*LldpCapabilityState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{326} + return file_otg_proto_rawDescGZIP(), []int{332} } func (x *LldpCapabilityState) GetCapabilityName() LldpCapabilityState_CapabilityName_Enum { @@ -46667,7 +48225,7 @@ type RsvpLspsStateRequest struct { func (x *RsvpLspsStateRequest) Reset() { *x = RsvpLspsStateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[327] + mi := &file_otg_proto_msgTypes[333] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -46680,7 +48238,7 @@ func (x *RsvpLspsStateRequest) String() string { func (*RsvpLspsStateRequest) ProtoMessage() {} func (x *RsvpLspsStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[327] + mi := &file_otg_proto_msgTypes[333] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -46693,7 +48251,7 @@ func (x *RsvpLspsStateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RsvpLspsStateRequest.ProtoReflect.Descriptor instead. func (*RsvpLspsStateRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{327} + return file_otg_proto_rawDescGZIP(), []int{333} } func (x *RsvpLspsStateRequest) GetRsvpRouterNames() []string { @@ -46718,7 +48276,7 @@ type RsvpLspsState struct { func (x *RsvpLspsState) Reset() { *x = RsvpLspsState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[328] + mi := &file_otg_proto_msgTypes[334] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -46731,7 +48289,7 @@ func (x *RsvpLspsState) String() string { func (*RsvpLspsState) ProtoMessage() {} func (x *RsvpLspsState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[328] + mi := &file_otg_proto_msgTypes[334] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -46744,7 +48302,7 @@ func (x *RsvpLspsState) ProtoReflect() protoreflect.Message { // Deprecated: Use RsvpLspsState.ProtoReflect.Descriptor instead. func (*RsvpLspsState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{328} + return file_otg_proto_rawDescGZIP(), []int{334} } func (x *RsvpLspsState) GetRsvpRouterName() string { @@ -46782,7 +48340,7 @@ type RsvpIPv4LspState struct { func (x *RsvpIPv4LspState) Reset() { *x = RsvpIPv4LspState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[329] + mi := &file_otg_proto_msgTypes[335] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -46795,7 +48353,7 @@ func (x *RsvpIPv4LspState) String() string { func (*RsvpIPv4LspState) ProtoMessage() {} func (x *RsvpIPv4LspState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[329] + mi := &file_otg_proto_msgTypes[335] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -46808,7 +48366,7 @@ func (x *RsvpIPv4LspState) ProtoReflect() protoreflect.Message { // Deprecated: Use RsvpIPv4LspState.ProtoReflect.Descriptor instead. func (*RsvpIPv4LspState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{329} + return file_otg_proto_rawDescGZIP(), []int{335} } func (x *RsvpIPv4LspState) GetSourceAddress() string { @@ -46876,7 +48434,7 @@ type RsvpLspState struct { func (x *RsvpLspState) Reset() { *x = RsvpLspState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[330] + mi := &file_otg_proto_msgTypes[336] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -46889,7 +48447,7 @@ func (x *RsvpLspState) String() string { func (*RsvpLspState) ProtoMessage() {} func (x *RsvpLspState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[330] + mi := &file_otg_proto_msgTypes[336] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -46902,7 +48460,7 @@ func (x *RsvpLspState) ProtoReflect() protoreflect.Message { // Deprecated: Use RsvpLspState.ProtoReflect.Descriptor instead. func (*RsvpLspState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{330} + return file_otg_proto_rawDescGZIP(), []int{336} } func (x *RsvpLspState) GetTunnelId() uint32 { @@ -46984,7 +48542,7 @@ type RsvpLspIpv4Rro struct { func (x *RsvpLspIpv4Rro) Reset() { *x = RsvpLspIpv4Rro{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[331] + mi := &file_otg_proto_msgTypes[337] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -46997,7 +48555,7 @@ func (x *RsvpLspIpv4Rro) String() string { func (*RsvpLspIpv4Rro) ProtoMessage() {} func (x *RsvpLspIpv4Rro) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[331] + mi := &file_otg_proto_msgTypes[337] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -47010,7 +48568,7 @@ func (x *RsvpLspIpv4Rro) ProtoReflect() protoreflect.Message { // Deprecated: Use RsvpLspIpv4Rro.ProtoReflect.Descriptor instead. func (*RsvpLspIpv4Rro) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{331} + return file_otg_proto_rawDescGZIP(), []int{337} } func (x *RsvpLspIpv4Rro) GetAddress() string { @@ -47048,7 +48606,7 @@ type RsvpLspIpv4Ero struct { func (x *RsvpLspIpv4Ero) Reset() { *x = RsvpLspIpv4Ero{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[332] + mi := &file_otg_proto_msgTypes[338] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -47061,7 +48619,7 @@ func (x *RsvpLspIpv4Ero) String() string { func (*RsvpLspIpv4Ero) ProtoMessage() {} func (x *RsvpLspIpv4Ero) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[332] + mi := &file_otg_proto_msgTypes[338] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -47074,7 +48632,7 @@ func (x *RsvpLspIpv4Ero) ProtoReflect() protoreflect.Message { // Deprecated: Use RsvpLspIpv4Ero.ProtoReflect.Descriptor instead. func (*RsvpLspIpv4Ero) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{332} + return file_otg_proto_rawDescGZIP(), []int{338} } func (x *RsvpLspIpv4Ero) GetPrefix() string { @@ -47120,7 +48678,7 @@ type CaptureRequest struct { func (x *CaptureRequest) Reset() { *x = CaptureRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[333] + mi := &file_otg_proto_msgTypes[339] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -47133,7 +48691,7 @@ func (x *CaptureRequest) String() string { func (*CaptureRequest) ProtoMessage() {} func (x *CaptureRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[333] + mi := &file_otg_proto_msgTypes[339] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -47146,7 +48704,7 @@ func (x *CaptureRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CaptureRequest.ProtoReflect.Descriptor instead. func (*CaptureRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{333} + return file_otg_proto_rawDescGZIP(), []int{339} } func (x *CaptureRequest) GetPortName() string { @@ -47176,7 +48734,7 @@ type PatternFlowEthernetDstCounter struct { func (x *PatternFlowEthernetDstCounter) Reset() { *x = PatternFlowEthernetDstCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[334] + mi := &file_otg_proto_msgTypes[340] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -47189,7 +48747,7 @@ func (x *PatternFlowEthernetDstCounter) String() string { func (*PatternFlowEthernetDstCounter) ProtoMessage() {} func (x *PatternFlowEthernetDstCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[334] + mi := &file_otg_proto_msgTypes[340] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -47202,7 +48760,7 @@ func (x *PatternFlowEthernetDstCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowEthernetDstCounter.ProtoReflect.Descriptor instead. func (*PatternFlowEthernetDstCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{334} + return file_otg_proto_rawDescGZIP(), []int{340} } func (x *PatternFlowEthernetDstCounter) GetStart() string { @@ -47250,7 +48808,7 @@ type PatternFlowEthernetDstMetricTag struct { func (x *PatternFlowEthernetDstMetricTag) Reset() { *x = PatternFlowEthernetDstMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[335] + mi := &file_otg_proto_msgTypes[341] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -47263,7 +48821,7 @@ func (x *PatternFlowEthernetDstMetricTag) String() string { func (*PatternFlowEthernetDstMetricTag) ProtoMessage() {} func (x *PatternFlowEthernetDstMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[335] + mi := &file_otg_proto_msgTypes[341] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -47276,7 +48834,7 @@ func (x *PatternFlowEthernetDstMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowEthernetDstMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowEthernetDstMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{335} + return file_otg_proto_rawDescGZIP(), []int{341} } func (x *PatternFlowEthernetDstMetricTag) GetName() string { @@ -47333,7 +48891,7 @@ type PatternFlowEthernetDst struct { func (x *PatternFlowEthernetDst) Reset() { *x = PatternFlowEthernetDst{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[336] + mi := &file_otg_proto_msgTypes[342] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -47346,7 +48904,7 @@ func (x *PatternFlowEthernetDst) String() string { func (*PatternFlowEthernetDst) ProtoMessage() {} func (x *PatternFlowEthernetDst) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[336] + mi := &file_otg_proto_msgTypes[342] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -47359,7 +48917,7 @@ func (x *PatternFlowEthernetDst) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowEthernetDst.ProtoReflect.Descriptor instead. func (*PatternFlowEthernetDst) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{336} + return file_otg_proto_rawDescGZIP(), []int{342} } func (x *PatternFlowEthernetDst) GetChoice() PatternFlowEthernetDst_Choice_Enum { @@ -47431,7 +48989,7 @@ type PatternFlowEthernetSrcCounter struct { func (x *PatternFlowEthernetSrcCounter) Reset() { *x = PatternFlowEthernetSrcCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[337] + mi := &file_otg_proto_msgTypes[343] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -47444,7 +49002,7 @@ func (x *PatternFlowEthernetSrcCounter) String() string { func (*PatternFlowEthernetSrcCounter) ProtoMessage() {} func (x *PatternFlowEthernetSrcCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[337] + mi := &file_otg_proto_msgTypes[343] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -47457,7 +49015,7 @@ func (x *PatternFlowEthernetSrcCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowEthernetSrcCounter.ProtoReflect.Descriptor instead. func (*PatternFlowEthernetSrcCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{337} + return file_otg_proto_rawDescGZIP(), []int{343} } func (x *PatternFlowEthernetSrcCounter) GetStart() string { @@ -47505,7 +49063,7 @@ type PatternFlowEthernetSrcMetricTag struct { func (x *PatternFlowEthernetSrcMetricTag) Reset() { *x = PatternFlowEthernetSrcMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[338] + mi := &file_otg_proto_msgTypes[344] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -47518,7 +49076,7 @@ func (x *PatternFlowEthernetSrcMetricTag) String() string { func (*PatternFlowEthernetSrcMetricTag) ProtoMessage() {} func (x *PatternFlowEthernetSrcMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[338] + mi := &file_otg_proto_msgTypes[344] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -47531,7 +49089,7 @@ func (x *PatternFlowEthernetSrcMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowEthernetSrcMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowEthernetSrcMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{338} + return file_otg_proto_rawDescGZIP(), []int{344} } func (x *PatternFlowEthernetSrcMetricTag) GetName() string { @@ -47583,7 +49141,7 @@ type PatternFlowEthernetSrc struct { func (x *PatternFlowEthernetSrc) Reset() { *x = PatternFlowEthernetSrc{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[339] + mi := &file_otg_proto_msgTypes[345] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -47596,7 +49154,7 @@ func (x *PatternFlowEthernetSrc) String() string { func (*PatternFlowEthernetSrc) ProtoMessage() {} func (x *PatternFlowEthernetSrc) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[339] + mi := &file_otg_proto_msgTypes[345] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -47609,7 +49167,7 @@ func (x *PatternFlowEthernetSrc) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowEthernetSrc.ProtoReflect.Descriptor instead. func (*PatternFlowEthernetSrc) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{339} + return file_otg_proto_rawDescGZIP(), []int{345} } func (x *PatternFlowEthernetSrc) GetChoice() PatternFlowEthernetSrc_Choice_Enum { @@ -47674,7 +49232,7 @@ type PatternFlowEthernetEtherTypeCounter struct { func (x *PatternFlowEthernetEtherTypeCounter) Reset() { *x = PatternFlowEthernetEtherTypeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[340] + mi := &file_otg_proto_msgTypes[346] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -47687,7 +49245,7 @@ func (x *PatternFlowEthernetEtherTypeCounter) String() string { func (*PatternFlowEthernetEtherTypeCounter) ProtoMessage() {} func (x *PatternFlowEthernetEtherTypeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[340] + mi := &file_otg_proto_msgTypes[346] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -47700,7 +49258,7 @@ func (x *PatternFlowEthernetEtherTypeCounter) ProtoReflect() protoreflect.Messag // Deprecated: Use PatternFlowEthernetEtherTypeCounter.ProtoReflect.Descriptor instead. func (*PatternFlowEthernetEtherTypeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{340} + return file_otg_proto_rawDescGZIP(), []int{346} } func (x *PatternFlowEthernetEtherTypeCounter) GetStart() uint32 { @@ -47748,7 +49306,7 @@ type PatternFlowEthernetEtherTypeMetricTag struct { func (x *PatternFlowEthernetEtherTypeMetricTag) Reset() { *x = PatternFlowEthernetEtherTypeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[341] + mi := &file_otg_proto_msgTypes[347] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -47761,7 +49319,7 @@ func (x *PatternFlowEthernetEtherTypeMetricTag) String() string { func (*PatternFlowEthernetEtherTypeMetricTag) ProtoMessage() {} func (x *PatternFlowEthernetEtherTypeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[341] + mi := &file_otg_proto_msgTypes[347] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -47774,7 +49332,7 @@ func (x *PatternFlowEthernetEtherTypeMetricTag) ProtoReflect() protoreflect.Mess // Deprecated: Use PatternFlowEthernetEtherTypeMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowEthernetEtherTypeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{341} + return file_otg_proto_rawDescGZIP(), []int{347} } func (x *PatternFlowEthernetEtherTypeMetricTag) GetName() string { @@ -47831,7 +49389,7 @@ type PatternFlowEthernetEtherType struct { func (x *PatternFlowEthernetEtherType) Reset() { *x = PatternFlowEthernetEtherType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[342] + mi := &file_otg_proto_msgTypes[348] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -47844,7 +49402,7 @@ func (x *PatternFlowEthernetEtherType) String() string { func (*PatternFlowEthernetEtherType) ProtoMessage() {} func (x *PatternFlowEthernetEtherType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[342] + mi := &file_otg_proto_msgTypes[348] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -47857,7 +49415,7 @@ func (x *PatternFlowEthernetEtherType) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowEthernetEtherType.ProtoReflect.Descriptor instead. func (*PatternFlowEthernetEtherType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{342} + return file_otg_proto_rawDescGZIP(), []int{348} } func (x *PatternFlowEthernetEtherType) GetChoice() PatternFlowEthernetEtherType_Choice_Enum { @@ -47929,7 +49487,7 @@ type PatternFlowEthernetPfcQueueCounter struct { func (x *PatternFlowEthernetPfcQueueCounter) Reset() { *x = PatternFlowEthernetPfcQueueCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[343] + mi := &file_otg_proto_msgTypes[349] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -47942,7 +49500,7 @@ func (x *PatternFlowEthernetPfcQueueCounter) String() string { func (*PatternFlowEthernetPfcQueueCounter) ProtoMessage() {} func (x *PatternFlowEthernetPfcQueueCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[343] + mi := &file_otg_proto_msgTypes[349] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -47955,7 +49513,7 @@ func (x *PatternFlowEthernetPfcQueueCounter) ProtoReflect() protoreflect.Message // Deprecated: Use PatternFlowEthernetPfcQueueCounter.ProtoReflect.Descriptor instead. func (*PatternFlowEthernetPfcQueueCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{343} + return file_otg_proto_rawDescGZIP(), []int{349} } func (x *PatternFlowEthernetPfcQueueCounter) GetStart() uint32 { @@ -48003,7 +49561,7 @@ type PatternFlowEthernetPfcQueueMetricTag struct { func (x *PatternFlowEthernetPfcQueueMetricTag) Reset() { *x = PatternFlowEthernetPfcQueueMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[344] + mi := &file_otg_proto_msgTypes[350] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -48016,7 +49574,7 @@ func (x *PatternFlowEthernetPfcQueueMetricTag) String() string { func (*PatternFlowEthernetPfcQueueMetricTag) ProtoMessage() {} func (x *PatternFlowEthernetPfcQueueMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[344] + mi := &file_otg_proto_msgTypes[350] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -48029,7 +49587,7 @@ func (x *PatternFlowEthernetPfcQueueMetricTag) ProtoReflect() protoreflect.Messa // Deprecated: Use PatternFlowEthernetPfcQueueMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowEthernetPfcQueueMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{344} + return file_otg_proto_rawDescGZIP(), []int{350} } func (x *PatternFlowEthernetPfcQueueMetricTag) GetName() string { @@ -48081,7 +49639,7 @@ type PatternFlowEthernetPfcQueue struct { func (x *PatternFlowEthernetPfcQueue) Reset() { *x = PatternFlowEthernetPfcQueue{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[345] + mi := &file_otg_proto_msgTypes[351] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -48094,7 +49652,7 @@ func (x *PatternFlowEthernetPfcQueue) String() string { func (*PatternFlowEthernetPfcQueue) ProtoMessage() {} func (x *PatternFlowEthernetPfcQueue) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[345] + mi := &file_otg_proto_msgTypes[351] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -48107,7 +49665,7 @@ func (x *PatternFlowEthernetPfcQueue) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowEthernetPfcQueue.ProtoReflect.Descriptor instead. func (*PatternFlowEthernetPfcQueue) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{345} + return file_otg_proto_rawDescGZIP(), []int{351} } func (x *PatternFlowEthernetPfcQueue) GetChoice() PatternFlowEthernetPfcQueue_Choice_Enum { @@ -48172,7 +49730,7 @@ type PatternFlowVlanPriorityCounter struct { func (x *PatternFlowVlanPriorityCounter) Reset() { *x = PatternFlowVlanPriorityCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[346] + mi := &file_otg_proto_msgTypes[352] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -48185,7 +49743,7 @@ func (x *PatternFlowVlanPriorityCounter) String() string { func (*PatternFlowVlanPriorityCounter) ProtoMessage() {} func (x *PatternFlowVlanPriorityCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[346] + mi := &file_otg_proto_msgTypes[352] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -48198,7 +49756,7 @@ func (x *PatternFlowVlanPriorityCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowVlanPriorityCounter.ProtoReflect.Descriptor instead. func (*PatternFlowVlanPriorityCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{346} + return file_otg_proto_rawDescGZIP(), []int{352} } func (x *PatternFlowVlanPriorityCounter) GetStart() uint32 { @@ -48246,7 +49804,7 @@ type PatternFlowVlanPriorityMetricTag struct { func (x *PatternFlowVlanPriorityMetricTag) Reset() { *x = PatternFlowVlanPriorityMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[347] + mi := &file_otg_proto_msgTypes[353] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -48259,7 +49817,7 @@ func (x *PatternFlowVlanPriorityMetricTag) String() string { func (*PatternFlowVlanPriorityMetricTag) ProtoMessage() {} func (x *PatternFlowVlanPriorityMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[347] + mi := &file_otg_proto_msgTypes[353] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -48272,7 +49830,7 @@ func (x *PatternFlowVlanPriorityMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowVlanPriorityMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowVlanPriorityMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{347} + return file_otg_proto_rawDescGZIP(), []int{353} } func (x *PatternFlowVlanPriorityMetricTag) GetName() string { @@ -48324,7 +49882,7 @@ type PatternFlowVlanPriority struct { func (x *PatternFlowVlanPriority) Reset() { *x = PatternFlowVlanPriority{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[348] + mi := &file_otg_proto_msgTypes[354] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -48337,7 +49895,7 @@ func (x *PatternFlowVlanPriority) String() string { func (*PatternFlowVlanPriority) ProtoMessage() {} func (x *PatternFlowVlanPriority) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[348] + mi := &file_otg_proto_msgTypes[354] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -48350,7 +49908,7 @@ func (x *PatternFlowVlanPriority) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowVlanPriority.ProtoReflect.Descriptor instead. func (*PatternFlowVlanPriority) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{348} + return file_otg_proto_rawDescGZIP(), []int{354} } func (x *PatternFlowVlanPriority) GetChoice() PatternFlowVlanPriority_Choice_Enum { @@ -48415,7 +49973,7 @@ type PatternFlowVlanCfiCounter struct { func (x *PatternFlowVlanCfiCounter) Reset() { *x = PatternFlowVlanCfiCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[349] + mi := &file_otg_proto_msgTypes[355] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -48428,7 +49986,7 @@ func (x *PatternFlowVlanCfiCounter) String() string { func (*PatternFlowVlanCfiCounter) ProtoMessage() {} func (x *PatternFlowVlanCfiCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[349] + mi := &file_otg_proto_msgTypes[355] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -48441,7 +49999,7 @@ func (x *PatternFlowVlanCfiCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowVlanCfiCounter.ProtoReflect.Descriptor instead. func (*PatternFlowVlanCfiCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{349} + return file_otg_proto_rawDescGZIP(), []int{355} } func (x *PatternFlowVlanCfiCounter) GetStart() uint32 { @@ -48489,7 +50047,7 @@ type PatternFlowVlanCfiMetricTag struct { func (x *PatternFlowVlanCfiMetricTag) Reset() { *x = PatternFlowVlanCfiMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[350] + mi := &file_otg_proto_msgTypes[356] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -48502,7 +50060,7 @@ func (x *PatternFlowVlanCfiMetricTag) String() string { func (*PatternFlowVlanCfiMetricTag) ProtoMessage() {} func (x *PatternFlowVlanCfiMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[350] + mi := &file_otg_proto_msgTypes[356] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -48515,7 +50073,7 @@ func (x *PatternFlowVlanCfiMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowVlanCfiMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowVlanCfiMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{350} + return file_otg_proto_rawDescGZIP(), []int{356} } func (x *PatternFlowVlanCfiMetricTag) GetName() string { @@ -48567,7 +50125,7 @@ type PatternFlowVlanCfi struct { func (x *PatternFlowVlanCfi) Reset() { *x = PatternFlowVlanCfi{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[351] + mi := &file_otg_proto_msgTypes[357] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -48580,7 +50138,7 @@ func (x *PatternFlowVlanCfi) String() string { func (*PatternFlowVlanCfi) ProtoMessage() {} func (x *PatternFlowVlanCfi) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[351] + mi := &file_otg_proto_msgTypes[357] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -48593,7 +50151,7 @@ func (x *PatternFlowVlanCfi) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowVlanCfi.ProtoReflect.Descriptor instead. func (*PatternFlowVlanCfi) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{351} + return file_otg_proto_rawDescGZIP(), []int{357} } func (x *PatternFlowVlanCfi) GetChoice() PatternFlowVlanCfi_Choice_Enum { @@ -48658,7 +50216,7 @@ type PatternFlowVlanIdCounter struct { func (x *PatternFlowVlanIdCounter) Reset() { *x = PatternFlowVlanIdCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[352] + mi := &file_otg_proto_msgTypes[358] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -48671,7 +50229,7 @@ func (x *PatternFlowVlanIdCounter) String() string { func (*PatternFlowVlanIdCounter) ProtoMessage() {} func (x *PatternFlowVlanIdCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[352] + mi := &file_otg_proto_msgTypes[358] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -48684,7 +50242,7 @@ func (x *PatternFlowVlanIdCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowVlanIdCounter.ProtoReflect.Descriptor instead. func (*PatternFlowVlanIdCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{352} + return file_otg_proto_rawDescGZIP(), []int{358} } func (x *PatternFlowVlanIdCounter) GetStart() uint32 { @@ -48732,7 +50290,7 @@ type PatternFlowVlanIdMetricTag struct { func (x *PatternFlowVlanIdMetricTag) Reset() { *x = PatternFlowVlanIdMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[353] + mi := &file_otg_proto_msgTypes[359] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -48745,7 +50303,7 @@ func (x *PatternFlowVlanIdMetricTag) String() string { func (*PatternFlowVlanIdMetricTag) ProtoMessage() {} func (x *PatternFlowVlanIdMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[353] + mi := &file_otg_proto_msgTypes[359] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -48758,7 +50316,7 @@ func (x *PatternFlowVlanIdMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowVlanIdMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowVlanIdMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{353} + return file_otg_proto_rawDescGZIP(), []int{359} } func (x *PatternFlowVlanIdMetricTag) GetName() string { @@ -48810,7 +50368,7 @@ type PatternFlowVlanId struct { func (x *PatternFlowVlanId) Reset() { *x = PatternFlowVlanId{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[354] + mi := &file_otg_proto_msgTypes[360] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -48823,7 +50381,7 @@ func (x *PatternFlowVlanId) String() string { func (*PatternFlowVlanId) ProtoMessage() {} func (x *PatternFlowVlanId) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[354] + mi := &file_otg_proto_msgTypes[360] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -48836,7 +50394,7 @@ func (x *PatternFlowVlanId) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowVlanId.ProtoReflect.Descriptor instead. func (*PatternFlowVlanId) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{354} + return file_otg_proto_rawDescGZIP(), []int{360} } func (x *PatternFlowVlanId) GetChoice() PatternFlowVlanId_Choice_Enum { @@ -48901,7 +50459,7 @@ type PatternFlowVlanTpidCounter struct { func (x *PatternFlowVlanTpidCounter) Reset() { *x = PatternFlowVlanTpidCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[355] + mi := &file_otg_proto_msgTypes[361] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -48914,7 +50472,7 @@ func (x *PatternFlowVlanTpidCounter) String() string { func (*PatternFlowVlanTpidCounter) ProtoMessage() {} func (x *PatternFlowVlanTpidCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[355] + mi := &file_otg_proto_msgTypes[361] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -48927,7 +50485,7 @@ func (x *PatternFlowVlanTpidCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowVlanTpidCounter.ProtoReflect.Descriptor instead. func (*PatternFlowVlanTpidCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{355} + return file_otg_proto_rawDescGZIP(), []int{361} } func (x *PatternFlowVlanTpidCounter) GetStart() uint32 { @@ -48975,7 +50533,7 @@ type PatternFlowVlanTpidMetricTag struct { func (x *PatternFlowVlanTpidMetricTag) Reset() { *x = PatternFlowVlanTpidMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[356] + mi := &file_otg_proto_msgTypes[362] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -48988,7 +50546,7 @@ func (x *PatternFlowVlanTpidMetricTag) String() string { func (*PatternFlowVlanTpidMetricTag) ProtoMessage() {} func (x *PatternFlowVlanTpidMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[356] + mi := &file_otg_proto_msgTypes[362] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -49001,7 +50559,7 @@ func (x *PatternFlowVlanTpidMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowVlanTpidMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowVlanTpidMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{356} + return file_otg_proto_rawDescGZIP(), []int{362} } func (x *PatternFlowVlanTpidMetricTag) GetName() string { @@ -49053,7 +50611,7 @@ type PatternFlowVlanTpid struct { func (x *PatternFlowVlanTpid) Reset() { *x = PatternFlowVlanTpid{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[357] + mi := &file_otg_proto_msgTypes[363] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -49066,7 +50624,7 @@ func (x *PatternFlowVlanTpid) String() string { func (*PatternFlowVlanTpid) ProtoMessage() {} func (x *PatternFlowVlanTpid) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[357] + mi := &file_otg_proto_msgTypes[363] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -49079,7 +50637,7 @@ func (x *PatternFlowVlanTpid) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowVlanTpid.ProtoReflect.Descriptor instead. func (*PatternFlowVlanTpid) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{357} + return file_otg_proto_rawDescGZIP(), []int{363} } func (x *PatternFlowVlanTpid) GetChoice() PatternFlowVlanTpid_Choice_Enum { @@ -49144,7 +50702,7 @@ type PatternFlowVxlanFlagsCounter struct { func (x *PatternFlowVxlanFlagsCounter) Reset() { *x = PatternFlowVxlanFlagsCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[358] + mi := &file_otg_proto_msgTypes[364] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -49157,7 +50715,7 @@ func (x *PatternFlowVxlanFlagsCounter) String() string { func (*PatternFlowVxlanFlagsCounter) ProtoMessage() {} func (x *PatternFlowVxlanFlagsCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[358] + mi := &file_otg_proto_msgTypes[364] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -49170,7 +50728,7 @@ func (x *PatternFlowVxlanFlagsCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowVxlanFlagsCounter.ProtoReflect.Descriptor instead. func (*PatternFlowVxlanFlagsCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{358} + return file_otg_proto_rawDescGZIP(), []int{364} } func (x *PatternFlowVxlanFlagsCounter) GetStart() uint32 { @@ -49218,7 +50776,7 @@ type PatternFlowVxlanFlagsMetricTag struct { func (x *PatternFlowVxlanFlagsMetricTag) Reset() { *x = PatternFlowVxlanFlagsMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[359] + mi := &file_otg_proto_msgTypes[365] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -49231,7 +50789,7 @@ func (x *PatternFlowVxlanFlagsMetricTag) String() string { func (*PatternFlowVxlanFlagsMetricTag) ProtoMessage() {} func (x *PatternFlowVxlanFlagsMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[359] + mi := &file_otg_proto_msgTypes[365] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -49244,7 +50802,7 @@ func (x *PatternFlowVxlanFlagsMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowVxlanFlagsMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowVxlanFlagsMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{359} + return file_otg_proto_rawDescGZIP(), []int{365} } func (x *PatternFlowVxlanFlagsMetricTag) GetName() string { @@ -49298,7 +50856,7 @@ type PatternFlowVxlanFlags struct { func (x *PatternFlowVxlanFlags) Reset() { *x = PatternFlowVxlanFlags{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[360] + mi := &file_otg_proto_msgTypes[366] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -49311,7 +50869,7 @@ func (x *PatternFlowVxlanFlags) String() string { func (*PatternFlowVxlanFlags) ProtoMessage() {} func (x *PatternFlowVxlanFlags) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[360] + mi := &file_otg_proto_msgTypes[366] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -49324,7 +50882,7 @@ func (x *PatternFlowVxlanFlags) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowVxlanFlags.ProtoReflect.Descriptor instead. func (*PatternFlowVxlanFlags) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{360} + return file_otg_proto_rawDescGZIP(), []int{366} } func (x *PatternFlowVxlanFlags) GetChoice() PatternFlowVxlanFlags_Choice_Enum { @@ -49389,7 +50947,7 @@ type PatternFlowVxlanReserved0Counter struct { func (x *PatternFlowVxlanReserved0Counter) Reset() { *x = PatternFlowVxlanReserved0Counter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[361] + mi := &file_otg_proto_msgTypes[367] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -49402,7 +50960,7 @@ func (x *PatternFlowVxlanReserved0Counter) String() string { func (*PatternFlowVxlanReserved0Counter) ProtoMessage() {} func (x *PatternFlowVxlanReserved0Counter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[361] + mi := &file_otg_proto_msgTypes[367] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -49415,7 +50973,7 @@ func (x *PatternFlowVxlanReserved0Counter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowVxlanReserved0Counter.ProtoReflect.Descriptor instead. func (*PatternFlowVxlanReserved0Counter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{361} + return file_otg_proto_rawDescGZIP(), []int{367} } func (x *PatternFlowVxlanReserved0Counter) GetStart() uint32 { @@ -49463,7 +51021,7 @@ type PatternFlowVxlanReserved0MetricTag struct { func (x *PatternFlowVxlanReserved0MetricTag) Reset() { *x = PatternFlowVxlanReserved0MetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[362] + mi := &file_otg_proto_msgTypes[368] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -49476,7 +51034,7 @@ func (x *PatternFlowVxlanReserved0MetricTag) String() string { func (*PatternFlowVxlanReserved0MetricTag) ProtoMessage() {} func (x *PatternFlowVxlanReserved0MetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[362] + mi := &file_otg_proto_msgTypes[368] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -49489,7 +51047,7 @@ func (x *PatternFlowVxlanReserved0MetricTag) ProtoReflect() protoreflect.Message // Deprecated: Use PatternFlowVxlanReserved0MetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowVxlanReserved0MetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{362} + return file_otg_proto_rawDescGZIP(), []int{368} } func (x *PatternFlowVxlanReserved0MetricTag) GetName() string { @@ -49541,7 +51099,7 @@ type PatternFlowVxlanReserved0 struct { func (x *PatternFlowVxlanReserved0) Reset() { *x = PatternFlowVxlanReserved0{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[363] + mi := &file_otg_proto_msgTypes[369] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -49554,7 +51112,7 @@ func (x *PatternFlowVxlanReserved0) String() string { func (*PatternFlowVxlanReserved0) ProtoMessage() {} func (x *PatternFlowVxlanReserved0) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[363] + mi := &file_otg_proto_msgTypes[369] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -49567,7 +51125,7 @@ func (x *PatternFlowVxlanReserved0) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowVxlanReserved0.ProtoReflect.Descriptor instead. func (*PatternFlowVxlanReserved0) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{363} + return file_otg_proto_rawDescGZIP(), []int{369} } func (x *PatternFlowVxlanReserved0) GetChoice() PatternFlowVxlanReserved0_Choice_Enum { @@ -49632,7 +51190,7 @@ type PatternFlowVxlanVniCounter struct { func (x *PatternFlowVxlanVniCounter) Reset() { *x = PatternFlowVxlanVniCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[364] + mi := &file_otg_proto_msgTypes[370] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -49645,7 +51203,7 @@ func (x *PatternFlowVxlanVniCounter) String() string { func (*PatternFlowVxlanVniCounter) ProtoMessage() {} func (x *PatternFlowVxlanVniCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[364] + mi := &file_otg_proto_msgTypes[370] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -49658,7 +51216,7 @@ func (x *PatternFlowVxlanVniCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowVxlanVniCounter.ProtoReflect.Descriptor instead. func (*PatternFlowVxlanVniCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{364} + return file_otg_proto_rawDescGZIP(), []int{370} } func (x *PatternFlowVxlanVniCounter) GetStart() uint32 { @@ -49706,7 +51264,7 @@ type PatternFlowVxlanVniMetricTag struct { func (x *PatternFlowVxlanVniMetricTag) Reset() { *x = PatternFlowVxlanVniMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[365] + mi := &file_otg_proto_msgTypes[371] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -49719,7 +51277,7 @@ func (x *PatternFlowVxlanVniMetricTag) String() string { func (*PatternFlowVxlanVniMetricTag) ProtoMessage() {} func (x *PatternFlowVxlanVniMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[365] + mi := &file_otg_proto_msgTypes[371] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -49732,7 +51290,7 @@ func (x *PatternFlowVxlanVniMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowVxlanVniMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowVxlanVniMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{365} + return file_otg_proto_rawDescGZIP(), []int{371} } func (x *PatternFlowVxlanVniMetricTag) GetName() string { @@ -49789,7 +51347,7 @@ type PatternFlowVxlanVni struct { func (x *PatternFlowVxlanVni) Reset() { *x = PatternFlowVxlanVni{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[366] + mi := &file_otg_proto_msgTypes[372] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -49802,7 +51360,7 @@ func (x *PatternFlowVxlanVni) String() string { func (*PatternFlowVxlanVni) ProtoMessage() {} func (x *PatternFlowVxlanVni) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[366] + mi := &file_otg_proto_msgTypes[372] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -49815,7 +51373,7 @@ func (x *PatternFlowVxlanVni) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowVxlanVni.ProtoReflect.Descriptor instead. func (*PatternFlowVxlanVni) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{366} + return file_otg_proto_rawDescGZIP(), []int{372} } func (x *PatternFlowVxlanVni) GetChoice() PatternFlowVxlanVni_Choice_Enum { @@ -49887,7 +51445,7 @@ type PatternFlowVxlanReserved1Counter struct { func (x *PatternFlowVxlanReserved1Counter) Reset() { *x = PatternFlowVxlanReserved1Counter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[367] + mi := &file_otg_proto_msgTypes[373] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -49900,7 +51458,7 @@ func (x *PatternFlowVxlanReserved1Counter) String() string { func (*PatternFlowVxlanReserved1Counter) ProtoMessage() {} func (x *PatternFlowVxlanReserved1Counter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[367] + mi := &file_otg_proto_msgTypes[373] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -49913,7 +51471,7 @@ func (x *PatternFlowVxlanReserved1Counter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowVxlanReserved1Counter.ProtoReflect.Descriptor instead. func (*PatternFlowVxlanReserved1Counter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{367} + return file_otg_proto_rawDescGZIP(), []int{373} } func (x *PatternFlowVxlanReserved1Counter) GetStart() uint32 { @@ -49961,7 +51519,7 @@ type PatternFlowVxlanReserved1MetricTag struct { func (x *PatternFlowVxlanReserved1MetricTag) Reset() { *x = PatternFlowVxlanReserved1MetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[368] + mi := &file_otg_proto_msgTypes[374] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -49974,7 +51532,7 @@ func (x *PatternFlowVxlanReserved1MetricTag) String() string { func (*PatternFlowVxlanReserved1MetricTag) ProtoMessage() {} func (x *PatternFlowVxlanReserved1MetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[368] + mi := &file_otg_proto_msgTypes[374] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -49987,7 +51545,7 @@ func (x *PatternFlowVxlanReserved1MetricTag) ProtoReflect() protoreflect.Message // Deprecated: Use PatternFlowVxlanReserved1MetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowVxlanReserved1MetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{368} + return file_otg_proto_rawDescGZIP(), []int{374} } func (x *PatternFlowVxlanReserved1MetricTag) GetName() string { @@ -50039,7 +51597,7 @@ type PatternFlowVxlanReserved1 struct { func (x *PatternFlowVxlanReserved1) Reset() { *x = PatternFlowVxlanReserved1{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[369] + mi := &file_otg_proto_msgTypes[375] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -50052,7 +51610,7 @@ func (x *PatternFlowVxlanReserved1) String() string { func (*PatternFlowVxlanReserved1) ProtoMessage() {} func (x *PatternFlowVxlanReserved1) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[369] + mi := &file_otg_proto_msgTypes[375] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50065,7 +51623,7 @@ func (x *PatternFlowVxlanReserved1) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowVxlanReserved1.ProtoReflect.Descriptor instead. func (*PatternFlowVxlanReserved1) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{369} + return file_otg_proto_rawDescGZIP(), []int{375} } func (x *PatternFlowVxlanReserved1) GetChoice() PatternFlowVxlanReserved1_Choice_Enum { @@ -50130,7 +51688,7 @@ type PatternFlowIpv4VersionCounter struct { func (x *PatternFlowIpv4VersionCounter) Reset() { *x = PatternFlowIpv4VersionCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[370] + mi := &file_otg_proto_msgTypes[376] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -50143,7 +51701,7 @@ func (x *PatternFlowIpv4VersionCounter) String() string { func (*PatternFlowIpv4VersionCounter) ProtoMessage() {} func (x *PatternFlowIpv4VersionCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[370] + mi := &file_otg_proto_msgTypes[376] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50156,7 +51714,7 @@ func (x *PatternFlowIpv4VersionCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4VersionCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4VersionCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{370} + return file_otg_proto_rawDescGZIP(), []int{376} } func (x *PatternFlowIpv4VersionCounter) GetStart() uint32 { @@ -50204,7 +51762,7 @@ type PatternFlowIpv4VersionMetricTag struct { func (x *PatternFlowIpv4VersionMetricTag) Reset() { *x = PatternFlowIpv4VersionMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[371] + mi := &file_otg_proto_msgTypes[377] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -50217,7 +51775,7 @@ func (x *PatternFlowIpv4VersionMetricTag) String() string { func (*PatternFlowIpv4VersionMetricTag) ProtoMessage() {} func (x *PatternFlowIpv4VersionMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[371] + mi := &file_otg_proto_msgTypes[377] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50230,7 +51788,7 @@ func (x *PatternFlowIpv4VersionMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4VersionMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4VersionMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{371} + return file_otg_proto_rawDescGZIP(), []int{377} } func (x *PatternFlowIpv4VersionMetricTag) GetName() string { @@ -50282,7 +51840,7 @@ type PatternFlowIpv4Version struct { func (x *PatternFlowIpv4Version) Reset() { *x = PatternFlowIpv4Version{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[372] + mi := &file_otg_proto_msgTypes[378] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -50295,7 +51853,7 @@ func (x *PatternFlowIpv4Version) String() string { func (*PatternFlowIpv4Version) ProtoMessage() {} func (x *PatternFlowIpv4Version) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[372] + mi := &file_otg_proto_msgTypes[378] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50308,7 +51866,7 @@ func (x *PatternFlowIpv4Version) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4Version.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4Version) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{372} + return file_otg_proto_rawDescGZIP(), []int{378} } func (x *PatternFlowIpv4Version) GetChoice() PatternFlowIpv4Version_Choice_Enum { @@ -50373,7 +51931,7 @@ type PatternFlowIpv4HeaderLengthCounter struct { func (x *PatternFlowIpv4HeaderLengthCounter) Reset() { *x = PatternFlowIpv4HeaderLengthCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[373] + mi := &file_otg_proto_msgTypes[379] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -50386,7 +51944,7 @@ func (x *PatternFlowIpv4HeaderLengthCounter) String() string { func (*PatternFlowIpv4HeaderLengthCounter) ProtoMessage() {} func (x *PatternFlowIpv4HeaderLengthCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[373] + mi := &file_otg_proto_msgTypes[379] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50399,7 +51957,7 @@ func (x *PatternFlowIpv4HeaderLengthCounter) ProtoReflect() protoreflect.Message // Deprecated: Use PatternFlowIpv4HeaderLengthCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4HeaderLengthCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{373} + return file_otg_proto_rawDescGZIP(), []int{379} } func (x *PatternFlowIpv4HeaderLengthCounter) GetStart() uint32 { @@ -50447,7 +52005,7 @@ type PatternFlowIpv4HeaderLengthMetricTag struct { func (x *PatternFlowIpv4HeaderLengthMetricTag) Reset() { *x = PatternFlowIpv4HeaderLengthMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[374] + mi := &file_otg_proto_msgTypes[380] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -50460,7 +52018,7 @@ func (x *PatternFlowIpv4HeaderLengthMetricTag) String() string { func (*PatternFlowIpv4HeaderLengthMetricTag) ProtoMessage() {} func (x *PatternFlowIpv4HeaderLengthMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[374] + mi := &file_otg_proto_msgTypes[380] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50473,7 +52031,7 @@ func (x *PatternFlowIpv4HeaderLengthMetricTag) ProtoReflect() protoreflect.Messa // Deprecated: Use PatternFlowIpv4HeaderLengthMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4HeaderLengthMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{374} + return file_otg_proto_rawDescGZIP(), []int{380} } func (x *PatternFlowIpv4HeaderLengthMetricTag) GetName() string { @@ -50530,7 +52088,7 @@ type PatternFlowIpv4HeaderLength struct { func (x *PatternFlowIpv4HeaderLength) Reset() { *x = PatternFlowIpv4HeaderLength{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[375] + mi := &file_otg_proto_msgTypes[381] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -50543,7 +52101,7 @@ func (x *PatternFlowIpv4HeaderLength) String() string { func (*PatternFlowIpv4HeaderLength) ProtoMessage() {} func (x *PatternFlowIpv4HeaderLength) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[375] + mi := &file_otg_proto_msgTypes[381] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50556,7 +52114,7 @@ func (x *PatternFlowIpv4HeaderLength) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4HeaderLength.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4HeaderLength) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{375} + return file_otg_proto_rawDescGZIP(), []int{381} } func (x *PatternFlowIpv4HeaderLength) GetChoice() PatternFlowIpv4HeaderLength_Choice_Enum { @@ -50628,7 +52186,7 @@ type PatternFlowIpv4TotalLengthCounter struct { func (x *PatternFlowIpv4TotalLengthCounter) Reset() { *x = PatternFlowIpv4TotalLengthCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[376] + mi := &file_otg_proto_msgTypes[382] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -50641,7 +52199,7 @@ func (x *PatternFlowIpv4TotalLengthCounter) String() string { func (*PatternFlowIpv4TotalLengthCounter) ProtoMessage() {} func (x *PatternFlowIpv4TotalLengthCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[376] + mi := &file_otg_proto_msgTypes[382] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50654,7 +52212,7 @@ func (x *PatternFlowIpv4TotalLengthCounter) ProtoReflect() protoreflect.Message // Deprecated: Use PatternFlowIpv4TotalLengthCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4TotalLengthCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{376} + return file_otg_proto_rawDescGZIP(), []int{382} } func (x *PatternFlowIpv4TotalLengthCounter) GetStart() uint32 { @@ -50702,7 +52260,7 @@ type PatternFlowIpv4TotalLengthMetricTag struct { func (x *PatternFlowIpv4TotalLengthMetricTag) Reset() { *x = PatternFlowIpv4TotalLengthMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[377] + mi := &file_otg_proto_msgTypes[383] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -50715,7 +52273,7 @@ func (x *PatternFlowIpv4TotalLengthMetricTag) String() string { func (*PatternFlowIpv4TotalLengthMetricTag) ProtoMessage() {} func (x *PatternFlowIpv4TotalLengthMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[377] + mi := &file_otg_proto_msgTypes[383] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50728,7 +52286,7 @@ func (x *PatternFlowIpv4TotalLengthMetricTag) ProtoReflect() protoreflect.Messag // Deprecated: Use PatternFlowIpv4TotalLengthMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4TotalLengthMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{377} + return file_otg_proto_rawDescGZIP(), []int{383} } func (x *PatternFlowIpv4TotalLengthMetricTag) GetName() string { @@ -50785,7 +52343,7 @@ type PatternFlowIpv4TotalLength struct { func (x *PatternFlowIpv4TotalLength) Reset() { *x = PatternFlowIpv4TotalLength{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[378] + mi := &file_otg_proto_msgTypes[384] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -50798,7 +52356,7 @@ func (x *PatternFlowIpv4TotalLength) String() string { func (*PatternFlowIpv4TotalLength) ProtoMessage() {} func (x *PatternFlowIpv4TotalLength) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[378] + mi := &file_otg_proto_msgTypes[384] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50811,7 +52369,7 @@ func (x *PatternFlowIpv4TotalLength) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4TotalLength.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4TotalLength) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{378} + return file_otg_proto_rawDescGZIP(), []int{384} } func (x *PatternFlowIpv4TotalLength) GetChoice() PatternFlowIpv4TotalLength_Choice_Enum { @@ -50883,7 +52441,7 @@ type PatternFlowIpv4IdentificationCounter struct { func (x *PatternFlowIpv4IdentificationCounter) Reset() { *x = PatternFlowIpv4IdentificationCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[379] + mi := &file_otg_proto_msgTypes[385] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -50896,7 +52454,7 @@ func (x *PatternFlowIpv4IdentificationCounter) String() string { func (*PatternFlowIpv4IdentificationCounter) ProtoMessage() {} func (x *PatternFlowIpv4IdentificationCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[379] + mi := &file_otg_proto_msgTypes[385] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50909,7 +52467,7 @@ func (x *PatternFlowIpv4IdentificationCounter) ProtoReflect() protoreflect.Messa // Deprecated: Use PatternFlowIpv4IdentificationCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4IdentificationCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{379} + return file_otg_proto_rawDescGZIP(), []int{385} } func (x *PatternFlowIpv4IdentificationCounter) GetStart() uint32 { @@ -50957,7 +52515,7 @@ type PatternFlowIpv4IdentificationMetricTag struct { func (x *PatternFlowIpv4IdentificationMetricTag) Reset() { *x = PatternFlowIpv4IdentificationMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[380] + mi := &file_otg_proto_msgTypes[386] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -50970,7 +52528,7 @@ func (x *PatternFlowIpv4IdentificationMetricTag) String() string { func (*PatternFlowIpv4IdentificationMetricTag) ProtoMessage() {} func (x *PatternFlowIpv4IdentificationMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[380] + mi := &file_otg_proto_msgTypes[386] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50983,7 +52541,7 @@ func (x *PatternFlowIpv4IdentificationMetricTag) ProtoReflect() protoreflect.Mes // Deprecated: Use PatternFlowIpv4IdentificationMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4IdentificationMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{380} + return file_otg_proto_rawDescGZIP(), []int{386} } func (x *PatternFlowIpv4IdentificationMetricTag) GetName() string { @@ -51035,7 +52593,7 @@ type PatternFlowIpv4Identification struct { func (x *PatternFlowIpv4Identification) Reset() { *x = PatternFlowIpv4Identification{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[381] + mi := &file_otg_proto_msgTypes[387] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -51048,7 +52606,7 @@ func (x *PatternFlowIpv4Identification) String() string { func (*PatternFlowIpv4Identification) ProtoMessage() {} func (x *PatternFlowIpv4Identification) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[381] + mi := &file_otg_proto_msgTypes[387] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -51061,7 +52619,7 @@ func (x *PatternFlowIpv4Identification) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4Identification.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4Identification) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{381} + return file_otg_proto_rawDescGZIP(), []int{387} } func (x *PatternFlowIpv4Identification) GetChoice() PatternFlowIpv4Identification_Choice_Enum { @@ -51126,7 +52684,7 @@ type PatternFlowIpv4ReservedCounter struct { func (x *PatternFlowIpv4ReservedCounter) Reset() { *x = PatternFlowIpv4ReservedCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[382] + mi := &file_otg_proto_msgTypes[388] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -51139,7 +52697,7 @@ func (x *PatternFlowIpv4ReservedCounter) String() string { func (*PatternFlowIpv4ReservedCounter) ProtoMessage() {} func (x *PatternFlowIpv4ReservedCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[382] + mi := &file_otg_proto_msgTypes[388] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -51152,7 +52710,7 @@ func (x *PatternFlowIpv4ReservedCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4ReservedCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4ReservedCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{382} + return file_otg_proto_rawDescGZIP(), []int{388} } func (x *PatternFlowIpv4ReservedCounter) GetStart() uint32 { @@ -51200,7 +52758,7 @@ type PatternFlowIpv4ReservedMetricTag struct { func (x *PatternFlowIpv4ReservedMetricTag) Reset() { *x = PatternFlowIpv4ReservedMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[383] + mi := &file_otg_proto_msgTypes[389] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -51213,7 +52771,7 @@ func (x *PatternFlowIpv4ReservedMetricTag) String() string { func (*PatternFlowIpv4ReservedMetricTag) ProtoMessage() {} func (x *PatternFlowIpv4ReservedMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[383] + mi := &file_otg_proto_msgTypes[389] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -51226,7 +52784,7 @@ func (x *PatternFlowIpv4ReservedMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4ReservedMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4ReservedMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{383} + return file_otg_proto_rawDescGZIP(), []int{389} } func (x *PatternFlowIpv4ReservedMetricTag) GetName() string { @@ -51278,7 +52836,7 @@ type PatternFlowIpv4Reserved struct { func (x *PatternFlowIpv4Reserved) Reset() { *x = PatternFlowIpv4Reserved{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[384] + mi := &file_otg_proto_msgTypes[390] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -51291,7 +52849,7 @@ func (x *PatternFlowIpv4Reserved) String() string { func (*PatternFlowIpv4Reserved) ProtoMessage() {} func (x *PatternFlowIpv4Reserved) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[384] + mi := &file_otg_proto_msgTypes[390] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -51304,7 +52862,7 @@ func (x *PatternFlowIpv4Reserved) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4Reserved.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4Reserved) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{384} + return file_otg_proto_rawDescGZIP(), []int{390} } func (x *PatternFlowIpv4Reserved) GetChoice() PatternFlowIpv4Reserved_Choice_Enum { @@ -51369,7 +52927,7 @@ type PatternFlowIpv4DontFragmentCounter struct { func (x *PatternFlowIpv4DontFragmentCounter) Reset() { *x = PatternFlowIpv4DontFragmentCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[385] + mi := &file_otg_proto_msgTypes[391] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -51382,7 +52940,7 @@ func (x *PatternFlowIpv4DontFragmentCounter) String() string { func (*PatternFlowIpv4DontFragmentCounter) ProtoMessage() {} func (x *PatternFlowIpv4DontFragmentCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[385] + mi := &file_otg_proto_msgTypes[391] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -51395,7 +52953,7 @@ func (x *PatternFlowIpv4DontFragmentCounter) ProtoReflect() protoreflect.Message // Deprecated: Use PatternFlowIpv4DontFragmentCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4DontFragmentCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{385} + return file_otg_proto_rawDescGZIP(), []int{391} } func (x *PatternFlowIpv4DontFragmentCounter) GetStart() uint32 { @@ -51443,7 +53001,7 @@ type PatternFlowIpv4DontFragmentMetricTag struct { func (x *PatternFlowIpv4DontFragmentMetricTag) Reset() { *x = PatternFlowIpv4DontFragmentMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[386] + mi := &file_otg_proto_msgTypes[392] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -51456,7 +53014,7 @@ func (x *PatternFlowIpv4DontFragmentMetricTag) String() string { func (*PatternFlowIpv4DontFragmentMetricTag) ProtoMessage() {} func (x *PatternFlowIpv4DontFragmentMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[386] + mi := &file_otg_proto_msgTypes[392] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -51469,7 +53027,7 @@ func (x *PatternFlowIpv4DontFragmentMetricTag) ProtoReflect() protoreflect.Messa // Deprecated: Use PatternFlowIpv4DontFragmentMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4DontFragmentMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{386} + return file_otg_proto_rawDescGZIP(), []int{392} } func (x *PatternFlowIpv4DontFragmentMetricTag) GetName() string { @@ -51522,7 +53080,7 @@ type PatternFlowIpv4DontFragment struct { func (x *PatternFlowIpv4DontFragment) Reset() { *x = PatternFlowIpv4DontFragment{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[387] + mi := &file_otg_proto_msgTypes[393] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -51535,7 +53093,7 @@ func (x *PatternFlowIpv4DontFragment) String() string { func (*PatternFlowIpv4DontFragment) ProtoMessage() {} func (x *PatternFlowIpv4DontFragment) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[387] + mi := &file_otg_proto_msgTypes[393] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -51548,7 +53106,7 @@ func (x *PatternFlowIpv4DontFragment) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4DontFragment.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4DontFragment) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{387} + return file_otg_proto_rawDescGZIP(), []int{393} } func (x *PatternFlowIpv4DontFragment) GetChoice() PatternFlowIpv4DontFragment_Choice_Enum { @@ -51613,7 +53171,7 @@ type PatternFlowIpv4MoreFragmentsCounter struct { func (x *PatternFlowIpv4MoreFragmentsCounter) Reset() { *x = PatternFlowIpv4MoreFragmentsCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[388] + mi := &file_otg_proto_msgTypes[394] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -51626,7 +53184,7 @@ func (x *PatternFlowIpv4MoreFragmentsCounter) String() string { func (*PatternFlowIpv4MoreFragmentsCounter) ProtoMessage() {} func (x *PatternFlowIpv4MoreFragmentsCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[388] + mi := &file_otg_proto_msgTypes[394] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -51639,7 +53197,7 @@ func (x *PatternFlowIpv4MoreFragmentsCounter) ProtoReflect() protoreflect.Messag // Deprecated: Use PatternFlowIpv4MoreFragmentsCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4MoreFragmentsCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{388} + return file_otg_proto_rawDescGZIP(), []int{394} } func (x *PatternFlowIpv4MoreFragmentsCounter) GetStart() uint32 { @@ -51687,7 +53245,7 @@ type PatternFlowIpv4MoreFragmentsMetricTag struct { func (x *PatternFlowIpv4MoreFragmentsMetricTag) Reset() { *x = PatternFlowIpv4MoreFragmentsMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[389] + mi := &file_otg_proto_msgTypes[395] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -51700,7 +53258,7 @@ func (x *PatternFlowIpv4MoreFragmentsMetricTag) String() string { func (*PatternFlowIpv4MoreFragmentsMetricTag) ProtoMessage() {} func (x *PatternFlowIpv4MoreFragmentsMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[389] + mi := &file_otg_proto_msgTypes[395] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -51713,7 +53271,7 @@ func (x *PatternFlowIpv4MoreFragmentsMetricTag) ProtoReflect() protoreflect.Mess // Deprecated: Use PatternFlowIpv4MoreFragmentsMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4MoreFragmentsMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{389} + return file_otg_proto_rawDescGZIP(), []int{395} } func (x *PatternFlowIpv4MoreFragmentsMetricTag) GetName() string { @@ -51765,7 +53323,7 @@ type PatternFlowIpv4MoreFragments struct { func (x *PatternFlowIpv4MoreFragments) Reset() { *x = PatternFlowIpv4MoreFragments{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[390] + mi := &file_otg_proto_msgTypes[396] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -51778,7 +53336,7 @@ func (x *PatternFlowIpv4MoreFragments) String() string { func (*PatternFlowIpv4MoreFragments) ProtoMessage() {} func (x *PatternFlowIpv4MoreFragments) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[390] + mi := &file_otg_proto_msgTypes[396] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -51791,7 +53349,7 @@ func (x *PatternFlowIpv4MoreFragments) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4MoreFragments.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4MoreFragments) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{390} + return file_otg_proto_rawDescGZIP(), []int{396} } func (x *PatternFlowIpv4MoreFragments) GetChoice() PatternFlowIpv4MoreFragments_Choice_Enum { @@ -51856,7 +53414,7 @@ type PatternFlowIpv4FragmentOffsetCounter struct { func (x *PatternFlowIpv4FragmentOffsetCounter) Reset() { *x = PatternFlowIpv4FragmentOffsetCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[391] + mi := &file_otg_proto_msgTypes[397] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -51869,7 +53427,7 @@ func (x *PatternFlowIpv4FragmentOffsetCounter) String() string { func (*PatternFlowIpv4FragmentOffsetCounter) ProtoMessage() {} func (x *PatternFlowIpv4FragmentOffsetCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[391] + mi := &file_otg_proto_msgTypes[397] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -51882,7 +53440,7 @@ func (x *PatternFlowIpv4FragmentOffsetCounter) ProtoReflect() protoreflect.Messa // Deprecated: Use PatternFlowIpv4FragmentOffsetCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4FragmentOffsetCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{391} + return file_otg_proto_rawDescGZIP(), []int{397} } func (x *PatternFlowIpv4FragmentOffsetCounter) GetStart() uint32 { @@ -51930,7 +53488,7 @@ type PatternFlowIpv4FragmentOffsetMetricTag struct { func (x *PatternFlowIpv4FragmentOffsetMetricTag) Reset() { *x = PatternFlowIpv4FragmentOffsetMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[392] + mi := &file_otg_proto_msgTypes[398] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -51943,7 +53501,7 @@ func (x *PatternFlowIpv4FragmentOffsetMetricTag) String() string { func (*PatternFlowIpv4FragmentOffsetMetricTag) ProtoMessage() {} func (x *PatternFlowIpv4FragmentOffsetMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[392] + mi := &file_otg_proto_msgTypes[398] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -51956,7 +53514,7 @@ func (x *PatternFlowIpv4FragmentOffsetMetricTag) ProtoReflect() protoreflect.Mes // Deprecated: Use PatternFlowIpv4FragmentOffsetMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4FragmentOffsetMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{392} + return file_otg_proto_rawDescGZIP(), []int{398} } func (x *PatternFlowIpv4FragmentOffsetMetricTag) GetName() string { @@ -52008,7 +53566,7 @@ type PatternFlowIpv4FragmentOffset struct { func (x *PatternFlowIpv4FragmentOffset) Reset() { *x = PatternFlowIpv4FragmentOffset{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[393] + mi := &file_otg_proto_msgTypes[399] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -52021,7 +53579,7 @@ func (x *PatternFlowIpv4FragmentOffset) String() string { func (*PatternFlowIpv4FragmentOffset) ProtoMessage() {} func (x *PatternFlowIpv4FragmentOffset) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[393] + mi := &file_otg_proto_msgTypes[399] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -52034,7 +53592,7 @@ func (x *PatternFlowIpv4FragmentOffset) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4FragmentOffset.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4FragmentOffset) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{393} + return file_otg_proto_rawDescGZIP(), []int{399} } func (x *PatternFlowIpv4FragmentOffset) GetChoice() PatternFlowIpv4FragmentOffset_Choice_Enum { @@ -52099,7 +53657,7 @@ type PatternFlowIpv4TimeToLiveCounter struct { func (x *PatternFlowIpv4TimeToLiveCounter) Reset() { *x = PatternFlowIpv4TimeToLiveCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[394] + mi := &file_otg_proto_msgTypes[400] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -52112,7 +53670,7 @@ func (x *PatternFlowIpv4TimeToLiveCounter) String() string { func (*PatternFlowIpv4TimeToLiveCounter) ProtoMessage() {} func (x *PatternFlowIpv4TimeToLiveCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[394] + mi := &file_otg_proto_msgTypes[400] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -52125,7 +53683,7 @@ func (x *PatternFlowIpv4TimeToLiveCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4TimeToLiveCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4TimeToLiveCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{394} + return file_otg_proto_rawDescGZIP(), []int{400} } func (x *PatternFlowIpv4TimeToLiveCounter) GetStart() uint32 { @@ -52173,7 +53731,7 @@ type PatternFlowIpv4TimeToLiveMetricTag struct { func (x *PatternFlowIpv4TimeToLiveMetricTag) Reset() { *x = PatternFlowIpv4TimeToLiveMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[395] + mi := &file_otg_proto_msgTypes[401] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -52186,7 +53744,7 @@ func (x *PatternFlowIpv4TimeToLiveMetricTag) String() string { func (*PatternFlowIpv4TimeToLiveMetricTag) ProtoMessage() {} func (x *PatternFlowIpv4TimeToLiveMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[395] + mi := &file_otg_proto_msgTypes[401] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -52199,7 +53757,7 @@ func (x *PatternFlowIpv4TimeToLiveMetricTag) ProtoReflect() protoreflect.Message // Deprecated: Use PatternFlowIpv4TimeToLiveMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4TimeToLiveMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{395} + return file_otg_proto_rawDescGZIP(), []int{401} } func (x *PatternFlowIpv4TimeToLiveMetricTag) GetName() string { @@ -52251,7 +53809,7 @@ type PatternFlowIpv4TimeToLive struct { func (x *PatternFlowIpv4TimeToLive) Reset() { *x = PatternFlowIpv4TimeToLive{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[396] + mi := &file_otg_proto_msgTypes[402] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -52264,7 +53822,7 @@ func (x *PatternFlowIpv4TimeToLive) String() string { func (*PatternFlowIpv4TimeToLive) ProtoMessage() {} func (x *PatternFlowIpv4TimeToLive) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[396] + mi := &file_otg_proto_msgTypes[402] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -52277,7 +53835,7 @@ func (x *PatternFlowIpv4TimeToLive) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4TimeToLive.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4TimeToLive) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{396} + return file_otg_proto_rawDescGZIP(), []int{402} } func (x *PatternFlowIpv4TimeToLive) GetChoice() PatternFlowIpv4TimeToLive_Choice_Enum { @@ -52342,7 +53900,7 @@ type PatternFlowIpv4ProtocolCounter struct { func (x *PatternFlowIpv4ProtocolCounter) Reset() { *x = PatternFlowIpv4ProtocolCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[397] + mi := &file_otg_proto_msgTypes[403] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -52355,7 +53913,7 @@ func (x *PatternFlowIpv4ProtocolCounter) String() string { func (*PatternFlowIpv4ProtocolCounter) ProtoMessage() {} func (x *PatternFlowIpv4ProtocolCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[397] + mi := &file_otg_proto_msgTypes[403] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -52368,7 +53926,7 @@ func (x *PatternFlowIpv4ProtocolCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4ProtocolCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4ProtocolCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{397} + return file_otg_proto_rawDescGZIP(), []int{403} } func (x *PatternFlowIpv4ProtocolCounter) GetStart() uint32 { @@ -52416,7 +53974,7 @@ type PatternFlowIpv4ProtocolMetricTag struct { func (x *PatternFlowIpv4ProtocolMetricTag) Reset() { *x = PatternFlowIpv4ProtocolMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[398] + mi := &file_otg_proto_msgTypes[404] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -52429,7 +53987,7 @@ func (x *PatternFlowIpv4ProtocolMetricTag) String() string { func (*PatternFlowIpv4ProtocolMetricTag) ProtoMessage() {} func (x *PatternFlowIpv4ProtocolMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[398] + mi := &file_otg_proto_msgTypes[404] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -52442,7 +54000,7 @@ func (x *PatternFlowIpv4ProtocolMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4ProtocolMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4ProtocolMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{398} + return file_otg_proto_rawDescGZIP(), []int{404} } func (x *PatternFlowIpv4ProtocolMetricTag) GetName() string { @@ -52499,7 +54057,7 @@ type PatternFlowIpv4Protocol struct { func (x *PatternFlowIpv4Protocol) Reset() { *x = PatternFlowIpv4Protocol{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[399] + mi := &file_otg_proto_msgTypes[405] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -52512,7 +54070,7 @@ func (x *PatternFlowIpv4Protocol) String() string { func (*PatternFlowIpv4Protocol) ProtoMessage() {} func (x *PatternFlowIpv4Protocol) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[399] + mi := &file_otg_proto_msgTypes[405] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -52525,7 +54083,7 @@ func (x *PatternFlowIpv4Protocol) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4Protocol.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4Protocol) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{399} + return file_otg_proto_rawDescGZIP(), []int{405} } func (x *PatternFlowIpv4Protocol) GetChoice() PatternFlowIpv4Protocol_Choice_Enum { @@ -52596,7 +54154,7 @@ type PatternFlowIpv4HeaderChecksum struct { func (x *PatternFlowIpv4HeaderChecksum) Reset() { *x = PatternFlowIpv4HeaderChecksum{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[400] + mi := &file_otg_proto_msgTypes[406] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -52609,7 +54167,7 @@ func (x *PatternFlowIpv4HeaderChecksum) String() string { func (*PatternFlowIpv4HeaderChecksum) ProtoMessage() {} func (x *PatternFlowIpv4HeaderChecksum) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[400] + mi := &file_otg_proto_msgTypes[406] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -52622,7 +54180,7 @@ func (x *PatternFlowIpv4HeaderChecksum) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4HeaderChecksum.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4HeaderChecksum) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{400} + return file_otg_proto_rawDescGZIP(), []int{406} } func (x *PatternFlowIpv4HeaderChecksum) GetChoice() PatternFlowIpv4HeaderChecksum_Choice_Enum { @@ -52666,7 +54224,7 @@ type PatternFlowIpv4SrcCounter struct { func (x *PatternFlowIpv4SrcCounter) Reset() { *x = PatternFlowIpv4SrcCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[401] + mi := &file_otg_proto_msgTypes[407] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -52679,7 +54237,7 @@ func (x *PatternFlowIpv4SrcCounter) String() string { func (*PatternFlowIpv4SrcCounter) ProtoMessage() {} func (x *PatternFlowIpv4SrcCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[401] + mi := &file_otg_proto_msgTypes[407] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -52692,7 +54250,7 @@ func (x *PatternFlowIpv4SrcCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4SrcCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4SrcCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{401} + return file_otg_proto_rawDescGZIP(), []int{407} } func (x *PatternFlowIpv4SrcCounter) GetStart() string { @@ -52740,7 +54298,7 @@ type PatternFlowIpv4SrcMetricTag struct { func (x *PatternFlowIpv4SrcMetricTag) Reset() { *x = PatternFlowIpv4SrcMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[402] + mi := &file_otg_proto_msgTypes[408] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -52753,7 +54311,7 @@ func (x *PatternFlowIpv4SrcMetricTag) String() string { func (*PatternFlowIpv4SrcMetricTag) ProtoMessage() {} func (x *PatternFlowIpv4SrcMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[402] + mi := &file_otg_proto_msgTypes[408] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -52766,7 +54324,7 @@ func (x *PatternFlowIpv4SrcMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4SrcMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4SrcMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{402} + return file_otg_proto_rawDescGZIP(), []int{408} } func (x *PatternFlowIpv4SrcMetricTag) GetName() string { @@ -52818,7 +54376,7 @@ type PatternFlowIpv4Src struct { func (x *PatternFlowIpv4Src) Reset() { *x = PatternFlowIpv4Src{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[403] + mi := &file_otg_proto_msgTypes[409] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -52831,7 +54389,7 @@ func (x *PatternFlowIpv4Src) String() string { func (*PatternFlowIpv4Src) ProtoMessage() {} func (x *PatternFlowIpv4Src) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[403] + mi := &file_otg_proto_msgTypes[409] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -52844,7 +54402,7 @@ func (x *PatternFlowIpv4Src) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4Src.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4Src) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{403} + return file_otg_proto_rawDescGZIP(), []int{409} } func (x *PatternFlowIpv4Src) GetChoice() PatternFlowIpv4Src_Choice_Enum { @@ -52909,7 +54467,7 @@ type PatternFlowIpv4DstCounter struct { func (x *PatternFlowIpv4DstCounter) Reset() { *x = PatternFlowIpv4DstCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[404] + mi := &file_otg_proto_msgTypes[410] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -52922,7 +54480,7 @@ func (x *PatternFlowIpv4DstCounter) String() string { func (*PatternFlowIpv4DstCounter) ProtoMessage() {} func (x *PatternFlowIpv4DstCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[404] + mi := &file_otg_proto_msgTypes[410] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -52935,7 +54493,7 @@ func (x *PatternFlowIpv4DstCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4DstCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4DstCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{404} + return file_otg_proto_rawDescGZIP(), []int{410} } func (x *PatternFlowIpv4DstCounter) GetStart() string { @@ -52983,7 +54541,7 @@ type PatternFlowIpv4DstMetricTag struct { func (x *PatternFlowIpv4DstMetricTag) Reset() { *x = PatternFlowIpv4DstMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[405] + mi := &file_otg_proto_msgTypes[411] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -52996,7 +54554,7 @@ func (x *PatternFlowIpv4DstMetricTag) String() string { func (*PatternFlowIpv4DstMetricTag) ProtoMessage() {} func (x *PatternFlowIpv4DstMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[405] + mi := &file_otg_proto_msgTypes[411] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -53009,7 +54567,7 @@ func (x *PatternFlowIpv4DstMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4DstMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4DstMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{405} + return file_otg_proto_rawDescGZIP(), []int{411} } func (x *PatternFlowIpv4DstMetricTag) GetName() string { @@ -53061,7 +54619,7 @@ type PatternFlowIpv4Dst struct { func (x *PatternFlowIpv4Dst) Reset() { *x = PatternFlowIpv4Dst{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[406] + mi := &file_otg_proto_msgTypes[412] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -53074,7 +54632,7 @@ func (x *PatternFlowIpv4Dst) String() string { func (*PatternFlowIpv4Dst) ProtoMessage() {} func (x *PatternFlowIpv4Dst) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[406] + mi := &file_otg_proto_msgTypes[412] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -53087,7 +54645,7 @@ func (x *PatternFlowIpv4Dst) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4Dst.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4Dst) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{406} + return file_otg_proto_rawDescGZIP(), []int{412} } func (x *PatternFlowIpv4Dst) GetChoice() PatternFlowIpv4Dst_Choice_Enum { @@ -53152,7 +54710,7 @@ type PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter struct { func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) Reset() { *x = PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[407] + mi := &file_otg_proto_msgTypes[413] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -53165,7 +54723,7 @@ func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) String() string { func (*PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) ProtoMessage() {} func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[407] + mi := &file_otg_proto_msgTypes[413] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -53178,7 +54736,7 @@ func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) ProtoReflect() proto // Deprecated: Use PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{407} + return file_otg_proto_rawDescGZIP(), []int{413} } func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) GetStart() uint32 { @@ -53226,7 +54784,7 @@ type PatternFlowIpv4OptionsCustomTypeCopiedFlag struct { func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlag) Reset() { *x = PatternFlowIpv4OptionsCustomTypeCopiedFlag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[408] + mi := &file_otg_proto_msgTypes[414] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -53239,7 +54797,7 @@ func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlag) String() string { func (*PatternFlowIpv4OptionsCustomTypeCopiedFlag) ProtoMessage() {} func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[408] + mi := &file_otg_proto_msgTypes[414] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -53252,7 +54810,7 @@ func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlag) ProtoReflect() protoreflect // Deprecated: Use PatternFlowIpv4OptionsCustomTypeCopiedFlag.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4OptionsCustomTypeCopiedFlag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{408} + return file_otg_proto_rawDescGZIP(), []int{414} } func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlag) GetChoice() PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice_Enum { @@ -53310,7 +54868,7 @@ type PatternFlowIpv4OptionsCustomTypeOptionClassCounter struct { func (x *PatternFlowIpv4OptionsCustomTypeOptionClassCounter) Reset() { *x = PatternFlowIpv4OptionsCustomTypeOptionClassCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[409] + mi := &file_otg_proto_msgTypes[415] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -53323,7 +54881,7 @@ func (x *PatternFlowIpv4OptionsCustomTypeOptionClassCounter) String() string { func (*PatternFlowIpv4OptionsCustomTypeOptionClassCounter) ProtoMessage() {} func (x *PatternFlowIpv4OptionsCustomTypeOptionClassCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[409] + mi := &file_otg_proto_msgTypes[415] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -53336,7 +54894,7 @@ func (x *PatternFlowIpv4OptionsCustomTypeOptionClassCounter) ProtoReflect() prot // Deprecated: Use PatternFlowIpv4OptionsCustomTypeOptionClassCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4OptionsCustomTypeOptionClassCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{409} + return file_otg_proto_rawDescGZIP(), []int{415} } func (x *PatternFlowIpv4OptionsCustomTypeOptionClassCounter) GetStart() uint32 { @@ -53384,7 +54942,7 @@ type PatternFlowIpv4OptionsCustomTypeOptionClass struct { func (x *PatternFlowIpv4OptionsCustomTypeOptionClass) Reset() { *x = PatternFlowIpv4OptionsCustomTypeOptionClass{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[410] + mi := &file_otg_proto_msgTypes[416] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -53397,7 +54955,7 @@ func (x *PatternFlowIpv4OptionsCustomTypeOptionClass) String() string { func (*PatternFlowIpv4OptionsCustomTypeOptionClass) ProtoMessage() {} func (x *PatternFlowIpv4OptionsCustomTypeOptionClass) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[410] + mi := &file_otg_proto_msgTypes[416] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -53410,7 +54968,7 @@ func (x *PatternFlowIpv4OptionsCustomTypeOptionClass) ProtoReflect() protoreflec // Deprecated: Use PatternFlowIpv4OptionsCustomTypeOptionClass.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4OptionsCustomTypeOptionClass) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{410} + return file_otg_proto_rawDescGZIP(), []int{416} } func (x *PatternFlowIpv4OptionsCustomTypeOptionClass) GetChoice() PatternFlowIpv4OptionsCustomTypeOptionClass_Choice_Enum { @@ -53468,7 +55026,7 @@ type PatternFlowIpv4OptionsCustomTypeOptionNumberCounter struct { func (x *PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) Reset() { *x = PatternFlowIpv4OptionsCustomTypeOptionNumberCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[411] + mi := &file_otg_proto_msgTypes[417] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -53481,7 +55039,7 @@ func (x *PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) String() string { func (*PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) ProtoMessage() {} func (x *PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[411] + mi := &file_otg_proto_msgTypes[417] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -53494,7 +55052,7 @@ func (x *PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) ProtoReflect() pro // Deprecated: Use PatternFlowIpv4OptionsCustomTypeOptionNumberCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{411} + return file_otg_proto_rawDescGZIP(), []int{417} } func (x *PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) GetStart() uint32 { @@ -53542,7 +55100,7 @@ type PatternFlowIpv4OptionsCustomTypeOptionNumber struct { func (x *PatternFlowIpv4OptionsCustomTypeOptionNumber) Reset() { *x = PatternFlowIpv4OptionsCustomTypeOptionNumber{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[412] + mi := &file_otg_proto_msgTypes[418] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -53555,7 +55113,7 @@ func (x *PatternFlowIpv4OptionsCustomTypeOptionNumber) String() string { func (*PatternFlowIpv4OptionsCustomTypeOptionNumber) ProtoMessage() {} func (x *PatternFlowIpv4OptionsCustomTypeOptionNumber) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[412] + mi := &file_otg_proto_msgTypes[418] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -53568,7 +55126,7 @@ func (x *PatternFlowIpv4OptionsCustomTypeOptionNumber) ProtoReflect() protorefle // Deprecated: Use PatternFlowIpv4OptionsCustomTypeOptionNumber.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4OptionsCustomTypeOptionNumber) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{412} + return file_otg_proto_rawDescGZIP(), []int{418} } func (x *PatternFlowIpv4OptionsCustomTypeOptionNumber) GetChoice() PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice_Enum { @@ -53626,7 +55184,7 @@ type PatternFlowIpv4PriorityRawCounter struct { func (x *PatternFlowIpv4PriorityRawCounter) Reset() { *x = PatternFlowIpv4PriorityRawCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[413] + mi := &file_otg_proto_msgTypes[419] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -53639,7 +55197,7 @@ func (x *PatternFlowIpv4PriorityRawCounter) String() string { func (*PatternFlowIpv4PriorityRawCounter) ProtoMessage() {} func (x *PatternFlowIpv4PriorityRawCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[413] + mi := &file_otg_proto_msgTypes[419] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -53652,7 +55210,7 @@ func (x *PatternFlowIpv4PriorityRawCounter) ProtoReflect() protoreflect.Message // Deprecated: Use PatternFlowIpv4PriorityRawCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4PriorityRawCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{413} + return file_otg_proto_rawDescGZIP(), []int{419} } func (x *PatternFlowIpv4PriorityRawCounter) GetStart() uint32 { @@ -53700,7 +55258,7 @@ type PatternFlowIpv4PriorityRawMetricTag struct { func (x *PatternFlowIpv4PriorityRawMetricTag) Reset() { *x = PatternFlowIpv4PriorityRawMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[414] + mi := &file_otg_proto_msgTypes[420] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -53713,7 +55271,7 @@ func (x *PatternFlowIpv4PriorityRawMetricTag) String() string { func (*PatternFlowIpv4PriorityRawMetricTag) ProtoMessage() {} func (x *PatternFlowIpv4PriorityRawMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[414] + mi := &file_otg_proto_msgTypes[420] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -53726,7 +55284,7 @@ func (x *PatternFlowIpv4PriorityRawMetricTag) ProtoReflect() protoreflect.Messag // Deprecated: Use PatternFlowIpv4PriorityRawMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4PriorityRawMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{414} + return file_otg_proto_rawDescGZIP(), []int{420} } func (x *PatternFlowIpv4PriorityRawMetricTag) GetName() string { @@ -53778,7 +55336,7 @@ type PatternFlowIpv4PriorityRaw struct { func (x *PatternFlowIpv4PriorityRaw) Reset() { *x = PatternFlowIpv4PriorityRaw{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[415] + mi := &file_otg_proto_msgTypes[421] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -53791,7 +55349,7 @@ func (x *PatternFlowIpv4PriorityRaw) String() string { func (*PatternFlowIpv4PriorityRaw) ProtoMessage() {} func (x *PatternFlowIpv4PriorityRaw) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[415] + mi := &file_otg_proto_msgTypes[421] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -53804,7 +55362,7 @@ func (x *PatternFlowIpv4PriorityRaw) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4PriorityRaw.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4PriorityRaw) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{415} + return file_otg_proto_rawDescGZIP(), []int{421} } func (x *PatternFlowIpv4PriorityRaw) GetChoice() PatternFlowIpv4PriorityRaw_Choice_Enum { @@ -53869,7 +55427,7 @@ type PatternFlowIpv4DscpPhbCounter struct { func (x *PatternFlowIpv4DscpPhbCounter) Reset() { *x = PatternFlowIpv4DscpPhbCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[416] + mi := &file_otg_proto_msgTypes[422] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -53882,7 +55440,7 @@ func (x *PatternFlowIpv4DscpPhbCounter) String() string { func (*PatternFlowIpv4DscpPhbCounter) ProtoMessage() {} func (x *PatternFlowIpv4DscpPhbCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[416] + mi := &file_otg_proto_msgTypes[422] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -53895,7 +55453,7 @@ func (x *PatternFlowIpv4DscpPhbCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4DscpPhbCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4DscpPhbCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{416} + return file_otg_proto_rawDescGZIP(), []int{422} } func (x *PatternFlowIpv4DscpPhbCounter) GetStart() uint32 { @@ -53943,7 +55501,7 @@ type PatternFlowIpv4DscpPhbMetricTag struct { func (x *PatternFlowIpv4DscpPhbMetricTag) Reset() { *x = PatternFlowIpv4DscpPhbMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[417] + mi := &file_otg_proto_msgTypes[423] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -53956,7 +55514,7 @@ func (x *PatternFlowIpv4DscpPhbMetricTag) String() string { func (*PatternFlowIpv4DscpPhbMetricTag) ProtoMessage() {} func (x *PatternFlowIpv4DscpPhbMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[417] + mi := &file_otg_proto_msgTypes[423] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -53969,7 +55527,7 @@ func (x *PatternFlowIpv4DscpPhbMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4DscpPhbMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4DscpPhbMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{417} + return file_otg_proto_rawDescGZIP(), []int{423} } func (x *PatternFlowIpv4DscpPhbMetricTag) GetName() string { @@ -54021,7 +55579,7 @@ type PatternFlowIpv4DscpPhb struct { func (x *PatternFlowIpv4DscpPhb) Reset() { *x = PatternFlowIpv4DscpPhb{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[418] + mi := &file_otg_proto_msgTypes[424] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -54034,7 +55592,7 @@ func (x *PatternFlowIpv4DscpPhb) String() string { func (*PatternFlowIpv4DscpPhb) ProtoMessage() {} func (x *PatternFlowIpv4DscpPhb) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[418] + mi := &file_otg_proto_msgTypes[424] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -54047,7 +55605,7 @@ func (x *PatternFlowIpv4DscpPhb) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4DscpPhb.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4DscpPhb) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{418} + return file_otg_proto_rawDescGZIP(), []int{424} } func (x *PatternFlowIpv4DscpPhb) GetChoice() PatternFlowIpv4DscpPhb_Choice_Enum { @@ -54112,7 +55670,7 @@ type PatternFlowIpv4DscpEcnCounter struct { func (x *PatternFlowIpv4DscpEcnCounter) Reset() { *x = PatternFlowIpv4DscpEcnCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[419] + mi := &file_otg_proto_msgTypes[425] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -54125,7 +55683,7 @@ func (x *PatternFlowIpv4DscpEcnCounter) String() string { func (*PatternFlowIpv4DscpEcnCounter) ProtoMessage() {} func (x *PatternFlowIpv4DscpEcnCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[419] + mi := &file_otg_proto_msgTypes[425] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -54138,7 +55696,7 @@ func (x *PatternFlowIpv4DscpEcnCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4DscpEcnCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4DscpEcnCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{419} + return file_otg_proto_rawDescGZIP(), []int{425} } func (x *PatternFlowIpv4DscpEcnCounter) GetStart() uint32 { @@ -54186,7 +55744,7 @@ type PatternFlowIpv4DscpEcnMetricTag struct { func (x *PatternFlowIpv4DscpEcnMetricTag) Reset() { *x = PatternFlowIpv4DscpEcnMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[420] + mi := &file_otg_proto_msgTypes[426] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -54199,7 +55757,7 @@ func (x *PatternFlowIpv4DscpEcnMetricTag) String() string { func (*PatternFlowIpv4DscpEcnMetricTag) ProtoMessage() {} func (x *PatternFlowIpv4DscpEcnMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[420] + mi := &file_otg_proto_msgTypes[426] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -54212,7 +55770,7 @@ func (x *PatternFlowIpv4DscpEcnMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4DscpEcnMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4DscpEcnMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{420} + return file_otg_proto_rawDescGZIP(), []int{426} } func (x *PatternFlowIpv4DscpEcnMetricTag) GetName() string { @@ -54264,7 +55822,7 @@ type PatternFlowIpv4DscpEcn struct { func (x *PatternFlowIpv4DscpEcn) Reset() { *x = PatternFlowIpv4DscpEcn{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[421] + mi := &file_otg_proto_msgTypes[427] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -54277,7 +55835,7 @@ func (x *PatternFlowIpv4DscpEcn) String() string { func (*PatternFlowIpv4DscpEcn) ProtoMessage() {} func (x *PatternFlowIpv4DscpEcn) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[421] + mi := &file_otg_proto_msgTypes[427] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -54290,7 +55848,7 @@ func (x *PatternFlowIpv4DscpEcn) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4DscpEcn.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4DscpEcn) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{421} + return file_otg_proto_rawDescGZIP(), []int{427} } func (x *PatternFlowIpv4DscpEcn) GetChoice() PatternFlowIpv4DscpEcn_Choice_Enum { @@ -54355,7 +55913,7 @@ type PatternFlowIpv4TosPrecedenceCounter struct { func (x *PatternFlowIpv4TosPrecedenceCounter) Reset() { *x = PatternFlowIpv4TosPrecedenceCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[422] + mi := &file_otg_proto_msgTypes[428] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -54368,7 +55926,7 @@ func (x *PatternFlowIpv4TosPrecedenceCounter) String() string { func (*PatternFlowIpv4TosPrecedenceCounter) ProtoMessage() {} func (x *PatternFlowIpv4TosPrecedenceCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[422] + mi := &file_otg_proto_msgTypes[428] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -54381,7 +55939,7 @@ func (x *PatternFlowIpv4TosPrecedenceCounter) ProtoReflect() protoreflect.Messag // Deprecated: Use PatternFlowIpv4TosPrecedenceCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4TosPrecedenceCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{422} + return file_otg_proto_rawDescGZIP(), []int{428} } func (x *PatternFlowIpv4TosPrecedenceCounter) GetStart() uint32 { @@ -54429,7 +55987,7 @@ type PatternFlowIpv4TosPrecedenceMetricTag struct { func (x *PatternFlowIpv4TosPrecedenceMetricTag) Reset() { *x = PatternFlowIpv4TosPrecedenceMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[423] + mi := &file_otg_proto_msgTypes[429] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -54442,7 +56000,7 @@ func (x *PatternFlowIpv4TosPrecedenceMetricTag) String() string { func (*PatternFlowIpv4TosPrecedenceMetricTag) ProtoMessage() {} func (x *PatternFlowIpv4TosPrecedenceMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[423] + mi := &file_otg_proto_msgTypes[429] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -54455,7 +56013,7 @@ func (x *PatternFlowIpv4TosPrecedenceMetricTag) ProtoReflect() protoreflect.Mess // Deprecated: Use PatternFlowIpv4TosPrecedenceMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4TosPrecedenceMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{423} + return file_otg_proto_rawDescGZIP(), []int{429} } func (x *PatternFlowIpv4TosPrecedenceMetricTag) GetName() string { @@ -54507,7 +56065,7 @@ type PatternFlowIpv4TosPrecedence struct { func (x *PatternFlowIpv4TosPrecedence) Reset() { *x = PatternFlowIpv4TosPrecedence{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[424] + mi := &file_otg_proto_msgTypes[430] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -54520,7 +56078,7 @@ func (x *PatternFlowIpv4TosPrecedence) String() string { func (*PatternFlowIpv4TosPrecedence) ProtoMessage() {} func (x *PatternFlowIpv4TosPrecedence) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[424] + mi := &file_otg_proto_msgTypes[430] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -54533,7 +56091,7 @@ func (x *PatternFlowIpv4TosPrecedence) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4TosPrecedence.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4TosPrecedence) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{424} + return file_otg_proto_rawDescGZIP(), []int{430} } func (x *PatternFlowIpv4TosPrecedence) GetChoice() PatternFlowIpv4TosPrecedence_Choice_Enum { @@ -54598,7 +56156,7 @@ type PatternFlowIpv4TosDelayCounter struct { func (x *PatternFlowIpv4TosDelayCounter) Reset() { *x = PatternFlowIpv4TosDelayCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[425] + mi := &file_otg_proto_msgTypes[431] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -54611,7 +56169,7 @@ func (x *PatternFlowIpv4TosDelayCounter) String() string { func (*PatternFlowIpv4TosDelayCounter) ProtoMessage() {} func (x *PatternFlowIpv4TosDelayCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[425] + mi := &file_otg_proto_msgTypes[431] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -54624,7 +56182,7 @@ func (x *PatternFlowIpv4TosDelayCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4TosDelayCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4TosDelayCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{425} + return file_otg_proto_rawDescGZIP(), []int{431} } func (x *PatternFlowIpv4TosDelayCounter) GetStart() uint32 { @@ -54672,7 +56230,7 @@ type PatternFlowIpv4TosDelayMetricTag struct { func (x *PatternFlowIpv4TosDelayMetricTag) Reset() { *x = PatternFlowIpv4TosDelayMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[426] + mi := &file_otg_proto_msgTypes[432] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -54685,7 +56243,7 @@ func (x *PatternFlowIpv4TosDelayMetricTag) String() string { func (*PatternFlowIpv4TosDelayMetricTag) ProtoMessage() {} func (x *PatternFlowIpv4TosDelayMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[426] + mi := &file_otg_proto_msgTypes[432] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -54698,7 +56256,7 @@ func (x *PatternFlowIpv4TosDelayMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4TosDelayMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4TosDelayMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{426} + return file_otg_proto_rawDescGZIP(), []int{432} } func (x *PatternFlowIpv4TosDelayMetricTag) GetName() string { @@ -54750,7 +56308,7 @@ type PatternFlowIpv4TosDelay struct { func (x *PatternFlowIpv4TosDelay) Reset() { *x = PatternFlowIpv4TosDelay{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[427] + mi := &file_otg_proto_msgTypes[433] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -54763,7 +56321,7 @@ func (x *PatternFlowIpv4TosDelay) String() string { func (*PatternFlowIpv4TosDelay) ProtoMessage() {} func (x *PatternFlowIpv4TosDelay) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[427] + mi := &file_otg_proto_msgTypes[433] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -54776,7 +56334,7 @@ func (x *PatternFlowIpv4TosDelay) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4TosDelay.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4TosDelay) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{427} + return file_otg_proto_rawDescGZIP(), []int{433} } func (x *PatternFlowIpv4TosDelay) GetChoice() PatternFlowIpv4TosDelay_Choice_Enum { @@ -54841,7 +56399,7 @@ type PatternFlowIpv4TosThroughputCounter struct { func (x *PatternFlowIpv4TosThroughputCounter) Reset() { *x = PatternFlowIpv4TosThroughputCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[428] + mi := &file_otg_proto_msgTypes[434] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -54854,7 +56412,7 @@ func (x *PatternFlowIpv4TosThroughputCounter) String() string { func (*PatternFlowIpv4TosThroughputCounter) ProtoMessage() {} func (x *PatternFlowIpv4TosThroughputCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[428] + mi := &file_otg_proto_msgTypes[434] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -54867,7 +56425,7 @@ func (x *PatternFlowIpv4TosThroughputCounter) ProtoReflect() protoreflect.Messag // Deprecated: Use PatternFlowIpv4TosThroughputCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4TosThroughputCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{428} + return file_otg_proto_rawDescGZIP(), []int{434} } func (x *PatternFlowIpv4TosThroughputCounter) GetStart() uint32 { @@ -54915,7 +56473,7 @@ type PatternFlowIpv4TosThroughputMetricTag struct { func (x *PatternFlowIpv4TosThroughputMetricTag) Reset() { *x = PatternFlowIpv4TosThroughputMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[429] + mi := &file_otg_proto_msgTypes[435] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -54928,7 +56486,7 @@ func (x *PatternFlowIpv4TosThroughputMetricTag) String() string { func (*PatternFlowIpv4TosThroughputMetricTag) ProtoMessage() {} func (x *PatternFlowIpv4TosThroughputMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[429] + mi := &file_otg_proto_msgTypes[435] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -54941,7 +56499,7 @@ func (x *PatternFlowIpv4TosThroughputMetricTag) ProtoReflect() protoreflect.Mess // Deprecated: Use PatternFlowIpv4TosThroughputMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4TosThroughputMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{429} + return file_otg_proto_rawDescGZIP(), []int{435} } func (x *PatternFlowIpv4TosThroughputMetricTag) GetName() string { @@ -54993,7 +56551,7 @@ type PatternFlowIpv4TosThroughput struct { func (x *PatternFlowIpv4TosThroughput) Reset() { *x = PatternFlowIpv4TosThroughput{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[430] + mi := &file_otg_proto_msgTypes[436] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -55006,7 +56564,7 @@ func (x *PatternFlowIpv4TosThroughput) String() string { func (*PatternFlowIpv4TosThroughput) ProtoMessage() {} func (x *PatternFlowIpv4TosThroughput) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[430] + mi := &file_otg_proto_msgTypes[436] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -55019,7 +56577,7 @@ func (x *PatternFlowIpv4TosThroughput) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4TosThroughput.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4TosThroughput) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{430} + return file_otg_proto_rawDescGZIP(), []int{436} } func (x *PatternFlowIpv4TosThroughput) GetChoice() PatternFlowIpv4TosThroughput_Choice_Enum { @@ -55084,7 +56642,7 @@ type PatternFlowIpv4TosReliabilityCounter struct { func (x *PatternFlowIpv4TosReliabilityCounter) Reset() { *x = PatternFlowIpv4TosReliabilityCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[431] + mi := &file_otg_proto_msgTypes[437] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -55097,7 +56655,7 @@ func (x *PatternFlowIpv4TosReliabilityCounter) String() string { func (*PatternFlowIpv4TosReliabilityCounter) ProtoMessage() {} func (x *PatternFlowIpv4TosReliabilityCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[431] + mi := &file_otg_proto_msgTypes[437] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -55110,7 +56668,7 @@ func (x *PatternFlowIpv4TosReliabilityCounter) ProtoReflect() protoreflect.Messa // Deprecated: Use PatternFlowIpv4TosReliabilityCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4TosReliabilityCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{431} + return file_otg_proto_rawDescGZIP(), []int{437} } func (x *PatternFlowIpv4TosReliabilityCounter) GetStart() uint32 { @@ -55158,7 +56716,7 @@ type PatternFlowIpv4TosReliabilityMetricTag struct { func (x *PatternFlowIpv4TosReliabilityMetricTag) Reset() { *x = PatternFlowIpv4TosReliabilityMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[432] + mi := &file_otg_proto_msgTypes[438] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -55171,7 +56729,7 @@ func (x *PatternFlowIpv4TosReliabilityMetricTag) String() string { func (*PatternFlowIpv4TosReliabilityMetricTag) ProtoMessage() {} func (x *PatternFlowIpv4TosReliabilityMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[432] + mi := &file_otg_proto_msgTypes[438] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -55184,7 +56742,7 @@ func (x *PatternFlowIpv4TosReliabilityMetricTag) ProtoReflect() protoreflect.Mes // Deprecated: Use PatternFlowIpv4TosReliabilityMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4TosReliabilityMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{432} + return file_otg_proto_rawDescGZIP(), []int{438} } func (x *PatternFlowIpv4TosReliabilityMetricTag) GetName() string { @@ -55236,7 +56794,7 @@ type PatternFlowIpv4TosReliability struct { func (x *PatternFlowIpv4TosReliability) Reset() { *x = PatternFlowIpv4TosReliability{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[433] + mi := &file_otg_proto_msgTypes[439] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -55249,7 +56807,7 @@ func (x *PatternFlowIpv4TosReliability) String() string { func (*PatternFlowIpv4TosReliability) ProtoMessage() {} func (x *PatternFlowIpv4TosReliability) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[433] + mi := &file_otg_proto_msgTypes[439] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -55262,7 +56820,7 @@ func (x *PatternFlowIpv4TosReliability) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4TosReliability.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4TosReliability) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{433} + return file_otg_proto_rawDescGZIP(), []int{439} } func (x *PatternFlowIpv4TosReliability) GetChoice() PatternFlowIpv4TosReliability_Choice_Enum { @@ -55327,7 +56885,7 @@ type PatternFlowIpv4TosMonetaryCounter struct { func (x *PatternFlowIpv4TosMonetaryCounter) Reset() { *x = PatternFlowIpv4TosMonetaryCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[434] + mi := &file_otg_proto_msgTypes[440] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -55340,7 +56898,7 @@ func (x *PatternFlowIpv4TosMonetaryCounter) String() string { func (*PatternFlowIpv4TosMonetaryCounter) ProtoMessage() {} func (x *PatternFlowIpv4TosMonetaryCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[434] + mi := &file_otg_proto_msgTypes[440] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -55353,7 +56911,7 @@ func (x *PatternFlowIpv4TosMonetaryCounter) ProtoReflect() protoreflect.Message // Deprecated: Use PatternFlowIpv4TosMonetaryCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4TosMonetaryCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{434} + return file_otg_proto_rawDescGZIP(), []int{440} } func (x *PatternFlowIpv4TosMonetaryCounter) GetStart() uint32 { @@ -55401,7 +56959,7 @@ type PatternFlowIpv4TosMonetaryMetricTag struct { func (x *PatternFlowIpv4TosMonetaryMetricTag) Reset() { *x = PatternFlowIpv4TosMonetaryMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[435] + mi := &file_otg_proto_msgTypes[441] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -55414,7 +56972,7 @@ func (x *PatternFlowIpv4TosMonetaryMetricTag) String() string { func (*PatternFlowIpv4TosMonetaryMetricTag) ProtoMessage() {} func (x *PatternFlowIpv4TosMonetaryMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[435] + mi := &file_otg_proto_msgTypes[441] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -55427,7 +56985,7 @@ func (x *PatternFlowIpv4TosMonetaryMetricTag) ProtoReflect() protoreflect.Messag // Deprecated: Use PatternFlowIpv4TosMonetaryMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4TosMonetaryMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{435} + return file_otg_proto_rawDescGZIP(), []int{441} } func (x *PatternFlowIpv4TosMonetaryMetricTag) GetName() string { @@ -55479,7 +57037,7 @@ type PatternFlowIpv4TosMonetary struct { func (x *PatternFlowIpv4TosMonetary) Reset() { *x = PatternFlowIpv4TosMonetary{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[436] + mi := &file_otg_proto_msgTypes[442] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -55492,7 +57050,7 @@ func (x *PatternFlowIpv4TosMonetary) String() string { func (*PatternFlowIpv4TosMonetary) ProtoMessage() {} func (x *PatternFlowIpv4TosMonetary) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[436] + mi := &file_otg_proto_msgTypes[442] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -55505,7 +57063,7 @@ func (x *PatternFlowIpv4TosMonetary) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4TosMonetary.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4TosMonetary) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{436} + return file_otg_proto_rawDescGZIP(), []int{442} } func (x *PatternFlowIpv4TosMonetary) GetChoice() PatternFlowIpv4TosMonetary_Choice_Enum { @@ -55570,7 +57128,7 @@ type PatternFlowIpv4TosUnusedCounter struct { func (x *PatternFlowIpv4TosUnusedCounter) Reset() { *x = PatternFlowIpv4TosUnusedCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[437] + mi := &file_otg_proto_msgTypes[443] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -55583,7 +57141,7 @@ func (x *PatternFlowIpv4TosUnusedCounter) String() string { func (*PatternFlowIpv4TosUnusedCounter) ProtoMessage() {} func (x *PatternFlowIpv4TosUnusedCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[437] + mi := &file_otg_proto_msgTypes[443] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -55596,7 +57154,7 @@ func (x *PatternFlowIpv4TosUnusedCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4TosUnusedCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4TosUnusedCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{437} + return file_otg_proto_rawDescGZIP(), []int{443} } func (x *PatternFlowIpv4TosUnusedCounter) GetStart() uint32 { @@ -55644,7 +57202,7 @@ type PatternFlowIpv4TosUnusedMetricTag struct { func (x *PatternFlowIpv4TosUnusedMetricTag) Reset() { *x = PatternFlowIpv4TosUnusedMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[438] + mi := &file_otg_proto_msgTypes[444] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -55657,7 +57215,7 @@ func (x *PatternFlowIpv4TosUnusedMetricTag) String() string { func (*PatternFlowIpv4TosUnusedMetricTag) ProtoMessage() {} func (x *PatternFlowIpv4TosUnusedMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[438] + mi := &file_otg_proto_msgTypes[444] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -55670,7 +57228,7 @@ func (x *PatternFlowIpv4TosUnusedMetricTag) ProtoReflect() protoreflect.Message // Deprecated: Use PatternFlowIpv4TosUnusedMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4TosUnusedMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{438} + return file_otg_proto_rawDescGZIP(), []int{444} } func (x *PatternFlowIpv4TosUnusedMetricTag) GetName() string { @@ -55722,7 +57280,7 @@ type PatternFlowIpv4TosUnused struct { func (x *PatternFlowIpv4TosUnused) Reset() { *x = PatternFlowIpv4TosUnused{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[439] + mi := &file_otg_proto_msgTypes[445] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -55735,7 +57293,7 @@ func (x *PatternFlowIpv4TosUnused) String() string { func (*PatternFlowIpv4TosUnused) ProtoMessage() {} func (x *PatternFlowIpv4TosUnused) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[439] + mi := &file_otg_proto_msgTypes[445] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -55748,7 +57306,7 @@ func (x *PatternFlowIpv4TosUnused) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv4TosUnused.ProtoReflect.Descriptor instead. func (*PatternFlowIpv4TosUnused) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{439} + return file_otg_proto_rawDescGZIP(), []int{445} } func (x *PatternFlowIpv4TosUnused) GetChoice() PatternFlowIpv4TosUnused_Choice_Enum { @@ -55813,7 +57371,7 @@ type PatternFlowIpv6VersionCounter struct { func (x *PatternFlowIpv6VersionCounter) Reset() { *x = PatternFlowIpv6VersionCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[440] + mi := &file_otg_proto_msgTypes[446] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -55826,7 +57384,7 @@ func (x *PatternFlowIpv6VersionCounter) String() string { func (*PatternFlowIpv6VersionCounter) ProtoMessage() {} func (x *PatternFlowIpv6VersionCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[440] + mi := &file_otg_proto_msgTypes[446] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -55839,7 +57397,7 @@ func (x *PatternFlowIpv6VersionCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv6VersionCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIpv6VersionCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{440} + return file_otg_proto_rawDescGZIP(), []int{446} } func (x *PatternFlowIpv6VersionCounter) GetStart() uint32 { @@ -55887,7 +57445,7 @@ type PatternFlowIpv6VersionMetricTag struct { func (x *PatternFlowIpv6VersionMetricTag) Reset() { *x = PatternFlowIpv6VersionMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[441] + mi := &file_otg_proto_msgTypes[447] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -55900,7 +57458,7 @@ func (x *PatternFlowIpv6VersionMetricTag) String() string { func (*PatternFlowIpv6VersionMetricTag) ProtoMessage() {} func (x *PatternFlowIpv6VersionMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[441] + mi := &file_otg_proto_msgTypes[447] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -55913,7 +57471,7 @@ func (x *PatternFlowIpv6VersionMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv6VersionMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIpv6VersionMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{441} + return file_otg_proto_rawDescGZIP(), []int{447} } func (x *PatternFlowIpv6VersionMetricTag) GetName() string { @@ -55965,7 +57523,7 @@ type PatternFlowIpv6Version struct { func (x *PatternFlowIpv6Version) Reset() { *x = PatternFlowIpv6Version{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[442] + mi := &file_otg_proto_msgTypes[448] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -55978,7 +57536,7 @@ func (x *PatternFlowIpv6Version) String() string { func (*PatternFlowIpv6Version) ProtoMessage() {} func (x *PatternFlowIpv6Version) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[442] + mi := &file_otg_proto_msgTypes[448] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -55991,7 +57549,7 @@ func (x *PatternFlowIpv6Version) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv6Version.ProtoReflect.Descriptor instead. func (*PatternFlowIpv6Version) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{442} + return file_otg_proto_rawDescGZIP(), []int{448} } func (x *PatternFlowIpv6Version) GetChoice() PatternFlowIpv6Version_Choice_Enum { @@ -56056,7 +57614,7 @@ type PatternFlowIpv6TrafficClassCounter struct { func (x *PatternFlowIpv6TrafficClassCounter) Reset() { *x = PatternFlowIpv6TrafficClassCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[443] + mi := &file_otg_proto_msgTypes[449] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -56069,7 +57627,7 @@ func (x *PatternFlowIpv6TrafficClassCounter) String() string { func (*PatternFlowIpv6TrafficClassCounter) ProtoMessage() {} func (x *PatternFlowIpv6TrafficClassCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[443] + mi := &file_otg_proto_msgTypes[449] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -56082,7 +57640,7 @@ func (x *PatternFlowIpv6TrafficClassCounter) ProtoReflect() protoreflect.Message // Deprecated: Use PatternFlowIpv6TrafficClassCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIpv6TrafficClassCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{443} + return file_otg_proto_rawDescGZIP(), []int{449} } func (x *PatternFlowIpv6TrafficClassCounter) GetStart() uint32 { @@ -56130,7 +57688,7 @@ type PatternFlowIpv6TrafficClassMetricTag struct { func (x *PatternFlowIpv6TrafficClassMetricTag) Reset() { *x = PatternFlowIpv6TrafficClassMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[444] + mi := &file_otg_proto_msgTypes[450] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -56143,7 +57701,7 @@ func (x *PatternFlowIpv6TrafficClassMetricTag) String() string { func (*PatternFlowIpv6TrafficClassMetricTag) ProtoMessage() {} func (x *PatternFlowIpv6TrafficClassMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[444] + mi := &file_otg_proto_msgTypes[450] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -56156,7 +57714,7 @@ func (x *PatternFlowIpv6TrafficClassMetricTag) ProtoReflect() protoreflect.Messa // Deprecated: Use PatternFlowIpv6TrafficClassMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIpv6TrafficClassMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{444} + return file_otg_proto_rawDescGZIP(), []int{450} } func (x *PatternFlowIpv6TrafficClassMetricTag) GetName() string { @@ -56208,7 +57766,7 @@ type PatternFlowIpv6TrafficClass struct { func (x *PatternFlowIpv6TrafficClass) Reset() { *x = PatternFlowIpv6TrafficClass{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[445] + mi := &file_otg_proto_msgTypes[451] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -56221,7 +57779,7 @@ func (x *PatternFlowIpv6TrafficClass) String() string { func (*PatternFlowIpv6TrafficClass) ProtoMessage() {} func (x *PatternFlowIpv6TrafficClass) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[445] + mi := &file_otg_proto_msgTypes[451] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -56234,7 +57792,7 @@ func (x *PatternFlowIpv6TrafficClass) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv6TrafficClass.ProtoReflect.Descriptor instead. func (*PatternFlowIpv6TrafficClass) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{445} + return file_otg_proto_rawDescGZIP(), []int{451} } func (x *PatternFlowIpv6TrafficClass) GetChoice() PatternFlowIpv6TrafficClass_Choice_Enum { @@ -56299,7 +57857,7 @@ type PatternFlowIpv6FlowLabelCounter struct { func (x *PatternFlowIpv6FlowLabelCounter) Reset() { *x = PatternFlowIpv6FlowLabelCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[446] + mi := &file_otg_proto_msgTypes[452] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -56312,7 +57870,7 @@ func (x *PatternFlowIpv6FlowLabelCounter) String() string { func (*PatternFlowIpv6FlowLabelCounter) ProtoMessage() {} func (x *PatternFlowIpv6FlowLabelCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[446] + mi := &file_otg_proto_msgTypes[452] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -56325,7 +57883,7 @@ func (x *PatternFlowIpv6FlowLabelCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv6FlowLabelCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIpv6FlowLabelCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{446} + return file_otg_proto_rawDescGZIP(), []int{452} } func (x *PatternFlowIpv6FlowLabelCounter) GetStart() uint32 { @@ -56373,7 +57931,7 @@ type PatternFlowIpv6FlowLabelMetricTag struct { func (x *PatternFlowIpv6FlowLabelMetricTag) Reset() { *x = PatternFlowIpv6FlowLabelMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[447] + mi := &file_otg_proto_msgTypes[453] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -56386,7 +57944,7 @@ func (x *PatternFlowIpv6FlowLabelMetricTag) String() string { func (*PatternFlowIpv6FlowLabelMetricTag) ProtoMessage() {} func (x *PatternFlowIpv6FlowLabelMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[447] + mi := &file_otg_proto_msgTypes[453] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -56399,7 +57957,7 @@ func (x *PatternFlowIpv6FlowLabelMetricTag) ProtoReflect() protoreflect.Message // Deprecated: Use PatternFlowIpv6FlowLabelMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIpv6FlowLabelMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{447} + return file_otg_proto_rawDescGZIP(), []int{453} } func (x *PatternFlowIpv6FlowLabelMetricTag) GetName() string { @@ -56451,7 +58009,7 @@ type PatternFlowIpv6FlowLabel struct { func (x *PatternFlowIpv6FlowLabel) Reset() { *x = PatternFlowIpv6FlowLabel{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[448] + mi := &file_otg_proto_msgTypes[454] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -56464,7 +58022,7 @@ func (x *PatternFlowIpv6FlowLabel) String() string { func (*PatternFlowIpv6FlowLabel) ProtoMessage() {} func (x *PatternFlowIpv6FlowLabel) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[448] + mi := &file_otg_proto_msgTypes[454] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -56477,7 +58035,7 @@ func (x *PatternFlowIpv6FlowLabel) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv6FlowLabel.ProtoReflect.Descriptor instead. func (*PatternFlowIpv6FlowLabel) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{448} + return file_otg_proto_rawDescGZIP(), []int{454} } func (x *PatternFlowIpv6FlowLabel) GetChoice() PatternFlowIpv6FlowLabel_Choice_Enum { @@ -56542,7 +58100,7 @@ type PatternFlowIpv6PayloadLengthCounter struct { func (x *PatternFlowIpv6PayloadLengthCounter) Reset() { *x = PatternFlowIpv6PayloadLengthCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[449] + mi := &file_otg_proto_msgTypes[455] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -56555,7 +58113,7 @@ func (x *PatternFlowIpv6PayloadLengthCounter) String() string { func (*PatternFlowIpv6PayloadLengthCounter) ProtoMessage() {} func (x *PatternFlowIpv6PayloadLengthCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[449] + mi := &file_otg_proto_msgTypes[455] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -56568,7 +58126,7 @@ func (x *PatternFlowIpv6PayloadLengthCounter) ProtoReflect() protoreflect.Messag // Deprecated: Use PatternFlowIpv6PayloadLengthCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIpv6PayloadLengthCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{449} + return file_otg_proto_rawDescGZIP(), []int{455} } func (x *PatternFlowIpv6PayloadLengthCounter) GetStart() uint32 { @@ -56616,7 +58174,7 @@ type PatternFlowIpv6PayloadLengthMetricTag struct { func (x *PatternFlowIpv6PayloadLengthMetricTag) Reset() { *x = PatternFlowIpv6PayloadLengthMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[450] + mi := &file_otg_proto_msgTypes[456] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -56629,7 +58187,7 @@ func (x *PatternFlowIpv6PayloadLengthMetricTag) String() string { func (*PatternFlowIpv6PayloadLengthMetricTag) ProtoMessage() {} func (x *PatternFlowIpv6PayloadLengthMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[450] + mi := &file_otg_proto_msgTypes[456] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -56642,7 +58200,7 @@ func (x *PatternFlowIpv6PayloadLengthMetricTag) ProtoReflect() protoreflect.Mess // Deprecated: Use PatternFlowIpv6PayloadLengthMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIpv6PayloadLengthMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{450} + return file_otg_proto_rawDescGZIP(), []int{456} } func (x *PatternFlowIpv6PayloadLengthMetricTag) GetName() string { @@ -56699,7 +58257,7 @@ type PatternFlowIpv6PayloadLength struct { func (x *PatternFlowIpv6PayloadLength) Reset() { *x = PatternFlowIpv6PayloadLength{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[451] + mi := &file_otg_proto_msgTypes[457] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -56712,7 +58270,7 @@ func (x *PatternFlowIpv6PayloadLength) String() string { func (*PatternFlowIpv6PayloadLength) ProtoMessage() {} func (x *PatternFlowIpv6PayloadLength) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[451] + mi := &file_otg_proto_msgTypes[457] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -56725,7 +58283,7 @@ func (x *PatternFlowIpv6PayloadLength) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv6PayloadLength.ProtoReflect.Descriptor instead. func (*PatternFlowIpv6PayloadLength) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{451} + return file_otg_proto_rawDescGZIP(), []int{457} } func (x *PatternFlowIpv6PayloadLength) GetChoice() PatternFlowIpv6PayloadLength_Choice_Enum { @@ -56797,7 +58355,7 @@ type PatternFlowIpv6NextHeaderCounter struct { func (x *PatternFlowIpv6NextHeaderCounter) Reset() { *x = PatternFlowIpv6NextHeaderCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[452] + mi := &file_otg_proto_msgTypes[458] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -56810,7 +58368,7 @@ func (x *PatternFlowIpv6NextHeaderCounter) String() string { func (*PatternFlowIpv6NextHeaderCounter) ProtoMessage() {} func (x *PatternFlowIpv6NextHeaderCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[452] + mi := &file_otg_proto_msgTypes[458] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -56823,7 +58381,7 @@ func (x *PatternFlowIpv6NextHeaderCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv6NextHeaderCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIpv6NextHeaderCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{452} + return file_otg_proto_rawDescGZIP(), []int{458} } func (x *PatternFlowIpv6NextHeaderCounter) GetStart() uint32 { @@ -56871,7 +58429,7 @@ type PatternFlowIpv6NextHeaderMetricTag struct { func (x *PatternFlowIpv6NextHeaderMetricTag) Reset() { *x = PatternFlowIpv6NextHeaderMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[453] + mi := &file_otg_proto_msgTypes[459] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -56884,7 +58442,7 @@ func (x *PatternFlowIpv6NextHeaderMetricTag) String() string { func (*PatternFlowIpv6NextHeaderMetricTag) ProtoMessage() {} func (x *PatternFlowIpv6NextHeaderMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[453] + mi := &file_otg_proto_msgTypes[459] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -56897,7 +58455,7 @@ func (x *PatternFlowIpv6NextHeaderMetricTag) ProtoReflect() protoreflect.Message // Deprecated: Use PatternFlowIpv6NextHeaderMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIpv6NextHeaderMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{453} + return file_otg_proto_rawDescGZIP(), []int{459} } func (x *PatternFlowIpv6NextHeaderMetricTag) GetName() string { @@ -56954,7 +58512,7 @@ type PatternFlowIpv6NextHeader struct { func (x *PatternFlowIpv6NextHeader) Reset() { *x = PatternFlowIpv6NextHeader{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[454] + mi := &file_otg_proto_msgTypes[460] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -56967,7 +58525,7 @@ func (x *PatternFlowIpv6NextHeader) String() string { func (*PatternFlowIpv6NextHeader) ProtoMessage() {} func (x *PatternFlowIpv6NextHeader) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[454] + mi := &file_otg_proto_msgTypes[460] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -56980,7 +58538,7 @@ func (x *PatternFlowIpv6NextHeader) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv6NextHeader.ProtoReflect.Descriptor instead. func (*PatternFlowIpv6NextHeader) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{454} + return file_otg_proto_rawDescGZIP(), []int{460} } func (x *PatternFlowIpv6NextHeader) GetChoice() PatternFlowIpv6NextHeader_Choice_Enum { @@ -57052,7 +58610,7 @@ type PatternFlowIpv6HopLimitCounter struct { func (x *PatternFlowIpv6HopLimitCounter) Reset() { *x = PatternFlowIpv6HopLimitCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[455] + mi := &file_otg_proto_msgTypes[461] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -57065,7 +58623,7 @@ func (x *PatternFlowIpv6HopLimitCounter) String() string { func (*PatternFlowIpv6HopLimitCounter) ProtoMessage() {} func (x *PatternFlowIpv6HopLimitCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[455] + mi := &file_otg_proto_msgTypes[461] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -57078,7 +58636,7 @@ func (x *PatternFlowIpv6HopLimitCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv6HopLimitCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIpv6HopLimitCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{455} + return file_otg_proto_rawDescGZIP(), []int{461} } func (x *PatternFlowIpv6HopLimitCounter) GetStart() uint32 { @@ -57126,7 +58684,7 @@ type PatternFlowIpv6HopLimitMetricTag struct { func (x *PatternFlowIpv6HopLimitMetricTag) Reset() { *x = PatternFlowIpv6HopLimitMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[456] + mi := &file_otg_proto_msgTypes[462] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -57139,7 +58697,7 @@ func (x *PatternFlowIpv6HopLimitMetricTag) String() string { func (*PatternFlowIpv6HopLimitMetricTag) ProtoMessage() {} func (x *PatternFlowIpv6HopLimitMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[456] + mi := &file_otg_proto_msgTypes[462] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -57152,7 +58710,7 @@ func (x *PatternFlowIpv6HopLimitMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv6HopLimitMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIpv6HopLimitMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{456} + return file_otg_proto_rawDescGZIP(), []int{462} } func (x *PatternFlowIpv6HopLimitMetricTag) GetName() string { @@ -57204,7 +58762,7 @@ type PatternFlowIpv6HopLimit struct { func (x *PatternFlowIpv6HopLimit) Reset() { *x = PatternFlowIpv6HopLimit{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[457] + mi := &file_otg_proto_msgTypes[463] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -57217,7 +58775,7 @@ func (x *PatternFlowIpv6HopLimit) String() string { func (*PatternFlowIpv6HopLimit) ProtoMessage() {} func (x *PatternFlowIpv6HopLimit) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[457] + mi := &file_otg_proto_msgTypes[463] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -57230,7 +58788,7 @@ func (x *PatternFlowIpv6HopLimit) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv6HopLimit.ProtoReflect.Descriptor instead. func (*PatternFlowIpv6HopLimit) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{457} + return file_otg_proto_rawDescGZIP(), []int{463} } func (x *PatternFlowIpv6HopLimit) GetChoice() PatternFlowIpv6HopLimit_Choice_Enum { @@ -57295,7 +58853,7 @@ type PatternFlowIpv6SrcCounter struct { func (x *PatternFlowIpv6SrcCounter) Reset() { *x = PatternFlowIpv6SrcCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[458] + mi := &file_otg_proto_msgTypes[464] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -57308,7 +58866,7 @@ func (x *PatternFlowIpv6SrcCounter) String() string { func (*PatternFlowIpv6SrcCounter) ProtoMessage() {} func (x *PatternFlowIpv6SrcCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[458] + mi := &file_otg_proto_msgTypes[464] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -57321,7 +58879,7 @@ func (x *PatternFlowIpv6SrcCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv6SrcCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIpv6SrcCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{458} + return file_otg_proto_rawDescGZIP(), []int{464} } func (x *PatternFlowIpv6SrcCounter) GetStart() string { @@ -57369,7 +58927,7 @@ type PatternFlowIpv6SrcMetricTag struct { func (x *PatternFlowIpv6SrcMetricTag) Reset() { *x = PatternFlowIpv6SrcMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[459] + mi := &file_otg_proto_msgTypes[465] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -57382,7 +58940,7 @@ func (x *PatternFlowIpv6SrcMetricTag) String() string { func (*PatternFlowIpv6SrcMetricTag) ProtoMessage() {} func (x *PatternFlowIpv6SrcMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[459] + mi := &file_otg_proto_msgTypes[465] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -57395,7 +58953,7 @@ func (x *PatternFlowIpv6SrcMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv6SrcMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIpv6SrcMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{459} + return file_otg_proto_rawDescGZIP(), []int{465} } func (x *PatternFlowIpv6SrcMetricTag) GetName() string { @@ -57447,7 +59005,7 @@ type PatternFlowIpv6Src struct { func (x *PatternFlowIpv6Src) Reset() { *x = PatternFlowIpv6Src{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[460] + mi := &file_otg_proto_msgTypes[466] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -57460,7 +59018,7 @@ func (x *PatternFlowIpv6Src) String() string { func (*PatternFlowIpv6Src) ProtoMessage() {} func (x *PatternFlowIpv6Src) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[460] + mi := &file_otg_proto_msgTypes[466] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -57473,7 +59031,7 @@ func (x *PatternFlowIpv6Src) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv6Src.ProtoReflect.Descriptor instead. func (*PatternFlowIpv6Src) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{460} + return file_otg_proto_rawDescGZIP(), []int{466} } func (x *PatternFlowIpv6Src) GetChoice() PatternFlowIpv6Src_Choice_Enum { @@ -57538,7 +59096,7 @@ type PatternFlowIpv6DstCounter struct { func (x *PatternFlowIpv6DstCounter) Reset() { *x = PatternFlowIpv6DstCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[461] + mi := &file_otg_proto_msgTypes[467] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -57551,7 +59109,7 @@ func (x *PatternFlowIpv6DstCounter) String() string { func (*PatternFlowIpv6DstCounter) ProtoMessage() {} func (x *PatternFlowIpv6DstCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[461] + mi := &file_otg_proto_msgTypes[467] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -57564,7 +59122,7 @@ func (x *PatternFlowIpv6DstCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv6DstCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIpv6DstCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{461} + return file_otg_proto_rawDescGZIP(), []int{467} } func (x *PatternFlowIpv6DstCounter) GetStart() string { @@ -57612,7 +59170,7 @@ type PatternFlowIpv6DstMetricTag struct { func (x *PatternFlowIpv6DstMetricTag) Reset() { *x = PatternFlowIpv6DstMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[462] + mi := &file_otg_proto_msgTypes[468] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -57625,7 +59183,7 @@ func (x *PatternFlowIpv6DstMetricTag) String() string { func (*PatternFlowIpv6DstMetricTag) ProtoMessage() {} func (x *PatternFlowIpv6DstMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[462] + mi := &file_otg_proto_msgTypes[468] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -57638,7 +59196,7 @@ func (x *PatternFlowIpv6DstMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv6DstMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIpv6DstMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{462} + return file_otg_proto_rawDescGZIP(), []int{468} } func (x *PatternFlowIpv6DstMetricTag) GetName() string { @@ -57690,7 +59248,7 @@ type PatternFlowIpv6Dst struct { func (x *PatternFlowIpv6Dst) Reset() { *x = PatternFlowIpv6Dst{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[463] + mi := &file_otg_proto_msgTypes[469] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -57703,7 +59261,7 @@ func (x *PatternFlowIpv6Dst) String() string { func (*PatternFlowIpv6Dst) ProtoMessage() {} func (x *PatternFlowIpv6Dst) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[463] + mi := &file_otg_proto_msgTypes[469] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -57716,7 +59274,7 @@ func (x *PatternFlowIpv6Dst) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIpv6Dst.ProtoReflect.Descriptor instead. func (*PatternFlowIpv6Dst) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{463} + return file_otg_proto_rawDescGZIP(), []int{469} } func (x *PatternFlowIpv6Dst) GetChoice() PatternFlowIpv6Dst_Choice_Enum { @@ -57781,7 +59339,7 @@ type PatternFlowPfcPauseDstCounter struct { func (x *PatternFlowPfcPauseDstCounter) Reset() { *x = PatternFlowPfcPauseDstCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[464] + mi := &file_otg_proto_msgTypes[470] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -57794,7 +59352,7 @@ func (x *PatternFlowPfcPauseDstCounter) String() string { func (*PatternFlowPfcPauseDstCounter) ProtoMessage() {} func (x *PatternFlowPfcPauseDstCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[464] + mi := &file_otg_proto_msgTypes[470] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -57807,7 +59365,7 @@ func (x *PatternFlowPfcPauseDstCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowPfcPauseDstCounter.ProtoReflect.Descriptor instead. func (*PatternFlowPfcPauseDstCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{464} + return file_otg_proto_rawDescGZIP(), []int{470} } func (x *PatternFlowPfcPauseDstCounter) GetStart() string { @@ -57855,7 +59413,7 @@ type PatternFlowPfcPauseDstMetricTag struct { func (x *PatternFlowPfcPauseDstMetricTag) Reset() { *x = PatternFlowPfcPauseDstMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[465] + mi := &file_otg_proto_msgTypes[471] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -57868,7 +59426,7 @@ func (x *PatternFlowPfcPauseDstMetricTag) String() string { func (*PatternFlowPfcPauseDstMetricTag) ProtoMessage() {} func (x *PatternFlowPfcPauseDstMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[465] + mi := &file_otg_proto_msgTypes[471] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -57881,7 +59439,7 @@ func (x *PatternFlowPfcPauseDstMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowPfcPauseDstMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowPfcPauseDstMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{465} + return file_otg_proto_rawDescGZIP(), []int{471} } func (x *PatternFlowPfcPauseDstMetricTag) GetName() string { @@ -57933,7 +59491,7 @@ type PatternFlowPfcPauseDst struct { func (x *PatternFlowPfcPauseDst) Reset() { *x = PatternFlowPfcPauseDst{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[466] + mi := &file_otg_proto_msgTypes[472] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -57946,7 +59504,7 @@ func (x *PatternFlowPfcPauseDst) String() string { func (*PatternFlowPfcPauseDst) ProtoMessage() {} func (x *PatternFlowPfcPauseDst) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[466] + mi := &file_otg_proto_msgTypes[472] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -57959,7 +59517,7 @@ func (x *PatternFlowPfcPauseDst) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowPfcPauseDst.ProtoReflect.Descriptor instead. func (*PatternFlowPfcPauseDst) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{466} + return file_otg_proto_rawDescGZIP(), []int{472} } func (x *PatternFlowPfcPauseDst) GetChoice() PatternFlowPfcPauseDst_Choice_Enum { @@ -58024,7 +59582,7 @@ type PatternFlowPfcPauseSrcCounter struct { func (x *PatternFlowPfcPauseSrcCounter) Reset() { *x = PatternFlowPfcPauseSrcCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[467] + mi := &file_otg_proto_msgTypes[473] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -58037,7 +59595,7 @@ func (x *PatternFlowPfcPauseSrcCounter) String() string { func (*PatternFlowPfcPauseSrcCounter) ProtoMessage() {} func (x *PatternFlowPfcPauseSrcCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[467] + mi := &file_otg_proto_msgTypes[473] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -58050,7 +59608,7 @@ func (x *PatternFlowPfcPauseSrcCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowPfcPauseSrcCounter.ProtoReflect.Descriptor instead. func (*PatternFlowPfcPauseSrcCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{467} + return file_otg_proto_rawDescGZIP(), []int{473} } func (x *PatternFlowPfcPauseSrcCounter) GetStart() string { @@ -58098,7 +59656,7 @@ type PatternFlowPfcPauseSrcMetricTag struct { func (x *PatternFlowPfcPauseSrcMetricTag) Reset() { *x = PatternFlowPfcPauseSrcMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[468] + mi := &file_otg_proto_msgTypes[474] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -58111,7 +59669,7 @@ func (x *PatternFlowPfcPauseSrcMetricTag) String() string { func (*PatternFlowPfcPauseSrcMetricTag) ProtoMessage() {} func (x *PatternFlowPfcPauseSrcMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[468] + mi := &file_otg_proto_msgTypes[474] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -58124,7 +59682,7 @@ func (x *PatternFlowPfcPauseSrcMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowPfcPauseSrcMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowPfcPauseSrcMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{468} + return file_otg_proto_rawDescGZIP(), []int{474} } func (x *PatternFlowPfcPauseSrcMetricTag) GetName() string { @@ -58176,7 +59734,7 @@ type PatternFlowPfcPauseSrc struct { func (x *PatternFlowPfcPauseSrc) Reset() { *x = PatternFlowPfcPauseSrc{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[469] + mi := &file_otg_proto_msgTypes[475] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -58189,7 +59747,7 @@ func (x *PatternFlowPfcPauseSrc) String() string { func (*PatternFlowPfcPauseSrc) ProtoMessage() {} func (x *PatternFlowPfcPauseSrc) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[469] + mi := &file_otg_proto_msgTypes[475] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -58202,7 +59760,7 @@ func (x *PatternFlowPfcPauseSrc) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowPfcPauseSrc.ProtoReflect.Descriptor instead. func (*PatternFlowPfcPauseSrc) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{469} + return file_otg_proto_rawDescGZIP(), []int{475} } func (x *PatternFlowPfcPauseSrc) GetChoice() PatternFlowPfcPauseSrc_Choice_Enum { @@ -58267,7 +59825,7 @@ type PatternFlowPfcPauseEtherTypeCounter struct { func (x *PatternFlowPfcPauseEtherTypeCounter) Reset() { *x = PatternFlowPfcPauseEtherTypeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[470] + mi := &file_otg_proto_msgTypes[476] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -58280,7 +59838,7 @@ func (x *PatternFlowPfcPauseEtherTypeCounter) String() string { func (*PatternFlowPfcPauseEtherTypeCounter) ProtoMessage() {} func (x *PatternFlowPfcPauseEtherTypeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[470] + mi := &file_otg_proto_msgTypes[476] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -58293,7 +59851,7 @@ func (x *PatternFlowPfcPauseEtherTypeCounter) ProtoReflect() protoreflect.Messag // Deprecated: Use PatternFlowPfcPauseEtherTypeCounter.ProtoReflect.Descriptor instead. func (*PatternFlowPfcPauseEtherTypeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{470} + return file_otg_proto_rawDescGZIP(), []int{476} } func (x *PatternFlowPfcPauseEtherTypeCounter) GetStart() uint32 { @@ -58341,7 +59899,7 @@ type PatternFlowPfcPauseEtherTypeMetricTag struct { func (x *PatternFlowPfcPauseEtherTypeMetricTag) Reset() { *x = PatternFlowPfcPauseEtherTypeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[471] + mi := &file_otg_proto_msgTypes[477] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -58354,7 +59912,7 @@ func (x *PatternFlowPfcPauseEtherTypeMetricTag) String() string { func (*PatternFlowPfcPauseEtherTypeMetricTag) ProtoMessage() {} func (x *PatternFlowPfcPauseEtherTypeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[471] + mi := &file_otg_proto_msgTypes[477] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -58367,7 +59925,7 @@ func (x *PatternFlowPfcPauseEtherTypeMetricTag) ProtoReflect() protoreflect.Mess // Deprecated: Use PatternFlowPfcPauseEtherTypeMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowPfcPauseEtherTypeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{471} + return file_otg_proto_rawDescGZIP(), []int{477} } func (x *PatternFlowPfcPauseEtherTypeMetricTag) GetName() string { @@ -58419,7 +59977,7 @@ type PatternFlowPfcPauseEtherType struct { func (x *PatternFlowPfcPauseEtherType) Reset() { *x = PatternFlowPfcPauseEtherType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[472] + mi := &file_otg_proto_msgTypes[478] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -58432,7 +59990,7 @@ func (x *PatternFlowPfcPauseEtherType) String() string { func (*PatternFlowPfcPauseEtherType) ProtoMessage() {} func (x *PatternFlowPfcPauseEtherType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[472] + mi := &file_otg_proto_msgTypes[478] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -58445,7 +60003,7 @@ func (x *PatternFlowPfcPauseEtherType) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowPfcPauseEtherType.ProtoReflect.Descriptor instead. func (*PatternFlowPfcPauseEtherType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{472} + return file_otg_proto_rawDescGZIP(), []int{478} } func (x *PatternFlowPfcPauseEtherType) GetChoice() PatternFlowPfcPauseEtherType_Choice_Enum { @@ -58510,7 +60068,7 @@ type PatternFlowPfcPauseControlOpCodeCounter struct { func (x *PatternFlowPfcPauseControlOpCodeCounter) Reset() { *x = PatternFlowPfcPauseControlOpCodeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[473] + mi := &file_otg_proto_msgTypes[479] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -58523,7 +60081,7 @@ func (x *PatternFlowPfcPauseControlOpCodeCounter) String() string { func (*PatternFlowPfcPauseControlOpCodeCounter) ProtoMessage() {} func (x *PatternFlowPfcPauseControlOpCodeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[473] + mi := &file_otg_proto_msgTypes[479] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -58536,7 +60094,7 @@ func (x *PatternFlowPfcPauseControlOpCodeCounter) ProtoReflect() protoreflect.Me // Deprecated: Use PatternFlowPfcPauseControlOpCodeCounter.ProtoReflect.Descriptor instead. func (*PatternFlowPfcPauseControlOpCodeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{473} + return file_otg_proto_rawDescGZIP(), []int{479} } func (x *PatternFlowPfcPauseControlOpCodeCounter) GetStart() uint32 { @@ -58584,7 +60142,7 @@ type PatternFlowPfcPauseControlOpCodeMetricTag struct { func (x *PatternFlowPfcPauseControlOpCodeMetricTag) Reset() { *x = PatternFlowPfcPauseControlOpCodeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[474] + mi := &file_otg_proto_msgTypes[480] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -58597,7 +60155,7 @@ func (x *PatternFlowPfcPauseControlOpCodeMetricTag) String() string { func (*PatternFlowPfcPauseControlOpCodeMetricTag) ProtoMessage() {} func (x *PatternFlowPfcPauseControlOpCodeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[474] + mi := &file_otg_proto_msgTypes[480] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -58610,7 +60168,7 @@ func (x *PatternFlowPfcPauseControlOpCodeMetricTag) ProtoReflect() protoreflect. // Deprecated: Use PatternFlowPfcPauseControlOpCodeMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowPfcPauseControlOpCodeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{474} + return file_otg_proto_rawDescGZIP(), []int{480} } func (x *PatternFlowPfcPauseControlOpCodeMetricTag) GetName() string { @@ -58662,7 +60220,7 @@ type PatternFlowPfcPauseControlOpCode struct { func (x *PatternFlowPfcPauseControlOpCode) Reset() { *x = PatternFlowPfcPauseControlOpCode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[475] + mi := &file_otg_proto_msgTypes[481] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -58675,7 +60233,7 @@ func (x *PatternFlowPfcPauseControlOpCode) String() string { func (*PatternFlowPfcPauseControlOpCode) ProtoMessage() {} func (x *PatternFlowPfcPauseControlOpCode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[475] + mi := &file_otg_proto_msgTypes[481] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -58688,7 +60246,7 @@ func (x *PatternFlowPfcPauseControlOpCode) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowPfcPauseControlOpCode.ProtoReflect.Descriptor instead. func (*PatternFlowPfcPauseControlOpCode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{475} + return file_otg_proto_rawDescGZIP(), []int{481} } func (x *PatternFlowPfcPauseControlOpCode) GetChoice() PatternFlowPfcPauseControlOpCode_Choice_Enum { @@ -58753,7 +60311,7 @@ type PatternFlowPfcPauseClassEnableVectorCounter struct { func (x *PatternFlowPfcPauseClassEnableVectorCounter) Reset() { *x = PatternFlowPfcPauseClassEnableVectorCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[476] + mi := &file_otg_proto_msgTypes[482] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -58766,7 +60324,7 @@ func (x *PatternFlowPfcPauseClassEnableVectorCounter) String() string { func (*PatternFlowPfcPauseClassEnableVectorCounter) ProtoMessage() {} func (x *PatternFlowPfcPauseClassEnableVectorCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[476] + mi := &file_otg_proto_msgTypes[482] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -58779,7 +60337,7 @@ func (x *PatternFlowPfcPauseClassEnableVectorCounter) ProtoReflect() protoreflec // Deprecated: Use PatternFlowPfcPauseClassEnableVectorCounter.ProtoReflect.Descriptor instead. func (*PatternFlowPfcPauseClassEnableVectorCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{476} + return file_otg_proto_rawDescGZIP(), []int{482} } func (x *PatternFlowPfcPauseClassEnableVectorCounter) GetStart() uint32 { @@ -58827,7 +60385,7 @@ type PatternFlowPfcPauseClassEnableVectorMetricTag struct { func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) Reset() { *x = PatternFlowPfcPauseClassEnableVectorMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[477] + mi := &file_otg_proto_msgTypes[483] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -58840,7 +60398,7 @@ func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) String() string { func (*PatternFlowPfcPauseClassEnableVectorMetricTag) ProtoMessage() {} func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[477] + mi := &file_otg_proto_msgTypes[483] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -58853,7 +60411,7 @@ func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) ProtoReflect() protorefl // Deprecated: Use PatternFlowPfcPauseClassEnableVectorMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowPfcPauseClassEnableVectorMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{477} + return file_otg_proto_rawDescGZIP(), []int{483} } func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) GetName() string { @@ -58905,7 +60463,7 @@ type PatternFlowPfcPauseClassEnableVector struct { func (x *PatternFlowPfcPauseClassEnableVector) Reset() { *x = PatternFlowPfcPauseClassEnableVector{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[478] + mi := &file_otg_proto_msgTypes[484] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -58918,7 +60476,7 @@ func (x *PatternFlowPfcPauseClassEnableVector) String() string { func (*PatternFlowPfcPauseClassEnableVector) ProtoMessage() {} func (x *PatternFlowPfcPauseClassEnableVector) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[478] + mi := &file_otg_proto_msgTypes[484] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -58931,7 +60489,7 @@ func (x *PatternFlowPfcPauseClassEnableVector) ProtoReflect() protoreflect.Messa // Deprecated: Use PatternFlowPfcPauseClassEnableVector.ProtoReflect.Descriptor instead. func (*PatternFlowPfcPauseClassEnableVector) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{478} + return file_otg_proto_rawDescGZIP(), []int{484} } func (x *PatternFlowPfcPauseClassEnableVector) GetChoice() PatternFlowPfcPauseClassEnableVector_Choice_Enum { @@ -58996,7 +60554,7 @@ type PatternFlowPfcPausePauseClass0Counter struct { func (x *PatternFlowPfcPausePauseClass0Counter) Reset() { *x = PatternFlowPfcPausePauseClass0Counter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[479] + mi := &file_otg_proto_msgTypes[485] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -59009,7 +60567,7 @@ func (x *PatternFlowPfcPausePauseClass0Counter) String() string { func (*PatternFlowPfcPausePauseClass0Counter) ProtoMessage() {} func (x *PatternFlowPfcPausePauseClass0Counter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[479] + mi := &file_otg_proto_msgTypes[485] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -59022,7 +60580,7 @@ func (x *PatternFlowPfcPausePauseClass0Counter) ProtoReflect() protoreflect.Mess // Deprecated: Use PatternFlowPfcPausePauseClass0Counter.ProtoReflect.Descriptor instead. func (*PatternFlowPfcPausePauseClass0Counter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{479} + return file_otg_proto_rawDescGZIP(), []int{485} } func (x *PatternFlowPfcPausePauseClass0Counter) GetStart() uint32 { @@ -59070,7 +60628,7 @@ type PatternFlowPfcPausePauseClass0MetricTag struct { func (x *PatternFlowPfcPausePauseClass0MetricTag) Reset() { *x = PatternFlowPfcPausePauseClass0MetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[480] + mi := &file_otg_proto_msgTypes[486] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -59083,7 +60641,7 @@ func (x *PatternFlowPfcPausePauseClass0MetricTag) String() string { func (*PatternFlowPfcPausePauseClass0MetricTag) ProtoMessage() {} func (x *PatternFlowPfcPausePauseClass0MetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[480] + mi := &file_otg_proto_msgTypes[486] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -59096,7 +60654,7 @@ func (x *PatternFlowPfcPausePauseClass0MetricTag) ProtoReflect() protoreflect.Me // Deprecated: Use PatternFlowPfcPausePauseClass0MetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowPfcPausePauseClass0MetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{480} + return file_otg_proto_rawDescGZIP(), []int{486} } func (x *PatternFlowPfcPausePauseClass0MetricTag) GetName() string { @@ -59148,7 +60706,7 @@ type PatternFlowPfcPausePauseClass0 struct { func (x *PatternFlowPfcPausePauseClass0) Reset() { *x = PatternFlowPfcPausePauseClass0{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[481] + mi := &file_otg_proto_msgTypes[487] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -59161,7 +60719,7 @@ func (x *PatternFlowPfcPausePauseClass0) String() string { func (*PatternFlowPfcPausePauseClass0) ProtoMessage() {} func (x *PatternFlowPfcPausePauseClass0) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[481] + mi := &file_otg_proto_msgTypes[487] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -59174,7 +60732,7 @@ func (x *PatternFlowPfcPausePauseClass0) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowPfcPausePauseClass0.ProtoReflect.Descriptor instead. func (*PatternFlowPfcPausePauseClass0) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{481} + return file_otg_proto_rawDescGZIP(), []int{487} } func (x *PatternFlowPfcPausePauseClass0) GetChoice() PatternFlowPfcPausePauseClass0_Choice_Enum { @@ -59239,7 +60797,7 @@ type PatternFlowPfcPausePauseClass1Counter struct { func (x *PatternFlowPfcPausePauseClass1Counter) Reset() { *x = PatternFlowPfcPausePauseClass1Counter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[482] + mi := &file_otg_proto_msgTypes[488] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -59252,7 +60810,7 @@ func (x *PatternFlowPfcPausePauseClass1Counter) String() string { func (*PatternFlowPfcPausePauseClass1Counter) ProtoMessage() {} func (x *PatternFlowPfcPausePauseClass1Counter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[482] + mi := &file_otg_proto_msgTypes[488] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -59265,7 +60823,7 @@ func (x *PatternFlowPfcPausePauseClass1Counter) ProtoReflect() protoreflect.Mess // Deprecated: Use PatternFlowPfcPausePauseClass1Counter.ProtoReflect.Descriptor instead. func (*PatternFlowPfcPausePauseClass1Counter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{482} + return file_otg_proto_rawDescGZIP(), []int{488} } func (x *PatternFlowPfcPausePauseClass1Counter) GetStart() uint32 { @@ -59313,7 +60871,7 @@ type PatternFlowPfcPausePauseClass1MetricTag struct { func (x *PatternFlowPfcPausePauseClass1MetricTag) Reset() { *x = PatternFlowPfcPausePauseClass1MetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[483] + mi := &file_otg_proto_msgTypes[489] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -59326,7 +60884,7 @@ func (x *PatternFlowPfcPausePauseClass1MetricTag) String() string { func (*PatternFlowPfcPausePauseClass1MetricTag) ProtoMessage() {} func (x *PatternFlowPfcPausePauseClass1MetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[483] + mi := &file_otg_proto_msgTypes[489] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -59339,7 +60897,7 @@ func (x *PatternFlowPfcPausePauseClass1MetricTag) ProtoReflect() protoreflect.Me // Deprecated: Use PatternFlowPfcPausePauseClass1MetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowPfcPausePauseClass1MetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{483} + return file_otg_proto_rawDescGZIP(), []int{489} } func (x *PatternFlowPfcPausePauseClass1MetricTag) GetName() string { @@ -59391,7 +60949,7 @@ type PatternFlowPfcPausePauseClass1 struct { func (x *PatternFlowPfcPausePauseClass1) Reset() { *x = PatternFlowPfcPausePauseClass1{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[484] + mi := &file_otg_proto_msgTypes[490] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -59404,7 +60962,7 @@ func (x *PatternFlowPfcPausePauseClass1) String() string { func (*PatternFlowPfcPausePauseClass1) ProtoMessage() {} func (x *PatternFlowPfcPausePauseClass1) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[484] + mi := &file_otg_proto_msgTypes[490] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -59417,7 +60975,7 @@ func (x *PatternFlowPfcPausePauseClass1) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowPfcPausePauseClass1.ProtoReflect.Descriptor instead. func (*PatternFlowPfcPausePauseClass1) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{484} + return file_otg_proto_rawDescGZIP(), []int{490} } func (x *PatternFlowPfcPausePauseClass1) GetChoice() PatternFlowPfcPausePauseClass1_Choice_Enum { @@ -59482,7 +61040,7 @@ type PatternFlowPfcPausePauseClass2Counter struct { func (x *PatternFlowPfcPausePauseClass2Counter) Reset() { *x = PatternFlowPfcPausePauseClass2Counter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[485] + mi := &file_otg_proto_msgTypes[491] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -59495,7 +61053,7 @@ func (x *PatternFlowPfcPausePauseClass2Counter) String() string { func (*PatternFlowPfcPausePauseClass2Counter) ProtoMessage() {} func (x *PatternFlowPfcPausePauseClass2Counter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[485] + mi := &file_otg_proto_msgTypes[491] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -59508,7 +61066,7 @@ func (x *PatternFlowPfcPausePauseClass2Counter) ProtoReflect() protoreflect.Mess // Deprecated: Use PatternFlowPfcPausePauseClass2Counter.ProtoReflect.Descriptor instead. func (*PatternFlowPfcPausePauseClass2Counter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{485} + return file_otg_proto_rawDescGZIP(), []int{491} } func (x *PatternFlowPfcPausePauseClass2Counter) GetStart() uint32 { @@ -59556,7 +61114,7 @@ type PatternFlowPfcPausePauseClass2MetricTag struct { func (x *PatternFlowPfcPausePauseClass2MetricTag) Reset() { *x = PatternFlowPfcPausePauseClass2MetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[486] + mi := &file_otg_proto_msgTypes[492] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -59569,7 +61127,7 @@ func (x *PatternFlowPfcPausePauseClass2MetricTag) String() string { func (*PatternFlowPfcPausePauseClass2MetricTag) ProtoMessage() {} func (x *PatternFlowPfcPausePauseClass2MetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[486] + mi := &file_otg_proto_msgTypes[492] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -59582,7 +61140,7 @@ func (x *PatternFlowPfcPausePauseClass2MetricTag) ProtoReflect() protoreflect.Me // Deprecated: Use PatternFlowPfcPausePauseClass2MetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowPfcPausePauseClass2MetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{486} + return file_otg_proto_rawDescGZIP(), []int{492} } func (x *PatternFlowPfcPausePauseClass2MetricTag) GetName() string { @@ -59634,7 +61192,7 @@ type PatternFlowPfcPausePauseClass2 struct { func (x *PatternFlowPfcPausePauseClass2) Reset() { *x = PatternFlowPfcPausePauseClass2{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[487] + mi := &file_otg_proto_msgTypes[493] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -59647,7 +61205,7 @@ func (x *PatternFlowPfcPausePauseClass2) String() string { func (*PatternFlowPfcPausePauseClass2) ProtoMessage() {} func (x *PatternFlowPfcPausePauseClass2) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[487] + mi := &file_otg_proto_msgTypes[493] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -59660,7 +61218,7 @@ func (x *PatternFlowPfcPausePauseClass2) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowPfcPausePauseClass2.ProtoReflect.Descriptor instead. func (*PatternFlowPfcPausePauseClass2) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{487} + return file_otg_proto_rawDescGZIP(), []int{493} } func (x *PatternFlowPfcPausePauseClass2) GetChoice() PatternFlowPfcPausePauseClass2_Choice_Enum { @@ -59725,7 +61283,7 @@ type PatternFlowPfcPausePauseClass3Counter struct { func (x *PatternFlowPfcPausePauseClass3Counter) Reset() { *x = PatternFlowPfcPausePauseClass3Counter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[488] + mi := &file_otg_proto_msgTypes[494] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -59738,7 +61296,7 @@ func (x *PatternFlowPfcPausePauseClass3Counter) String() string { func (*PatternFlowPfcPausePauseClass3Counter) ProtoMessage() {} func (x *PatternFlowPfcPausePauseClass3Counter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[488] + mi := &file_otg_proto_msgTypes[494] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -59751,7 +61309,7 @@ func (x *PatternFlowPfcPausePauseClass3Counter) ProtoReflect() protoreflect.Mess // Deprecated: Use PatternFlowPfcPausePauseClass3Counter.ProtoReflect.Descriptor instead. func (*PatternFlowPfcPausePauseClass3Counter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{488} + return file_otg_proto_rawDescGZIP(), []int{494} } func (x *PatternFlowPfcPausePauseClass3Counter) GetStart() uint32 { @@ -59799,7 +61357,7 @@ type PatternFlowPfcPausePauseClass3MetricTag struct { func (x *PatternFlowPfcPausePauseClass3MetricTag) Reset() { *x = PatternFlowPfcPausePauseClass3MetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[489] + mi := &file_otg_proto_msgTypes[495] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -59812,7 +61370,7 @@ func (x *PatternFlowPfcPausePauseClass3MetricTag) String() string { func (*PatternFlowPfcPausePauseClass3MetricTag) ProtoMessage() {} func (x *PatternFlowPfcPausePauseClass3MetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[489] + mi := &file_otg_proto_msgTypes[495] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -59825,7 +61383,7 @@ func (x *PatternFlowPfcPausePauseClass3MetricTag) ProtoReflect() protoreflect.Me // Deprecated: Use PatternFlowPfcPausePauseClass3MetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowPfcPausePauseClass3MetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{489} + return file_otg_proto_rawDescGZIP(), []int{495} } func (x *PatternFlowPfcPausePauseClass3MetricTag) GetName() string { @@ -59877,7 +61435,7 @@ type PatternFlowPfcPausePauseClass3 struct { func (x *PatternFlowPfcPausePauseClass3) Reset() { *x = PatternFlowPfcPausePauseClass3{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[490] + mi := &file_otg_proto_msgTypes[496] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -59890,7 +61448,7 @@ func (x *PatternFlowPfcPausePauseClass3) String() string { func (*PatternFlowPfcPausePauseClass3) ProtoMessage() {} func (x *PatternFlowPfcPausePauseClass3) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[490] + mi := &file_otg_proto_msgTypes[496] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -59903,7 +61461,7 @@ func (x *PatternFlowPfcPausePauseClass3) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowPfcPausePauseClass3.ProtoReflect.Descriptor instead. func (*PatternFlowPfcPausePauseClass3) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{490} + return file_otg_proto_rawDescGZIP(), []int{496} } func (x *PatternFlowPfcPausePauseClass3) GetChoice() PatternFlowPfcPausePauseClass3_Choice_Enum { @@ -59968,7 +61526,7 @@ type PatternFlowPfcPausePauseClass4Counter struct { func (x *PatternFlowPfcPausePauseClass4Counter) Reset() { *x = PatternFlowPfcPausePauseClass4Counter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[491] + mi := &file_otg_proto_msgTypes[497] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -59981,7 +61539,7 @@ func (x *PatternFlowPfcPausePauseClass4Counter) String() string { func (*PatternFlowPfcPausePauseClass4Counter) ProtoMessage() {} func (x *PatternFlowPfcPausePauseClass4Counter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[491] + mi := &file_otg_proto_msgTypes[497] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -59994,7 +61552,7 @@ func (x *PatternFlowPfcPausePauseClass4Counter) ProtoReflect() protoreflect.Mess // Deprecated: Use PatternFlowPfcPausePauseClass4Counter.ProtoReflect.Descriptor instead. func (*PatternFlowPfcPausePauseClass4Counter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{491} + return file_otg_proto_rawDescGZIP(), []int{497} } func (x *PatternFlowPfcPausePauseClass4Counter) GetStart() uint32 { @@ -60042,7 +61600,7 @@ type PatternFlowPfcPausePauseClass4MetricTag struct { func (x *PatternFlowPfcPausePauseClass4MetricTag) Reset() { *x = PatternFlowPfcPausePauseClass4MetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[492] + mi := &file_otg_proto_msgTypes[498] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -60055,7 +61613,7 @@ func (x *PatternFlowPfcPausePauseClass4MetricTag) String() string { func (*PatternFlowPfcPausePauseClass4MetricTag) ProtoMessage() {} func (x *PatternFlowPfcPausePauseClass4MetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[492] + mi := &file_otg_proto_msgTypes[498] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -60068,7 +61626,7 @@ func (x *PatternFlowPfcPausePauseClass4MetricTag) ProtoReflect() protoreflect.Me // Deprecated: Use PatternFlowPfcPausePauseClass4MetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowPfcPausePauseClass4MetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{492} + return file_otg_proto_rawDescGZIP(), []int{498} } func (x *PatternFlowPfcPausePauseClass4MetricTag) GetName() string { @@ -60120,7 +61678,7 @@ type PatternFlowPfcPausePauseClass4 struct { func (x *PatternFlowPfcPausePauseClass4) Reset() { *x = PatternFlowPfcPausePauseClass4{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[493] + mi := &file_otg_proto_msgTypes[499] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -60133,7 +61691,7 @@ func (x *PatternFlowPfcPausePauseClass4) String() string { func (*PatternFlowPfcPausePauseClass4) ProtoMessage() {} func (x *PatternFlowPfcPausePauseClass4) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[493] + mi := &file_otg_proto_msgTypes[499] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -60146,7 +61704,7 @@ func (x *PatternFlowPfcPausePauseClass4) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowPfcPausePauseClass4.ProtoReflect.Descriptor instead. func (*PatternFlowPfcPausePauseClass4) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{493} + return file_otg_proto_rawDescGZIP(), []int{499} } func (x *PatternFlowPfcPausePauseClass4) GetChoice() PatternFlowPfcPausePauseClass4_Choice_Enum { @@ -60211,7 +61769,7 @@ type PatternFlowPfcPausePauseClass5Counter struct { func (x *PatternFlowPfcPausePauseClass5Counter) Reset() { *x = PatternFlowPfcPausePauseClass5Counter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[494] + mi := &file_otg_proto_msgTypes[500] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -60224,7 +61782,7 @@ func (x *PatternFlowPfcPausePauseClass5Counter) String() string { func (*PatternFlowPfcPausePauseClass5Counter) ProtoMessage() {} func (x *PatternFlowPfcPausePauseClass5Counter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[494] + mi := &file_otg_proto_msgTypes[500] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -60237,7 +61795,7 @@ func (x *PatternFlowPfcPausePauseClass5Counter) ProtoReflect() protoreflect.Mess // Deprecated: Use PatternFlowPfcPausePauseClass5Counter.ProtoReflect.Descriptor instead. func (*PatternFlowPfcPausePauseClass5Counter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{494} + return file_otg_proto_rawDescGZIP(), []int{500} } func (x *PatternFlowPfcPausePauseClass5Counter) GetStart() uint32 { @@ -60285,7 +61843,7 @@ type PatternFlowPfcPausePauseClass5MetricTag struct { func (x *PatternFlowPfcPausePauseClass5MetricTag) Reset() { *x = PatternFlowPfcPausePauseClass5MetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[495] + mi := &file_otg_proto_msgTypes[501] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -60298,7 +61856,7 @@ func (x *PatternFlowPfcPausePauseClass5MetricTag) String() string { func (*PatternFlowPfcPausePauseClass5MetricTag) ProtoMessage() {} func (x *PatternFlowPfcPausePauseClass5MetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[495] + mi := &file_otg_proto_msgTypes[501] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -60311,7 +61869,7 @@ func (x *PatternFlowPfcPausePauseClass5MetricTag) ProtoReflect() protoreflect.Me // Deprecated: Use PatternFlowPfcPausePauseClass5MetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowPfcPausePauseClass5MetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{495} + return file_otg_proto_rawDescGZIP(), []int{501} } func (x *PatternFlowPfcPausePauseClass5MetricTag) GetName() string { @@ -60363,7 +61921,7 @@ type PatternFlowPfcPausePauseClass5 struct { func (x *PatternFlowPfcPausePauseClass5) Reset() { *x = PatternFlowPfcPausePauseClass5{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[496] + mi := &file_otg_proto_msgTypes[502] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -60376,7 +61934,7 @@ func (x *PatternFlowPfcPausePauseClass5) String() string { func (*PatternFlowPfcPausePauseClass5) ProtoMessage() {} func (x *PatternFlowPfcPausePauseClass5) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[496] + mi := &file_otg_proto_msgTypes[502] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -60389,7 +61947,7 @@ func (x *PatternFlowPfcPausePauseClass5) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowPfcPausePauseClass5.ProtoReflect.Descriptor instead. func (*PatternFlowPfcPausePauseClass5) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{496} + return file_otg_proto_rawDescGZIP(), []int{502} } func (x *PatternFlowPfcPausePauseClass5) GetChoice() PatternFlowPfcPausePauseClass5_Choice_Enum { @@ -60454,7 +62012,7 @@ type PatternFlowPfcPausePauseClass6Counter struct { func (x *PatternFlowPfcPausePauseClass6Counter) Reset() { *x = PatternFlowPfcPausePauseClass6Counter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[497] + mi := &file_otg_proto_msgTypes[503] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -60467,7 +62025,7 @@ func (x *PatternFlowPfcPausePauseClass6Counter) String() string { func (*PatternFlowPfcPausePauseClass6Counter) ProtoMessage() {} func (x *PatternFlowPfcPausePauseClass6Counter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[497] + mi := &file_otg_proto_msgTypes[503] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -60480,7 +62038,7 @@ func (x *PatternFlowPfcPausePauseClass6Counter) ProtoReflect() protoreflect.Mess // Deprecated: Use PatternFlowPfcPausePauseClass6Counter.ProtoReflect.Descriptor instead. func (*PatternFlowPfcPausePauseClass6Counter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{497} + return file_otg_proto_rawDescGZIP(), []int{503} } func (x *PatternFlowPfcPausePauseClass6Counter) GetStart() uint32 { @@ -60528,7 +62086,7 @@ type PatternFlowPfcPausePauseClass6MetricTag struct { func (x *PatternFlowPfcPausePauseClass6MetricTag) Reset() { *x = PatternFlowPfcPausePauseClass6MetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[498] + mi := &file_otg_proto_msgTypes[504] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -60541,7 +62099,7 @@ func (x *PatternFlowPfcPausePauseClass6MetricTag) String() string { func (*PatternFlowPfcPausePauseClass6MetricTag) ProtoMessage() {} func (x *PatternFlowPfcPausePauseClass6MetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[498] + mi := &file_otg_proto_msgTypes[504] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -60554,7 +62112,7 @@ func (x *PatternFlowPfcPausePauseClass6MetricTag) ProtoReflect() protoreflect.Me // Deprecated: Use PatternFlowPfcPausePauseClass6MetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowPfcPausePauseClass6MetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{498} + return file_otg_proto_rawDescGZIP(), []int{504} } func (x *PatternFlowPfcPausePauseClass6MetricTag) GetName() string { @@ -60606,7 +62164,7 @@ type PatternFlowPfcPausePauseClass6 struct { func (x *PatternFlowPfcPausePauseClass6) Reset() { *x = PatternFlowPfcPausePauseClass6{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[499] + mi := &file_otg_proto_msgTypes[505] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -60619,7 +62177,7 @@ func (x *PatternFlowPfcPausePauseClass6) String() string { func (*PatternFlowPfcPausePauseClass6) ProtoMessage() {} func (x *PatternFlowPfcPausePauseClass6) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[499] + mi := &file_otg_proto_msgTypes[505] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -60632,7 +62190,7 @@ func (x *PatternFlowPfcPausePauseClass6) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowPfcPausePauseClass6.ProtoReflect.Descriptor instead. func (*PatternFlowPfcPausePauseClass6) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{499} + return file_otg_proto_rawDescGZIP(), []int{505} } func (x *PatternFlowPfcPausePauseClass6) GetChoice() PatternFlowPfcPausePauseClass6_Choice_Enum { @@ -60697,7 +62255,7 @@ type PatternFlowPfcPausePauseClass7Counter struct { func (x *PatternFlowPfcPausePauseClass7Counter) Reset() { *x = PatternFlowPfcPausePauseClass7Counter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[500] + mi := &file_otg_proto_msgTypes[506] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -60710,7 +62268,7 @@ func (x *PatternFlowPfcPausePauseClass7Counter) String() string { func (*PatternFlowPfcPausePauseClass7Counter) ProtoMessage() {} func (x *PatternFlowPfcPausePauseClass7Counter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[500] + mi := &file_otg_proto_msgTypes[506] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -60723,7 +62281,7 @@ func (x *PatternFlowPfcPausePauseClass7Counter) ProtoReflect() protoreflect.Mess // Deprecated: Use PatternFlowPfcPausePauseClass7Counter.ProtoReflect.Descriptor instead. func (*PatternFlowPfcPausePauseClass7Counter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{500} + return file_otg_proto_rawDescGZIP(), []int{506} } func (x *PatternFlowPfcPausePauseClass7Counter) GetStart() uint32 { @@ -60771,7 +62329,7 @@ type PatternFlowPfcPausePauseClass7MetricTag struct { func (x *PatternFlowPfcPausePauseClass7MetricTag) Reset() { *x = PatternFlowPfcPausePauseClass7MetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[501] + mi := &file_otg_proto_msgTypes[507] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -60784,7 +62342,7 @@ func (x *PatternFlowPfcPausePauseClass7MetricTag) String() string { func (*PatternFlowPfcPausePauseClass7MetricTag) ProtoMessage() {} func (x *PatternFlowPfcPausePauseClass7MetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[501] + mi := &file_otg_proto_msgTypes[507] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -60797,7 +62355,7 @@ func (x *PatternFlowPfcPausePauseClass7MetricTag) ProtoReflect() protoreflect.Me // Deprecated: Use PatternFlowPfcPausePauseClass7MetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowPfcPausePauseClass7MetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{501} + return file_otg_proto_rawDescGZIP(), []int{507} } func (x *PatternFlowPfcPausePauseClass7MetricTag) GetName() string { @@ -60849,7 +62407,7 @@ type PatternFlowPfcPausePauseClass7 struct { func (x *PatternFlowPfcPausePauseClass7) Reset() { *x = PatternFlowPfcPausePauseClass7{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[502] + mi := &file_otg_proto_msgTypes[508] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -60862,7 +62420,7 @@ func (x *PatternFlowPfcPausePauseClass7) String() string { func (*PatternFlowPfcPausePauseClass7) ProtoMessage() {} func (x *PatternFlowPfcPausePauseClass7) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[502] + mi := &file_otg_proto_msgTypes[508] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -60875,7 +62433,7 @@ func (x *PatternFlowPfcPausePauseClass7) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowPfcPausePauseClass7.ProtoReflect.Descriptor instead. func (*PatternFlowPfcPausePauseClass7) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{502} + return file_otg_proto_rawDescGZIP(), []int{508} } func (x *PatternFlowPfcPausePauseClass7) GetChoice() PatternFlowPfcPausePauseClass7_Choice_Enum { @@ -60940,7 +62498,7 @@ type PatternFlowEthernetPauseDstCounter struct { func (x *PatternFlowEthernetPauseDstCounter) Reset() { *x = PatternFlowEthernetPauseDstCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[503] + mi := &file_otg_proto_msgTypes[509] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -60953,7 +62511,7 @@ func (x *PatternFlowEthernetPauseDstCounter) String() string { func (*PatternFlowEthernetPauseDstCounter) ProtoMessage() {} func (x *PatternFlowEthernetPauseDstCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[503] + mi := &file_otg_proto_msgTypes[509] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -60966,7 +62524,7 @@ func (x *PatternFlowEthernetPauseDstCounter) ProtoReflect() protoreflect.Message // Deprecated: Use PatternFlowEthernetPauseDstCounter.ProtoReflect.Descriptor instead. func (*PatternFlowEthernetPauseDstCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{503} + return file_otg_proto_rawDescGZIP(), []int{509} } func (x *PatternFlowEthernetPauseDstCounter) GetStart() string { @@ -61014,7 +62572,7 @@ type PatternFlowEthernetPauseDstMetricTag struct { func (x *PatternFlowEthernetPauseDstMetricTag) Reset() { *x = PatternFlowEthernetPauseDstMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[504] + mi := &file_otg_proto_msgTypes[510] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -61027,7 +62585,7 @@ func (x *PatternFlowEthernetPauseDstMetricTag) String() string { func (*PatternFlowEthernetPauseDstMetricTag) ProtoMessage() {} func (x *PatternFlowEthernetPauseDstMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[504] + mi := &file_otg_proto_msgTypes[510] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -61040,7 +62598,7 @@ func (x *PatternFlowEthernetPauseDstMetricTag) ProtoReflect() protoreflect.Messa // Deprecated: Use PatternFlowEthernetPauseDstMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowEthernetPauseDstMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{504} + return file_otg_proto_rawDescGZIP(), []int{510} } func (x *PatternFlowEthernetPauseDstMetricTag) GetName() string { @@ -61092,7 +62650,7 @@ type PatternFlowEthernetPauseDst struct { func (x *PatternFlowEthernetPauseDst) Reset() { *x = PatternFlowEthernetPauseDst{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[505] + mi := &file_otg_proto_msgTypes[511] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -61105,7 +62663,7 @@ func (x *PatternFlowEthernetPauseDst) String() string { func (*PatternFlowEthernetPauseDst) ProtoMessage() {} func (x *PatternFlowEthernetPauseDst) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[505] + mi := &file_otg_proto_msgTypes[511] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -61118,7 +62676,7 @@ func (x *PatternFlowEthernetPauseDst) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowEthernetPauseDst.ProtoReflect.Descriptor instead. func (*PatternFlowEthernetPauseDst) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{505} + return file_otg_proto_rawDescGZIP(), []int{511} } func (x *PatternFlowEthernetPauseDst) GetChoice() PatternFlowEthernetPauseDst_Choice_Enum { @@ -61183,7 +62741,7 @@ type PatternFlowEthernetPauseSrcCounter struct { func (x *PatternFlowEthernetPauseSrcCounter) Reset() { *x = PatternFlowEthernetPauseSrcCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[506] + mi := &file_otg_proto_msgTypes[512] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -61196,7 +62754,7 @@ func (x *PatternFlowEthernetPauseSrcCounter) String() string { func (*PatternFlowEthernetPauseSrcCounter) ProtoMessage() {} func (x *PatternFlowEthernetPauseSrcCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[506] + mi := &file_otg_proto_msgTypes[512] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -61209,7 +62767,7 @@ func (x *PatternFlowEthernetPauseSrcCounter) ProtoReflect() protoreflect.Message // Deprecated: Use PatternFlowEthernetPauseSrcCounter.ProtoReflect.Descriptor instead. func (*PatternFlowEthernetPauseSrcCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{506} + return file_otg_proto_rawDescGZIP(), []int{512} } func (x *PatternFlowEthernetPauseSrcCounter) GetStart() string { @@ -61257,7 +62815,7 @@ type PatternFlowEthernetPauseSrcMetricTag struct { func (x *PatternFlowEthernetPauseSrcMetricTag) Reset() { *x = PatternFlowEthernetPauseSrcMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[507] + mi := &file_otg_proto_msgTypes[513] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -61270,7 +62828,7 @@ func (x *PatternFlowEthernetPauseSrcMetricTag) String() string { func (*PatternFlowEthernetPauseSrcMetricTag) ProtoMessage() {} func (x *PatternFlowEthernetPauseSrcMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[507] + mi := &file_otg_proto_msgTypes[513] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -61283,7 +62841,7 @@ func (x *PatternFlowEthernetPauseSrcMetricTag) ProtoReflect() protoreflect.Messa // Deprecated: Use PatternFlowEthernetPauseSrcMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowEthernetPauseSrcMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{507} + return file_otg_proto_rawDescGZIP(), []int{513} } func (x *PatternFlowEthernetPauseSrcMetricTag) GetName() string { @@ -61335,7 +62893,7 @@ type PatternFlowEthernetPauseSrc struct { func (x *PatternFlowEthernetPauseSrc) Reset() { *x = PatternFlowEthernetPauseSrc{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[508] + mi := &file_otg_proto_msgTypes[514] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -61348,7 +62906,7 @@ func (x *PatternFlowEthernetPauseSrc) String() string { func (*PatternFlowEthernetPauseSrc) ProtoMessage() {} func (x *PatternFlowEthernetPauseSrc) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[508] + mi := &file_otg_proto_msgTypes[514] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -61361,7 +62919,7 @@ func (x *PatternFlowEthernetPauseSrc) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowEthernetPauseSrc.ProtoReflect.Descriptor instead. func (*PatternFlowEthernetPauseSrc) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{508} + return file_otg_proto_rawDescGZIP(), []int{514} } func (x *PatternFlowEthernetPauseSrc) GetChoice() PatternFlowEthernetPauseSrc_Choice_Enum { @@ -61426,7 +62984,7 @@ type PatternFlowEthernetPauseEtherTypeCounter struct { func (x *PatternFlowEthernetPauseEtherTypeCounter) Reset() { *x = PatternFlowEthernetPauseEtherTypeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[509] + mi := &file_otg_proto_msgTypes[515] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -61439,7 +62997,7 @@ func (x *PatternFlowEthernetPauseEtherTypeCounter) String() string { func (*PatternFlowEthernetPauseEtherTypeCounter) ProtoMessage() {} func (x *PatternFlowEthernetPauseEtherTypeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[509] + mi := &file_otg_proto_msgTypes[515] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -61452,7 +63010,7 @@ func (x *PatternFlowEthernetPauseEtherTypeCounter) ProtoReflect() protoreflect.M // Deprecated: Use PatternFlowEthernetPauseEtherTypeCounter.ProtoReflect.Descriptor instead. func (*PatternFlowEthernetPauseEtherTypeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{509} + return file_otg_proto_rawDescGZIP(), []int{515} } func (x *PatternFlowEthernetPauseEtherTypeCounter) GetStart() uint32 { @@ -61500,7 +63058,7 @@ type PatternFlowEthernetPauseEtherTypeMetricTag struct { func (x *PatternFlowEthernetPauseEtherTypeMetricTag) Reset() { *x = PatternFlowEthernetPauseEtherTypeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[510] + mi := &file_otg_proto_msgTypes[516] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -61513,7 +63071,7 @@ func (x *PatternFlowEthernetPauseEtherTypeMetricTag) String() string { func (*PatternFlowEthernetPauseEtherTypeMetricTag) ProtoMessage() {} func (x *PatternFlowEthernetPauseEtherTypeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[510] + mi := &file_otg_proto_msgTypes[516] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -61526,7 +63084,7 @@ func (x *PatternFlowEthernetPauseEtherTypeMetricTag) ProtoReflect() protoreflect // Deprecated: Use PatternFlowEthernetPauseEtherTypeMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowEthernetPauseEtherTypeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{510} + return file_otg_proto_rawDescGZIP(), []int{516} } func (x *PatternFlowEthernetPauseEtherTypeMetricTag) GetName() string { @@ -61578,7 +63136,7 @@ type PatternFlowEthernetPauseEtherType struct { func (x *PatternFlowEthernetPauseEtherType) Reset() { *x = PatternFlowEthernetPauseEtherType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[511] + mi := &file_otg_proto_msgTypes[517] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -61591,7 +63149,7 @@ func (x *PatternFlowEthernetPauseEtherType) String() string { func (*PatternFlowEthernetPauseEtherType) ProtoMessage() {} func (x *PatternFlowEthernetPauseEtherType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[511] + mi := &file_otg_proto_msgTypes[517] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -61604,7 +63162,7 @@ func (x *PatternFlowEthernetPauseEtherType) ProtoReflect() protoreflect.Message // Deprecated: Use PatternFlowEthernetPauseEtherType.ProtoReflect.Descriptor instead. func (*PatternFlowEthernetPauseEtherType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{511} + return file_otg_proto_rawDescGZIP(), []int{517} } func (x *PatternFlowEthernetPauseEtherType) GetChoice() PatternFlowEthernetPauseEtherType_Choice_Enum { @@ -61669,7 +63227,7 @@ type PatternFlowEthernetPauseControlOpCodeCounter struct { func (x *PatternFlowEthernetPauseControlOpCodeCounter) Reset() { *x = PatternFlowEthernetPauseControlOpCodeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[512] + mi := &file_otg_proto_msgTypes[518] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -61682,7 +63240,7 @@ func (x *PatternFlowEthernetPauseControlOpCodeCounter) String() string { func (*PatternFlowEthernetPauseControlOpCodeCounter) ProtoMessage() {} func (x *PatternFlowEthernetPauseControlOpCodeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[512] + mi := &file_otg_proto_msgTypes[518] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -61695,7 +63253,7 @@ func (x *PatternFlowEthernetPauseControlOpCodeCounter) ProtoReflect() protorefle // Deprecated: Use PatternFlowEthernetPauseControlOpCodeCounter.ProtoReflect.Descriptor instead. func (*PatternFlowEthernetPauseControlOpCodeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{512} + return file_otg_proto_rawDescGZIP(), []int{518} } func (x *PatternFlowEthernetPauseControlOpCodeCounter) GetStart() uint32 { @@ -61743,7 +63301,7 @@ type PatternFlowEthernetPauseControlOpCodeMetricTag struct { func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) Reset() { *x = PatternFlowEthernetPauseControlOpCodeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[513] + mi := &file_otg_proto_msgTypes[519] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -61756,7 +63314,7 @@ func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) String() string { func (*PatternFlowEthernetPauseControlOpCodeMetricTag) ProtoMessage() {} func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[513] + mi := &file_otg_proto_msgTypes[519] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -61769,7 +63327,7 @@ func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) ProtoReflect() protoref // Deprecated: Use PatternFlowEthernetPauseControlOpCodeMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowEthernetPauseControlOpCodeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{513} + return file_otg_proto_rawDescGZIP(), []int{519} } func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) GetName() string { @@ -61821,7 +63379,7 @@ type PatternFlowEthernetPauseControlOpCode struct { func (x *PatternFlowEthernetPauseControlOpCode) Reset() { *x = PatternFlowEthernetPauseControlOpCode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[514] + mi := &file_otg_proto_msgTypes[520] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -61834,7 +63392,7 @@ func (x *PatternFlowEthernetPauseControlOpCode) String() string { func (*PatternFlowEthernetPauseControlOpCode) ProtoMessage() {} func (x *PatternFlowEthernetPauseControlOpCode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[514] + mi := &file_otg_proto_msgTypes[520] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -61847,7 +63405,7 @@ func (x *PatternFlowEthernetPauseControlOpCode) ProtoReflect() protoreflect.Mess // Deprecated: Use PatternFlowEthernetPauseControlOpCode.ProtoReflect.Descriptor instead. func (*PatternFlowEthernetPauseControlOpCode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{514} + return file_otg_proto_rawDescGZIP(), []int{520} } func (x *PatternFlowEthernetPauseControlOpCode) GetChoice() PatternFlowEthernetPauseControlOpCode_Choice_Enum { @@ -61912,7 +63470,7 @@ type PatternFlowEthernetPauseTimeCounter struct { func (x *PatternFlowEthernetPauseTimeCounter) Reset() { *x = PatternFlowEthernetPauseTimeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[515] + mi := &file_otg_proto_msgTypes[521] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -61925,7 +63483,7 @@ func (x *PatternFlowEthernetPauseTimeCounter) String() string { func (*PatternFlowEthernetPauseTimeCounter) ProtoMessage() {} func (x *PatternFlowEthernetPauseTimeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[515] + mi := &file_otg_proto_msgTypes[521] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -61938,7 +63496,7 @@ func (x *PatternFlowEthernetPauseTimeCounter) ProtoReflect() protoreflect.Messag // Deprecated: Use PatternFlowEthernetPauseTimeCounter.ProtoReflect.Descriptor instead. func (*PatternFlowEthernetPauseTimeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{515} + return file_otg_proto_rawDescGZIP(), []int{521} } func (x *PatternFlowEthernetPauseTimeCounter) GetStart() uint32 { @@ -61986,7 +63544,7 @@ type PatternFlowEthernetPauseTimeMetricTag struct { func (x *PatternFlowEthernetPauseTimeMetricTag) Reset() { *x = PatternFlowEthernetPauseTimeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[516] + mi := &file_otg_proto_msgTypes[522] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -61999,7 +63557,7 @@ func (x *PatternFlowEthernetPauseTimeMetricTag) String() string { func (*PatternFlowEthernetPauseTimeMetricTag) ProtoMessage() {} func (x *PatternFlowEthernetPauseTimeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[516] + mi := &file_otg_proto_msgTypes[522] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -62012,7 +63570,7 @@ func (x *PatternFlowEthernetPauseTimeMetricTag) ProtoReflect() protoreflect.Mess // Deprecated: Use PatternFlowEthernetPauseTimeMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowEthernetPauseTimeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{516} + return file_otg_proto_rawDescGZIP(), []int{522} } func (x *PatternFlowEthernetPauseTimeMetricTag) GetName() string { @@ -62064,7 +63622,7 @@ type PatternFlowEthernetPauseTime struct { func (x *PatternFlowEthernetPauseTime) Reset() { *x = PatternFlowEthernetPauseTime{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[517] + mi := &file_otg_proto_msgTypes[523] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -62077,7 +63635,7 @@ func (x *PatternFlowEthernetPauseTime) String() string { func (*PatternFlowEthernetPauseTime) ProtoMessage() {} func (x *PatternFlowEthernetPauseTime) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[517] + mi := &file_otg_proto_msgTypes[523] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -62090,7 +63648,7 @@ func (x *PatternFlowEthernetPauseTime) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowEthernetPauseTime.ProtoReflect.Descriptor instead. func (*PatternFlowEthernetPauseTime) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{517} + return file_otg_proto_rawDescGZIP(), []int{523} } func (x *PatternFlowEthernetPauseTime) GetChoice() PatternFlowEthernetPauseTime_Choice_Enum { @@ -62155,7 +63713,7 @@ type PatternFlowTcpSrcPortCounter struct { func (x *PatternFlowTcpSrcPortCounter) Reset() { *x = PatternFlowTcpSrcPortCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[518] + mi := &file_otg_proto_msgTypes[524] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -62168,7 +63726,7 @@ func (x *PatternFlowTcpSrcPortCounter) String() string { func (*PatternFlowTcpSrcPortCounter) ProtoMessage() {} func (x *PatternFlowTcpSrcPortCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[518] + mi := &file_otg_proto_msgTypes[524] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -62181,7 +63739,7 @@ func (x *PatternFlowTcpSrcPortCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpSrcPortCounter.ProtoReflect.Descriptor instead. func (*PatternFlowTcpSrcPortCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{518} + return file_otg_proto_rawDescGZIP(), []int{524} } func (x *PatternFlowTcpSrcPortCounter) GetStart() uint32 { @@ -62229,7 +63787,7 @@ type PatternFlowTcpSrcPortMetricTag struct { func (x *PatternFlowTcpSrcPortMetricTag) Reset() { *x = PatternFlowTcpSrcPortMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[519] + mi := &file_otg_proto_msgTypes[525] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -62242,7 +63800,7 @@ func (x *PatternFlowTcpSrcPortMetricTag) String() string { func (*PatternFlowTcpSrcPortMetricTag) ProtoMessage() {} func (x *PatternFlowTcpSrcPortMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[519] + mi := &file_otg_proto_msgTypes[525] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -62255,7 +63813,7 @@ func (x *PatternFlowTcpSrcPortMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpSrcPortMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowTcpSrcPortMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{519} + return file_otg_proto_rawDescGZIP(), []int{525} } func (x *PatternFlowTcpSrcPortMetricTag) GetName() string { @@ -62307,7 +63865,7 @@ type PatternFlowTcpSrcPort struct { func (x *PatternFlowTcpSrcPort) Reset() { *x = PatternFlowTcpSrcPort{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[520] + mi := &file_otg_proto_msgTypes[526] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -62320,7 +63878,7 @@ func (x *PatternFlowTcpSrcPort) String() string { func (*PatternFlowTcpSrcPort) ProtoMessage() {} func (x *PatternFlowTcpSrcPort) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[520] + mi := &file_otg_proto_msgTypes[526] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -62333,7 +63891,7 @@ func (x *PatternFlowTcpSrcPort) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpSrcPort.ProtoReflect.Descriptor instead. func (*PatternFlowTcpSrcPort) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{520} + return file_otg_proto_rawDescGZIP(), []int{526} } func (x *PatternFlowTcpSrcPort) GetChoice() PatternFlowTcpSrcPort_Choice_Enum { @@ -62398,7 +63956,7 @@ type PatternFlowTcpDstPortCounter struct { func (x *PatternFlowTcpDstPortCounter) Reset() { *x = PatternFlowTcpDstPortCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[521] + mi := &file_otg_proto_msgTypes[527] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -62411,7 +63969,7 @@ func (x *PatternFlowTcpDstPortCounter) String() string { func (*PatternFlowTcpDstPortCounter) ProtoMessage() {} func (x *PatternFlowTcpDstPortCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[521] + mi := &file_otg_proto_msgTypes[527] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -62424,7 +63982,7 @@ func (x *PatternFlowTcpDstPortCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpDstPortCounter.ProtoReflect.Descriptor instead. func (*PatternFlowTcpDstPortCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{521} + return file_otg_proto_rawDescGZIP(), []int{527} } func (x *PatternFlowTcpDstPortCounter) GetStart() uint32 { @@ -62472,7 +64030,7 @@ type PatternFlowTcpDstPortMetricTag struct { func (x *PatternFlowTcpDstPortMetricTag) Reset() { *x = PatternFlowTcpDstPortMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[522] + mi := &file_otg_proto_msgTypes[528] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -62485,7 +64043,7 @@ func (x *PatternFlowTcpDstPortMetricTag) String() string { func (*PatternFlowTcpDstPortMetricTag) ProtoMessage() {} func (x *PatternFlowTcpDstPortMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[522] + mi := &file_otg_proto_msgTypes[528] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -62498,7 +64056,7 @@ func (x *PatternFlowTcpDstPortMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpDstPortMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowTcpDstPortMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{522} + return file_otg_proto_rawDescGZIP(), []int{528} } func (x *PatternFlowTcpDstPortMetricTag) GetName() string { @@ -62550,7 +64108,7 @@ type PatternFlowTcpDstPort struct { func (x *PatternFlowTcpDstPort) Reset() { *x = PatternFlowTcpDstPort{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[523] + mi := &file_otg_proto_msgTypes[529] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -62563,7 +64121,7 @@ func (x *PatternFlowTcpDstPort) String() string { func (*PatternFlowTcpDstPort) ProtoMessage() {} func (x *PatternFlowTcpDstPort) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[523] + mi := &file_otg_proto_msgTypes[529] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -62576,7 +64134,7 @@ func (x *PatternFlowTcpDstPort) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpDstPort.ProtoReflect.Descriptor instead. func (*PatternFlowTcpDstPort) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{523} + return file_otg_proto_rawDescGZIP(), []int{529} } func (x *PatternFlowTcpDstPort) GetChoice() PatternFlowTcpDstPort_Choice_Enum { @@ -62641,7 +64199,7 @@ type PatternFlowTcpSeqNumCounter struct { func (x *PatternFlowTcpSeqNumCounter) Reset() { *x = PatternFlowTcpSeqNumCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[524] + mi := &file_otg_proto_msgTypes[530] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -62654,7 +64212,7 @@ func (x *PatternFlowTcpSeqNumCounter) String() string { func (*PatternFlowTcpSeqNumCounter) ProtoMessage() {} func (x *PatternFlowTcpSeqNumCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[524] + mi := &file_otg_proto_msgTypes[530] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -62667,7 +64225,7 @@ func (x *PatternFlowTcpSeqNumCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpSeqNumCounter.ProtoReflect.Descriptor instead. func (*PatternFlowTcpSeqNumCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{524} + return file_otg_proto_rawDescGZIP(), []int{530} } func (x *PatternFlowTcpSeqNumCounter) GetStart() uint32 { @@ -62715,7 +64273,7 @@ type PatternFlowTcpSeqNumMetricTag struct { func (x *PatternFlowTcpSeqNumMetricTag) Reset() { *x = PatternFlowTcpSeqNumMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[525] + mi := &file_otg_proto_msgTypes[531] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -62728,7 +64286,7 @@ func (x *PatternFlowTcpSeqNumMetricTag) String() string { func (*PatternFlowTcpSeqNumMetricTag) ProtoMessage() {} func (x *PatternFlowTcpSeqNumMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[525] + mi := &file_otg_proto_msgTypes[531] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -62741,7 +64299,7 @@ func (x *PatternFlowTcpSeqNumMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpSeqNumMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowTcpSeqNumMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{525} + return file_otg_proto_rawDescGZIP(), []int{531} } func (x *PatternFlowTcpSeqNumMetricTag) GetName() string { @@ -62793,7 +64351,7 @@ type PatternFlowTcpSeqNum struct { func (x *PatternFlowTcpSeqNum) Reset() { *x = PatternFlowTcpSeqNum{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[526] + mi := &file_otg_proto_msgTypes[532] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -62806,7 +64364,7 @@ func (x *PatternFlowTcpSeqNum) String() string { func (*PatternFlowTcpSeqNum) ProtoMessage() {} func (x *PatternFlowTcpSeqNum) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[526] + mi := &file_otg_proto_msgTypes[532] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -62819,7 +64377,7 @@ func (x *PatternFlowTcpSeqNum) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpSeqNum.ProtoReflect.Descriptor instead. func (*PatternFlowTcpSeqNum) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{526} + return file_otg_proto_rawDescGZIP(), []int{532} } func (x *PatternFlowTcpSeqNum) GetChoice() PatternFlowTcpSeqNum_Choice_Enum { @@ -62884,7 +64442,7 @@ type PatternFlowTcpAckNumCounter struct { func (x *PatternFlowTcpAckNumCounter) Reset() { *x = PatternFlowTcpAckNumCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[527] + mi := &file_otg_proto_msgTypes[533] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -62897,7 +64455,7 @@ func (x *PatternFlowTcpAckNumCounter) String() string { func (*PatternFlowTcpAckNumCounter) ProtoMessage() {} func (x *PatternFlowTcpAckNumCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[527] + mi := &file_otg_proto_msgTypes[533] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -62910,7 +64468,7 @@ func (x *PatternFlowTcpAckNumCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpAckNumCounter.ProtoReflect.Descriptor instead. func (*PatternFlowTcpAckNumCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{527} + return file_otg_proto_rawDescGZIP(), []int{533} } func (x *PatternFlowTcpAckNumCounter) GetStart() uint32 { @@ -62958,7 +64516,7 @@ type PatternFlowTcpAckNumMetricTag struct { func (x *PatternFlowTcpAckNumMetricTag) Reset() { *x = PatternFlowTcpAckNumMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[528] + mi := &file_otg_proto_msgTypes[534] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -62971,7 +64529,7 @@ func (x *PatternFlowTcpAckNumMetricTag) String() string { func (*PatternFlowTcpAckNumMetricTag) ProtoMessage() {} func (x *PatternFlowTcpAckNumMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[528] + mi := &file_otg_proto_msgTypes[534] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -62984,7 +64542,7 @@ func (x *PatternFlowTcpAckNumMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpAckNumMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowTcpAckNumMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{528} + return file_otg_proto_rawDescGZIP(), []int{534} } func (x *PatternFlowTcpAckNumMetricTag) GetName() string { @@ -63036,7 +64594,7 @@ type PatternFlowTcpAckNum struct { func (x *PatternFlowTcpAckNum) Reset() { *x = PatternFlowTcpAckNum{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[529] + mi := &file_otg_proto_msgTypes[535] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -63049,7 +64607,7 @@ func (x *PatternFlowTcpAckNum) String() string { func (*PatternFlowTcpAckNum) ProtoMessage() {} func (x *PatternFlowTcpAckNum) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[529] + mi := &file_otg_proto_msgTypes[535] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63062,7 +64620,7 @@ func (x *PatternFlowTcpAckNum) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpAckNum.ProtoReflect.Descriptor instead. func (*PatternFlowTcpAckNum) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{529} + return file_otg_proto_rawDescGZIP(), []int{535} } func (x *PatternFlowTcpAckNum) GetChoice() PatternFlowTcpAckNum_Choice_Enum { @@ -63127,7 +64685,7 @@ type PatternFlowTcpDataOffsetCounter struct { func (x *PatternFlowTcpDataOffsetCounter) Reset() { *x = PatternFlowTcpDataOffsetCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[530] + mi := &file_otg_proto_msgTypes[536] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -63140,7 +64698,7 @@ func (x *PatternFlowTcpDataOffsetCounter) String() string { func (*PatternFlowTcpDataOffsetCounter) ProtoMessage() {} func (x *PatternFlowTcpDataOffsetCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[530] + mi := &file_otg_proto_msgTypes[536] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63153,7 +64711,7 @@ func (x *PatternFlowTcpDataOffsetCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpDataOffsetCounter.ProtoReflect.Descriptor instead. func (*PatternFlowTcpDataOffsetCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{530} + return file_otg_proto_rawDescGZIP(), []int{536} } func (x *PatternFlowTcpDataOffsetCounter) GetStart() uint32 { @@ -63201,7 +64759,7 @@ type PatternFlowTcpDataOffsetMetricTag struct { func (x *PatternFlowTcpDataOffsetMetricTag) Reset() { *x = PatternFlowTcpDataOffsetMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[531] + mi := &file_otg_proto_msgTypes[537] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -63214,7 +64772,7 @@ func (x *PatternFlowTcpDataOffsetMetricTag) String() string { func (*PatternFlowTcpDataOffsetMetricTag) ProtoMessage() {} func (x *PatternFlowTcpDataOffsetMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[531] + mi := &file_otg_proto_msgTypes[537] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63227,7 +64785,7 @@ func (x *PatternFlowTcpDataOffsetMetricTag) ProtoReflect() protoreflect.Message // Deprecated: Use PatternFlowTcpDataOffsetMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowTcpDataOffsetMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{531} + return file_otg_proto_rawDescGZIP(), []int{537} } func (x *PatternFlowTcpDataOffsetMetricTag) GetName() string { @@ -63279,7 +64837,7 @@ type PatternFlowTcpDataOffset struct { func (x *PatternFlowTcpDataOffset) Reset() { *x = PatternFlowTcpDataOffset{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[532] + mi := &file_otg_proto_msgTypes[538] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -63292,7 +64850,7 @@ func (x *PatternFlowTcpDataOffset) String() string { func (*PatternFlowTcpDataOffset) ProtoMessage() {} func (x *PatternFlowTcpDataOffset) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[532] + mi := &file_otg_proto_msgTypes[538] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63305,7 +64863,7 @@ func (x *PatternFlowTcpDataOffset) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpDataOffset.ProtoReflect.Descriptor instead. func (*PatternFlowTcpDataOffset) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{532} + return file_otg_proto_rawDescGZIP(), []int{538} } func (x *PatternFlowTcpDataOffset) GetChoice() PatternFlowTcpDataOffset_Choice_Enum { @@ -63370,7 +64928,7 @@ type PatternFlowTcpEcnNsCounter struct { func (x *PatternFlowTcpEcnNsCounter) Reset() { *x = PatternFlowTcpEcnNsCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[533] + mi := &file_otg_proto_msgTypes[539] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -63383,7 +64941,7 @@ func (x *PatternFlowTcpEcnNsCounter) String() string { func (*PatternFlowTcpEcnNsCounter) ProtoMessage() {} func (x *PatternFlowTcpEcnNsCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[533] + mi := &file_otg_proto_msgTypes[539] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63396,7 +64954,7 @@ func (x *PatternFlowTcpEcnNsCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpEcnNsCounter.ProtoReflect.Descriptor instead. func (*PatternFlowTcpEcnNsCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{533} + return file_otg_proto_rawDescGZIP(), []int{539} } func (x *PatternFlowTcpEcnNsCounter) GetStart() uint32 { @@ -63444,7 +65002,7 @@ type PatternFlowTcpEcnNsMetricTag struct { func (x *PatternFlowTcpEcnNsMetricTag) Reset() { *x = PatternFlowTcpEcnNsMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[534] + mi := &file_otg_proto_msgTypes[540] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -63457,7 +65015,7 @@ func (x *PatternFlowTcpEcnNsMetricTag) String() string { func (*PatternFlowTcpEcnNsMetricTag) ProtoMessage() {} func (x *PatternFlowTcpEcnNsMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[534] + mi := &file_otg_proto_msgTypes[540] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63470,7 +65028,7 @@ func (x *PatternFlowTcpEcnNsMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpEcnNsMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowTcpEcnNsMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{534} + return file_otg_proto_rawDescGZIP(), []int{540} } func (x *PatternFlowTcpEcnNsMetricTag) GetName() string { @@ -63522,7 +65080,7 @@ type PatternFlowTcpEcnNs struct { func (x *PatternFlowTcpEcnNs) Reset() { *x = PatternFlowTcpEcnNs{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[535] + mi := &file_otg_proto_msgTypes[541] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -63535,7 +65093,7 @@ func (x *PatternFlowTcpEcnNs) String() string { func (*PatternFlowTcpEcnNs) ProtoMessage() {} func (x *PatternFlowTcpEcnNs) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[535] + mi := &file_otg_proto_msgTypes[541] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63548,7 +65106,7 @@ func (x *PatternFlowTcpEcnNs) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpEcnNs.ProtoReflect.Descriptor instead. func (*PatternFlowTcpEcnNs) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{535} + return file_otg_proto_rawDescGZIP(), []int{541} } func (x *PatternFlowTcpEcnNs) GetChoice() PatternFlowTcpEcnNs_Choice_Enum { @@ -63613,7 +65171,7 @@ type PatternFlowTcpEcnCwrCounter struct { func (x *PatternFlowTcpEcnCwrCounter) Reset() { *x = PatternFlowTcpEcnCwrCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[536] + mi := &file_otg_proto_msgTypes[542] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -63626,7 +65184,7 @@ func (x *PatternFlowTcpEcnCwrCounter) String() string { func (*PatternFlowTcpEcnCwrCounter) ProtoMessage() {} func (x *PatternFlowTcpEcnCwrCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[536] + mi := &file_otg_proto_msgTypes[542] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63639,7 +65197,7 @@ func (x *PatternFlowTcpEcnCwrCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpEcnCwrCounter.ProtoReflect.Descriptor instead. func (*PatternFlowTcpEcnCwrCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{536} + return file_otg_proto_rawDescGZIP(), []int{542} } func (x *PatternFlowTcpEcnCwrCounter) GetStart() uint32 { @@ -63687,7 +65245,7 @@ type PatternFlowTcpEcnCwrMetricTag struct { func (x *PatternFlowTcpEcnCwrMetricTag) Reset() { *x = PatternFlowTcpEcnCwrMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[537] + mi := &file_otg_proto_msgTypes[543] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -63700,7 +65258,7 @@ func (x *PatternFlowTcpEcnCwrMetricTag) String() string { func (*PatternFlowTcpEcnCwrMetricTag) ProtoMessage() {} func (x *PatternFlowTcpEcnCwrMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[537] + mi := &file_otg_proto_msgTypes[543] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63713,7 +65271,7 @@ func (x *PatternFlowTcpEcnCwrMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpEcnCwrMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowTcpEcnCwrMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{537} + return file_otg_proto_rawDescGZIP(), []int{543} } func (x *PatternFlowTcpEcnCwrMetricTag) GetName() string { @@ -63765,7 +65323,7 @@ type PatternFlowTcpEcnCwr struct { func (x *PatternFlowTcpEcnCwr) Reset() { *x = PatternFlowTcpEcnCwr{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[538] + mi := &file_otg_proto_msgTypes[544] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -63778,7 +65336,7 @@ func (x *PatternFlowTcpEcnCwr) String() string { func (*PatternFlowTcpEcnCwr) ProtoMessage() {} func (x *PatternFlowTcpEcnCwr) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[538] + mi := &file_otg_proto_msgTypes[544] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63791,7 +65349,7 @@ func (x *PatternFlowTcpEcnCwr) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpEcnCwr.ProtoReflect.Descriptor instead. func (*PatternFlowTcpEcnCwr) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{538} + return file_otg_proto_rawDescGZIP(), []int{544} } func (x *PatternFlowTcpEcnCwr) GetChoice() PatternFlowTcpEcnCwr_Choice_Enum { @@ -63856,7 +65414,7 @@ type PatternFlowTcpEcnEchoCounter struct { func (x *PatternFlowTcpEcnEchoCounter) Reset() { *x = PatternFlowTcpEcnEchoCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[539] + mi := &file_otg_proto_msgTypes[545] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -63869,7 +65427,7 @@ func (x *PatternFlowTcpEcnEchoCounter) String() string { func (*PatternFlowTcpEcnEchoCounter) ProtoMessage() {} func (x *PatternFlowTcpEcnEchoCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[539] + mi := &file_otg_proto_msgTypes[545] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63882,7 +65440,7 @@ func (x *PatternFlowTcpEcnEchoCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpEcnEchoCounter.ProtoReflect.Descriptor instead. func (*PatternFlowTcpEcnEchoCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{539} + return file_otg_proto_rawDescGZIP(), []int{545} } func (x *PatternFlowTcpEcnEchoCounter) GetStart() uint32 { @@ -63930,7 +65488,7 @@ type PatternFlowTcpEcnEchoMetricTag struct { func (x *PatternFlowTcpEcnEchoMetricTag) Reset() { *x = PatternFlowTcpEcnEchoMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[540] + mi := &file_otg_proto_msgTypes[546] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -63943,7 +65501,7 @@ func (x *PatternFlowTcpEcnEchoMetricTag) String() string { func (*PatternFlowTcpEcnEchoMetricTag) ProtoMessage() {} func (x *PatternFlowTcpEcnEchoMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[540] + mi := &file_otg_proto_msgTypes[546] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63956,7 +65514,7 @@ func (x *PatternFlowTcpEcnEchoMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpEcnEchoMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowTcpEcnEchoMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{540} + return file_otg_proto_rawDescGZIP(), []int{546} } func (x *PatternFlowTcpEcnEchoMetricTag) GetName() string { @@ -64009,7 +65567,7 @@ type PatternFlowTcpEcnEcho struct { func (x *PatternFlowTcpEcnEcho) Reset() { *x = PatternFlowTcpEcnEcho{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[541] + mi := &file_otg_proto_msgTypes[547] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -64022,7 +65580,7 @@ func (x *PatternFlowTcpEcnEcho) String() string { func (*PatternFlowTcpEcnEcho) ProtoMessage() {} func (x *PatternFlowTcpEcnEcho) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[541] + mi := &file_otg_proto_msgTypes[547] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64035,7 +65593,7 @@ func (x *PatternFlowTcpEcnEcho) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpEcnEcho.ProtoReflect.Descriptor instead. func (*PatternFlowTcpEcnEcho) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{541} + return file_otg_proto_rawDescGZIP(), []int{547} } func (x *PatternFlowTcpEcnEcho) GetChoice() PatternFlowTcpEcnEcho_Choice_Enum { @@ -64100,7 +65658,7 @@ type PatternFlowTcpCtlUrgCounter struct { func (x *PatternFlowTcpCtlUrgCounter) Reset() { *x = PatternFlowTcpCtlUrgCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[542] + mi := &file_otg_proto_msgTypes[548] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -64113,7 +65671,7 @@ func (x *PatternFlowTcpCtlUrgCounter) String() string { func (*PatternFlowTcpCtlUrgCounter) ProtoMessage() {} func (x *PatternFlowTcpCtlUrgCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[542] + mi := &file_otg_proto_msgTypes[548] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64126,7 +65684,7 @@ func (x *PatternFlowTcpCtlUrgCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpCtlUrgCounter.ProtoReflect.Descriptor instead. func (*PatternFlowTcpCtlUrgCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{542} + return file_otg_proto_rawDescGZIP(), []int{548} } func (x *PatternFlowTcpCtlUrgCounter) GetStart() uint32 { @@ -64174,7 +65732,7 @@ type PatternFlowTcpCtlUrgMetricTag struct { func (x *PatternFlowTcpCtlUrgMetricTag) Reset() { *x = PatternFlowTcpCtlUrgMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[543] + mi := &file_otg_proto_msgTypes[549] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -64187,7 +65745,7 @@ func (x *PatternFlowTcpCtlUrgMetricTag) String() string { func (*PatternFlowTcpCtlUrgMetricTag) ProtoMessage() {} func (x *PatternFlowTcpCtlUrgMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[543] + mi := &file_otg_proto_msgTypes[549] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64200,7 +65758,7 @@ func (x *PatternFlowTcpCtlUrgMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpCtlUrgMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowTcpCtlUrgMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{543} + return file_otg_proto_rawDescGZIP(), []int{549} } func (x *PatternFlowTcpCtlUrgMetricTag) GetName() string { @@ -64252,7 +65810,7 @@ type PatternFlowTcpCtlUrg struct { func (x *PatternFlowTcpCtlUrg) Reset() { *x = PatternFlowTcpCtlUrg{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[544] + mi := &file_otg_proto_msgTypes[550] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -64265,7 +65823,7 @@ func (x *PatternFlowTcpCtlUrg) String() string { func (*PatternFlowTcpCtlUrg) ProtoMessage() {} func (x *PatternFlowTcpCtlUrg) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[544] + mi := &file_otg_proto_msgTypes[550] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64278,7 +65836,7 @@ func (x *PatternFlowTcpCtlUrg) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpCtlUrg.ProtoReflect.Descriptor instead. func (*PatternFlowTcpCtlUrg) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{544} + return file_otg_proto_rawDescGZIP(), []int{550} } func (x *PatternFlowTcpCtlUrg) GetChoice() PatternFlowTcpCtlUrg_Choice_Enum { @@ -64343,7 +65901,7 @@ type PatternFlowTcpCtlAckCounter struct { func (x *PatternFlowTcpCtlAckCounter) Reset() { *x = PatternFlowTcpCtlAckCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[545] + mi := &file_otg_proto_msgTypes[551] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -64356,7 +65914,7 @@ func (x *PatternFlowTcpCtlAckCounter) String() string { func (*PatternFlowTcpCtlAckCounter) ProtoMessage() {} func (x *PatternFlowTcpCtlAckCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[545] + mi := &file_otg_proto_msgTypes[551] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64369,7 +65927,7 @@ func (x *PatternFlowTcpCtlAckCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpCtlAckCounter.ProtoReflect.Descriptor instead. func (*PatternFlowTcpCtlAckCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{545} + return file_otg_proto_rawDescGZIP(), []int{551} } func (x *PatternFlowTcpCtlAckCounter) GetStart() uint32 { @@ -64417,7 +65975,7 @@ type PatternFlowTcpCtlAckMetricTag struct { func (x *PatternFlowTcpCtlAckMetricTag) Reset() { *x = PatternFlowTcpCtlAckMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[546] + mi := &file_otg_proto_msgTypes[552] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -64430,7 +65988,7 @@ func (x *PatternFlowTcpCtlAckMetricTag) String() string { func (*PatternFlowTcpCtlAckMetricTag) ProtoMessage() {} func (x *PatternFlowTcpCtlAckMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[546] + mi := &file_otg_proto_msgTypes[552] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64443,7 +66001,7 @@ func (x *PatternFlowTcpCtlAckMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpCtlAckMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowTcpCtlAckMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{546} + return file_otg_proto_rawDescGZIP(), []int{552} } func (x *PatternFlowTcpCtlAckMetricTag) GetName() string { @@ -64495,7 +66053,7 @@ type PatternFlowTcpCtlAck struct { func (x *PatternFlowTcpCtlAck) Reset() { *x = PatternFlowTcpCtlAck{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[547] + mi := &file_otg_proto_msgTypes[553] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -64508,7 +66066,7 @@ func (x *PatternFlowTcpCtlAck) String() string { func (*PatternFlowTcpCtlAck) ProtoMessage() {} func (x *PatternFlowTcpCtlAck) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[547] + mi := &file_otg_proto_msgTypes[553] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64521,7 +66079,7 @@ func (x *PatternFlowTcpCtlAck) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpCtlAck.ProtoReflect.Descriptor instead. func (*PatternFlowTcpCtlAck) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{547} + return file_otg_proto_rawDescGZIP(), []int{553} } func (x *PatternFlowTcpCtlAck) GetChoice() PatternFlowTcpCtlAck_Choice_Enum { @@ -64586,7 +66144,7 @@ type PatternFlowTcpCtlPshCounter struct { func (x *PatternFlowTcpCtlPshCounter) Reset() { *x = PatternFlowTcpCtlPshCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[548] + mi := &file_otg_proto_msgTypes[554] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -64599,7 +66157,7 @@ func (x *PatternFlowTcpCtlPshCounter) String() string { func (*PatternFlowTcpCtlPshCounter) ProtoMessage() {} func (x *PatternFlowTcpCtlPshCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[548] + mi := &file_otg_proto_msgTypes[554] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64612,7 +66170,7 @@ func (x *PatternFlowTcpCtlPshCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpCtlPshCounter.ProtoReflect.Descriptor instead. func (*PatternFlowTcpCtlPshCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{548} + return file_otg_proto_rawDescGZIP(), []int{554} } func (x *PatternFlowTcpCtlPshCounter) GetStart() uint32 { @@ -64660,7 +66218,7 @@ type PatternFlowTcpCtlPshMetricTag struct { func (x *PatternFlowTcpCtlPshMetricTag) Reset() { *x = PatternFlowTcpCtlPshMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[549] + mi := &file_otg_proto_msgTypes[555] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -64673,7 +66231,7 @@ func (x *PatternFlowTcpCtlPshMetricTag) String() string { func (*PatternFlowTcpCtlPshMetricTag) ProtoMessage() {} func (x *PatternFlowTcpCtlPshMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[549] + mi := &file_otg_proto_msgTypes[555] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64686,7 +66244,7 @@ func (x *PatternFlowTcpCtlPshMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpCtlPshMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowTcpCtlPshMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{549} + return file_otg_proto_rawDescGZIP(), []int{555} } func (x *PatternFlowTcpCtlPshMetricTag) GetName() string { @@ -64738,7 +66296,7 @@ type PatternFlowTcpCtlPsh struct { func (x *PatternFlowTcpCtlPsh) Reset() { *x = PatternFlowTcpCtlPsh{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[550] + mi := &file_otg_proto_msgTypes[556] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -64751,7 +66309,7 @@ func (x *PatternFlowTcpCtlPsh) String() string { func (*PatternFlowTcpCtlPsh) ProtoMessage() {} func (x *PatternFlowTcpCtlPsh) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[550] + mi := &file_otg_proto_msgTypes[556] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64764,7 +66322,7 @@ func (x *PatternFlowTcpCtlPsh) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpCtlPsh.ProtoReflect.Descriptor instead. func (*PatternFlowTcpCtlPsh) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{550} + return file_otg_proto_rawDescGZIP(), []int{556} } func (x *PatternFlowTcpCtlPsh) GetChoice() PatternFlowTcpCtlPsh_Choice_Enum { @@ -64829,7 +66387,7 @@ type PatternFlowTcpCtlRstCounter struct { func (x *PatternFlowTcpCtlRstCounter) Reset() { *x = PatternFlowTcpCtlRstCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[551] + mi := &file_otg_proto_msgTypes[557] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -64842,7 +66400,7 @@ func (x *PatternFlowTcpCtlRstCounter) String() string { func (*PatternFlowTcpCtlRstCounter) ProtoMessage() {} func (x *PatternFlowTcpCtlRstCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[551] + mi := &file_otg_proto_msgTypes[557] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64855,7 +66413,7 @@ func (x *PatternFlowTcpCtlRstCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpCtlRstCounter.ProtoReflect.Descriptor instead. func (*PatternFlowTcpCtlRstCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{551} + return file_otg_proto_rawDescGZIP(), []int{557} } func (x *PatternFlowTcpCtlRstCounter) GetStart() uint32 { @@ -64903,7 +66461,7 @@ type PatternFlowTcpCtlRstMetricTag struct { func (x *PatternFlowTcpCtlRstMetricTag) Reset() { *x = PatternFlowTcpCtlRstMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[552] + mi := &file_otg_proto_msgTypes[558] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -64916,7 +66474,7 @@ func (x *PatternFlowTcpCtlRstMetricTag) String() string { func (*PatternFlowTcpCtlRstMetricTag) ProtoMessage() {} func (x *PatternFlowTcpCtlRstMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[552] + mi := &file_otg_proto_msgTypes[558] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64929,7 +66487,7 @@ func (x *PatternFlowTcpCtlRstMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpCtlRstMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowTcpCtlRstMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{552} + return file_otg_proto_rawDescGZIP(), []int{558} } func (x *PatternFlowTcpCtlRstMetricTag) GetName() string { @@ -64981,7 +66539,7 @@ type PatternFlowTcpCtlRst struct { func (x *PatternFlowTcpCtlRst) Reset() { *x = PatternFlowTcpCtlRst{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[553] + mi := &file_otg_proto_msgTypes[559] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -64994,7 +66552,7 @@ func (x *PatternFlowTcpCtlRst) String() string { func (*PatternFlowTcpCtlRst) ProtoMessage() {} func (x *PatternFlowTcpCtlRst) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[553] + mi := &file_otg_proto_msgTypes[559] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65007,7 +66565,7 @@ func (x *PatternFlowTcpCtlRst) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpCtlRst.ProtoReflect.Descriptor instead. func (*PatternFlowTcpCtlRst) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{553} + return file_otg_proto_rawDescGZIP(), []int{559} } func (x *PatternFlowTcpCtlRst) GetChoice() PatternFlowTcpCtlRst_Choice_Enum { @@ -65072,7 +66630,7 @@ type PatternFlowTcpCtlSynCounter struct { func (x *PatternFlowTcpCtlSynCounter) Reset() { *x = PatternFlowTcpCtlSynCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[554] + mi := &file_otg_proto_msgTypes[560] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -65085,7 +66643,7 @@ func (x *PatternFlowTcpCtlSynCounter) String() string { func (*PatternFlowTcpCtlSynCounter) ProtoMessage() {} func (x *PatternFlowTcpCtlSynCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[554] + mi := &file_otg_proto_msgTypes[560] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65098,7 +66656,7 @@ func (x *PatternFlowTcpCtlSynCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpCtlSynCounter.ProtoReflect.Descriptor instead. func (*PatternFlowTcpCtlSynCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{554} + return file_otg_proto_rawDescGZIP(), []int{560} } func (x *PatternFlowTcpCtlSynCounter) GetStart() uint32 { @@ -65146,7 +66704,7 @@ type PatternFlowTcpCtlSynMetricTag struct { func (x *PatternFlowTcpCtlSynMetricTag) Reset() { *x = PatternFlowTcpCtlSynMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[555] + mi := &file_otg_proto_msgTypes[561] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -65159,7 +66717,7 @@ func (x *PatternFlowTcpCtlSynMetricTag) String() string { func (*PatternFlowTcpCtlSynMetricTag) ProtoMessage() {} func (x *PatternFlowTcpCtlSynMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[555] + mi := &file_otg_proto_msgTypes[561] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65172,7 +66730,7 @@ func (x *PatternFlowTcpCtlSynMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpCtlSynMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowTcpCtlSynMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{555} + return file_otg_proto_rawDescGZIP(), []int{561} } func (x *PatternFlowTcpCtlSynMetricTag) GetName() string { @@ -65224,7 +66782,7 @@ type PatternFlowTcpCtlSyn struct { func (x *PatternFlowTcpCtlSyn) Reset() { *x = PatternFlowTcpCtlSyn{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[556] + mi := &file_otg_proto_msgTypes[562] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -65237,7 +66795,7 @@ func (x *PatternFlowTcpCtlSyn) String() string { func (*PatternFlowTcpCtlSyn) ProtoMessage() {} func (x *PatternFlowTcpCtlSyn) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[556] + mi := &file_otg_proto_msgTypes[562] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65250,7 +66808,7 @@ func (x *PatternFlowTcpCtlSyn) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpCtlSyn.ProtoReflect.Descriptor instead. func (*PatternFlowTcpCtlSyn) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{556} + return file_otg_proto_rawDescGZIP(), []int{562} } func (x *PatternFlowTcpCtlSyn) GetChoice() PatternFlowTcpCtlSyn_Choice_Enum { @@ -65315,7 +66873,7 @@ type PatternFlowTcpCtlFinCounter struct { func (x *PatternFlowTcpCtlFinCounter) Reset() { *x = PatternFlowTcpCtlFinCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[557] + mi := &file_otg_proto_msgTypes[563] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -65328,7 +66886,7 @@ func (x *PatternFlowTcpCtlFinCounter) String() string { func (*PatternFlowTcpCtlFinCounter) ProtoMessage() {} func (x *PatternFlowTcpCtlFinCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[557] + mi := &file_otg_proto_msgTypes[563] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65341,7 +66899,7 @@ func (x *PatternFlowTcpCtlFinCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpCtlFinCounter.ProtoReflect.Descriptor instead. func (*PatternFlowTcpCtlFinCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{557} + return file_otg_proto_rawDescGZIP(), []int{563} } func (x *PatternFlowTcpCtlFinCounter) GetStart() uint32 { @@ -65389,7 +66947,7 @@ type PatternFlowTcpCtlFinMetricTag struct { func (x *PatternFlowTcpCtlFinMetricTag) Reset() { *x = PatternFlowTcpCtlFinMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[558] + mi := &file_otg_proto_msgTypes[564] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -65402,7 +66960,7 @@ func (x *PatternFlowTcpCtlFinMetricTag) String() string { func (*PatternFlowTcpCtlFinMetricTag) ProtoMessage() {} func (x *PatternFlowTcpCtlFinMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[558] + mi := &file_otg_proto_msgTypes[564] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65415,7 +66973,7 @@ func (x *PatternFlowTcpCtlFinMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpCtlFinMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowTcpCtlFinMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{558} + return file_otg_proto_rawDescGZIP(), []int{564} } func (x *PatternFlowTcpCtlFinMetricTag) GetName() string { @@ -65467,7 +67025,7 @@ type PatternFlowTcpCtlFin struct { func (x *PatternFlowTcpCtlFin) Reset() { *x = PatternFlowTcpCtlFin{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[559] + mi := &file_otg_proto_msgTypes[565] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -65480,7 +67038,7 @@ func (x *PatternFlowTcpCtlFin) String() string { func (*PatternFlowTcpCtlFin) ProtoMessage() {} func (x *PatternFlowTcpCtlFin) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[559] + mi := &file_otg_proto_msgTypes[565] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65493,7 +67051,7 @@ func (x *PatternFlowTcpCtlFin) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpCtlFin.ProtoReflect.Descriptor instead. func (*PatternFlowTcpCtlFin) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{559} + return file_otg_proto_rawDescGZIP(), []int{565} } func (x *PatternFlowTcpCtlFin) GetChoice() PatternFlowTcpCtlFin_Choice_Enum { @@ -65558,7 +67116,7 @@ type PatternFlowTcpWindowCounter struct { func (x *PatternFlowTcpWindowCounter) Reset() { *x = PatternFlowTcpWindowCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[560] + mi := &file_otg_proto_msgTypes[566] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -65571,7 +67129,7 @@ func (x *PatternFlowTcpWindowCounter) String() string { func (*PatternFlowTcpWindowCounter) ProtoMessage() {} func (x *PatternFlowTcpWindowCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[560] + mi := &file_otg_proto_msgTypes[566] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65584,7 +67142,7 @@ func (x *PatternFlowTcpWindowCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpWindowCounter.ProtoReflect.Descriptor instead. func (*PatternFlowTcpWindowCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{560} + return file_otg_proto_rawDescGZIP(), []int{566} } func (x *PatternFlowTcpWindowCounter) GetStart() uint32 { @@ -65632,7 +67190,7 @@ type PatternFlowTcpWindowMetricTag struct { func (x *PatternFlowTcpWindowMetricTag) Reset() { *x = PatternFlowTcpWindowMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[561] + mi := &file_otg_proto_msgTypes[567] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -65645,7 +67203,7 @@ func (x *PatternFlowTcpWindowMetricTag) String() string { func (*PatternFlowTcpWindowMetricTag) ProtoMessage() {} func (x *PatternFlowTcpWindowMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[561] + mi := &file_otg_proto_msgTypes[567] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65658,7 +67216,7 @@ func (x *PatternFlowTcpWindowMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpWindowMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowTcpWindowMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{561} + return file_otg_proto_rawDescGZIP(), []int{567} } func (x *PatternFlowTcpWindowMetricTag) GetName() string { @@ -65710,7 +67268,7 @@ type PatternFlowTcpWindow struct { func (x *PatternFlowTcpWindow) Reset() { *x = PatternFlowTcpWindow{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[562] + mi := &file_otg_proto_msgTypes[568] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -65723,7 +67281,7 @@ func (x *PatternFlowTcpWindow) String() string { func (*PatternFlowTcpWindow) ProtoMessage() {} func (x *PatternFlowTcpWindow) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[562] + mi := &file_otg_proto_msgTypes[568] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65736,7 +67294,7 @@ func (x *PatternFlowTcpWindow) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowTcpWindow.ProtoReflect.Descriptor instead. func (*PatternFlowTcpWindow) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{562} + return file_otg_proto_rawDescGZIP(), []int{568} } func (x *PatternFlowTcpWindow) GetChoice() PatternFlowTcpWindow_Choice_Enum { @@ -65801,7 +67359,7 @@ type PatternFlowUdpSrcPortCounter struct { func (x *PatternFlowUdpSrcPortCounter) Reset() { *x = PatternFlowUdpSrcPortCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[563] + mi := &file_otg_proto_msgTypes[569] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -65814,7 +67372,7 @@ func (x *PatternFlowUdpSrcPortCounter) String() string { func (*PatternFlowUdpSrcPortCounter) ProtoMessage() {} func (x *PatternFlowUdpSrcPortCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[563] + mi := &file_otg_proto_msgTypes[569] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65827,7 +67385,7 @@ func (x *PatternFlowUdpSrcPortCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowUdpSrcPortCounter.ProtoReflect.Descriptor instead. func (*PatternFlowUdpSrcPortCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{563} + return file_otg_proto_rawDescGZIP(), []int{569} } func (x *PatternFlowUdpSrcPortCounter) GetStart() uint32 { @@ -65875,7 +67433,7 @@ type PatternFlowUdpSrcPortMetricTag struct { func (x *PatternFlowUdpSrcPortMetricTag) Reset() { *x = PatternFlowUdpSrcPortMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[564] + mi := &file_otg_proto_msgTypes[570] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -65888,7 +67446,7 @@ func (x *PatternFlowUdpSrcPortMetricTag) String() string { func (*PatternFlowUdpSrcPortMetricTag) ProtoMessage() {} func (x *PatternFlowUdpSrcPortMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[564] + mi := &file_otg_proto_msgTypes[570] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65901,7 +67459,7 @@ func (x *PatternFlowUdpSrcPortMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowUdpSrcPortMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowUdpSrcPortMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{564} + return file_otg_proto_rawDescGZIP(), []int{570} } func (x *PatternFlowUdpSrcPortMetricTag) GetName() string { @@ -65953,7 +67511,7 @@ type PatternFlowUdpSrcPort struct { func (x *PatternFlowUdpSrcPort) Reset() { *x = PatternFlowUdpSrcPort{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[565] + mi := &file_otg_proto_msgTypes[571] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -65966,7 +67524,7 @@ func (x *PatternFlowUdpSrcPort) String() string { func (*PatternFlowUdpSrcPort) ProtoMessage() {} func (x *PatternFlowUdpSrcPort) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[565] + mi := &file_otg_proto_msgTypes[571] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65979,7 +67537,7 @@ func (x *PatternFlowUdpSrcPort) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowUdpSrcPort.ProtoReflect.Descriptor instead. func (*PatternFlowUdpSrcPort) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{565} + return file_otg_proto_rawDescGZIP(), []int{571} } func (x *PatternFlowUdpSrcPort) GetChoice() PatternFlowUdpSrcPort_Choice_Enum { @@ -66044,7 +67602,7 @@ type PatternFlowUdpDstPortCounter struct { func (x *PatternFlowUdpDstPortCounter) Reset() { *x = PatternFlowUdpDstPortCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[566] + mi := &file_otg_proto_msgTypes[572] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -66057,7 +67615,7 @@ func (x *PatternFlowUdpDstPortCounter) String() string { func (*PatternFlowUdpDstPortCounter) ProtoMessage() {} func (x *PatternFlowUdpDstPortCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[566] + mi := &file_otg_proto_msgTypes[572] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -66070,7 +67628,7 @@ func (x *PatternFlowUdpDstPortCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowUdpDstPortCounter.ProtoReflect.Descriptor instead. func (*PatternFlowUdpDstPortCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{566} + return file_otg_proto_rawDescGZIP(), []int{572} } func (x *PatternFlowUdpDstPortCounter) GetStart() uint32 { @@ -66118,7 +67676,7 @@ type PatternFlowUdpDstPortMetricTag struct { func (x *PatternFlowUdpDstPortMetricTag) Reset() { *x = PatternFlowUdpDstPortMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[567] + mi := &file_otg_proto_msgTypes[573] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -66131,7 +67689,7 @@ func (x *PatternFlowUdpDstPortMetricTag) String() string { func (*PatternFlowUdpDstPortMetricTag) ProtoMessage() {} func (x *PatternFlowUdpDstPortMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[567] + mi := &file_otg_proto_msgTypes[573] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -66144,7 +67702,7 @@ func (x *PatternFlowUdpDstPortMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowUdpDstPortMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowUdpDstPortMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{567} + return file_otg_proto_rawDescGZIP(), []int{573} } func (x *PatternFlowUdpDstPortMetricTag) GetName() string { @@ -66196,7 +67754,7 @@ type PatternFlowUdpDstPort struct { func (x *PatternFlowUdpDstPort) Reset() { *x = PatternFlowUdpDstPort{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[568] + mi := &file_otg_proto_msgTypes[574] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -66209,7 +67767,7 @@ func (x *PatternFlowUdpDstPort) String() string { func (*PatternFlowUdpDstPort) ProtoMessage() {} func (x *PatternFlowUdpDstPort) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[568] + mi := &file_otg_proto_msgTypes[574] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -66222,7 +67780,7 @@ func (x *PatternFlowUdpDstPort) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowUdpDstPort.ProtoReflect.Descriptor instead. func (*PatternFlowUdpDstPort) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{568} + return file_otg_proto_rawDescGZIP(), []int{574} } func (x *PatternFlowUdpDstPort) GetChoice() PatternFlowUdpDstPort_Choice_Enum { @@ -66287,7 +67845,7 @@ type PatternFlowUdpLengthCounter struct { func (x *PatternFlowUdpLengthCounter) Reset() { *x = PatternFlowUdpLengthCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[569] + mi := &file_otg_proto_msgTypes[575] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -66300,7 +67858,7 @@ func (x *PatternFlowUdpLengthCounter) String() string { func (*PatternFlowUdpLengthCounter) ProtoMessage() {} func (x *PatternFlowUdpLengthCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[569] + mi := &file_otg_proto_msgTypes[575] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -66313,7 +67871,7 @@ func (x *PatternFlowUdpLengthCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowUdpLengthCounter.ProtoReflect.Descriptor instead. func (*PatternFlowUdpLengthCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{569} + return file_otg_proto_rawDescGZIP(), []int{575} } func (x *PatternFlowUdpLengthCounter) GetStart() uint32 { @@ -66361,7 +67919,7 @@ type PatternFlowUdpLengthMetricTag struct { func (x *PatternFlowUdpLengthMetricTag) Reset() { *x = PatternFlowUdpLengthMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[570] + mi := &file_otg_proto_msgTypes[576] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -66374,7 +67932,7 @@ func (x *PatternFlowUdpLengthMetricTag) String() string { func (*PatternFlowUdpLengthMetricTag) ProtoMessage() {} func (x *PatternFlowUdpLengthMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[570] + mi := &file_otg_proto_msgTypes[576] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -66387,7 +67945,7 @@ func (x *PatternFlowUdpLengthMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowUdpLengthMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowUdpLengthMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{570} + return file_otg_proto_rawDescGZIP(), []int{576} } func (x *PatternFlowUdpLengthMetricTag) GetName() string { @@ -66439,7 +67997,7 @@ type PatternFlowUdpLength struct { func (x *PatternFlowUdpLength) Reset() { *x = PatternFlowUdpLength{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[571] + mi := &file_otg_proto_msgTypes[577] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -66452,7 +68010,7 @@ func (x *PatternFlowUdpLength) String() string { func (*PatternFlowUdpLength) ProtoMessage() {} func (x *PatternFlowUdpLength) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[571] + mi := &file_otg_proto_msgTypes[577] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -66465,7 +68023,7 @@ func (x *PatternFlowUdpLength) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowUdpLength.ProtoReflect.Descriptor instead. func (*PatternFlowUdpLength) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{571} + return file_otg_proto_rawDescGZIP(), []int{577} } func (x *PatternFlowUdpLength) GetChoice() PatternFlowUdpLength_Choice_Enum { @@ -66529,7 +68087,7 @@ type PatternFlowUdpChecksum struct { func (x *PatternFlowUdpChecksum) Reset() { *x = PatternFlowUdpChecksum{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[572] + mi := &file_otg_proto_msgTypes[578] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -66542,7 +68100,7 @@ func (x *PatternFlowUdpChecksum) String() string { func (*PatternFlowUdpChecksum) ProtoMessage() {} func (x *PatternFlowUdpChecksum) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[572] + mi := &file_otg_proto_msgTypes[578] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -66555,7 +68113,7 @@ func (x *PatternFlowUdpChecksum) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowUdpChecksum.ProtoReflect.Descriptor instead. func (*PatternFlowUdpChecksum) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{572} + return file_otg_proto_rawDescGZIP(), []int{578} } func (x *PatternFlowUdpChecksum) GetChoice() PatternFlowUdpChecksum_Choice_Enum { @@ -66599,7 +68157,7 @@ type PatternFlowGreChecksumPresentCounter struct { func (x *PatternFlowGreChecksumPresentCounter) Reset() { *x = PatternFlowGreChecksumPresentCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[573] + mi := &file_otg_proto_msgTypes[579] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -66612,7 +68170,7 @@ func (x *PatternFlowGreChecksumPresentCounter) String() string { func (*PatternFlowGreChecksumPresentCounter) ProtoMessage() {} func (x *PatternFlowGreChecksumPresentCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[573] + mi := &file_otg_proto_msgTypes[579] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -66625,7 +68183,7 @@ func (x *PatternFlowGreChecksumPresentCounter) ProtoReflect() protoreflect.Messa // Deprecated: Use PatternFlowGreChecksumPresentCounter.ProtoReflect.Descriptor instead. func (*PatternFlowGreChecksumPresentCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{573} + return file_otg_proto_rawDescGZIP(), []int{579} } func (x *PatternFlowGreChecksumPresentCounter) GetStart() uint32 { @@ -66673,7 +68231,7 @@ type PatternFlowGreChecksumPresentMetricTag struct { func (x *PatternFlowGreChecksumPresentMetricTag) Reset() { *x = PatternFlowGreChecksumPresentMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[574] + mi := &file_otg_proto_msgTypes[580] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -66686,7 +68244,7 @@ func (x *PatternFlowGreChecksumPresentMetricTag) String() string { func (*PatternFlowGreChecksumPresentMetricTag) ProtoMessage() {} func (x *PatternFlowGreChecksumPresentMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[574] + mi := &file_otg_proto_msgTypes[580] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -66699,7 +68257,7 @@ func (x *PatternFlowGreChecksumPresentMetricTag) ProtoReflect() protoreflect.Mes // Deprecated: Use PatternFlowGreChecksumPresentMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowGreChecksumPresentMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{574} + return file_otg_proto_rawDescGZIP(), []int{580} } func (x *PatternFlowGreChecksumPresentMetricTag) GetName() string { @@ -66751,7 +68309,7 @@ type PatternFlowGreChecksumPresent struct { func (x *PatternFlowGreChecksumPresent) Reset() { *x = PatternFlowGreChecksumPresent{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[575] + mi := &file_otg_proto_msgTypes[581] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -66764,7 +68322,7 @@ func (x *PatternFlowGreChecksumPresent) String() string { func (*PatternFlowGreChecksumPresent) ProtoMessage() {} func (x *PatternFlowGreChecksumPresent) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[575] + mi := &file_otg_proto_msgTypes[581] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -66777,7 +68335,7 @@ func (x *PatternFlowGreChecksumPresent) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGreChecksumPresent.ProtoReflect.Descriptor instead. func (*PatternFlowGreChecksumPresent) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{575} + return file_otg_proto_rawDescGZIP(), []int{581} } func (x *PatternFlowGreChecksumPresent) GetChoice() PatternFlowGreChecksumPresent_Choice_Enum { @@ -66842,7 +68400,7 @@ type PatternFlowGreReserved0Counter struct { func (x *PatternFlowGreReserved0Counter) Reset() { *x = PatternFlowGreReserved0Counter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[576] + mi := &file_otg_proto_msgTypes[582] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -66855,7 +68413,7 @@ func (x *PatternFlowGreReserved0Counter) String() string { func (*PatternFlowGreReserved0Counter) ProtoMessage() {} func (x *PatternFlowGreReserved0Counter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[576] + mi := &file_otg_proto_msgTypes[582] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -66868,7 +68426,7 @@ func (x *PatternFlowGreReserved0Counter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGreReserved0Counter.ProtoReflect.Descriptor instead. func (*PatternFlowGreReserved0Counter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{576} + return file_otg_proto_rawDescGZIP(), []int{582} } func (x *PatternFlowGreReserved0Counter) GetStart() uint32 { @@ -66916,7 +68474,7 @@ type PatternFlowGreReserved0MetricTag struct { func (x *PatternFlowGreReserved0MetricTag) Reset() { *x = PatternFlowGreReserved0MetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[577] + mi := &file_otg_proto_msgTypes[583] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -66929,7 +68487,7 @@ func (x *PatternFlowGreReserved0MetricTag) String() string { func (*PatternFlowGreReserved0MetricTag) ProtoMessage() {} func (x *PatternFlowGreReserved0MetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[577] + mi := &file_otg_proto_msgTypes[583] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -66942,7 +68500,7 @@ func (x *PatternFlowGreReserved0MetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGreReserved0MetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowGreReserved0MetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{577} + return file_otg_proto_rawDescGZIP(), []int{583} } func (x *PatternFlowGreReserved0MetricTag) GetName() string { @@ -66994,7 +68552,7 @@ type PatternFlowGreReserved0 struct { func (x *PatternFlowGreReserved0) Reset() { *x = PatternFlowGreReserved0{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[578] + mi := &file_otg_proto_msgTypes[584] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -67007,7 +68565,7 @@ func (x *PatternFlowGreReserved0) String() string { func (*PatternFlowGreReserved0) ProtoMessage() {} func (x *PatternFlowGreReserved0) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[578] + mi := &file_otg_proto_msgTypes[584] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -67020,7 +68578,7 @@ func (x *PatternFlowGreReserved0) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGreReserved0.ProtoReflect.Descriptor instead. func (*PatternFlowGreReserved0) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{578} + return file_otg_proto_rawDescGZIP(), []int{584} } func (x *PatternFlowGreReserved0) GetChoice() PatternFlowGreReserved0_Choice_Enum { @@ -67085,7 +68643,7 @@ type PatternFlowGreVersionCounter struct { func (x *PatternFlowGreVersionCounter) Reset() { *x = PatternFlowGreVersionCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[579] + mi := &file_otg_proto_msgTypes[585] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -67098,7 +68656,7 @@ func (x *PatternFlowGreVersionCounter) String() string { func (*PatternFlowGreVersionCounter) ProtoMessage() {} func (x *PatternFlowGreVersionCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[579] + mi := &file_otg_proto_msgTypes[585] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -67111,7 +68669,7 @@ func (x *PatternFlowGreVersionCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGreVersionCounter.ProtoReflect.Descriptor instead. func (*PatternFlowGreVersionCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{579} + return file_otg_proto_rawDescGZIP(), []int{585} } func (x *PatternFlowGreVersionCounter) GetStart() uint32 { @@ -67159,7 +68717,7 @@ type PatternFlowGreVersionMetricTag struct { func (x *PatternFlowGreVersionMetricTag) Reset() { *x = PatternFlowGreVersionMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[580] + mi := &file_otg_proto_msgTypes[586] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -67172,7 +68730,7 @@ func (x *PatternFlowGreVersionMetricTag) String() string { func (*PatternFlowGreVersionMetricTag) ProtoMessage() {} func (x *PatternFlowGreVersionMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[580] + mi := &file_otg_proto_msgTypes[586] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -67185,7 +68743,7 @@ func (x *PatternFlowGreVersionMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGreVersionMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowGreVersionMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{580} + return file_otg_proto_rawDescGZIP(), []int{586} } func (x *PatternFlowGreVersionMetricTag) GetName() string { @@ -67237,7 +68795,7 @@ type PatternFlowGreVersion struct { func (x *PatternFlowGreVersion) Reset() { *x = PatternFlowGreVersion{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[581] + mi := &file_otg_proto_msgTypes[587] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -67250,7 +68808,7 @@ func (x *PatternFlowGreVersion) String() string { func (*PatternFlowGreVersion) ProtoMessage() {} func (x *PatternFlowGreVersion) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[581] + mi := &file_otg_proto_msgTypes[587] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -67263,7 +68821,7 @@ func (x *PatternFlowGreVersion) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGreVersion.ProtoReflect.Descriptor instead. func (*PatternFlowGreVersion) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{581} + return file_otg_proto_rawDescGZIP(), []int{587} } func (x *PatternFlowGreVersion) GetChoice() PatternFlowGreVersion_Choice_Enum { @@ -67328,7 +68886,7 @@ type PatternFlowGreProtocolCounter struct { func (x *PatternFlowGreProtocolCounter) Reset() { *x = PatternFlowGreProtocolCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[582] + mi := &file_otg_proto_msgTypes[588] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -67341,7 +68899,7 @@ func (x *PatternFlowGreProtocolCounter) String() string { func (*PatternFlowGreProtocolCounter) ProtoMessage() {} func (x *PatternFlowGreProtocolCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[582] + mi := &file_otg_proto_msgTypes[588] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -67354,7 +68912,7 @@ func (x *PatternFlowGreProtocolCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGreProtocolCounter.ProtoReflect.Descriptor instead. func (*PatternFlowGreProtocolCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{582} + return file_otg_proto_rawDescGZIP(), []int{588} } func (x *PatternFlowGreProtocolCounter) GetStart() uint32 { @@ -67402,7 +68960,7 @@ type PatternFlowGreProtocolMetricTag struct { func (x *PatternFlowGreProtocolMetricTag) Reset() { *x = PatternFlowGreProtocolMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[583] + mi := &file_otg_proto_msgTypes[589] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -67415,7 +68973,7 @@ func (x *PatternFlowGreProtocolMetricTag) String() string { func (*PatternFlowGreProtocolMetricTag) ProtoMessage() {} func (x *PatternFlowGreProtocolMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[583] + mi := &file_otg_proto_msgTypes[589] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -67428,7 +68986,7 @@ func (x *PatternFlowGreProtocolMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGreProtocolMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowGreProtocolMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{583} + return file_otg_proto_rawDescGZIP(), []int{589} } func (x *PatternFlowGreProtocolMetricTag) GetName() string { @@ -67480,7 +69038,7 @@ type PatternFlowGreProtocol struct { func (x *PatternFlowGreProtocol) Reset() { *x = PatternFlowGreProtocol{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[584] + mi := &file_otg_proto_msgTypes[590] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -67493,7 +69051,7 @@ func (x *PatternFlowGreProtocol) String() string { func (*PatternFlowGreProtocol) ProtoMessage() {} func (x *PatternFlowGreProtocol) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[584] + mi := &file_otg_proto_msgTypes[590] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -67506,7 +69064,7 @@ func (x *PatternFlowGreProtocol) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGreProtocol.ProtoReflect.Descriptor instead. func (*PatternFlowGreProtocol) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{584} + return file_otg_proto_rawDescGZIP(), []int{590} } func (x *PatternFlowGreProtocol) GetChoice() PatternFlowGreProtocol_Choice_Enum { @@ -67571,7 +69129,7 @@ type PatternFlowGreChecksum struct { func (x *PatternFlowGreChecksum) Reset() { *x = PatternFlowGreChecksum{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[585] + mi := &file_otg_proto_msgTypes[591] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -67584,7 +69142,7 @@ func (x *PatternFlowGreChecksum) String() string { func (*PatternFlowGreChecksum) ProtoMessage() {} func (x *PatternFlowGreChecksum) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[585] + mi := &file_otg_proto_msgTypes[591] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -67597,7 +69155,7 @@ func (x *PatternFlowGreChecksum) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGreChecksum.ProtoReflect.Descriptor instead. func (*PatternFlowGreChecksum) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{585} + return file_otg_proto_rawDescGZIP(), []int{591} } func (x *PatternFlowGreChecksum) GetChoice() PatternFlowGreChecksum_Choice_Enum { @@ -67641,7 +69199,7 @@ type PatternFlowGreReserved1Counter struct { func (x *PatternFlowGreReserved1Counter) Reset() { *x = PatternFlowGreReserved1Counter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[586] + mi := &file_otg_proto_msgTypes[592] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -67654,7 +69212,7 @@ func (x *PatternFlowGreReserved1Counter) String() string { func (*PatternFlowGreReserved1Counter) ProtoMessage() {} func (x *PatternFlowGreReserved1Counter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[586] + mi := &file_otg_proto_msgTypes[592] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -67667,7 +69225,7 @@ func (x *PatternFlowGreReserved1Counter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGreReserved1Counter.ProtoReflect.Descriptor instead. func (*PatternFlowGreReserved1Counter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{586} + return file_otg_proto_rawDescGZIP(), []int{592} } func (x *PatternFlowGreReserved1Counter) GetStart() uint32 { @@ -67715,7 +69273,7 @@ type PatternFlowGreReserved1MetricTag struct { func (x *PatternFlowGreReserved1MetricTag) Reset() { *x = PatternFlowGreReserved1MetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[587] + mi := &file_otg_proto_msgTypes[593] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -67728,7 +69286,7 @@ func (x *PatternFlowGreReserved1MetricTag) String() string { func (*PatternFlowGreReserved1MetricTag) ProtoMessage() {} func (x *PatternFlowGreReserved1MetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[587] + mi := &file_otg_proto_msgTypes[593] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -67741,7 +69299,7 @@ func (x *PatternFlowGreReserved1MetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGreReserved1MetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowGreReserved1MetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{587} + return file_otg_proto_rawDescGZIP(), []int{593} } func (x *PatternFlowGreReserved1MetricTag) GetName() string { @@ -67793,7 +69351,7 @@ type PatternFlowGreReserved1 struct { func (x *PatternFlowGreReserved1) Reset() { *x = PatternFlowGreReserved1{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[588] + mi := &file_otg_proto_msgTypes[594] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -67806,7 +69364,7 @@ func (x *PatternFlowGreReserved1) String() string { func (*PatternFlowGreReserved1) ProtoMessage() {} func (x *PatternFlowGreReserved1) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[588] + mi := &file_otg_proto_msgTypes[594] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -67819,7 +69377,7 @@ func (x *PatternFlowGreReserved1) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGreReserved1.ProtoReflect.Descriptor instead. func (*PatternFlowGreReserved1) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{588} + return file_otg_proto_rawDescGZIP(), []int{594} } func (x *PatternFlowGreReserved1) GetChoice() PatternFlowGreReserved1_Choice_Enum { @@ -67884,7 +69442,7 @@ type PatternFlowGtpv1VersionCounter struct { func (x *PatternFlowGtpv1VersionCounter) Reset() { *x = PatternFlowGtpv1VersionCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[589] + mi := &file_otg_proto_msgTypes[595] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -67897,7 +69455,7 @@ func (x *PatternFlowGtpv1VersionCounter) String() string { func (*PatternFlowGtpv1VersionCounter) ProtoMessage() {} func (x *PatternFlowGtpv1VersionCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[589] + mi := &file_otg_proto_msgTypes[595] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -67910,7 +69468,7 @@ func (x *PatternFlowGtpv1VersionCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv1VersionCounter.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv1VersionCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{589} + return file_otg_proto_rawDescGZIP(), []int{595} } func (x *PatternFlowGtpv1VersionCounter) GetStart() uint32 { @@ -67958,7 +69516,7 @@ type PatternFlowGtpv1VersionMetricTag struct { func (x *PatternFlowGtpv1VersionMetricTag) Reset() { *x = PatternFlowGtpv1VersionMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[590] + mi := &file_otg_proto_msgTypes[596] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -67971,7 +69529,7 @@ func (x *PatternFlowGtpv1VersionMetricTag) String() string { func (*PatternFlowGtpv1VersionMetricTag) ProtoMessage() {} func (x *PatternFlowGtpv1VersionMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[590] + mi := &file_otg_proto_msgTypes[596] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -67984,7 +69542,7 @@ func (x *PatternFlowGtpv1VersionMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv1VersionMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv1VersionMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{590} + return file_otg_proto_rawDescGZIP(), []int{596} } func (x *PatternFlowGtpv1VersionMetricTag) GetName() string { @@ -68036,7 +69594,7 @@ type PatternFlowGtpv1Version struct { func (x *PatternFlowGtpv1Version) Reset() { *x = PatternFlowGtpv1Version{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[591] + mi := &file_otg_proto_msgTypes[597] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -68049,7 +69607,7 @@ func (x *PatternFlowGtpv1Version) String() string { func (*PatternFlowGtpv1Version) ProtoMessage() {} func (x *PatternFlowGtpv1Version) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[591] + mi := &file_otg_proto_msgTypes[597] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -68062,7 +69620,7 @@ func (x *PatternFlowGtpv1Version) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv1Version.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv1Version) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{591} + return file_otg_proto_rawDescGZIP(), []int{597} } func (x *PatternFlowGtpv1Version) GetChoice() PatternFlowGtpv1Version_Choice_Enum { @@ -68127,7 +69685,7 @@ type PatternFlowGtpv1ProtocolTypeCounter struct { func (x *PatternFlowGtpv1ProtocolTypeCounter) Reset() { *x = PatternFlowGtpv1ProtocolTypeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[592] + mi := &file_otg_proto_msgTypes[598] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -68140,7 +69698,7 @@ func (x *PatternFlowGtpv1ProtocolTypeCounter) String() string { func (*PatternFlowGtpv1ProtocolTypeCounter) ProtoMessage() {} func (x *PatternFlowGtpv1ProtocolTypeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[592] + mi := &file_otg_proto_msgTypes[598] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -68153,7 +69711,7 @@ func (x *PatternFlowGtpv1ProtocolTypeCounter) ProtoReflect() protoreflect.Messag // Deprecated: Use PatternFlowGtpv1ProtocolTypeCounter.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv1ProtocolTypeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{592} + return file_otg_proto_rawDescGZIP(), []int{598} } func (x *PatternFlowGtpv1ProtocolTypeCounter) GetStart() uint32 { @@ -68201,7 +69759,7 @@ type PatternFlowGtpv1ProtocolTypeMetricTag struct { func (x *PatternFlowGtpv1ProtocolTypeMetricTag) Reset() { *x = PatternFlowGtpv1ProtocolTypeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[593] + mi := &file_otg_proto_msgTypes[599] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -68214,7 +69772,7 @@ func (x *PatternFlowGtpv1ProtocolTypeMetricTag) String() string { func (*PatternFlowGtpv1ProtocolTypeMetricTag) ProtoMessage() {} func (x *PatternFlowGtpv1ProtocolTypeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[593] + mi := &file_otg_proto_msgTypes[599] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -68227,7 +69785,7 @@ func (x *PatternFlowGtpv1ProtocolTypeMetricTag) ProtoReflect() protoreflect.Mess // Deprecated: Use PatternFlowGtpv1ProtocolTypeMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv1ProtocolTypeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{593} + return file_otg_proto_rawDescGZIP(), []int{599} } func (x *PatternFlowGtpv1ProtocolTypeMetricTag) GetName() string { @@ -68279,7 +69837,7 @@ type PatternFlowGtpv1ProtocolType struct { func (x *PatternFlowGtpv1ProtocolType) Reset() { *x = PatternFlowGtpv1ProtocolType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[594] + mi := &file_otg_proto_msgTypes[600] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -68292,7 +69850,7 @@ func (x *PatternFlowGtpv1ProtocolType) String() string { func (*PatternFlowGtpv1ProtocolType) ProtoMessage() {} func (x *PatternFlowGtpv1ProtocolType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[594] + mi := &file_otg_proto_msgTypes[600] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -68305,7 +69863,7 @@ func (x *PatternFlowGtpv1ProtocolType) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv1ProtocolType.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv1ProtocolType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{594} + return file_otg_proto_rawDescGZIP(), []int{600} } func (x *PatternFlowGtpv1ProtocolType) GetChoice() PatternFlowGtpv1ProtocolType_Choice_Enum { @@ -68370,7 +69928,7 @@ type PatternFlowGtpv1ReservedCounter struct { func (x *PatternFlowGtpv1ReservedCounter) Reset() { *x = PatternFlowGtpv1ReservedCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[595] + mi := &file_otg_proto_msgTypes[601] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -68383,7 +69941,7 @@ func (x *PatternFlowGtpv1ReservedCounter) String() string { func (*PatternFlowGtpv1ReservedCounter) ProtoMessage() {} func (x *PatternFlowGtpv1ReservedCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[595] + mi := &file_otg_proto_msgTypes[601] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -68396,7 +69954,7 @@ func (x *PatternFlowGtpv1ReservedCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv1ReservedCounter.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv1ReservedCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{595} + return file_otg_proto_rawDescGZIP(), []int{601} } func (x *PatternFlowGtpv1ReservedCounter) GetStart() uint32 { @@ -68444,7 +70002,7 @@ type PatternFlowGtpv1ReservedMetricTag struct { func (x *PatternFlowGtpv1ReservedMetricTag) Reset() { *x = PatternFlowGtpv1ReservedMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[596] + mi := &file_otg_proto_msgTypes[602] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -68457,7 +70015,7 @@ func (x *PatternFlowGtpv1ReservedMetricTag) String() string { func (*PatternFlowGtpv1ReservedMetricTag) ProtoMessage() {} func (x *PatternFlowGtpv1ReservedMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[596] + mi := &file_otg_proto_msgTypes[602] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -68470,7 +70028,7 @@ func (x *PatternFlowGtpv1ReservedMetricTag) ProtoReflect() protoreflect.Message // Deprecated: Use PatternFlowGtpv1ReservedMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv1ReservedMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{596} + return file_otg_proto_rawDescGZIP(), []int{602} } func (x *PatternFlowGtpv1ReservedMetricTag) GetName() string { @@ -68522,7 +70080,7 @@ type PatternFlowGtpv1Reserved struct { func (x *PatternFlowGtpv1Reserved) Reset() { *x = PatternFlowGtpv1Reserved{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[597] + mi := &file_otg_proto_msgTypes[603] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -68535,7 +70093,7 @@ func (x *PatternFlowGtpv1Reserved) String() string { func (*PatternFlowGtpv1Reserved) ProtoMessage() {} func (x *PatternFlowGtpv1Reserved) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[597] + mi := &file_otg_proto_msgTypes[603] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -68548,7 +70106,7 @@ func (x *PatternFlowGtpv1Reserved) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv1Reserved.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv1Reserved) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{597} + return file_otg_proto_rawDescGZIP(), []int{603} } func (x *PatternFlowGtpv1Reserved) GetChoice() PatternFlowGtpv1Reserved_Choice_Enum { @@ -68613,7 +70171,7 @@ type PatternFlowGtpv1EFlagCounter struct { func (x *PatternFlowGtpv1EFlagCounter) Reset() { *x = PatternFlowGtpv1EFlagCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[598] + mi := &file_otg_proto_msgTypes[604] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -68626,7 +70184,7 @@ func (x *PatternFlowGtpv1EFlagCounter) String() string { func (*PatternFlowGtpv1EFlagCounter) ProtoMessage() {} func (x *PatternFlowGtpv1EFlagCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[598] + mi := &file_otg_proto_msgTypes[604] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -68639,7 +70197,7 @@ func (x *PatternFlowGtpv1EFlagCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv1EFlagCounter.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv1EFlagCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{598} + return file_otg_proto_rawDescGZIP(), []int{604} } func (x *PatternFlowGtpv1EFlagCounter) GetStart() uint32 { @@ -68687,7 +70245,7 @@ type PatternFlowGtpv1EFlagMetricTag struct { func (x *PatternFlowGtpv1EFlagMetricTag) Reset() { *x = PatternFlowGtpv1EFlagMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[599] + mi := &file_otg_proto_msgTypes[605] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -68700,7 +70258,7 @@ func (x *PatternFlowGtpv1EFlagMetricTag) String() string { func (*PatternFlowGtpv1EFlagMetricTag) ProtoMessage() {} func (x *PatternFlowGtpv1EFlagMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[599] + mi := &file_otg_proto_msgTypes[605] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -68713,7 +70271,7 @@ func (x *PatternFlowGtpv1EFlagMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv1EFlagMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv1EFlagMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{599} + return file_otg_proto_rawDescGZIP(), []int{605} } func (x *PatternFlowGtpv1EFlagMetricTag) GetName() string { @@ -68765,7 +70323,7 @@ type PatternFlowGtpv1EFlag struct { func (x *PatternFlowGtpv1EFlag) Reset() { *x = PatternFlowGtpv1EFlag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[600] + mi := &file_otg_proto_msgTypes[606] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -68778,7 +70336,7 @@ func (x *PatternFlowGtpv1EFlag) String() string { func (*PatternFlowGtpv1EFlag) ProtoMessage() {} func (x *PatternFlowGtpv1EFlag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[600] + mi := &file_otg_proto_msgTypes[606] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -68791,7 +70349,7 @@ func (x *PatternFlowGtpv1EFlag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv1EFlag.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv1EFlag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{600} + return file_otg_proto_rawDescGZIP(), []int{606} } func (x *PatternFlowGtpv1EFlag) GetChoice() PatternFlowGtpv1EFlag_Choice_Enum { @@ -68856,7 +70414,7 @@ type PatternFlowGtpv1SFlagCounter struct { func (x *PatternFlowGtpv1SFlagCounter) Reset() { *x = PatternFlowGtpv1SFlagCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[601] + mi := &file_otg_proto_msgTypes[607] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -68869,7 +70427,7 @@ func (x *PatternFlowGtpv1SFlagCounter) String() string { func (*PatternFlowGtpv1SFlagCounter) ProtoMessage() {} func (x *PatternFlowGtpv1SFlagCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[601] + mi := &file_otg_proto_msgTypes[607] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -68882,7 +70440,7 @@ func (x *PatternFlowGtpv1SFlagCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv1SFlagCounter.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv1SFlagCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{601} + return file_otg_proto_rawDescGZIP(), []int{607} } func (x *PatternFlowGtpv1SFlagCounter) GetStart() uint32 { @@ -68930,7 +70488,7 @@ type PatternFlowGtpv1SFlagMetricTag struct { func (x *PatternFlowGtpv1SFlagMetricTag) Reset() { *x = PatternFlowGtpv1SFlagMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[602] + mi := &file_otg_proto_msgTypes[608] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -68943,7 +70501,7 @@ func (x *PatternFlowGtpv1SFlagMetricTag) String() string { func (*PatternFlowGtpv1SFlagMetricTag) ProtoMessage() {} func (x *PatternFlowGtpv1SFlagMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[602] + mi := &file_otg_proto_msgTypes[608] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -68956,7 +70514,7 @@ func (x *PatternFlowGtpv1SFlagMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv1SFlagMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv1SFlagMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{602} + return file_otg_proto_rawDescGZIP(), []int{608} } func (x *PatternFlowGtpv1SFlagMetricTag) GetName() string { @@ -69008,7 +70566,7 @@ type PatternFlowGtpv1SFlag struct { func (x *PatternFlowGtpv1SFlag) Reset() { *x = PatternFlowGtpv1SFlag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[603] + mi := &file_otg_proto_msgTypes[609] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -69021,7 +70579,7 @@ func (x *PatternFlowGtpv1SFlag) String() string { func (*PatternFlowGtpv1SFlag) ProtoMessage() {} func (x *PatternFlowGtpv1SFlag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[603] + mi := &file_otg_proto_msgTypes[609] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -69034,7 +70592,7 @@ func (x *PatternFlowGtpv1SFlag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv1SFlag.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv1SFlag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{603} + return file_otg_proto_rawDescGZIP(), []int{609} } func (x *PatternFlowGtpv1SFlag) GetChoice() PatternFlowGtpv1SFlag_Choice_Enum { @@ -69099,7 +70657,7 @@ type PatternFlowGtpv1PnFlagCounter struct { func (x *PatternFlowGtpv1PnFlagCounter) Reset() { *x = PatternFlowGtpv1PnFlagCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[604] + mi := &file_otg_proto_msgTypes[610] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -69112,7 +70670,7 @@ func (x *PatternFlowGtpv1PnFlagCounter) String() string { func (*PatternFlowGtpv1PnFlagCounter) ProtoMessage() {} func (x *PatternFlowGtpv1PnFlagCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[604] + mi := &file_otg_proto_msgTypes[610] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -69125,7 +70683,7 @@ func (x *PatternFlowGtpv1PnFlagCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv1PnFlagCounter.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv1PnFlagCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{604} + return file_otg_proto_rawDescGZIP(), []int{610} } func (x *PatternFlowGtpv1PnFlagCounter) GetStart() uint32 { @@ -69173,7 +70731,7 @@ type PatternFlowGtpv1PnFlagMetricTag struct { func (x *PatternFlowGtpv1PnFlagMetricTag) Reset() { *x = PatternFlowGtpv1PnFlagMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[605] + mi := &file_otg_proto_msgTypes[611] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -69186,7 +70744,7 @@ func (x *PatternFlowGtpv1PnFlagMetricTag) String() string { func (*PatternFlowGtpv1PnFlagMetricTag) ProtoMessage() {} func (x *PatternFlowGtpv1PnFlagMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[605] + mi := &file_otg_proto_msgTypes[611] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -69199,7 +70757,7 @@ func (x *PatternFlowGtpv1PnFlagMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv1PnFlagMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv1PnFlagMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{605} + return file_otg_proto_rawDescGZIP(), []int{611} } func (x *PatternFlowGtpv1PnFlagMetricTag) GetName() string { @@ -69251,7 +70809,7 @@ type PatternFlowGtpv1PnFlag struct { func (x *PatternFlowGtpv1PnFlag) Reset() { *x = PatternFlowGtpv1PnFlag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[606] + mi := &file_otg_proto_msgTypes[612] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -69264,7 +70822,7 @@ func (x *PatternFlowGtpv1PnFlag) String() string { func (*PatternFlowGtpv1PnFlag) ProtoMessage() {} func (x *PatternFlowGtpv1PnFlag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[606] + mi := &file_otg_proto_msgTypes[612] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -69277,7 +70835,7 @@ func (x *PatternFlowGtpv1PnFlag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv1PnFlag.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv1PnFlag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{606} + return file_otg_proto_rawDescGZIP(), []int{612} } func (x *PatternFlowGtpv1PnFlag) GetChoice() PatternFlowGtpv1PnFlag_Choice_Enum { @@ -69342,7 +70900,7 @@ type PatternFlowGtpv1MessageTypeCounter struct { func (x *PatternFlowGtpv1MessageTypeCounter) Reset() { *x = PatternFlowGtpv1MessageTypeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[607] + mi := &file_otg_proto_msgTypes[613] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -69355,7 +70913,7 @@ func (x *PatternFlowGtpv1MessageTypeCounter) String() string { func (*PatternFlowGtpv1MessageTypeCounter) ProtoMessage() {} func (x *PatternFlowGtpv1MessageTypeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[607] + mi := &file_otg_proto_msgTypes[613] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -69368,7 +70926,7 @@ func (x *PatternFlowGtpv1MessageTypeCounter) ProtoReflect() protoreflect.Message // Deprecated: Use PatternFlowGtpv1MessageTypeCounter.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv1MessageTypeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{607} + return file_otg_proto_rawDescGZIP(), []int{613} } func (x *PatternFlowGtpv1MessageTypeCounter) GetStart() uint32 { @@ -69416,7 +70974,7 @@ type PatternFlowGtpv1MessageTypeMetricTag struct { func (x *PatternFlowGtpv1MessageTypeMetricTag) Reset() { *x = PatternFlowGtpv1MessageTypeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[608] + mi := &file_otg_proto_msgTypes[614] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -69429,7 +70987,7 @@ func (x *PatternFlowGtpv1MessageTypeMetricTag) String() string { func (*PatternFlowGtpv1MessageTypeMetricTag) ProtoMessage() {} func (x *PatternFlowGtpv1MessageTypeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[608] + mi := &file_otg_proto_msgTypes[614] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -69442,7 +71000,7 @@ func (x *PatternFlowGtpv1MessageTypeMetricTag) ProtoReflect() protoreflect.Messa // Deprecated: Use PatternFlowGtpv1MessageTypeMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv1MessageTypeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{608} + return file_otg_proto_rawDescGZIP(), []int{614} } func (x *PatternFlowGtpv1MessageTypeMetricTag) GetName() string { @@ -69495,7 +71053,7 @@ type PatternFlowGtpv1MessageType struct { func (x *PatternFlowGtpv1MessageType) Reset() { *x = PatternFlowGtpv1MessageType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[609] + mi := &file_otg_proto_msgTypes[615] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -69508,7 +71066,7 @@ func (x *PatternFlowGtpv1MessageType) String() string { func (*PatternFlowGtpv1MessageType) ProtoMessage() {} func (x *PatternFlowGtpv1MessageType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[609] + mi := &file_otg_proto_msgTypes[615] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -69521,7 +71079,7 @@ func (x *PatternFlowGtpv1MessageType) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv1MessageType.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv1MessageType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{609} + return file_otg_proto_rawDescGZIP(), []int{615} } func (x *PatternFlowGtpv1MessageType) GetChoice() PatternFlowGtpv1MessageType_Choice_Enum { @@ -69586,7 +71144,7 @@ type PatternFlowGtpv1MessageLengthCounter struct { func (x *PatternFlowGtpv1MessageLengthCounter) Reset() { *x = PatternFlowGtpv1MessageLengthCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[610] + mi := &file_otg_proto_msgTypes[616] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -69599,7 +71157,7 @@ func (x *PatternFlowGtpv1MessageLengthCounter) String() string { func (*PatternFlowGtpv1MessageLengthCounter) ProtoMessage() {} func (x *PatternFlowGtpv1MessageLengthCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[610] + mi := &file_otg_proto_msgTypes[616] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -69612,7 +71170,7 @@ func (x *PatternFlowGtpv1MessageLengthCounter) ProtoReflect() protoreflect.Messa // Deprecated: Use PatternFlowGtpv1MessageLengthCounter.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv1MessageLengthCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{610} + return file_otg_proto_rawDescGZIP(), []int{616} } func (x *PatternFlowGtpv1MessageLengthCounter) GetStart() uint32 { @@ -69660,7 +71218,7 @@ type PatternFlowGtpv1MessageLengthMetricTag struct { func (x *PatternFlowGtpv1MessageLengthMetricTag) Reset() { *x = PatternFlowGtpv1MessageLengthMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[611] + mi := &file_otg_proto_msgTypes[617] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -69673,7 +71231,7 @@ func (x *PatternFlowGtpv1MessageLengthMetricTag) String() string { func (*PatternFlowGtpv1MessageLengthMetricTag) ProtoMessage() {} func (x *PatternFlowGtpv1MessageLengthMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[611] + mi := &file_otg_proto_msgTypes[617] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -69686,7 +71244,7 @@ func (x *PatternFlowGtpv1MessageLengthMetricTag) ProtoReflect() protoreflect.Mes // Deprecated: Use PatternFlowGtpv1MessageLengthMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv1MessageLengthMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{611} + return file_otg_proto_rawDescGZIP(), []int{617} } func (x *PatternFlowGtpv1MessageLengthMetricTag) GetName() string { @@ -69739,7 +71297,7 @@ type PatternFlowGtpv1MessageLength struct { func (x *PatternFlowGtpv1MessageLength) Reset() { *x = PatternFlowGtpv1MessageLength{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[612] + mi := &file_otg_proto_msgTypes[618] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -69752,7 +71310,7 @@ func (x *PatternFlowGtpv1MessageLength) String() string { func (*PatternFlowGtpv1MessageLength) ProtoMessage() {} func (x *PatternFlowGtpv1MessageLength) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[612] + mi := &file_otg_proto_msgTypes[618] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -69765,7 +71323,7 @@ func (x *PatternFlowGtpv1MessageLength) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv1MessageLength.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv1MessageLength) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{612} + return file_otg_proto_rawDescGZIP(), []int{618} } func (x *PatternFlowGtpv1MessageLength) GetChoice() PatternFlowGtpv1MessageLength_Choice_Enum { @@ -69830,7 +71388,7 @@ type PatternFlowGtpv1TeidCounter struct { func (x *PatternFlowGtpv1TeidCounter) Reset() { *x = PatternFlowGtpv1TeidCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[613] + mi := &file_otg_proto_msgTypes[619] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -69843,7 +71401,7 @@ func (x *PatternFlowGtpv1TeidCounter) String() string { func (*PatternFlowGtpv1TeidCounter) ProtoMessage() {} func (x *PatternFlowGtpv1TeidCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[613] + mi := &file_otg_proto_msgTypes[619] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -69856,7 +71414,7 @@ func (x *PatternFlowGtpv1TeidCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv1TeidCounter.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv1TeidCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{613} + return file_otg_proto_rawDescGZIP(), []int{619} } func (x *PatternFlowGtpv1TeidCounter) GetStart() uint32 { @@ -69904,7 +71462,7 @@ type PatternFlowGtpv1TeidMetricTag struct { func (x *PatternFlowGtpv1TeidMetricTag) Reset() { *x = PatternFlowGtpv1TeidMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[614] + mi := &file_otg_proto_msgTypes[620] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -69917,7 +71475,7 @@ func (x *PatternFlowGtpv1TeidMetricTag) String() string { func (*PatternFlowGtpv1TeidMetricTag) ProtoMessage() {} func (x *PatternFlowGtpv1TeidMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[614] + mi := &file_otg_proto_msgTypes[620] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -69930,7 +71488,7 @@ func (x *PatternFlowGtpv1TeidMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv1TeidMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv1TeidMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{614} + return file_otg_proto_rawDescGZIP(), []int{620} } func (x *PatternFlowGtpv1TeidMetricTag) GetName() string { @@ -69982,7 +71540,7 @@ type PatternFlowGtpv1Teid struct { func (x *PatternFlowGtpv1Teid) Reset() { *x = PatternFlowGtpv1Teid{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[615] + mi := &file_otg_proto_msgTypes[621] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -69995,7 +71553,7 @@ func (x *PatternFlowGtpv1Teid) String() string { func (*PatternFlowGtpv1Teid) ProtoMessage() {} func (x *PatternFlowGtpv1Teid) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[615] + mi := &file_otg_proto_msgTypes[621] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -70008,7 +71566,7 @@ func (x *PatternFlowGtpv1Teid) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv1Teid.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv1Teid) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{615} + return file_otg_proto_rawDescGZIP(), []int{621} } func (x *PatternFlowGtpv1Teid) GetChoice() PatternFlowGtpv1Teid_Choice_Enum { @@ -70073,7 +71631,7 @@ type PatternFlowGtpv1SquenceNumberCounter struct { func (x *PatternFlowGtpv1SquenceNumberCounter) Reset() { *x = PatternFlowGtpv1SquenceNumberCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[616] + mi := &file_otg_proto_msgTypes[622] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -70086,7 +71644,7 @@ func (x *PatternFlowGtpv1SquenceNumberCounter) String() string { func (*PatternFlowGtpv1SquenceNumberCounter) ProtoMessage() {} func (x *PatternFlowGtpv1SquenceNumberCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[616] + mi := &file_otg_proto_msgTypes[622] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -70099,7 +71657,7 @@ func (x *PatternFlowGtpv1SquenceNumberCounter) ProtoReflect() protoreflect.Messa // Deprecated: Use PatternFlowGtpv1SquenceNumberCounter.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv1SquenceNumberCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{616} + return file_otg_proto_rawDescGZIP(), []int{622} } func (x *PatternFlowGtpv1SquenceNumberCounter) GetStart() uint32 { @@ -70147,7 +71705,7 @@ type PatternFlowGtpv1SquenceNumberMetricTag struct { func (x *PatternFlowGtpv1SquenceNumberMetricTag) Reset() { *x = PatternFlowGtpv1SquenceNumberMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[617] + mi := &file_otg_proto_msgTypes[623] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -70160,7 +71718,7 @@ func (x *PatternFlowGtpv1SquenceNumberMetricTag) String() string { func (*PatternFlowGtpv1SquenceNumberMetricTag) ProtoMessage() {} func (x *PatternFlowGtpv1SquenceNumberMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[617] + mi := &file_otg_proto_msgTypes[623] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -70173,7 +71731,7 @@ func (x *PatternFlowGtpv1SquenceNumberMetricTag) ProtoReflect() protoreflect.Mes // Deprecated: Use PatternFlowGtpv1SquenceNumberMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv1SquenceNumberMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{617} + return file_otg_proto_rawDescGZIP(), []int{623} } func (x *PatternFlowGtpv1SquenceNumberMetricTag) GetName() string { @@ -70226,7 +71784,7 @@ type PatternFlowGtpv1SquenceNumber struct { func (x *PatternFlowGtpv1SquenceNumber) Reset() { *x = PatternFlowGtpv1SquenceNumber{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[618] + mi := &file_otg_proto_msgTypes[624] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -70239,7 +71797,7 @@ func (x *PatternFlowGtpv1SquenceNumber) String() string { func (*PatternFlowGtpv1SquenceNumber) ProtoMessage() {} func (x *PatternFlowGtpv1SquenceNumber) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[618] + mi := &file_otg_proto_msgTypes[624] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -70252,7 +71810,7 @@ func (x *PatternFlowGtpv1SquenceNumber) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv1SquenceNumber.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv1SquenceNumber) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{618} + return file_otg_proto_rawDescGZIP(), []int{624} } func (x *PatternFlowGtpv1SquenceNumber) GetChoice() PatternFlowGtpv1SquenceNumber_Choice_Enum { @@ -70317,7 +71875,7 @@ type PatternFlowGtpv1NPduNumberCounter struct { func (x *PatternFlowGtpv1NPduNumberCounter) Reset() { *x = PatternFlowGtpv1NPduNumberCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[619] + mi := &file_otg_proto_msgTypes[625] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -70330,7 +71888,7 @@ func (x *PatternFlowGtpv1NPduNumberCounter) String() string { func (*PatternFlowGtpv1NPduNumberCounter) ProtoMessage() {} func (x *PatternFlowGtpv1NPduNumberCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[619] + mi := &file_otg_proto_msgTypes[625] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -70343,7 +71901,7 @@ func (x *PatternFlowGtpv1NPduNumberCounter) ProtoReflect() protoreflect.Message // Deprecated: Use PatternFlowGtpv1NPduNumberCounter.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv1NPduNumberCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{619} + return file_otg_proto_rawDescGZIP(), []int{625} } func (x *PatternFlowGtpv1NPduNumberCounter) GetStart() uint32 { @@ -70391,7 +71949,7 @@ type PatternFlowGtpv1NPduNumberMetricTag struct { func (x *PatternFlowGtpv1NPduNumberMetricTag) Reset() { *x = PatternFlowGtpv1NPduNumberMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[620] + mi := &file_otg_proto_msgTypes[626] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -70404,7 +71962,7 @@ func (x *PatternFlowGtpv1NPduNumberMetricTag) String() string { func (*PatternFlowGtpv1NPduNumberMetricTag) ProtoMessage() {} func (x *PatternFlowGtpv1NPduNumberMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[620] + mi := &file_otg_proto_msgTypes[626] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -70417,7 +71975,7 @@ func (x *PatternFlowGtpv1NPduNumberMetricTag) ProtoReflect() protoreflect.Messag // Deprecated: Use PatternFlowGtpv1NPduNumberMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv1NPduNumberMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{620} + return file_otg_proto_rawDescGZIP(), []int{626} } func (x *PatternFlowGtpv1NPduNumberMetricTag) GetName() string { @@ -70470,7 +72028,7 @@ type PatternFlowGtpv1NPduNumber struct { func (x *PatternFlowGtpv1NPduNumber) Reset() { *x = PatternFlowGtpv1NPduNumber{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[621] + mi := &file_otg_proto_msgTypes[627] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -70483,7 +72041,7 @@ func (x *PatternFlowGtpv1NPduNumber) String() string { func (*PatternFlowGtpv1NPduNumber) ProtoMessage() {} func (x *PatternFlowGtpv1NPduNumber) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[621] + mi := &file_otg_proto_msgTypes[627] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -70496,7 +72054,7 @@ func (x *PatternFlowGtpv1NPduNumber) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv1NPduNumber.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv1NPduNumber) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{621} + return file_otg_proto_rawDescGZIP(), []int{627} } func (x *PatternFlowGtpv1NPduNumber) GetChoice() PatternFlowGtpv1NPduNumber_Choice_Enum { @@ -70561,7 +72119,7 @@ type PatternFlowGtpv1NextExtensionHeaderTypeCounter struct { func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) Reset() { *x = PatternFlowGtpv1NextExtensionHeaderTypeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[622] + mi := &file_otg_proto_msgTypes[628] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -70574,7 +72132,7 @@ func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) String() string { func (*PatternFlowGtpv1NextExtensionHeaderTypeCounter) ProtoMessage() {} func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[622] + mi := &file_otg_proto_msgTypes[628] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -70587,7 +72145,7 @@ func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) ProtoReflect() protoref // Deprecated: Use PatternFlowGtpv1NextExtensionHeaderTypeCounter.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv1NextExtensionHeaderTypeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{622} + return file_otg_proto_rawDescGZIP(), []int{628} } func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) GetStart() uint32 { @@ -70635,7 +72193,7 @@ type PatternFlowGtpv1NextExtensionHeaderTypeMetricTag struct { func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) Reset() { *x = PatternFlowGtpv1NextExtensionHeaderTypeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[623] + mi := &file_otg_proto_msgTypes[629] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -70648,7 +72206,7 @@ func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) String() string { func (*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) ProtoMessage() {} func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[623] + mi := &file_otg_proto_msgTypes[629] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -70661,7 +72219,7 @@ func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) ProtoReflect() protor // Deprecated: Use PatternFlowGtpv1NextExtensionHeaderTypeMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{623} + return file_otg_proto_rawDescGZIP(), []int{629} } func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) GetName() string { @@ -70714,7 +72272,7 @@ type PatternFlowGtpv1NextExtensionHeaderType struct { func (x *PatternFlowGtpv1NextExtensionHeaderType) Reset() { *x = PatternFlowGtpv1NextExtensionHeaderType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[624] + mi := &file_otg_proto_msgTypes[630] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -70727,7 +72285,7 @@ func (x *PatternFlowGtpv1NextExtensionHeaderType) String() string { func (*PatternFlowGtpv1NextExtensionHeaderType) ProtoMessage() {} func (x *PatternFlowGtpv1NextExtensionHeaderType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[624] + mi := &file_otg_proto_msgTypes[630] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -70740,7 +72298,7 @@ func (x *PatternFlowGtpv1NextExtensionHeaderType) ProtoReflect() protoreflect.Me // Deprecated: Use PatternFlowGtpv1NextExtensionHeaderType.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv1NextExtensionHeaderType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{624} + return file_otg_proto_rawDescGZIP(), []int{630} } func (x *PatternFlowGtpv1NextExtensionHeaderType) GetChoice() PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum { @@ -70805,7 +72363,7 @@ type PatternFlowGtpExtensionExtensionLengthCounter struct { func (x *PatternFlowGtpExtensionExtensionLengthCounter) Reset() { *x = PatternFlowGtpExtensionExtensionLengthCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[625] + mi := &file_otg_proto_msgTypes[631] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -70818,7 +72376,7 @@ func (x *PatternFlowGtpExtensionExtensionLengthCounter) String() string { func (*PatternFlowGtpExtensionExtensionLengthCounter) ProtoMessage() {} func (x *PatternFlowGtpExtensionExtensionLengthCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[625] + mi := &file_otg_proto_msgTypes[631] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -70831,7 +72389,7 @@ func (x *PatternFlowGtpExtensionExtensionLengthCounter) ProtoReflect() protorefl // Deprecated: Use PatternFlowGtpExtensionExtensionLengthCounter.ProtoReflect.Descriptor instead. func (*PatternFlowGtpExtensionExtensionLengthCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{625} + return file_otg_proto_rawDescGZIP(), []int{631} } func (x *PatternFlowGtpExtensionExtensionLengthCounter) GetStart() uint32 { @@ -70879,7 +72437,7 @@ type PatternFlowGtpExtensionExtensionLengthMetricTag struct { func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) Reset() { *x = PatternFlowGtpExtensionExtensionLengthMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[626] + mi := &file_otg_proto_msgTypes[632] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -70892,7 +72450,7 @@ func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) String() string { func (*PatternFlowGtpExtensionExtensionLengthMetricTag) ProtoMessage() {} func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[626] + mi := &file_otg_proto_msgTypes[632] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -70905,7 +72463,7 @@ func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) ProtoReflect() protore // Deprecated: Use PatternFlowGtpExtensionExtensionLengthMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowGtpExtensionExtensionLengthMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{626} + return file_otg_proto_rawDescGZIP(), []int{632} } func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) GetName() string { @@ -70959,7 +72517,7 @@ type PatternFlowGtpExtensionExtensionLength struct { func (x *PatternFlowGtpExtensionExtensionLength) Reset() { *x = PatternFlowGtpExtensionExtensionLength{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[627] + mi := &file_otg_proto_msgTypes[633] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -70972,7 +72530,7 @@ func (x *PatternFlowGtpExtensionExtensionLength) String() string { func (*PatternFlowGtpExtensionExtensionLength) ProtoMessage() {} func (x *PatternFlowGtpExtensionExtensionLength) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[627] + mi := &file_otg_proto_msgTypes[633] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -70985,7 +72543,7 @@ func (x *PatternFlowGtpExtensionExtensionLength) ProtoReflect() protoreflect.Mes // Deprecated: Use PatternFlowGtpExtensionExtensionLength.ProtoReflect.Descriptor instead. func (*PatternFlowGtpExtensionExtensionLength) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{627} + return file_otg_proto_rawDescGZIP(), []int{633} } func (x *PatternFlowGtpExtensionExtensionLength) GetChoice() PatternFlowGtpExtensionExtensionLength_Choice_Enum { @@ -71050,7 +72608,7 @@ type PatternFlowGtpExtensionContentsCounter struct { func (x *PatternFlowGtpExtensionContentsCounter) Reset() { *x = PatternFlowGtpExtensionContentsCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[628] + mi := &file_otg_proto_msgTypes[634] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -71063,7 +72621,7 @@ func (x *PatternFlowGtpExtensionContentsCounter) String() string { func (*PatternFlowGtpExtensionContentsCounter) ProtoMessage() {} func (x *PatternFlowGtpExtensionContentsCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[628] + mi := &file_otg_proto_msgTypes[634] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -71076,7 +72634,7 @@ func (x *PatternFlowGtpExtensionContentsCounter) ProtoReflect() protoreflect.Mes // Deprecated: Use PatternFlowGtpExtensionContentsCounter.ProtoReflect.Descriptor instead. func (*PatternFlowGtpExtensionContentsCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{628} + return file_otg_proto_rawDescGZIP(), []int{634} } func (x *PatternFlowGtpExtensionContentsCounter) GetStart() uint64 { @@ -71124,7 +72682,7 @@ type PatternFlowGtpExtensionContentsMetricTag struct { func (x *PatternFlowGtpExtensionContentsMetricTag) Reset() { *x = PatternFlowGtpExtensionContentsMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[629] + mi := &file_otg_proto_msgTypes[635] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -71137,7 +72695,7 @@ func (x *PatternFlowGtpExtensionContentsMetricTag) String() string { func (*PatternFlowGtpExtensionContentsMetricTag) ProtoMessage() {} func (x *PatternFlowGtpExtensionContentsMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[629] + mi := &file_otg_proto_msgTypes[635] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -71150,7 +72708,7 @@ func (x *PatternFlowGtpExtensionContentsMetricTag) ProtoReflect() protoreflect.M // Deprecated: Use PatternFlowGtpExtensionContentsMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowGtpExtensionContentsMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{629} + return file_otg_proto_rawDescGZIP(), []int{635} } func (x *PatternFlowGtpExtensionContentsMetricTag) GetName() string { @@ -71202,7 +72760,7 @@ type PatternFlowGtpExtensionContents struct { func (x *PatternFlowGtpExtensionContents) Reset() { *x = PatternFlowGtpExtensionContents{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[630] + mi := &file_otg_proto_msgTypes[636] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -71215,7 +72773,7 @@ func (x *PatternFlowGtpExtensionContents) String() string { func (*PatternFlowGtpExtensionContents) ProtoMessage() {} func (x *PatternFlowGtpExtensionContents) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[630] + mi := &file_otg_proto_msgTypes[636] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -71228,7 +72786,7 @@ func (x *PatternFlowGtpExtensionContents) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpExtensionContents.ProtoReflect.Descriptor instead. func (*PatternFlowGtpExtensionContents) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{630} + return file_otg_proto_rawDescGZIP(), []int{636} } func (x *PatternFlowGtpExtensionContents) GetChoice() PatternFlowGtpExtensionContents_Choice_Enum { @@ -71293,7 +72851,7 @@ type PatternFlowGtpExtensionNextExtensionHeaderCounter struct { func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) Reset() { *x = PatternFlowGtpExtensionNextExtensionHeaderCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[631] + mi := &file_otg_proto_msgTypes[637] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -71306,7 +72864,7 @@ func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) String() string { func (*PatternFlowGtpExtensionNextExtensionHeaderCounter) ProtoMessage() {} func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[631] + mi := &file_otg_proto_msgTypes[637] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -71319,7 +72877,7 @@ func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) ProtoReflect() proto // Deprecated: Use PatternFlowGtpExtensionNextExtensionHeaderCounter.ProtoReflect.Descriptor instead. func (*PatternFlowGtpExtensionNextExtensionHeaderCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{631} + return file_otg_proto_rawDescGZIP(), []int{637} } func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) GetStart() uint32 { @@ -71367,7 +72925,7 @@ type PatternFlowGtpExtensionNextExtensionHeaderMetricTag struct { func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) Reset() { *x = PatternFlowGtpExtensionNextExtensionHeaderMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[632] + mi := &file_otg_proto_msgTypes[638] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -71380,7 +72938,7 @@ func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) String() string { func (*PatternFlowGtpExtensionNextExtensionHeaderMetricTag) ProtoMessage() {} func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[632] + mi := &file_otg_proto_msgTypes[638] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -71393,7 +72951,7 @@ func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) ProtoReflect() pro // Deprecated: Use PatternFlowGtpExtensionNextExtensionHeaderMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowGtpExtensionNextExtensionHeaderMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{632} + return file_otg_proto_rawDescGZIP(), []int{638} } func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) GetName() string { @@ -71446,7 +73004,7 @@ type PatternFlowGtpExtensionNextExtensionHeader struct { func (x *PatternFlowGtpExtensionNextExtensionHeader) Reset() { *x = PatternFlowGtpExtensionNextExtensionHeader{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[633] + mi := &file_otg_proto_msgTypes[639] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -71459,7 +73017,7 @@ func (x *PatternFlowGtpExtensionNextExtensionHeader) String() string { func (*PatternFlowGtpExtensionNextExtensionHeader) ProtoMessage() {} func (x *PatternFlowGtpExtensionNextExtensionHeader) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[633] + mi := &file_otg_proto_msgTypes[639] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -71472,7 +73030,7 @@ func (x *PatternFlowGtpExtensionNextExtensionHeader) ProtoReflect() protoreflect // Deprecated: Use PatternFlowGtpExtensionNextExtensionHeader.ProtoReflect.Descriptor instead. func (*PatternFlowGtpExtensionNextExtensionHeader) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{633} + return file_otg_proto_rawDescGZIP(), []int{639} } func (x *PatternFlowGtpExtensionNextExtensionHeader) GetChoice() PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum { @@ -71537,7 +73095,7 @@ type PatternFlowGtpv2VersionCounter struct { func (x *PatternFlowGtpv2VersionCounter) Reset() { *x = PatternFlowGtpv2VersionCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[634] + mi := &file_otg_proto_msgTypes[640] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -71550,7 +73108,7 @@ func (x *PatternFlowGtpv2VersionCounter) String() string { func (*PatternFlowGtpv2VersionCounter) ProtoMessage() {} func (x *PatternFlowGtpv2VersionCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[634] + mi := &file_otg_proto_msgTypes[640] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -71563,7 +73121,7 @@ func (x *PatternFlowGtpv2VersionCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv2VersionCounter.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv2VersionCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{634} + return file_otg_proto_rawDescGZIP(), []int{640} } func (x *PatternFlowGtpv2VersionCounter) GetStart() uint32 { @@ -71611,7 +73169,7 @@ type PatternFlowGtpv2VersionMetricTag struct { func (x *PatternFlowGtpv2VersionMetricTag) Reset() { *x = PatternFlowGtpv2VersionMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[635] + mi := &file_otg_proto_msgTypes[641] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -71624,7 +73182,7 @@ func (x *PatternFlowGtpv2VersionMetricTag) String() string { func (*PatternFlowGtpv2VersionMetricTag) ProtoMessage() {} func (x *PatternFlowGtpv2VersionMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[635] + mi := &file_otg_proto_msgTypes[641] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -71637,7 +73195,7 @@ func (x *PatternFlowGtpv2VersionMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv2VersionMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv2VersionMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{635} + return file_otg_proto_rawDescGZIP(), []int{641} } func (x *PatternFlowGtpv2VersionMetricTag) GetName() string { @@ -71689,7 +73247,7 @@ type PatternFlowGtpv2Version struct { func (x *PatternFlowGtpv2Version) Reset() { *x = PatternFlowGtpv2Version{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[636] + mi := &file_otg_proto_msgTypes[642] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -71702,7 +73260,7 @@ func (x *PatternFlowGtpv2Version) String() string { func (*PatternFlowGtpv2Version) ProtoMessage() {} func (x *PatternFlowGtpv2Version) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[636] + mi := &file_otg_proto_msgTypes[642] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -71715,7 +73273,7 @@ func (x *PatternFlowGtpv2Version) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv2Version.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv2Version) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{636} + return file_otg_proto_rawDescGZIP(), []int{642} } func (x *PatternFlowGtpv2Version) GetChoice() PatternFlowGtpv2Version_Choice_Enum { @@ -71780,7 +73338,7 @@ type PatternFlowGtpv2PiggybackingFlagCounter struct { func (x *PatternFlowGtpv2PiggybackingFlagCounter) Reset() { *x = PatternFlowGtpv2PiggybackingFlagCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[637] + mi := &file_otg_proto_msgTypes[643] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -71793,7 +73351,7 @@ func (x *PatternFlowGtpv2PiggybackingFlagCounter) String() string { func (*PatternFlowGtpv2PiggybackingFlagCounter) ProtoMessage() {} func (x *PatternFlowGtpv2PiggybackingFlagCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[637] + mi := &file_otg_proto_msgTypes[643] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -71806,7 +73364,7 @@ func (x *PatternFlowGtpv2PiggybackingFlagCounter) ProtoReflect() protoreflect.Me // Deprecated: Use PatternFlowGtpv2PiggybackingFlagCounter.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv2PiggybackingFlagCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{637} + return file_otg_proto_rawDescGZIP(), []int{643} } func (x *PatternFlowGtpv2PiggybackingFlagCounter) GetStart() uint32 { @@ -71854,7 +73412,7 @@ type PatternFlowGtpv2PiggybackingFlagMetricTag struct { func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) Reset() { *x = PatternFlowGtpv2PiggybackingFlagMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[638] + mi := &file_otg_proto_msgTypes[644] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -71867,7 +73425,7 @@ func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) String() string { func (*PatternFlowGtpv2PiggybackingFlagMetricTag) ProtoMessage() {} func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[638] + mi := &file_otg_proto_msgTypes[644] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -71880,7 +73438,7 @@ func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) ProtoReflect() protoreflect. // Deprecated: Use PatternFlowGtpv2PiggybackingFlagMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv2PiggybackingFlagMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{638} + return file_otg_proto_rawDescGZIP(), []int{644} } func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) GetName() string { @@ -71933,7 +73491,7 @@ type PatternFlowGtpv2PiggybackingFlag struct { func (x *PatternFlowGtpv2PiggybackingFlag) Reset() { *x = PatternFlowGtpv2PiggybackingFlag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[639] + mi := &file_otg_proto_msgTypes[645] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -71946,7 +73504,7 @@ func (x *PatternFlowGtpv2PiggybackingFlag) String() string { func (*PatternFlowGtpv2PiggybackingFlag) ProtoMessage() {} func (x *PatternFlowGtpv2PiggybackingFlag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[639] + mi := &file_otg_proto_msgTypes[645] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -71959,7 +73517,7 @@ func (x *PatternFlowGtpv2PiggybackingFlag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv2PiggybackingFlag.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv2PiggybackingFlag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{639} + return file_otg_proto_rawDescGZIP(), []int{645} } func (x *PatternFlowGtpv2PiggybackingFlag) GetChoice() PatternFlowGtpv2PiggybackingFlag_Choice_Enum { @@ -72024,7 +73582,7 @@ type PatternFlowGtpv2TeidFlagCounter struct { func (x *PatternFlowGtpv2TeidFlagCounter) Reset() { *x = PatternFlowGtpv2TeidFlagCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[640] + mi := &file_otg_proto_msgTypes[646] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -72037,7 +73595,7 @@ func (x *PatternFlowGtpv2TeidFlagCounter) String() string { func (*PatternFlowGtpv2TeidFlagCounter) ProtoMessage() {} func (x *PatternFlowGtpv2TeidFlagCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[640] + mi := &file_otg_proto_msgTypes[646] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -72050,7 +73608,7 @@ func (x *PatternFlowGtpv2TeidFlagCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv2TeidFlagCounter.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv2TeidFlagCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{640} + return file_otg_proto_rawDescGZIP(), []int{646} } func (x *PatternFlowGtpv2TeidFlagCounter) GetStart() uint32 { @@ -72098,7 +73656,7 @@ type PatternFlowGtpv2TeidFlagMetricTag struct { func (x *PatternFlowGtpv2TeidFlagMetricTag) Reset() { *x = PatternFlowGtpv2TeidFlagMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[641] + mi := &file_otg_proto_msgTypes[647] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -72111,7 +73669,7 @@ func (x *PatternFlowGtpv2TeidFlagMetricTag) String() string { func (*PatternFlowGtpv2TeidFlagMetricTag) ProtoMessage() {} func (x *PatternFlowGtpv2TeidFlagMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[641] + mi := &file_otg_proto_msgTypes[647] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -72124,7 +73682,7 @@ func (x *PatternFlowGtpv2TeidFlagMetricTag) ProtoReflect() protoreflect.Message // Deprecated: Use PatternFlowGtpv2TeidFlagMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv2TeidFlagMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{641} + return file_otg_proto_rawDescGZIP(), []int{647} } func (x *PatternFlowGtpv2TeidFlagMetricTag) GetName() string { @@ -72178,7 +73736,7 @@ type PatternFlowGtpv2TeidFlag struct { func (x *PatternFlowGtpv2TeidFlag) Reset() { *x = PatternFlowGtpv2TeidFlag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[642] + mi := &file_otg_proto_msgTypes[648] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -72191,7 +73749,7 @@ func (x *PatternFlowGtpv2TeidFlag) String() string { func (*PatternFlowGtpv2TeidFlag) ProtoMessage() {} func (x *PatternFlowGtpv2TeidFlag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[642] + mi := &file_otg_proto_msgTypes[648] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -72204,7 +73762,7 @@ func (x *PatternFlowGtpv2TeidFlag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv2TeidFlag.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv2TeidFlag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{642} + return file_otg_proto_rawDescGZIP(), []int{648} } func (x *PatternFlowGtpv2TeidFlag) GetChoice() PatternFlowGtpv2TeidFlag_Choice_Enum { @@ -72269,7 +73827,7 @@ type PatternFlowGtpv2Spare1Counter struct { func (x *PatternFlowGtpv2Spare1Counter) Reset() { *x = PatternFlowGtpv2Spare1Counter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[643] + mi := &file_otg_proto_msgTypes[649] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -72282,7 +73840,7 @@ func (x *PatternFlowGtpv2Spare1Counter) String() string { func (*PatternFlowGtpv2Spare1Counter) ProtoMessage() {} func (x *PatternFlowGtpv2Spare1Counter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[643] + mi := &file_otg_proto_msgTypes[649] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -72295,7 +73853,7 @@ func (x *PatternFlowGtpv2Spare1Counter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv2Spare1Counter.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv2Spare1Counter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{643} + return file_otg_proto_rawDescGZIP(), []int{649} } func (x *PatternFlowGtpv2Spare1Counter) GetStart() uint32 { @@ -72343,7 +73901,7 @@ type PatternFlowGtpv2Spare1MetricTag struct { func (x *PatternFlowGtpv2Spare1MetricTag) Reset() { *x = PatternFlowGtpv2Spare1MetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[644] + mi := &file_otg_proto_msgTypes[650] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -72356,7 +73914,7 @@ func (x *PatternFlowGtpv2Spare1MetricTag) String() string { func (*PatternFlowGtpv2Spare1MetricTag) ProtoMessage() {} func (x *PatternFlowGtpv2Spare1MetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[644] + mi := &file_otg_proto_msgTypes[650] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -72369,7 +73927,7 @@ func (x *PatternFlowGtpv2Spare1MetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv2Spare1MetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv2Spare1MetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{644} + return file_otg_proto_rawDescGZIP(), []int{650} } func (x *PatternFlowGtpv2Spare1MetricTag) GetName() string { @@ -72421,7 +73979,7 @@ type PatternFlowGtpv2Spare1 struct { func (x *PatternFlowGtpv2Spare1) Reset() { *x = PatternFlowGtpv2Spare1{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[645] + mi := &file_otg_proto_msgTypes[651] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -72434,7 +73992,7 @@ func (x *PatternFlowGtpv2Spare1) String() string { func (*PatternFlowGtpv2Spare1) ProtoMessage() {} func (x *PatternFlowGtpv2Spare1) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[645] + mi := &file_otg_proto_msgTypes[651] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -72447,7 +74005,7 @@ func (x *PatternFlowGtpv2Spare1) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv2Spare1.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv2Spare1) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{645} + return file_otg_proto_rawDescGZIP(), []int{651} } func (x *PatternFlowGtpv2Spare1) GetChoice() PatternFlowGtpv2Spare1_Choice_Enum { @@ -72512,7 +74070,7 @@ type PatternFlowGtpv2MessageTypeCounter struct { func (x *PatternFlowGtpv2MessageTypeCounter) Reset() { *x = PatternFlowGtpv2MessageTypeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[646] + mi := &file_otg_proto_msgTypes[652] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -72525,7 +74083,7 @@ func (x *PatternFlowGtpv2MessageTypeCounter) String() string { func (*PatternFlowGtpv2MessageTypeCounter) ProtoMessage() {} func (x *PatternFlowGtpv2MessageTypeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[646] + mi := &file_otg_proto_msgTypes[652] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -72538,7 +74096,7 @@ func (x *PatternFlowGtpv2MessageTypeCounter) ProtoReflect() protoreflect.Message // Deprecated: Use PatternFlowGtpv2MessageTypeCounter.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv2MessageTypeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{646} + return file_otg_proto_rawDescGZIP(), []int{652} } func (x *PatternFlowGtpv2MessageTypeCounter) GetStart() uint32 { @@ -72586,7 +74144,7 @@ type PatternFlowGtpv2MessageTypeMetricTag struct { func (x *PatternFlowGtpv2MessageTypeMetricTag) Reset() { *x = PatternFlowGtpv2MessageTypeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[647] + mi := &file_otg_proto_msgTypes[653] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -72599,7 +74157,7 @@ func (x *PatternFlowGtpv2MessageTypeMetricTag) String() string { func (*PatternFlowGtpv2MessageTypeMetricTag) ProtoMessage() {} func (x *PatternFlowGtpv2MessageTypeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[647] + mi := &file_otg_proto_msgTypes[653] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -72612,7 +74170,7 @@ func (x *PatternFlowGtpv2MessageTypeMetricTag) ProtoReflect() protoreflect.Messa // Deprecated: Use PatternFlowGtpv2MessageTypeMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv2MessageTypeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{647} + return file_otg_proto_rawDescGZIP(), []int{653} } func (x *PatternFlowGtpv2MessageTypeMetricTag) GetName() string { @@ -72665,7 +74223,7 @@ type PatternFlowGtpv2MessageType struct { func (x *PatternFlowGtpv2MessageType) Reset() { *x = PatternFlowGtpv2MessageType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[648] + mi := &file_otg_proto_msgTypes[654] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -72678,7 +74236,7 @@ func (x *PatternFlowGtpv2MessageType) String() string { func (*PatternFlowGtpv2MessageType) ProtoMessage() {} func (x *PatternFlowGtpv2MessageType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[648] + mi := &file_otg_proto_msgTypes[654] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -72691,7 +74249,7 @@ func (x *PatternFlowGtpv2MessageType) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv2MessageType.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv2MessageType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{648} + return file_otg_proto_rawDescGZIP(), []int{654} } func (x *PatternFlowGtpv2MessageType) GetChoice() PatternFlowGtpv2MessageType_Choice_Enum { @@ -72756,7 +74314,7 @@ type PatternFlowGtpv2MessageLengthCounter struct { func (x *PatternFlowGtpv2MessageLengthCounter) Reset() { *x = PatternFlowGtpv2MessageLengthCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[649] + mi := &file_otg_proto_msgTypes[655] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -72769,7 +74327,7 @@ func (x *PatternFlowGtpv2MessageLengthCounter) String() string { func (*PatternFlowGtpv2MessageLengthCounter) ProtoMessage() {} func (x *PatternFlowGtpv2MessageLengthCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[649] + mi := &file_otg_proto_msgTypes[655] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -72782,7 +74340,7 @@ func (x *PatternFlowGtpv2MessageLengthCounter) ProtoReflect() protoreflect.Messa // Deprecated: Use PatternFlowGtpv2MessageLengthCounter.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv2MessageLengthCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{649} + return file_otg_proto_rawDescGZIP(), []int{655} } func (x *PatternFlowGtpv2MessageLengthCounter) GetStart() uint32 { @@ -72830,7 +74388,7 @@ type PatternFlowGtpv2MessageLengthMetricTag struct { func (x *PatternFlowGtpv2MessageLengthMetricTag) Reset() { *x = PatternFlowGtpv2MessageLengthMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[650] + mi := &file_otg_proto_msgTypes[656] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -72843,7 +74401,7 @@ func (x *PatternFlowGtpv2MessageLengthMetricTag) String() string { func (*PatternFlowGtpv2MessageLengthMetricTag) ProtoMessage() {} func (x *PatternFlowGtpv2MessageLengthMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[650] + mi := &file_otg_proto_msgTypes[656] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -72856,7 +74414,7 @@ func (x *PatternFlowGtpv2MessageLengthMetricTag) ProtoReflect() protoreflect.Mes // Deprecated: Use PatternFlowGtpv2MessageLengthMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv2MessageLengthMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{650} + return file_otg_proto_rawDescGZIP(), []int{656} } func (x *PatternFlowGtpv2MessageLengthMetricTag) GetName() string { @@ -72909,7 +74467,7 @@ type PatternFlowGtpv2MessageLength struct { func (x *PatternFlowGtpv2MessageLength) Reset() { *x = PatternFlowGtpv2MessageLength{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[651] + mi := &file_otg_proto_msgTypes[657] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -72922,7 +74480,7 @@ func (x *PatternFlowGtpv2MessageLength) String() string { func (*PatternFlowGtpv2MessageLength) ProtoMessage() {} func (x *PatternFlowGtpv2MessageLength) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[651] + mi := &file_otg_proto_msgTypes[657] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -72935,7 +74493,7 @@ func (x *PatternFlowGtpv2MessageLength) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv2MessageLength.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv2MessageLength) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{651} + return file_otg_proto_rawDescGZIP(), []int{657} } func (x *PatternFlowGtpv2MessageLength) GetChoice() PatternFlowGtpv2MessageLength_Choice_Enum { @@ -73000,7 +74558,7 @@ type PatternFlowGtpv2TeidCounter struct { func (x *PatternFlowGtpv2TeidCounter) Reset() { *x = PatternFlowGtpv2TeidCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[652] + mi := &file_otg_proto_msgTypes[658] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -73013,7 +74571,7 @@ func (x *PatternFlowGtpv2TeidCounter) String() string { func (*PatternFlowGtpv2TeidCounter) ProtoMessage() {} func (x *PatternFlowGtpv2TeidCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[652] + mi := &file_otg_proto_msgTypes[658] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73026,7 +74584,7 @@ func (x *PatternFlowGtpv2TeidCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv2TeidCounter.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv2TeidCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{652} + return file_otg_proto_rawDescGZIP(), []int{658} } func (x *PatternFlowGtpv2TeidCounter) GetStart() uint32 { @@ -73074,7 +74632,7 @@ type PatternFlowGtpv2TeidMetricTag struct { func (x *PatternFlowGtpv2TeidMetricTag) Reset() { *x = PatternFlowGtpv2TeidMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[653] + mi := &file_otg_proto_msgTypes[659] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -73087,7 +74645,7 @@ func (x *PatternFlowGtpv2TeidMetricTag) String() string { func (*PatternFlowGtpv2TeidMetricTag) ProtoMessage() {} func (x *PatternFlowGtpv2TeidMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[653] + mi := &file_otg_proto_msgTypes[659] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73100,7 +74658,7 @@ func (x *PatternFlowGtpv2TeidMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv2TeidMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv2TeidMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{653} + return file_otg_proto_rawDescGZIP(), []int{659} } func (x *PatternFlowGtpv2TeidMetricTag) GetName() string { @@ -73153,7 +74711,7 @@ type PatternFlowGtpv2Teid struct { func (x *PatternFlowGtpv2Teid) Reset() { *x = PatternFlowGtpv2Teid{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[654] + mi := &file_otg_proto_msgTypes[660] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -73166,7 +74724,7 @@ func (x *PatternFlowGtpv2Teid) String() string { func (*PatternFlowGtpv2Teid) ProtoMessage() {} func (x *PatternFlowGtpv2Teid) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[654] + mi := &file_otg_proto_msgTypes[660] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73179,7 +74737,7 @@ func (x *PatternFlowGtpv2Teid) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv2Teid.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv2Teid) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{654} + return file_otg_proto_rawDescGZIP(), []int{660} } func (x *PatternFlowGtpv2Teid) GetChoice() PatternFlowGtpv2Teid_Choice_Enum { @@ -73244,7 +74802,7 @@ type PatternFlowGtpv2SequenceNumberCounter struct { func (x *PatternFlowGtpv2SequenceNumberCounter) Reset() { *x = PatternFlowGtpv2SequenceNumberCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[655] + mi := &file_otg_proto_msgTypes[661] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -73257,7 +74815,7 @@ func (x *PatternFlowGtpv2SequenceNumberCounter) String() string { func (*PatternFlowGtpv2SequenceNumberCounter) ProtoMessage() {} func (x *PatternFlowGtpv2SequenceNumberCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[655] + mi := &file_otg_proto_msgTypes[661] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73270,7 +74828,7 @@ func (x *PatternFlowGtpv2SequenceNumberCounter) ProtoReflect() protoreflect.Mess // Deprecated: Use PatternFlowGtpv2SequenceNumberCounter.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv2SequenceNumberCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{655} + return file_otg_proto_rawDescGZIP(), []int{661} } func (x *PatternFlowGtpv2SequenceNumberCounter) GetStart() uint32 { @@ -73318,7 +74876,7 @@ type PatternFlowGtpv2SequenceNumberMetricTag struct { func (x *PatternFlowGtpv2SequenceNumberMetricTag) Reset() { *x = PatternFlowGtpv2SequenceNumberMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[656] + mi := &file_otg_proto_msgTypes[662] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -73331,7 +74889,7 @@ func (x *PatternFlowGtpv2SequenceNumberMetricTag) String() string { func (*PatternFlowGtpv2SequenceNumberMetricTag) ProtoMessage() {} func (x *PatternFlowGtpv2SequenceNumberMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[656] + mi := &file_otg_proto_msgTypes[662] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73344,7 +74902,7 @@ func (x *PatternFlowGtpv2SequenceNumberMetricTag) ProtoReflect() protoreflect.Me // Deprecated: Use PatternFlowGtpv2SequenceNumberMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv2SequenceNumberMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{656} + return file_otg_proto_rawDescGZIP(), []int{662} } func (x *PatternFlowGtpv2SequenceNumberMetricTag) GetName() string { @@ -73396,7 +74954,7 @@ type PatternFlowGtpv2SequenceNumber struct { func (x *PatternFlowGtpv2SequenceNumber) Reset() { *x = PatternFlowGtpv2SequenceNumber{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[657] + mi := &file_otg_proto_msgTypes[663] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -73409,7 +74967,7 @@ func (x *PatternFlowGtpv2SequenceNumber) String() string { func (*PatternFlowGtpv2SequenceNumber) ProtoMessage() {} func (x *PatternFlowGtpv2SequenceNumber) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[657] + mi := &file_otg_proto_msgTypes[663] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73422,7 +74980,7 @@ func (x *PatternFlowGtpv2SequenceNumber) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv2SequenceNumber.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv2SequenceNumber) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{657} + return file_otg_proto_rawDescGZIP(), []int{663} } func (x *PatternFlowGtpv2SequenceNumber) GetChoice() PatternFlowGtpv2SequenceNumber_Choice_Enum { @@ -73487,7 +75045,7 @@ type PatternFlowGtpv2Spare2Counter struct { func (x *PatternFlowGtpv2Spare2Counter) Reset() { *x = PatternFlowGtpv2Spare2Counter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[658] + mi := &file_otg_proto_msgTypes[664] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -73500,7 +75058,7 @@ func (x *PatternFlowGtpv2Spare2Counter) String() string { func (*PatternFlowGtpv2Spare2Counter) ProtoMessage() {} func (x *PatternFlowGtpv2Spare2Counter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[658] + mi := &file_otg_proto_msgTypes[664] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73513,7 +75071,7 @@ func (x *PatternFlowGtpv2Spare2Counter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv2Spare2Counter.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv2Spare2Counter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{658} + return file_otg_proto_rawDescGZIP(), []int{664} } func (x *PatternFlowGtpv2Spare2Counter) GetStart() uint32 { @@ -73561,7 +75119,7 @@ type PatternFlowGtpv2Spare2MetricTag struct { func (x *PatternFlowGtpv2Spare2MetricTag) Reset() { *x = PatternFlowGtpv2Spare2MetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[659] + mi := &file_otg_proto_msgTypes[665] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -73574,7 +75132,7 @@ func (x *PatternFlowGtpv2Spare2MetricTag) String() string { func (*PatternFlowGtpv2Spare2MetricTag) ProtoMessage() {} func (x *PatternFlowGtpv2Spare2MetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[659] + mi := &file_otg_proto_msgTypes[665] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73587,7 +75145,7 @@ func (x *PatternFlowGtpv2Spare2MetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv2Spare2MetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv2Spare2MetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{659} + return file_otg_proto_rawDescGZIP(), []int{665} } func (x *PatternFlowGtpv2Spare2MetricTag) GetName() string { @@ -73639,7 +75197,7 @@ type PatternFlowGtpv2Spare2 struct { func (x *PatternFlowGtpv2Spare2) Reset() { *x = PatternFlowGtpv2Spare2{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[660] + mi := &file_otg_proto_msgTypes[666] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -73652,7 +75210,7 @@ func (x *PatternFlowGtpv2Spare2) String() string { func (*PatternFlowGtpv2Spare2) ProtoMessage() {} func (x *PatternFlowGtpv2Spare2) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[660] + mi := &file_otg_proto_msgTypes[666] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73665,7 +75223,7 @@ func (x *PatternFlowGtpv2Spare2) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowGtpv2Spare2.ProtoReflect.Descriptor instead. func (*PatternFlowGtpv2Spare2) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{660} + return file_otg_proto_rawDescGZIP(), []int{666} } func (x *PatternFlowGtpv2Spare2) GetChoice() PatternFlowGtpv2Spare2_Choice_Enum { @@ -73730,7 +75288,7 @@ type PatternFlowArpHardwareTypeCounter struct { func (x *PatternFlowArpHardwareTypeCounter) Reset() { *x = PatternFlowArpHardwareTypeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[661] + mi := &file_otg_proto_msgTypes[667] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -73743,7 +75301,7 @@ func (x *PatternFlowArpHardwareTypeCounter) String() string { func (*PatternFlowArpHardwareTypeCounter) ProtoMessage() {} func (x *PatternFlowArpHardwareTypeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[661] + mi := &file_otg_proto_msgTypes[667] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73756,7 +75314,7 @@ func (x *PatternFlowArpHardwareTypeCounter) ProtoReflect() protoreflect.Message // Deprecated: Use PatternFlowArpHardwareTypeCounter.ProtoReflect.Descriptor instead. func (*PatternFlowArpHardwareTypeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{661} + return file_otg_proto_rawDescGZIP(), []int{667} } func (x *PatternFlowArpHardwareTypeCounter) GetStart() uint32 { @@ -73804,7 +75362,7 @@ type PatternFlowArpHardwareTypeMetricTag struct { func (x *PatternFlowArpHardwareTypeMetricTag) Reset() { *x = PatternFlowArpHardwareTypeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[662] + mi := &file_otg_proto_msgTypes[668] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -73817,7 +75375,7 @@ func (x *PatternFlowArpHardwareTypeMetricTag) String() string { func (*PatternFlowArpHardwareTypeMetricTag) ProtoMessage() {} func (x *PatternFlowArpHardwareTypeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[662] + mi := &file_otg_proto_msgTypes[668] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73830,7 +75388,7 @@ func (x *PatternFlowArpHardwareTypeMetricTag) ProtoReflect() protoreflect.Messag // Deprecated: Use PatternFlowArpHardwareTypeMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowArpHardwareTypeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{662} + return file_otg_proto_rawDescGZIP(), []int{668} } func (x *PatternFlowArpHardwareTypeMetricTag) GetName() string { @@ -73882,7 +75440,7 @@ type PatternFlowArpHardwareType struct { func (x *PatternFlowArpHardwareType) Reset() { *x = PatternFlowArpHardwareType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[663] + mi := &file_otg_proto_msgTypes[669] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -73895,7 +75453,7 @@ func (x *PatternFlowArpHardwareType) String() string { func (*PatternFlowArpHardwareType) ProtoMessage() {} func (x *PatternFlowArpHardwareType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[663] + mi := &file_otg_proto_msgTypes[669] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73908,7 +75466,7 @@ func (x *PatternFlowArpHardwareType) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowArpHardwareType.ProtoReflect.Descriptor instead. func (*PatternFlowArpHardwareType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{663} + return file_otg_proto_rawDescGZIP(), []int{669} } func (x *PatternFlowArpHardwareType) GetChoice() PatternFlowArpHardwareType_Choice_Enum { @@ -73973,7 +75531,7 @@ type PatternFlowArpProtocolTypeCounter struct { func (x *PatternFlowArpProtocolTypeCounter) Reset() { *x = PatternFlowArpProtocolTypeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[664] + mi := &file_otg_proto_msgTypes[670] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -73986,7 +75544,7 @@ func (x *PatternFlowArpProtocolTypeCounter) String() string { func (*PatternFlowArpProtocolTypeCounter) ProtoMessage() {} func (x *PatternFlowArpProtocolTypeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[664] + mi := &file_otg_proto_msgTypes[670] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73999,7 +75557,7 @@ func (x *PatternFlowArpProtocolTypeCounter) ProtoReflect() protoreflect.Message // Deprecated: Use PatternFlowArpProtocolTypeCounter.ProtoReflect.Descriptor instead. func (*PatternFlowArpProtocolTypeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{664} + return file_otg_proto_rawDescGZIP(), []int{670} } func (x *PatternFlowArpProtocolTypeCounter) GetStart() uint32 { @@ -74047,7 +75605,7 @@ type PatternFlowArpProtocolTypeMetricTag struct { func (x *PatternFlowArpProtocolTypeMetricTag) Reset() { *x = PatternFlowArpProtocolTypeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[665] + mi := &file_otg_proto_msgTypes[671] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -74060,7 +75618,7 @@ func (x *PatternFlowArpProtocolTypeMetricTag) String() string { func (*PatternFlowArpProtocolTypeMetricTag) ProtoMessage() {} func (x *PatternFlowArpProtocolTypeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[665] + mi := &file_otg_proto_msgTypes[671] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74073,7 +75631,7 @@ func (x *PatternFlowArpProtocolTypeMetricTag) ProtoReflect() protoreflect.Messag // Deprecated: Use PatternFlowArpProtocolTypeMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowArpProtocolTypeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{665} + return file_otg_proto_rawDescGZIP(), []int{671} } func (x *PatternFlowArpProtocolTypeMetricTag) GetName() string { @@ -74125,7 +75683,7 @@ type PatternFlowArpProtocolType struct { func (x *PatternFlowArpProtocolType) Reset() { *x = PatternFlowArpProtocolType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[666] + mi := &file_otg_proto_msgTypes[672] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -74138,7 +75696,7 @@ func (x *PatternFlowArpProtocolType) String() string { func (*PatternFlowArpProtocolType) ProtoMessage() {} func (x *PatternFlowArpProtocolType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[666] + mi := &file_otg_proto_msgTypes[672] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74151,7 +75709,7 @@ func (x *PatternFlowArpProtocolType) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowArpProtocolType.ProtoReflect.Descriptor instead. func (*PatternFlowArpProtocolType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{666} + return file_otg_proto_rawDescGZIP(), []int{672} } func (x *PatternFlowArpProtocolType) GetChoice() PatternFlowArpProtocolType_Choice_Enum { @@ -74216,7 +75774,7 @@ type PatternFlowArpHardwareLengthCounter struct { func (x *PatternFlowArpHardwareLengthCounter) Reset() { *x = PatternFlowArpHardwareLengthCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[667] + mi := &file_otg_proto_msgTypes[673] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -74229,7 +75787,7 @@ func (x *PatternFlowArpHardwareLengthCounter) String() string { func (*PatternFlowArpHardwareLengthCounter) ProtoMessage() {} func (x *PatternFlowArpHardwareLengthCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[667] + mi := &file_otg_proto_msgTypes[673] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74242,7 +75800,7 @@ func (x *PatternFlowArpHardwareLengthCounter) ProtoReflect() protoreflect.Messag // Deprecated: Use PatternFlowArpHardwareLengthCounter.ProtoReflect.Descriptor instead. func (*PatternFlowArpHardwareLengthCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{667} + return file_otg_proto_rawDescGZIP(), []int{673} } func (x *PatternFlowArpHardwareLengthCounter) GetStart() uint32 { @@ -74290,7 +75848,7 @@ type PatternFlowArpHardwareLengthMetricTag struct { func (x *PatternFlowArpHardwareLengthMetricTag) Reset() { *x = PatternFlowArpHardwareLengthMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[668] + mi := &file_otg_proto_msgTypes[674] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -74303,7 +75861,7 @@ func (x *PatternFlowArpHardwareLengthMetricTag) String() string { func (*PatternFlowArpHardwareLengthMetricTag) ProtoMessage() {} func (x *PatternFlowArpHardwareLengthMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[668] + mi := &file_otg_proto_msgTypes[674] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74316,7 +75874,7 @@ func (x *PatternFlowArpHardwareLengthMetricTag) ProtoReflect() protoreflect.Mess // Deprecated: Use PatternFlowArpHardwareLengthMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowArpHardwareLengthMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{668} + return file_otg_proto_rawDescGZIP(), []int{674} } func (x *PatternFlowArpHardwareLengthMetricTag) GetName() string { @@ -74368,7 +75926,7 @@ type PatternFlowArpHardwareLength struct { func (x *PatternFlowArpHardwareLength) Reset() { *x = PatternFlowArpHardwareLength{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[669] + mi := &file_otg_proto_msgTypes[675] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -74381,7 +75939,7 @@ func (x *PatternFlowArpHardwareLength) String() string { func (*PatternFlowArpHardwareLength) ProtoMessage() {} func (x *PatternFlowArpHardwareLength) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[669] + mi := &file_otg_proto_msgTypes[675] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74394,7 +75952,7 @@ func (x *PatternFlowArpHardwareLength) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowArpHardwareLength.ProtoReflect.Descriptor instead. func (*PatternFlowArpHardwareLength) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{669} + return file_otg_proto_rawDescGZIP(), []int{675} } func (x *PatternFlowArpHardwareLength) GetChoice() PatternFlowArpHardwareLength_Choice_Enum { @@ -74459,7 +76017,7 @@ type PatternFlowArpProtocolLengthCounter struct { func (x *PatternFlowArpProtocolLengthCounter) Reset() { *x = PatternFlowArpProtocolLengthCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[670] + mi := &file_otg_proto_msgTypes[676] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -74472,7 +76030,7 @@ func (x *PatternFlowArpProtocolLengthCounter) String() string { func (*PatternFlowArpProtocolLengthCounter) ProtoMessage() {} func (x *PatternFlowArpProtocolLengthCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[670] + mi := &file_otg_proto_msgTypes[676] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74485,7 +76043,7 @@ func (x *PatternFlowArpProtocolLengthCounter) ProtoReflect() protoreflect.Messag // Deprecated: Use PatternFlowArpProtocolLengthCounter.ProtoReflect.Descriptor instead. func (*PatternFlowArpProtocolLengthCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{670} + return file_otg_proto_rawDescGZIP(), []int{676} } func (x *PatternFlowArpProtocolLengthCounter) GetStart() uint32 { @@ -74533,7 +76091,7 @@ type PatternFlowArpProtocolLengthMetricTag struct { func (x *PatternFlowArpProtocolLengthMetricTag) Reset() { *x = PatternFlowArpProtocolLengthMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[671] + mi := &file_otg_proto_msgTypes[677] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -74546,7 +76104,7 @@ func (x *PatternFlowArpProtocolLengthMetricTag) String() string { func (*PatternFlowArpProtocolLengthMetricTag) ProtoMessage() {} func (x *PatternFlowArpProtocolLengthMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[671] + mi := &file_otg_proto_msgTypes[677] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74559,7 +76117,7 @@ func (x *PatternFlowArpProtocolLengthMetricTag) ProtoReflect() protoreflect.Mess // Deprecated: Use PatternFlowArpProtocolLengthMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowArpProtocolLengthMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{671} + return file_otg_proto_rawDescGZIP(), []int{677} } func (x *PatternFlowArpProtocolLengthMetricTag) GetName() string { @@ -74611,7 +76169,7 @@ type PatternFlowArpProtocolLength struct { func (x *PatternFlowArpProtocolLength) Reset() { *x = PatternFlowArpProtocolLength{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[672] + mi := &file_otg_proto_msgTypes[678] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -74624,7 +76182,7 @@ func (x *PatternFlowArpProtocolLength) String() string { func (*PatternFlowArpProtocolLength) ProtoMessage() {} func (x *PatternFlowArpProtocolLength) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[672] + mi := &file_otg_proto_msgTypes[678] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74637,7 +76195,7 @@ func (x *PatternFlowArpProtocolLength) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowArpProtocolLength.ProtoReflect.Descriptor instead. func (*PatternFlowArpProtocolLength) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{672} + return file_otg_proto_rawDescGZIP(), []int{678} } func (x *PatternFlowArpProtocolLength) GetChoice() PatternFlowArpProtocolLength_Choice_Enum { @@ -74702,7 +76260,7 @@ type PatternFlowArpOperationCounter struct { func (x *PatternFlowArpOperationCounter) Reset() { *x = PatternFlowArpOperationCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[673] + mi := &file_otg_proto_msgTypes[679] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -74715,7 +76273,7 @@ func (x *PatternFlowArpOperationCounter) String() string { func (*PatternFlowArpOperationCounter) ProtoMessage() {} func (x *PatternFlowArpOperationCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[673] + mi := &file_otg_proto_msgTypes[679] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74728,7 +76286,7 @@ func (x *PatternFlowArpOperationCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowArpOperationCounter.ProtoReflect.Descriptor instead. func (*PatternFlowArpOperationCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{673} + return file_otg_proto_rawDescGZIP(), []int{679} } func (x *PatternFlowArpOperationCounter) GetStart() uint32 { @@ -74776,7 +76334,7 @@ type PatternFlowArpOperationMetricTag struct { func (x *PatternFlowArpOperationMetricTag) Reset() { *x = PatternFlowArpOperationMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[674] + mi := &file_otg_proto_msgTypes[680] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -74789,7 +76347,7 @@ func (x *PatternFlowArpOperationMetricTag) String() string { func (*PatternFlowArpOperationMetricTag) ProtoMessage() {} func (x *PatternFlowArpOperationMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[674] + mi := &file_otg_proto_msgTypes[680] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74802,7 +76360,7 @@ func (x *PatternFlowArpOperationMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowArpOperationMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowArpOperationMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{674} + return file_otg_proto_rawDescGZIP(), []int{680} } func (x *PatternFlowArpOperationMetricTag) GetName() string { @@ -74854,7 +76412,7 @@ type PatternFlowArpOperation struct { func (x *PatternFlowArpOperation) Reset() { *x = PatternFlowArpOperation{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[675] + mi := &file_otg_proto_msgTypes[681] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -74867,7 +76425,7 @@ func (x *PatternFlowArpOperation) String() string { func (*PatternFlowArpOperation) ProtoMessage() {} func (x *PatternFlowArpOperation) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[675] + mi := &file_otg_proto_msgTypes[681] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74880,7 +76438,7 @@ func (x *PatternFlowArpOperation) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowArpOperation.ProtoReflect.Descriptor instead. func (*PatternFlowArpOperation) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{675} + return file_otg_proto_rawDescGZIP(), []int{681} } func (x *PatternFlowArpOperation) GetChoice() PatternFlowArpOperation_Choice_Enum { @@ -74945,7 +76503,7 @@ type PatternFlowArpSenderHardwareAddrCounter struct { func (x *PatternFlowArpSenderHardwareAddrCounter) Reset() { *x = PatternFlowArpSenderHardwareAddrCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[676] + mi := &file_otg_proto_msgTypes[682] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -74958,7 +76516,7 @@ func (x *PatternFlowArpSenderHardwareAddrCounter) String() string { func (*PatternFlowArpSenderHardwareAddrCounter) ProtoMessage() {} func (x *PatternFlowArpSenderHardwareAddrCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[676] + mi := &file_otg_proto_msgTypes[682] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74971,7 +76529,7 @@ func (x *PatternFlowArpSenderHardwareAddrCounter) ProtoReflect() protoreflect.Me // Deprecated: Use PatternFlowArpSenderHardwareAddrCounter.ProtoReflect.Descriptor instead. func (*PatternFlowArpSenderHardwareAddrCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{676} + return file_otg_proto_rawDescGZIP(), []int{682} } func (x *PatternFlowArpSenderHardwareAddrCounter) GetStart() string { @@ -75019,7 +76577,7 @@ type PatternFlowArpSenderHardwareAddrMetricTag struct { func (x *PatternFlowArpSenderHardwareAddrMetricTag) Reset() { *x = PatternFlowArpSenderHardwareAddrMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[677] + mi := &file_otg_proto_msgTypes[683] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -75032,7 +76590,7 @@ func (x *PatternFlowArpSenderHardwareAddrMetricTag) String() string { func (*PatternFlowArpSenderHardwareAddrMetricTag) ProtoMessage() {} func (x *PatternFlowArpSenderHardwareAddrMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[677] + mi := &file_otg_proto_msgTypes[683] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75045,7 +76603,7 @@ func (x *PatternFlowArpSenderHardwareAddrMetricTag) ProtoReflect() protoreflect. // Deprecated: Use PatternFlowArpSenderHardwareAddrMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowArpSenderHardwareAddrMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{677} + return file_otg_proto_rawDescGZIP(), []int{683} } func (x *PatternFlowArpSenderHardwareAddrMetricTag) GetName() string { @@ -75097,7 +76655,7 @@ type PatternFlowArpSenderHardwareAddr struct { func (x *PatternFlowArpSenderHardwareAddr) Reset() { *x = PatternFlowArpSenderHardwareAddr{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[678] + mi := &file_otg_proto_msgTypes[684] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -75110,7 +76668,7 @@ func (x *PatternFlowArpSenderHardwareAddr) String() string { func (*PatternFlowArpSenderHardwareAddr) ProtoMessage() {} func (x *PatternFlowArpSenderHardwareAddr) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[678] + mi := &file_otg_proto_msgTypes[684] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75123,7 +76681,7 @@ func (x *PatternFlowArpSenderHardwareAddr) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowArpSenderHardwareAddr.ProtoReflect.Descriptor instead. func (*PatternFlowArpSenderHardwareAddr) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{678} + return file_otg_proto_rawDescGZIP(), []int{684} } func (x *PatternFlowArpSenderHardwareAddr) GetChoice() PatternFlowArpSenderHardwareAddr_Choice_Enum { @@ -75188,7 +76746,7 @@ type PatternFlowArpSenderProtocolAddrCounter struct { func (x *PatternFlowArpSenderProtocolAddrCounter) Reset() { *x = PatternFlowArpSenderProtocolAddrCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[679] + mi := &file_otg_proto_msgTypes[685] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -75201,7 +76759,7 @@ func (x *PatternFlowArpSenderProtocolAddrCounter) String() string { func (*PatternFlowArpSenderProtocolAddrCounter) ProtoMessage() {} func (x *PatternFlowArpSenderProtocolAddrCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[679] + mi := &file_otg_proto_msgTypes[685] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75214,7 +76772,7 @@ func (x *PatternFlowArpSenderProtocolAddrCounter) ProtoReflect() protoreflect.Me // Deprecated: Use PatternFlowArpSenderProtocolAddrCounter.ProtoReflect.Descriptor instead. func (*PatternFlowArpSenderProtocolAddrCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{679} + return file_otg_proto_rawDescGZIP(), []int{685} } func (x *PatternFlowArpSenderProtocolAddrCounter) GetStart() string { @@ -75262,7 +76820,7 @@ type PatternFlowArpSenderProtocolAddrMetricTag struct { func (x *PatternFlowArpSenderProtocolAddrMetricTag) Reset() { *x = PatternFlowArpSenderProtocolAddrMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[680] + mi := &file_otg_proto_msgTypes[686] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -75275,7 +76833,7 @@ func (x *PatternFlowArpSenderProtocolAddrMetricTag) String() string { func (*PatternFlowArpSenderProtocolAddrMetricTag) ProtoMessage() {} func (x *PatternFlowArpSenderProtocolAddrMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[680] + mi := &file_otg_proto_msgTypes[686] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75288,7 +76846,7 @@ func (x *PatternFlowArpSenderProtocolAddrMetricTag) ProtoReflect() protoreflect. // Deprecated: Use PatternFlowArpSenderProtocolAddrMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowArpSenderProtocolAddrMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{680} + return file_otg_proto_rawDescGZIP(), []int{686} } func (x *PatternFlowArpSenderProtocolAddrMetricTag) GetName() string { @@ -75340,7 +76898,7 @@ type PatternFlowArpSenderProtocolAddr struct { func (x *PatternFlowArpSenderProtocolAddr) Reset() { *x = PatternFlowArpSenderProtocolAddr{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[681] + mi := &file_otg_proto_msgTypes[687] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -75353,7 +76911,7 @@ func (x *PatternFlowArpSenderProtocolAddr) String() string { func (*PatternFlowArpSenderProtocolAddr) ProtoMessage() {} func (x *PatternFlowArpSenderProtocolAddr) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[681] + mi := &file_otg_proto_msgTypes[687] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75366,7 +76924,7 @@ func (x *PatternFlowArpSenderProtocolAddr) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowArpSenderProtocolAddr.ProtoReflect.Descriptor instead. func (*PatternFlowArpSenderProtocolAddr) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{681} + return file_otg_proto_rawDescGZIP(), []int{687} } func (x *PatternFlowArpSenderProtocolAddr) GetChoice() PatternFlowArpSenderProtocolAddr_Choice_Enum { @@ -75431,7 +76989,7 @@ type PatternFlowArpTargetHardwareAddrCounter struct { func (x *PatternFlowArpTargetHardwareAddrCounter) Reset() { *x = PatternFlowArpTargetHardwareAddrCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[682] + mi := &file_otg_proto_msgTypes[688] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -75444,7 +77002,7 @@ func (x *PatternFlowArpTargetHardwareAddrCounter) String() string { func (*PatternFlowArpTargetHardwareAddrCounter) ProtoMessage() {} func (x *PatternFlowArpTargetHardwareAddrCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[682] + mi := &file_otg_proto_msgTypes[688] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75457,7 +77015,7 @@ func (x *PatternFlowArpTargetHardwareAddrCounter) ProtoReflect() protoreflect.Me // Deprecated: Use PatternFlowArpTargetHardwareAddrCounter.ProtoReflect.Descriptor instead. func (*PatternFlowArpTargetHardwareAddrCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{682} + return file_otg_proto_rawDescGZIP(), []int{688} } func (x *PatternFlowArpTargetHardwareAddrCounter) GetStart() string { @@ -75505,7 +77063,7 @@ type PatternFlowArpTargetHardwareAddrMetricTag struct { func (x *PatternFlowArpTargetHardwareAddrMetricTag) Reset() { *x = PatternFlowArpTargetHardwareAddrMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[683] + mi := &file_otg_proto_msgTypes[689] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -75518,7 +77076,7 @@ func (x *PatternFlowArpTargetHardwareAddrMetricTag) String() string { func (*PatternFlowArpTargetHardwareAddrMetricTag) ProtoMessage() {} func (x *PatternFlowArpTargetHardwareAddrMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[683] + mi := &file_otg_proto_msgTypes[689] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75531,7 +77089,7 @@ func (x *PatternFlowArpTargetHardwareAddrMetricTag) ProtoReflect() protoreflect. // Deprecated: Use PatternFlowArpTargetHardwareAddrMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowArpTargetHardwareAddrMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{683} + return file_otg_proto_rawDescGZIP(), []int{689} } func (x *PatternFlowArpTargetHardwareAddrMetricTag) GetName() string { @@ -75583,7 +77141,7 @@ type PatternFlowArpTargetHardwareAddr struct { func (x *PatternFlowArpTargetHardwareAddr) Reset() { *x = PatternFlowArpTargetHardwareAddr{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[684] + mi := &file_otg_proto_msgTypes[690] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -75596,7 +77154,7 @@ func (x *PatternFlowArpTargetHardwareAddr) String() string { func (*PatternFlowArpTargetHardwareAddr) ProtoMessage() {} func (x *PatternFlowArpTargetHardwareAddr) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[684] + mi := &file_otg_proto_msgTypes[690] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75609,7 +77167,7 @@ func (x *PatternFlowArpTargetHardwareAddr) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowArpTargetHardwareAddr.ProtoReflect.Descriptor instead. func (*PatternFlowArpTargetHardwareAddr) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{684} + return file_otg_proto_rawDescGZIP(), []int{690} } func (x *PatternFlowArpTargetHardwareAddr) GetChoice() PatternFlowArpTargetHardwareAddr_Choice_Enum { @@ -75674,7 +77232,7 @@ type PatternFlowArpTargetProtocolAddrCounter struct { func (x *PatternFlowArpTargetProtocolAddrCounter) Reset() { *x = PatternFlowArpTargetProtocolAddrCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[685] + mi := &file_otg_proto_msgTypes[691] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -75687,7 +77245,7 @@ func (x *PatternFlowArpTargetProtocolAddrCounter) String() string { func (*PatternFlowArpTargetProtocolAddrCounter) ProtoMessage() {} func (x *PatternFlowArpTargetProtocolAddrCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[685] + mi := &file_otg_proto_msgTypes[691] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75700,7 +77258,7 @@ func (x *PatternFlowArpTargetProtocolAddrCounter) ProtoReflect() protoreflect.Me // Deprecated: Use PatternFlowArpTargetProtocolAddrCounter.ProtoReflect.Descriptor instead. func (*PatternFlowArpTargetProtocolAddrCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{685} + return file_otg_proto_rawDescGZIP(), []int{691} } func (x *PatternFlowArpTargetProtocolAddrCounter) GetStart() string { @@ -75748,7 +77306,7 @@ type PatternFlowArpTargetProtocolAddrMetricTag struct { func (x *PatternFlowArpTargetProtocolAddrMetricTag) Reset() { *x = PatternFlowArpTargetProtocolAddrMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[686] + mi := &file_otg_proto_msgTypes[692] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -75761,7 +77319,7 @@ func (x *PatternFlowArpTargetProtocolAddrMetricTag) String() string { func (*PatternFlowArpTargetProtocolAddrMetricTag) ProtoMessage() {} func (x *PatternFlowArpTargetProtocolAddrMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[686] + mi := &file_otg_proto_msgTypes[692] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75774,7 +77332,7 @@ func (x *PatternFlowArpTargetProtocolAddrMetricTag) ProtoReflect() protoreflect. // Deprecated: Use PatternFlowArpTargetProtocolAddrMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowArpTargetProtocolAddrMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{686} + return file_otg_proto_rawDescGZIP(), []int{692} } func (x *PatternFlowArpTargetProtocolAddrMetricTag) GetName() string { @@ -75826,7 +77384,7 @@ type PatternFlowArpTargetProtocolAddr struct { func (x *PatternFlowArpTargetProtocolAddr) Reset() { *x = PatternFlowArpTargetProtocolAddr{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[687] + mi := &file_otg_proto_msgTypes[693] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -75839,7 +77397,7 @@ func (x *PatternFlowArpTargetProtocolAddr) String() string { func (*PatternFlowArpTargetProtocolAddr) ProtoMessage() {} func (x *PatternFlowArpTargetProtocolAddr) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[687] + mi := &file_otg_proto_msgTypes[693] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75852,7 +77410,7 @@ func (x *PatternFlowArpTargetProtocolAddr) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowArpTargetProtocolAddr.ProtoReflect.Descriptor instead. func (*PatternFlowArpTargetProtocolAddr) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{687} + return file_otg_proto_rawDescGZIP(), []int{693} } func (x *PatternFlowArpTargetProtocolAddr) GetChoice() PatternFlowArpTargetProtocolAddr_Choice_Enum { @@ -75917,7 +77475,7 @@ type PatternFlowIcmpEchoTypeCounter struct { func (x *PatternFlowIcmpEchoTypeCounter) Reset() { *x = PatternFlowIcmpEchoTypeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[688] + mi := &file_otg_proto_msgTypes[694] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -75930,7 +77488,7 @@ func (x *PatternFlowIcmpEchoTypeCounter) String() string { func (*PatternFlowIcmpEchoTypeCounter) ProtoMessage() {} func (x *PatternFlowIcmpEchoTypeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[688] + mi := &file_otg_proto_msgTypes[694] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75943,7 +77501,7 @@ func (x *PatternFlowIcmpEchoTypeCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIcmpEchoTypeCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIcmpEchoTypeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{688} + return file_otg_proto_rawDescGZIP(), []int{694} } func (x *PatternFlowIcmpEchoTypeCounter) GetStart() uint32 { @@ -75991,7 +77549,7 @@ type PatternFlowIcmpEchoTypeMetricTag struct { func (x *PatternFlowIcmpEchoTypeMetricTag) Reset() { *x = PatternFlowIcmpEchoTypeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[689] + mi := &file_otg_proto_msgTypes[695] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -76004,7 +77562,7 @@ func (x *PatternFlowIcmpEchoTypeMetricTag) String() string { func (*PatternFlowIcmpEchoTypeMetricTag) ProtoMessage() {} func (x *PatternFlowIcmpEchoTypeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[689] + mi := &file_otg_proto_msgTypes[695] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76017,7 +77575,7 @@ func (x *PatternFlowIcmpEchoTypeMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIcmpEchoTypeMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIcmpEchoTypeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{689} + return file_otg_proto_rawDescGZIP(), []int{695} } func (x *PatternFlowIcmpEchoTypeMetricTag) GetName() string { @@ -76069,7 +77627,7 @@ type PatternFlowIcmpEchoType struct { func (x *PatternFlowIcmpEchoType) Reset() { *x = PatternFlowIcmpEchoType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[690] + mi := &file_otg_proto_msgTypes[696] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -76082,7 +77640,7 @@ func (x *PatternFlowIcmpEchoType) String() string { func (*PatternFlowIcmpEchoType) ProtoMessage() {} func (x *PatternFlowIcmpEchoType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[690] + mi := &file_otg_proto_msgTypes[696] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76095,7 +77653,7 @@ func (x *PatternFlowIcmpEchoType) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIcmpEchoType.ProtoReflect.Descriptor instead. func (*PatternFlowIcmpEchoType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{690} + return file_otg_proto_rawDescGZIP(), []int{696} } func (x *PatternFlowIcmpEchoType) GetChoice() PatternFlowIcmpEchoType_Choice_Enum { @@ -76160,7 +77718,7 @@ type PatternFlowIcmpEchoCodeCounter struct { func (x *PatternFlowIcmpEchoCodeCounter) Reset() { *x = PatternFlowIcmpEchoCodeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[691] + mi := &file_otg_proto_msgTypes[697] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -76173,7 +77731,7 @@ func (x *PatternFlowIcmpEchoCodeCounter) String() string { func (*PatternFlowIcmpEchoCodeCounter) ProtoMessage() {} func (x *PatternFlowIcmpEchoCodeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[691] + mi := &file_otg_proto_msgTypes[697] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76186,7 +77744,7 @@ func (x *PatternFlowIcmpEchoCodeCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIcmpEchoCodeCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIcmpEchoCodeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{691} + return file_otg_proto_rawDescGZIP(), []int{697} } func (x *PatternFlowIcmpEchoCodeCounter) GetStart() uint32 { @@ -76234,7 +77792,7 @@ type PatternFlowIcmpEchoCodeMetricTag struct { func (x *PatternFlowIcmpEchoCodeMetricTag) Reset() { *x = PatternFlowIcmpEchoCodeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[692] + mi := &file_otg_proto_msgTypes[698] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -76247,7 +77805,7 @@ func (x *PatternFlowIcmpEchoCodeMetricTag) String() string { func (*PatternFlowIcmpEchoCodeMetricTag) ProtoMessage() {} func (x *PatternFlowIcmpEchoCodeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[692] + mi := &file_otg_proto_msgTypes[698] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76260,7 +77818,7 @@ func (x *PatternFlowIcmpEchoCodeMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIcmpEchoCodeMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIcmpEchoCodeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{692} + return file_otg_proto_rawDescGZIP(), []int{698} } func (x *PatternFlowIcmpEchoCodeMetricTag) GetName() string { @@ -76312,7 +77870,7 @@ type PatternFlowIcmpEchoCode struct { func (x *PatternFlowIcmpEchoCode) Reset() { *x = PatternFlowIcmpEchoCode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[693] + mi := &file_otg_proto_msgTypes[699] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -76325,7 +77883,7 @@ func (x *PatternFlowIcmpEchoCode) String() string { func (*PatternFlowIcmpEchoCode) ProtoMessage() {} func (x *PatternFlowIcmpEchoCode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[693] + mi := &file_otg_proto_msgTypes[699] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76338,7 +77896,7 @@ func (x *PatternFlowIcmpEchoCode) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIcmpEchoCode.ProtoReflect.Descriptor instead. func (*PatternFlowIcmpEchoCode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{693} + return file_otg_proto_rawDescGZIP(), []int{699} } func (x *PatternFlowIcmpEchoCode) GetChoice() PatternFlowIcmpEchoCode_Choice_Enum { @@ -76402,7 +77960,7 @@ type PatternFlowIcmpEchoChecksum struct { func (x *PatternFlowIcmpEchoChecksum) Reset() { *x = PatternFlowIcmpEchoChecksum{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[694] + mi := &file_otg_proto_msgTypes[700] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -76415,7 +77973,7 @@ func (x *PatternFlowIcmpEchoChecksum) String() string { func (*PatternFlowIcmpEchoChecksum) ProtoMessage() {} func (x *PatternFlowIcmpEchoChecksum) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[694] + mi := &file_otg_proto_msgTypes[700] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76428,7 +77986,7 @@ func (x *PatternFlowIcmpEchoChecksum) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIcmpEchoChecksum.ProtoReflect.Descriptor instead. func (*PatternFlowIcmpEchoChecksum) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{694} + return file_otg_proto_rawDescGZIP(), []int{700} } func (x *PatternFlowIcmpEchoChecksum) GetChoice() PatternFlowIcmpEchoChecksum_Choice_Enum { @@ -76472,7 +78030,7 @@ type PatternFlowIcmpEchoIdentifierCounter struct { func (x *PatternFlowIcmpEchoIdentifierCounter) Reset() { *x = PatternFlowIcmpEchoIdentifierCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[695] + mi := &file_otg_proto_msgTypes[701] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -76485,7 +78043,7 @@ func (x *PatternFlowIcmpEchoIdentifierCounter) String() string { func (*PatternFlowIcmpEchoIdentifierCounter) ProtoMessage() {} func (x *PatternFlowIcmpEchoIdentifierCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[695] + mi := &file_otg_proto_msgTypes[701] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76498,7 +78056,7 @@ func (x *PatternFlowIcmpEchoIdentifierCounter) ProtoReflect() protoreflect.Messa // Deprecated: Use PatternFlowIcmpEchoIdentifierCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIcmpEchoIdentifierCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{695} + return file_otg_proto_rawDescGZIP(), []int{701} } func (x *PatternFlowIcmpEchoIdentifierCounter) GetStart() uint32 { @@ -76546,7 +78104,7 @@ type PatternFlowIcmpEchoIdentifierMetricTag struct { func (x *PatternFlowIcmpEchoIdentifierMetricTag) Reset() { *x = PatternFlowIcmpEchoIdentifierMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[696] + mi := &file_otg_proto_msgTypes[702] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -76559,7 +78117,7 @@ func (x *PatternFlowIcmpEchoIdentifierMetricTag) String() string { func (*PatternFlowIcmpEchoIdentifierMetricTag) ProtoMessage() {} func (x *PatternFlowIcmpEchoIdentifierMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[696] + mi := &file_otg_proto_msgTypes[702] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76572,7 +78130,7 @@ func (x *PatternFlowIcmpEchoIdentifierMetricTag) ProtoReflect() protoreflect.Mes // Deprecated: Use PatternFlowIcmpEchoIdentifierMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIcmpEchoIdentifierMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{696} + return file_otg_proto_rawDescGZIP(), []int{702} } func (x *PatternFlowIcmpEchoIdentifierMetricTag) GetName() string { @@ -76624,7 +78182,7 @@ type PatternFlowIcmpEchoIdentifier struct { func (x *PatternFlowIcmpEchoIdentifier) Reset() { *x = PatternFlowIcmpEchoIdentifier{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[697] + mi := &file_otg_proto_msgTypes[703] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -76637,7 +78195,7 @@ func (x *PatternFlowIcmpEchoIdentifier) String() string { func (*PatternFlowIcmpEchoIdentifier) ProtoMessage() {} func (x *PatternFlowIcmpEchoIdentifier) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[697] + mi := &file_otg_proto_msgTypes[703] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76650,7 +78208,7 @@ func (x *PatternFlowIcmpEchoIdentifier) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIcmpEchoIdentifier.ProtoReflect.Descriptor instead. func (*PatternFlowIcmpEchoIdentifier) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{697} + return file_otg_proto_rawDescGZIP(), []int{703} } func (x *PatternFlowIcmpEchoIdentifier) GetChoice() PatternFlowIcmpEchoIdentifier_Choice_Enum { @@ -76715,7 +78273,7 @@ type PatternFlowIcmpEchoSequenceNumberCounter struct { func (x *PatternFlowIcmpEchoSequenceNumberCounter) Reset() { *x = PatternFlowIcmpEchoSequenceNumberCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[698] + mi := &file_otg_proto_msgTypes[704] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -76728,7 +78286,7 @@ func (x *PatternFlowIcmpEchoSequenceNumberCounter) String() string { func (*PatternFlowIcmpEchoSequenceNumberCounter) ProtoMessage() {} func (x *PatternFlowIcmpEchoSequenceNumberCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[698] + mi := &file_otg_proto_msgTypes[704] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76741,7 +78299,7 @@ func (x *PatternFlowIcmpEchoSequenceNumberCounter) ProtoReflect() protoreflect.M // Deprecated: Use PatternFlowIcmpEchoSequenceNumberCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIcmpEchoSequenceNumberCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{698} + return file_otg_proto_rawDescGZIP(), []int{704} } func (x *PatternFlowIcmpEchoSequenceNumberCounter) GetStart() uint32 { @@ -76789,7 +78347,7 @@ type PatternFlowIcmpEchoSequenceNumberMetricTag struct { func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) Reset() { *x = PatternFlowIcmpEchoSequenceNumberMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[699] + mi := &file_otg_proto_msgTypes[705] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -76802,7 +78360,7 @@ func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) String() string { func (*PatternFlowIcmpEchoSequenceNumberMetricTag) ProtoMessage() {} func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[699] + mi := &file_otg_proto_msgTypes[705] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76815,7 +78373,7 @@ func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) ProtoReflect() protoreflect // Deprecated: Use PatternFlowIcmpEchoSequenceNumberMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIcmpEchoSequenceNumberMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{699} + return file_otg_proto_rawDescGZIP(), []int{705} } func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) GetName() string { @@ -76867,7 +78425,7 @@ type PatternFlowIcmpEchoSequenceNumber struct { func (x *PatternFlowIcmpEchoSequenceNumber) Reset() { *x = PatternFlowIcmpEchoSequenceNumber{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[700] + mi := &file_otg_proto_msgTypes[706] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -76880,7 +78438,7 @@ func (x *PatternFlowIcmpEchoSequenceNumber) String() string { func (*PatternFlowIcmpEchoSequenceNumber) ProtoMessage() {} func (x *PatternFlowIcmpEchoSequenceNumber) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[700] + mi := &file_otg_proto_msgTypes[706] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76893,7 +78451,7 @@ func (x *PatternFlowIcmpEchoSequenceNumber) ProtoReflect() protoreflect.Message // Deprecated: Use PatternFlowIcmpEchoSequenceNumber.ProtoReflect.Descriptor instead. func (*PatternFlowIcmpEchoSequenceNumber) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{700} + return file_otg_proto_rawDescGZIP(), []int{706} } func (x *PatternFlowIcmpEchoSequenceNumber) GetChoice() PatternFlowIcmpEchoSequenceNumber_Choice_Enum { @@ -76957,7 +78515,7 @@ type PatternFlowIcmpCommonChecksum struct { func (x *PatternFlowIcmpCommonChecksum) Reset() { *x = PatternFlowIcmpCommonChecksum{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[701] + mi := &file_otg_proto_msgTypes[707] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -76970,7 +78528,7 @@ func (x *PatternFlowIcmpCommonChecksum) String() string { func (*PatternFlowIcmpCommonChecksum) ProtoMessage() {} func (x *PatternFlowIcmpCommonChecksum) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[701] + mi := &file_otg_proto_msgTypes[707] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76983,7 +78541,7 @@ func (x *PatternFlowIcmpCommonChecksum) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIcmpCommonChecksum.ProtoReflect.Descriptor instead. func (*PatternFlowIcmpCommonChecksum) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{701} + return file_otg_proto_rawDescGZIP(), []int{707} } func (x *PatternFlowIcmpCommonChecksum) GetChoice() PatternFlowIcmpCommonChecksum_Choice_Enum { @@ -77027,7 +78585,7 @@ type PatternFlowIcmpNextFieldsIdentifierCounter struct { func (x *PatternFlowIcmpNextFieldsIdentifierCounter) Reset() { *x = PatternFlowIcmpNextFieldsIdentifierCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[702] + mi := &file_otg_proto_msgTypes[708] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -77040,7 +78598,7 @@ func (x *PatternFlowIcmpNextFieldsIdentifierCounter) String() string { func (*PatternFlowIcmpNextFieldsIdentifierCounter) ProtoMessage() {} func (x *PatternFlowIcmpNextFieldsIdentifierCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[702] + mi := &file_otg_proto_msgTypes[708] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77053,7 +78611,7 @@ func (x *PatternFlowIcmpNextFieldsIdentifierCounter) ProtoReflect() protoreflect // Deprecated: Use PatternFlowIcmpNextFieldsIdentifierCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIcmpNextFieldsIdentifierCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{702} + return file_otg_proto_rawDescGZIP(), []int{708} } func (x *PatternFlowIcmpNextFieldsIdentifierCounter) GetStart() uint32 { @@ -77101,7 +78659,7 @@ type PatternFlowIcmpNextFieldsIdentifierMetricTag struct { func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) Reset() { *x = PatternFlowIcmpNextFieldsIdentifierMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[703] + mi := &file_otg_proto_msgTypes[709] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -77114,7 +78672,7 @@ func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) String() string { func (*PatternFlowIcmpNextFieldsIdentifierMetricTag) ProtoMessage() {} func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[703] + mi := &file_otg_proto_msgTypes[709] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77127,7 +78685,7 @@ func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) ProtoReflect() protorefle // Deprecated: Use PatternFlowIcmpNextFieldsIdentifierMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIcmpNextFieldsIdentifierMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{703} + return file_otg_proto_rawDescGZIP(), []int{709} } func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) GetName() string { @@ -77179,7 +78737,7 @@ type PatternFlowIcmpNextFieldsIdentifier struct { func (x *PatternFlowIcmpNextFieldsIdentifier) Reset() { *x = PatternFlowIcmpNextFieldsIdentifier{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[704] + mi := &file_otg_proto_msgTypes[710] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -77192,7 +78750,7 @@ func (x *PatternFlowIcmpNextFieldsIdentifier) String() string { func (*PatternFlowIcmpNextFieldsIdentifier) ProtoMessage() {} func (x *PatternFlowIcmpNextFieldsIdentifier) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[704] + mi := &file_otg_proto_msgTypes[710] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77205,7 +78763,7 @@ func (x *PatternFlowIcmpNextFieldsIdentifier) ProtoReflect() protoreflect.Messag // Deprecated: Use PatternFlowIcmpNextFieldsIdentifier.ProtoReflect.Descriptor instead. func (*PatternFlowIcmpNextFieldsIdentifier) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{704} + return file_otg_proto_rawDescGZIP(), []int{710} } func (x *PatternFlowIcmpNextFieldsIdentifier) GetChoice() PatternFlowIcmpNextFieldsIdentifier_Choice_Enum { @@ -77270,7 +78828,7 @@ type PatternFlowIcmpNextFieldsSequenceNumberCounter struct { func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) Reset() { *x = PatternFlowIcmpNextFieldsSequenceNumberCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[705] + mi := &file_otg_proto_msgTypes[711] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -77283,7 +78841,7 @@ func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) String() string { func (*PatternFlowIcmpNextFieldsSequenceNumberCounter) ProtoMessage() {} func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[705] + mi := &file_otg_proto_msgTypes[711] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77296,7 +78854,7 @@ func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) ProtoReflect() protoref // Deprecated: Use PatternFlowIcmpNextFieldsSequenceNumberCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIcmpNextFieldsSequenceNumberCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{705} + return file_otg_proto_rawDescGZIP(), []int{711} } func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) GetStart() uint32 { @@ -77344,7 +78902,7 @@ type PatternFlowIcmpNextFieldsSequenceNumberMetricTag struct { func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) Reset() { *x = PatternFlowIcmpNextFieldsSequenceNumberMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[706] + mi := &file_otg_proto_msgTypes[712] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -77357,7 +78915,7 @@ func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) String() string { func (*PatternFlowIcmpNextFieldsSequenceNumberMetricTag) ProtoMessage() {} func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[706] + mi := &file_otg_proto_msgTypes[712] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77370,7 +78928,7 @@ func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) ProtoReflect() protor // Deprecated: Use PatternFlowIcmpNextFieldsSequenceNumberMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIcmpNextFieldsSequenceNumberMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{706} + return file_otg_proto_rawDescGZIP(), []int{712} } func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) GetName() string { @@ -77422,7 +78980,7 @@ type PatternFlowIcmpNextFieldsSequenceNumber struct { func (x *PatternFlowIcmpNextFieldsSequenceNumber) Reset() { *x = PatternFlowIcmpNextFieldsSequenceNumber{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[707] + mi := &file_otg_proto_msgTypes[713] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -77435,7 +78993,7 @@ func (x *PatternFlowIcmpNextFieldsSequenceNumber) String() string { func (*PatternFlowIcmpNextFieldsSequenceNumber) ProtoMessage() {} func (x *PatternFlowIcmpNextFieldsSequenceNumber) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[707] + mi := &file_otg_proto_msgTypes[713] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77448,7 +79006,7 @@ func (x *PatternFlowIcmpNextFieldsSequenceNumber) ProtoReflect() protoreflect.Me // Deprecated: Use PatternFlowIcmpNextFieldsSequenceNumber.ProtoReflect.Descriptor instead. func (*PatternFlowIcmpNextFieldsSequenceNumber) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{707} + return file_otg_proto_rawDescGZIP(), []int{713} } func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetChoice() PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum { @@ -77513,7 +79071,7 @@ type PatternFlowIcmpv6EchoTypeCounter struct { func (x *PatternFlowIcmpv6EchoTypeCounter) Reset() { *x = PatternFlowIcmpv6EchoTypeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[708] + mi := &file_otg_proto_msgTypes[714] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -77526,7 +79084,7 @@ func (x *PatternFlowIcmpv6EchoTypeCounter) String() string { func (*PatternFlowIcmpv6EchoTypeCounter) ProtoMessage() {} func (x *PatternFlowIcmpv6EchoTypeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[708] + mi := &file_otg_proto_msgTypes[714] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77539,7 +79097,7 @@ func (x *PatternFlowIcmpv6EchoTypeCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIcmpv6EchoTypeCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIcmpv6EchoTypeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{708} + return file_otg_proto_rawDescGZIP(), []int{714} } func (x *PatternFlowIcmpv6EchoTypeCounter) GetStart() uint32 { @@ -77587,7 +79145,7 @@ type PatternFlowIcmpv6EchoTypeMetricTag struct { func (x *PatternFlowIcmpv6EchoTypeMetricTag) Reset() { *x = PatternFlowIcmpv6EchoTypeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[709] + mi := &file_otg_proto_msgTypes[715] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -77600,7 +79158,7 @@ func (x *PatternFlowIcmpv6EchoTypeMetricTag) String() string { func (*PatternFlowIcmpv6EchoTypeMetricTag) ProtoMessage() {} func (x *PatternFlowIcmpv6EchoTypeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[709] + mi := &file_otg_proto_msgTypes[715] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77613,7 +79171,7 @@ func (x *PatternFlowIcmpv6EchoTypeMetricTag) ProtoReflect() protoreflect.Message // Deprecated: Use PatternFlowIcmpv6EchoTypeMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIcmpv6EchoTypeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{709} + return file_otg_proto_rawDescGZIP(), []int{715} } func (x *PatternFlowIcmpv6EchoTypeMetricTag) GetName() string { @@ -77665,7 +79223,7 @@ type PatternFlowIcmpv6EchoType struct { func (x *PatternFlowIcmpv6EchoType) Reset() { *x = PatternFlowIcmpv6EchoType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[710] + mi := &file_otg_proto_msgTypes[716] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -77678,7 +79236,7 @@ func (x *PatternFlowIcmpv6EchoType) String() string { func (*PatternFlowIcmpv6EchoType) ProtoMessage() {} func (x *PatternFlowIcmpv6EchoType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[710] + mi := &file_otg_proto_msgTypes[716] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77691,7 +79249,7 @@ func (x *PatternFlowIcmpv6EchoType) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIcmpv6EchoType.ProtoReflect.Descriptor instead. func (*PatternFlowIcmpv6EchoType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{710} + return file_otg_proto_rawDescGZIP(), []int{716} } func (x *PatternFlowIcmpv6EchoType) GetChoice() PatternFlowIcmpv6EchoType_Choice_Enum { @@ -77756,7 +79314,7 @@ type PatternFlowIcmpv6EchoCodeCounter struct { func (x *PatternFlowIcmpv6EchoCodeCounter) Reset() { *x = PatternFlowIcmpv6EchoCodeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[711] + mi := &file_otg_proto_msgTypes[717] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -77769,7 +79327,7 @@ func (x *PatternFlowIcmpv6EchoCodeCounter) String() string { func (*PatternFlowIcmpv6EchoCodeCounter) ProtoMessage() {} func (x *PatternFlowIcmpv6EchoCodeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[711] + mi := &file_otg_proto_msgTypes[717] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77782,7 +79340,7 @@ func (x *PatternFlowIcmpv6EchoCodeCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIcmpv6EchoCodeCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIcmpv6EchoCodeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{711} + return file_otg_proto_rawDescGZIP(), []int{717} } func (x *PatternFlowIcmpv6EchoCodeCounter) GetStart() uint32 { @@ -77830,7 +79388,7 @@ type PatternFlowIcmpv6EchoCodeMetricTag struct { func (x *PatternFlowIcmpv6EchoCodeMetricTag) Reset() { *x = PatternFlowIcmpv6EchoCodeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[712] + mi := &file_otg_proto_msgTypes[718] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -77843,7 +79401,7 @@ func (x *PatternFlowIcmpv6EchoCodeMetricTag) String() string { func (*PatternFlowIcmpv6EchoCodeMetricTag) ProtoMessage() {} func (x *PatternFlowIcmpv6EchoCodeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[712] + mi := &file_otg_proto_msgTypes[718] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77856,7 +79414,7 @@ func (x *PatternFlowIcmpv6EchoCodeMetricTag) ProtoReflect() protoreflect.Message // Deprecated: Use PatternFlowIcmpv6EchoCodeMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIcmpv6EchoCodeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{712} + return file_otg_proto_rawDescGZIP(), []int{718} } func (x *PatternFlowIcmpv6EchoCodeMetricTag) GetName() string { @@ -77908,7 +79466,7 @@ type PatternFlowIcmpv6EchoCode struct { func (x *PatternFlowIcmpv6EchoCode) Reset() { *x = PatternFlowIcmpv6EchoCode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[713] + mi := &file_otg_proto_msgTypes[719] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -77921,7 +79479,7 @@ func (x *PatternFlowIcmpv6EchoCode) String() string { func (*PatternFlowIcmpv6EchoCode) ProtoMessage() {} func (x *PatternFlowIcmpv6EchoCode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[713] + mi := &file_otg_proto_msgTypes[719] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77934,7 +79492,7 @@ func (x *PatternFlowIcmpv6EchoCode) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIcmpv6EchoCode.ProtoReflect.Descriptor instead. func (*PatternFlowIcmpv6EchoCode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{713} + return file_otg_proto_rawDescGZIP(), []int{719} } func (x *PatternFlowIcmpv6EchoCode) GetChoice() PatternFlowIcmpv6EchoCode_Choice_Enum { @@ -77999,7 +79557,7 @@ type PatternFlowIcmpv6EchoIdentifierCounter struct { func (x *PatternFlowIcmpv6EchoIdentifierCounter) Reset() { *x = PatternFlowIcmpv6EchoIdentifierCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[714] + mi := &file_otg_proto_msgTypes[720] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -78012,7 +79570,7 @@ func (x *PatternFlowIcmpv6EchoIdentifierCounter) String() string { func (*PatternFlowIcmpv6EchoIdentifierCounter) ProtoMessage() {} func (x *PatternFlowIcmpv6EchoIdentifierCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[714] + mi := &file_otg_proto_msgTypes[720] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78025,7 +79583,7 @@ func (x *PatternFlowIcmpv6EchoIdentifierCounter) ProtoReflect() protoreflect.Mes // Deprecated: Use PatternFlowIcmpv6EchoIdentifierCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIcmpv6EchoIdentifierCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{714} + return file_otg_proto_rawDescGZIP(), []int{720} } func (x *PatternFlowIcmpv6EchoIdentifierCounter) GetStart() uint32 { @@ -78073,7 +79631,7 @@ type PatternFlowIcmpv6EchoIdentifierMetricTag struct { func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) Reset() { *x = PatternFlowIcmpv6EchoIdentifierMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[715] + mi := &file_otg_proto_msgTypes[721] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -78086,7 +79644,7 @@ func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) String() string { func (*PatternFlowIcmpv6EchoIdentifierMetricTag) ProtoMessage() {} func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[715] + mi := &file_otg_proto_msgTypes[721] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78099,7 +79657,7 @@ func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) ProtoReflect() protoreflect.M // Deprecated: Use PatternFlowIcmpv6EchoIdentifierMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIcmpv6EchoIdentifierMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{715} + return file_otg_proto_rawDescGZIP(), []int{721} } func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) GetName() string { @@ -78151,7 +79709,7 @@ type PatternFlowIcmpv6EchoIdentifier struct { func (x *PatternFlowIcmpv6EchoIdentifier) Reset() { *x = PatternFlowIcmpv6EchoIdentifier{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[716] + mi := &file_otg_proto_msgTypes[722] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -78164,7 +79722,7 @@ func (x *PatternFlowIcmpv6EchoIdentifier) String() string { func (*PatternFlowIcmpv6EchoIdentifier) ProtoMessage() {} func (x *PatternFlowIcmpv6EchoIdentifier) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[716] + mi := &file_otg_proto_msgTypes[722] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78177,7 +79735,7 @@ func (x *PatternFlowIcmpv6EchoIdentifier) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIcmpv6EchoIdentifier.ProtoReflect.Descriptor instead. func (*PatternFlowIcmpv6EchoIdentifier) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{716} + return file_otg_proto_rawDescGZIP(), []int{722} } func (x *PatternFlowIcmpv6EchoIdentifier) GetChoice() PatternFlowIcmpv6EchoIdentifier_Choice_Enum { @@ -78242,7 +79800,7 @@ type PatternFlowIcmpv6EchoSequenceNumberCounter struct { func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) Reset() { *x = PatternFlowIcmpv6EchoSequenceNumberCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[717] + mi := &file_otg_proto_msgTypes[723] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -78255,7 +79813,7 @@ func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) String() string { func (*PatternFlowIcmpv6EchoSequenceNumberCounter) ProtoMessage() {} func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[717] + mi := &file_otg_proto_msgTypes[723] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78268,7 +79826,7 @@ func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) ProtoReflect() protoreflect // Deprecated: Use PatternFlowIcmpv6EchoSequenceNumberCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIcmpv6EchoSequenceNumberCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{717} + return file_otg_proto_rawDescGZIP(), []int{723} } func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) GetStart() uint32 { @@ -78316,7 +79874,7 @@ type PatternFlowIcmpv6EchoSequenceNumberMetricTag struct { func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) Reset() { *x = PatternFlowIcmpv6EchoSequenceNumberMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[718] + mi := &file_otg_proto_msgTypes[724] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -78329,7 +79887,7 @@ func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) String() string { func (*PatternFlowIcmpv6EchoSequenceNumberMetricTag) ProtoMessage() {} func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[718] + mi := &file_otg_proto_msgTypes[724] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78342,7 +79900,7 @@ func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) ProtoReflect() protorefle // Deprecated: Use PatternFlowIcmpv6EchoSequenceNumberMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIcmpv6EchoSequenceNumberMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{718} + return file_otg_proto_rawDescGZIP(), []int{724} } func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) GetName() string { @@ -78394,7 +79952,7 @@ type PatternFlowIcmpv6EchoSequenceNumber struct { func (x *PatternFlowIcmpv6EchoSequenceNumber) Reset() { *x = PatternFlowIcmpv6EchoSequenceNumber{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[719] + mi := &file_otg_proto_msgTypes[725] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -78407,7 +79965,7 @@ func (x *PatternFlowIcmpv6EchoSequenceNumber) String() string { func (*PatternFlowIcmpv6EchoSequenceNumber) ProtoMessage() {} func (x *PatternFlowIcmpv6EchoSequenceNumber) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[719] + mi := &file_otg_proto_msgTypes[725] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78420,7 +79978,7 @@ func (x *PatternFlowIcmpv6EchoSequenceNumber) ProtoReflect() protoreflect.Messag // Deprecated: Use PatternFlowIcmpv6EchoSequenceNumber.ProtoReflect.Descriptor instead. func (*PatternFlowIcmpv6EchoSequenceNumber) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{719} + return file_otg_proto_rawDescGZIP(), []int{725} } func (x *PatternFlowIcmpv6EchoSequenceNumber) GetChoice() PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum { @@ -78484,7 +80042,7 @@ type PatternFlowIcmpv6EchoChecksum struct { func (x *PatternFlowIcmpv6EchoChecksum) Reset() { *x = PatternFlowIcmpv6EchoChecksum{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[720] + mi := &file_otg_proto_msgTypes[726] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -78497,7 +80055,7 @@ func (x *PatternFlowIcmpv6EchoChecksum) String() string { func (*PatternFlowIcmpv6EchoChecksum) ProtoMessage() {} func (x *PatternFlowIcmpv6EchoChecksum) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[720] + mi := &file_otg_proto_msgTypes[726] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78510,7 +80068,7 @@ func (x *PatternFlowIcmpv6EchoChecksum) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIcmpv6EchoChecksum.ProtoReflect.Descriptor instead. func (*PatternFlowIcmpv6EchoChecksum) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{720} + return file_otg_proto_rawDescGZIP(), []int{726} } func (x *PatternFlowIcmpv6EchoChecksum) GetChoice() PatternFlowIcmpv6EchoChecksum_Choice_Enum { @@ -78553,7 +80111,7 @@ type PatternFlowIcmpv6CommonChecksum struct { func (x *PatternFlowIcmpv6CommonChecksum) Reset() { *x = PatternFlowIcmpv6CommonChecksum{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[721] + mi := &file_otg_proto_msgTypes[727] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -78566,7 +80124,7 @@ func (x *PatternFlowIcmpv6CommonChecksum) String() string { func (*PatternFlowIcmpv6CommonChecksum) ProtoMessage() {} func (x *PatternFlowIcmpv6CommonChecksum) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[721] + mi := &file_otg_proto_msgTypes[727] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78579,7 +80137,7 @@ func (x *PatternFlowIcmpv6CommonChecksum) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIcmpv6CommonChecksum.ProtoReflect.Descriptor instead. func (*PatternFlowIcmpv6CommonChecksum) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{721} + return file_otg_proto_rawDescGZIP(), []int{727} } func (x *PatternFlowIcmpv6CommonChecksum) GetChoice() PatternFlowIcmpv6CommonChecksum_Choice_Enum { @@ -78623,7 +80181,7 @@ type PatternFlowPppAddressCounter struct { func (x *PatternFlowPppAddressCounter) Reset() { *x = PatternFlowPppAddressCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[722] + mi := &file_otg_proto_msgTypes[728] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -78636,7 +80194,7 @@ func (x *PatternFlowPppAddressCounter) String() string { func (*PatternFlowPppAddressCounter) ProtoMessage() {} func (x *PatternFlowPppAddressCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[722] + mi := &file_otg_proto_msgTypes[728] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78649,7 +80207,7 @@ func (x *PatternFlowPppAddressCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowPppAddressCounter.ProtoReflect.Descriptor instead. func (*PatternFlowPppAddressCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{722} + return file_otg_proto_rawDescGZIP(), []int{728} } func (x *PatternFlowPppAddressCounter) GetStart() uint32 { @@ -78697,7 +80255,7 @@ type PatternFlowPppAddressMetricTag struct { func (x *PatternFlowPppAddressMetricTag) Reset() { *x = PatternFlowPppAddressMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[723] + mi := &file_otg_proto_msgTypes[729] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -78710,7 +80268,7 @@ func (x *PatternFlowPppAddressMetricTag) String() string { func (*PatternFlowPppAddressMetricTag) ProtoMessage() {} func (x *PatternFlowPppAddressMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[723] + mi := &file_otg_proto_msgTypes[729] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78723,7 +80281,7 @@ func (x *PatternFlowPppAddressMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowPppAddressMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowPppAddressMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{723} + return file_otg_proto_rawDescGZIP(), []int{729} } func (x *PatternFlowPppAddressMetricTag) GetName() string { @@ -78775,7 +80333,7 @@ type PatternFlowPppAddress struct { func (x *PatternFlowPppAddress) Reset() { *x = PatternFlowPppAddress{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[724] + mi := &file_otg_proto_msgTypes[730] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -78788,7 +80346,7 @@ func (x *PatternFlowPppAddress) String() string { func (*PatternFlowPppAddress) ProtoMessage() {} func (x *PatternFlowPppAddress) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[724] + mi := &file_otg_proto_msgTypes[730] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78801,7 +80359,7 @@ func (x *PatternFlowPppAddress) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowPppAddress.ProtoReflect.Descriptor instead. func (*PatternFlowPppAddress) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{724} + return file_otg_proto_rawDescGZIP(), []int{730} } func (x *PatternFlowPppAddress) GetChoice() PatternFlowPppAddress_Choice_Enum { @@ -78866,7 +80424,7 @@ type PatternFlowPppControlCounter struct { func (x *PatternFlowPppControlCounter) Reset() { *x = PatternFlowPppControlCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[725] + mi := &file_otg_proto_msgTypes[731] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -78879,7 +80437,7 @@ func (x *PatternFlowPppControlCounter) String() string { func (*PatternFlowPppControlCounter) ProtoMessage() {} func (x *PatternFlowPppControlCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[725] + mi := &file_otg_proto_msgTypes[731] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78892,7 +80450,7 @@ func (x *PatternFlowPppControlCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowPppControlCounter.ProtoReflect.Descriptor instead. func (*PatternFlowPppControlCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{725} + return file_otg_proto_rawDescGZIP(), []int{731} } func (x *PatternFlowPppControlCounter) GetStart() uint32 { @@ -78940,7 +80498,7 @@ type PatternFlowPppControlMetricTag struct { func (x *PatternFlowPppControlMetricTag) Reset() { *x = PatternFlowPppControlMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[726] + mi := &file_otg_proto_msgTypes[732] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -78953,7 +80511,7 @@ func (x *PatternFlowPppControlMetricTag) String() string { func (*PatternFlowPppControlMetricTag) ProtoMessage() {} func (x *PatternFlowPppControlMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[726] + mi := &file_otg_proto_msgTypes[732] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78966,7 +80524,7 @@ func (x *PatternFlowPppControlMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowPppControlMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowPppControlMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{726} + return file_otg_proto_rawDescGZIP(), []int{732} } func (x *PatternFlowPppControlMetricTag) GetName() string { @@ -79018,7 +80576,7 @@ type PatternFlowPppControl struct { func (x *PatternFlowPppControl) Reset() { *x = PatternFlowPppControl{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[727] + mi := &file_otg_proto_msgTypes[733] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -79031,7 +80589,7 @@ func (x *PatternFlowPppControl) String() string { func (*PatternFlowPppControl) ProtoMessage() {} func (x *PatternFlowPppControl) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[727] + mi := &file_otg_proto_msgTypes[733] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79044,7 +80602,7 @@ func (x *PatternFlowPppControl) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowPppControl.ProtoReflect.Descriptor instead. func (*PatternFlowPppControl) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{727} + return file_otg_proto_rawDescGZIP(), []int{733} } func (x *PatternFlowPppControl) GetChoice() PatternFlowPppControl_Choice_Enum { @@ -79109,7 +80667,7 @@ type PatternFlowPppProtocolTypeCounter struct { func (x *PatternFlowPppProtocolTypeCounter) Reset() { *x = PatternFlowPppProtocolTypeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[728] + mi := &file_otg_proto_msgTypes[734] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -79122,7 +80680,7 @@ func (x *PatternFlowPppProtocolTypeCounter) String() string { func (*PatternFlowPppProtocolTypeCounter) ProtoMessage() {} func (x *PatternFlowPppProtocolTypeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[728] + mi := &file_otg_proto_msgTypes[734] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79135,7 +80693,7 @@ func (x *PatternFlowPppProtocolTypeCounter) ProtoReflect() protoreflect.Message // Deprecated: Use PatternFlowPppProtocolTypeCounter.ProtoReflect.Descriptor instead. func (*PatternFlowPppProtocolTypeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{728} + return file_otg_proto_rawDescGZIP(), []int{734} } func (x *PatternFlowPppProtocolTypeCounter) GetStart() uint32 { @@ -79183,7 +80741,7 @@ type PatternFlowPppProtocolTypeMetricTag struct { func (x *PatternFlowPppProtocolTypeMetricTag) Reset() { *x = PatternFlowPppProtocolTypeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[729] + mi := &file_otg_proto_msgTypes[735] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -79196,7 +80754,7 @@ func (x *PatternFlowPppProtocolTypeMetricTag) String() string { func (*PatternFlowPppProtocolTypeMetricTag) ProtoMessage() {} func (x *PatternFlowPppProtocolTypeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[729] + mi := &file_otg_proto_msgTypes[735] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79209,7 +80767,7 @@ func (x *PatternFlowPppProtocolTypeMetricTag) ProtoReflect() protoreflect.Messag // Deprecated: Use PatternFlowPppProtocolTypeMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowPppProtocolTypeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{729} + return file_otg_proto_rawDescGZIP(), []int{735} } func (x *PatternFlowPppProtocolTypeMetricTag) GetName() string { @@ -79266,7 +80824,7 @@ type PatternFlowPppProtocolType struct { func (x *PatternFlowPppProtocolType) Reset() { *x = PatternFlowPppProtocolType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[730] + mi := &file_otg_proto_msgTypes[736] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -79279,7 +80837,7 @@ func (x *PatternFlowPppProtocolType) String() string { func (*PatternFlowPppProtocolType) ProtoMessage() {} func (x *PatternFlowPppProtocolType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[730] + mi := &file_otg_proto_msgTypes[736] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79292,7 +80850,7 @@ func (x *PatternFlowPppProtocolType) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowPppProtocolType.ProtoReflect.Descriptor instead. func (*PatternFlowPppProtocolType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{730} + return file_otg_proto_rawDescGZIP(), []int{736} } func (x *PatternFlowPppProtocolType) GetChoice() PatternFlowPppProtocolType_Choice_Enum { @@ -79364,7 +80922,7 @@ type PatternFlowIgmpv1VersionCounter struct { func (x *PatternFlowIgmpv1VersionCounter) Reset() { *x = PatternFlowIgmpv1VersionCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[731] + mi := &file_otg_proto_msgTypes[737] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -79377,7 +80935,7 @@ func (x *PatternFlowIgmpv1VersionCounter) String() string { func (*PatternFlowIgmpv1VersionCounter) ProtoMessage() {} func (x *PatternFlowIgmpv1VersionCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[731] + mi := &file_otg_proto_msgTypes[737] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79390,7 +80948,7 @@ func (x *PatternFlowIgmpv1VersionCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIgmpv1VersionCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIgmpv1VersionCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{731} + return file_otg_proto_rawDescGZIP(), []int{737} } func (x *PatternFlowIgmpv1VersionCounter) GetStart() uint32 { @@ -79438,7 +80996,7 @@ type PatternFlowIgmpv1VersionMetricTag struct { func (x *PatternFlowIgmpv1VersionMetricTag) Reset() { *x = PatternFlowIgmpv1VersionMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[732] + mi := &file_otg_proto_msgTypes[738] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -79451,7 +81009,7 @@ func (x *PatternFlowIgmpv1VersionMetricTag) String() string { func (*PatternFlowIgmpv1VersionMetricTag) ProtoMessage() {} func (x *PatternFlowIgmpv1VersionMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[732] + mi := &file_otg_proto_msgTypes[738] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79464,7 +81022,7 @@ func (x *PatternFlowIgmpv1VersionMetricTag) ProtoReflect() protoreflect.Message // Deprecated: Use PatternFlowIgmpv1VersionMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIgmpv1VersionMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{732} + return file_otg_proto_rawDescGZIP(), []int{738} } func (x *PatternFlowIgmpv1VersionMetricTag) GetName() string { @@ -79516,7 +81074,7 @@ type PatternFlowIgmpv1Version struct { func (x *PatternFlowIgmpv1Version) Reset() { *x = PatternFlowIgmpv1Version{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[733] + mi := &file_otg_proto_msgTypes[739] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -79529,7 +81087,7 @@ func (x *PatternFlowIgmpv1Version) String() string { func (*PatternFlowIgmpv1Version) ProtoMessage() {} func (x *PatternFlowIgmpv1Version) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[733] + mi := &file_otg_proto_msgTypes[739] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79542,7 +81100,7 @@ func (x *PatternFlowIgmpv1Version) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIgmpv1Version.ProtoReflect.Descriptor instead. func (*PatternFlowIgmpv1Version) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{733} + return file_otg_proto_rawDescGZIP(), []int{739} } func (x *PatternFlowIgmpv1Version) GetChoice() PatternFlowIgmpv1Version_Choice_Enum { @@ -79607,7 +81165,7 @@ type PatternFlowIgmpv1TypeCounter struct { func (x *PatternFlowIgmpv1TypeCounter) Reset() { *x = PatternFlowIgmpv1TypeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[734] + mi := &file_otg_proto_msgTypes[740] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -79620,7 +81178,7 @@ func (x *PatternFlowIgmpv1TypeCounter) String() string { func (*PatternFlowIgmpv1TypeCounter) ProtoMessage() {} func (x *PatternFlowIgmpv1TypeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[734] + mi := &file_otg_proto_msgTypes[740] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79633,7 +81191,7 @@ func (x *PatternFlowIgmpv1TypeCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIgmpv1TypeCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIgmpv1TypeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{734} + return file_otg_proto_rawDescGZIP(), []int{740} } func (x *PatternFlowIgmpv1TypeCounter) GetStart() uint32 { @@ -79681,7 +81239,7 @@ type PatternFlowIgmpv1TypeMetricTag struct { func (x *PatternFlowIgmpv1TypeMetricTag) Reset() { *x = PatternFlowIgmpv1TypeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[735] + mi := &file_otg_proto_msgTypes[741] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -79694,7 +81252,7 @@ func (x *PatternFlowIgmpv1TypeMetricTag) String() string { func (*PatternFlowIgmpv1TypeMetricTag) ProtoMessage() {} func (x *PatternFlowIgmpv1TypeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[735] + mi := &file_otg_proto_msgTypes[741] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79707,7 +81265,7 @@ func (x *PatternFlowIgmpv1TypeMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIgmpv1TypeMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIgmpv1TypeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{735} + return file_otg_proto_rawDescGZIP(), []int{741} } func (x *PatternFlowIgmpv1TypeMetricTag) GetName() string { @@ -79759,7 +81317,7 @@ type PatternFlowIgmpv1Type struct { func (x *PatternFlowIgmpv1Type) Reset() { *x = PatternFlowIgmpv1Type{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[736] + mi := &file_otg_proto_msgTypes[742] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -79772,7 +81330,7 @@ func (x *PatternFlowIgmpv1Type) String() string { func (*PatternFlowIgmpv1Type) ProtoMessage() {} func (x *PatternFlowIgmpv1Type) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[736] + mi := &file_otg_proto_msgTypes[742] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79785,7 +81343,7 @@ func (x *PatternFlowIgmpv1Type) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIgmpv1Type.ProtoReflect.Descriptor instead. func (*PatternFlowIgmpv1Type) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{736} + return file_otg_proto_rawDescGZIP(), []int{742} } func (x *PatternFlowIgmpv1Type) GetChoice() PatternFlowIgmpv1Type_Choice_Enum { @@ -79850,7 +81408,7 @@ type PatternFlowIgmpv1UnusedCounter struct { func (x *PatternFlowIgmpv1UnusedCounter) Reset() { *x = PatternFlowIgmpv1UnusedCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[737] + mi := &file_otg_proto_msgTypes[743] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -79863,7 +81421,7 @@ func (x *PatternFlowIgmpv1UnusedCounter) String() string { func (*PatternFlowIgmpv1UnusedCounter) ProtoMessage() {} func (x *PatternFlowIgmpv1UnusedCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[737] + mi := &file_otg_proto_msgTypes[743] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79876,7 +81434,7 @@ func (x *PatternFlowIgmpv1UnusedCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIgmpv1UnusedCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIgmpv1UnusedCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{737} + return file_otg_proto_rawDescGZIP(), []int{743} } func (x *PatternFlowIgmpv1UnusedCounter) GetStart() uint32 { @@ -79924,7 +81482,7 @@ type PatternFlowIgmpv1UnusedMetricTag struct { func (x *PatternFlowIgmpv1UnusedMetricTag) Reset() { *x = PatternFlowIgmpv1UnusedMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[738] + mi := &file_otg_proto_msgTypes[744] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -79937,7 +81495,7 @@ func (x *PatternFlowIgmpv1UnusedMetricTag) String() string { func (*PatternFlowIgmpv1UnusedMetricTag) ProtoMessage() {} func (x *PatternFlowIgmpv1UnusedMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[738] + mi := &file_otg_proto_msgTypes[744] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79950,7 +81508,7 @@ func (x *PatternFlowIgmpv1UnusedMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIgmpv1UnusedMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIgmpv1UnusedMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{738} + return file_otg_proto_rawDescGZIP(), []int{744} } func (x *PatternFlowIgmpv1UnusedMetricTag) GetName() string { @@ -80002,7 +81560,7 @@ type PatternFlowIgmpv1Unused struct { func (x *PatternFlowIgmpv1Unused) Reset() { *x = PatternFlowIgmpv1Unused{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[739] + mi := &file_otg_proto_msgTypes[745] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -80015,7 +81573,7 @@ func (x *PatternFlowIgmpv1Unused) String() string { func (*PatternFlowIgmpv1Unused) ProtoMessage() {} func (x *PatternFlowIgmpv1Unused) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[739] + mi := &file_otg_proto_msgTypes[745] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80028,7 +81586,7 @@ func (x *PatternFlowIgmpv1Unused) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIgmpv1Unused.ProtoReflect.Descriptor instead. func (*PatternFlowIgmpv1Unused) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{739} + return file_otg_proto_rawDescGZIP(), []int{745} } func (x *PatternFlowIgmpv1Unused) GetChoice() PatternFlowIgmpv1Unused_Choice_Enum { @@ -80092,7 +81650,7 @@ type PatternFlowIgmpv1Checksum struct { func (x *PatternFlowIgmpv1Checksum) Reset() { *x = PatternFlowIgmpv1Checksum{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[740] + mi := &file_otg_proto_msgTypes[746] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -80105,7 +81663,7 @@ func (x *PatternFlowIgmpv1Checksum) String() string { func (*PatternFlowIgmpv1Checksum) ProtoMessage() {} func (x *PatternFlowIgmpv1Checksum) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[740] + mi := &file_otg_proto_msgTypes[746] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80118,7 +81676,7 @@ func (x *PatternFlowIgmpv1Checksum) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIgmpv1Checksum.ProtoReflect.Descriptor instead. func (*PatternFlowIgmpv1Checksum) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{740} + return file_otg_proto_rawDescGZIP(), []int{746} } func (x *PatternFlowIgmpv1Checksum) GetChoice() PatternFlowIgmpv1Checksum_Choice_Enum { @@ -80162,7 +81720,7 @@ type PatternFlowIgmpv1GroupAddressCounter struct { func (x *PatternFlowIgmpv1GroupAddressCounter) Reset() { *x = PatternFlowIgmpv1GroupAddressCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[741] + mi := &file_otg_proto_msgTypes[747] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -80175,7 +81733,7 @@ func (x *PatternFlowIgmpv1GroupAddressCounter) String() string { func (*PatternFlowIgmpv1GroupAddressCounter) ProtoMessage() {} func (x *PatternFlowIgmpv1GroupAddressCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[741] + mi := &file_otg_proto_msgTypes[747] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80188,7 +81746,7 @@ func (x *PatternFlowIgmpv1GroupAddressCounter) ProtoReflect() protoreflect.Messa // Deprecated: Use PatternFlowIgmpv1GroupAddressCounter.ProtoReflect.Descriptor instead. func (*PatternFlowIgmpv1GroupAddressCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{741} + return file_otg_proto_rawDescGZIP(), []int{747} } func (x *PatternFlowIgmpv1GroupAddressCounter) GetStart() string { @@ -80236,7 +81794,7 @@ type PatternFlowIgmpv1GroupAddressMetricTag struct { func (x *PatternFlowIgmpv1GroupAddressMetricTag) Reset() { *x = PatternFlowIgmpv1GroupAddressMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[742] + mi := &file_otg_proto_msgTypes[748] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -80249,7 +81807,7 @@ func (x *PatternFlowIgmpv1GroupAddressMetricTag) String() string { func (*PatternFlowIgmpv1GroupAddressMetricTag) ProtoMessage() {} func (x *PatternFlowIgmpv1GroupAddressMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[742] + mi := &file_otg_proto_msgTypes[748] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80262,7 +81820,7 @@ func (x *PatternFlowIgmpv1GroupAddressMetricTag) ProtoReflect() protoreflect.Mes // Deprecated: Use PatternFlowIgmpv1GroupAddressMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowIgmpv1GroupAddressMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{742} + return file_otg_proto_rawDescGZIP(), []int{748} } func (x *PatternFlowIgmpv1GroupAddressMetricTag) GetName() string { @@ -80314,7 +81872,7 @@ type PatternFlowIgmpv1GroupAddress struct { func (x *PatternFlowIgmpv1GroupAddress) Reset() { *x = PatternFlowIgmpv1GroupAddress{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[743] + mi := &file_otg_proto_msgTypes[749] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -80327,7 +81885,7 @@ func (x *PatternFlowIgmpv1GroupAddress) String() string { func (*PatternFlowIgmpv1GroupAddress) ProtoMessage() {} func (x *PatternFlowIgmpv1GroupAddress) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[743] + mi := &file_otg_proto_msgTypes[749] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80340,7 +81898,7 @@ func (x *PatternFlowIgmpv1GroupAddress) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowIgmpv1GroupAddress.ProtoReflect.Descriptor instead. func (*PatternFlowIgmpv1GroupAddress) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{743} + return file_otg_proto_rawDescGZIP(), []int{749} } func (x *PatternFlowIgmpv1GroupAddress) GetChoice() PatternFlowIgmpv1GroupAddress_Choice_Enum { @@ -80405,7 +81963,7 @@ type PatternFlowMplsLabelCounter struct { func (x *PatternFlowMplsLabelCounter) Reset() { *x = PatternFlowMplsLabelCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[744] + mi := &file_otg_proto_msgTypes[750] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -80418,7 +81976,7 @@ func (x *PatternFlowMplsLabelCounter) String() string { func (*PatternFlowMplsLabelCounter) ProtoMessage() {} func (x *PatternFlowMplsLabelCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[744] + mi := &file_otg_proto_msgTypes[750] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80431,7 +81989,7 @@ func (x *PatternFlowMplsLabelCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowMplsLabelCounter.ProtoReflect.Descriptor instead. func (*PatternFlowMplsLabelCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{744} + return file_otg_proto_rawDescGZIP(), []int{750} } func (x *PatternFlowMplsLabelCounter) GetStart() uint32 { @@ -80479,7 +82037,7 @@ type PatternFlowMplsLabelMetricTag struct { func (x *PatternFlowMplsLabelMetricTag) Reset() { *x = PatternFlowMplsLabelMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[745] + mi := &file_otg_proto_msgTypes[751] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -80492,7 +82050,7 @@ func (x *PatternFlowMplsLabelMetricTag) String() string { func (*PatternFlowMplsLabelMetricTag) ProtoMessage() {} func (x *PatternFlowMplsLabelMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[745] + mi := &file_otg_proto_msgTypes[751] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80505,7 +82063,7 @@ func (x *PatternFlowMplsLabelMetricTag) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowMplsLabelMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowMplsLabelMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{745} + return file_otg_proto_rawDescGZIP(), []int{751} } func (x *PatternFlowMplsLabelMetricTag) GetName() string { @@ -80562,7 +82120,7 @@ type PatternFlowMplsLabel struct { func (x *PatternFlowMplsLabel) Reset() { *x = PatternFlowMplsLabel{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[746] + mi := &file_otg_proto_msgTypes[752] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -80575,7 +82133,7 @@ func (x *PatternFlowMplsLabel) String() string { func (*PatternFlowMplsLabel) ProtoMessage() {} func (x *PatternFlowMplsLabel) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[746] + mi := &file_otg_proto_msgTypes[752] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80588,7 +82146,7 @@ func (x *PatternFlowMplsLabel) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowMplsLabel.ProtoReflect.Descriptor instead. func (*PatternFlowMplsLabel) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{746} + return file_otg_proto_rawDescGZIP(), []int{752} } func (x *PatternFlowMplsLabel) GetChoice() PatternFlowMplsLabel_Choice_Enum { @@ -80660,7 +82218,7 @@ type PatternFlowMplsTrafficClassCounter struct { func (x *PatternFlowMplsTrafficClassCounter) Reset() { *x = PatternFlowMplsTrafficClassCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[747] + mi := &file_otg_proto_msgTypes[753] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -80673,7 +82231,7 @@ func (x *PatternFlowMplsTrafficClassCounter) String() string { func (*PatternFlowMplsTrafficClassCounter) ProtoMessage() {} func (x *PatternFlowMplsTrafficClassCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[747] + mi := &file_otg_proto_msgTypes[753] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80686,7 +82244,7 @@ func (x *PatternFlowMplsTrafficClassCounter) ProtoReflect() protoreflect.Message // Deprecated: Use PatternFlowMplsTrafficClassCounter.ProtoReflect.Descriptor instead. func (*PatternFlowMplsTrafficClassCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{747} + return file_otg_proto_rawDescGZIP(), []int{753} } func (x *PatternFlowMplsTrafficClassCounter) GetStart() uint32 { @@ -80734,7 +82292,7 @@ type PatternFlowMplsTrafficClassMetricTag struct { func (x *PatternFlowMplsTrafficClassMetricTag) Reset() { *x = PatternFlowMplsTrafficClassMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[748] + mi := &file_otg_proto_msgTypes[754] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -80747,7 +82305,7 @@ func (x *PatternFlowMplsTrafficClassMetricTag) String() string { func (*PatternFlowMplsTrafficClassMetricTag) ProtoMessage() {} func (x *PatternFlowMplsTrafficClassMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[748] + mi := &file_otg_proto_msgTypes[754] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80760,7 +82318,7 @@ func (x *PatternFlowMplsTrafficClassMetricTag) ProtoReflect() protoreflect.Messa // Deprecated: Use PatternFlowMplsTrafficClassMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowMplsTrafficClassMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{748} + return file_otg_proto_rawDescGZIP(), []int{754} } func (x *PatternFlowMplsTrafficClassMetricTag) GetName() string { @@ -80812,7 +82370,7 @@ type PatternFlowMplsTrafficClass struct { func (x *PatternFlowMplsTrafficClass) Reset() { *x = PatternFlowMplsTrafficClass{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[749] + mi := &file_otg_proto_msgTypes[755] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -80825,7 +82383,7 @@ func (x *PatternFlowMplsTrafficClass) String() string { func (*PatternFlowMplsTrafficClass) ProtoMessage() {} func (x *PatternFlowMplsTrafficClass) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[749] + mi := &file_otg_proto_msgTypes[755] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80838,7 +82396,7 @@ func (x *PatternFlowMplsTrafficClass) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowMplsTrafficClass.ProtoReflect.Descriptor instead. func (*PatternFlowMplsTrafficClass) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{749} + return file_otg_proto_rawDescGZIP(), []int{755} } func (x *PatternFlowMplsTrafficClass) GetChoice() PatternFlowMplsTrafficClass_Choice_Enum { @@ -80903,7 +82461,7 @@ type PatternFlowMplsBottomOfStackCounter struct { func (x *PatternFlowMplsBottomOfStackCounter) Reset() { *x = PatternFlowMplsBottomOfStackCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[750] + mi := &file_otg_proto_msgTypes[756] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -80916,7 +82474,7 @@ func (x *PatternFlowMplsBottomOfStackCounter) String() string { func (*PatternFlowMplsBottomOfStackCounter) ProtoMessage() {} func (x *PatternFlowMplsBottomOfStackCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[750] + mi := &file_otg_proto_msgTypes[756] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80929,7 +82487,7 @@ func (x *PatternFlowMplsBottomOfStackCounter) ProtoReflect() protoreflect.Messag // Deprecated: Use PatternFlowMplsBottomOfStackCounter.ProtoReflect.Descriptor instead. func (*PatternFlowMplsBottomOfStackCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{750} + return file_otg_proto_rawDescGZIP(), []int{756} } func (x *PatternFlowMplsBottomOfStackCounter) GetStart() uint32 { @@ -80977,7 +82535,7 @@ type PatternFlowMplsBottomOfStackMetricTag struct { func (x *PatternFlowMplsBottomOfStackMetricTag) Reset() { *x = PatternFlowMplsBottomOfStackMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[751] + mi := &file_otg_proto_msgTypes[757] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -80990,7 +82548,7 @@ func (x *PatternFlowMplsBottomOfStackMetricTag) String() string { func (*PatternFlowMplsBottomOfStackMetricTag) ProtoMessage() {} func (x *PatternFlowMplsBottomOfStackMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[751] + mi := &file_otg_proto_msgTypes[757] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81003,7 +82561,7 @@ func (x *PatternFlowMplsBottomOfStackMetricTag) ProtoReflect() protoreflect.Mess // Deprecated: Use PatternFlowMplsBottomOfStackMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowMplsBottomOfStackMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{751} + return file_otg_proto_rawDescGZIP(), []int{757} } func (x *PatternFlowMplsBottomOfStackMetricTag) GetName() string { @@ -81060,7 +82618,7 @@ type PatternFlowMplsBottomOfStack struct { func (x *PatternFlowMplsBottomOfStack) Reset() { *x = PatternFlowMplsBottomOfStack{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[752] + mi := &file_otg_proto_msgTypes[758] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -81073,7 +82631,7 @@ func (x *PatternFlowMplsBottomOfStack) String() string { func (*PatternFlowMplsBottomOfStack) ProtoMessage() {} func (x *PatternFlowMplsBottomOfStack) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[752] + mi := &file_otg_proto_msgTypes[758] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81086,7 +82644,7 @@ func (x *PatternFlowMplsBottomOfStack) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowMplsBottomOfStack.ProtoReflect.Descriptor instead. func (*PatternFlowMplsBottomOfStack) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{752} + return file_otg_proto_rawDescGZIP(), []int{758} } func (x *PatternFlowMplsBottomOfStack) GetChoice() PatternFlowMplsBottomOfStack_Choice_Enum { @@ -81158,7 +82716,7 @@ type PatternFlowMplsTimeToLiveCounter struct { func (x *PatternFlowMplsTimeToLiveCounter) Reset() { *x = PatternFlowMplsTimeToLiveCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[753] + mi := &file_otg_proto_msgTypes[759] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -81171,7 +82729,7 @@ func (x *PatternFlowMplsTimeToLiveCounter) String() string { func (*PatternFlowMplsTimeToLiveCounter) ProtoMessage() {} func (x *PatternFlowMplsTimeToLiveCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[753] + mi := &file_otg_proto_msgTypes[759] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81184,7 +82742,7 @@ func (x *PatternFlowMplsTimeToLiveCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowMplsTimeToLiveCounter.ProtoReflect.Descriptor instead. func (*PatternFlowMplsTimeToLiveCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{753} + return file_otg_proto_rawDescGZIP(), []int{759} } func (x *PatternFlowMplsTimeToLiveCounter) GetStart() uint32 { @@ -81232,7 +82790,7 @@ type PatternFlowMplsTimeToLiveMetricTag struct { func (x *PatternFlowMplsTimeToLiveMetricTag) Reset() { *x = PatternFlowMplsTimeToLiveMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[754] + mi := &file_otg_proto_msgTypes[760] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -81245,7 +82803,7 @@ func (x *PatternFlowMplsTimeToLiveMetricTag) String() string { func (*PatternFlowMplsTimeToLiveMetricTag) ProtoMessage() {} func (x *PatternFlowMplsTimeToLiveMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[754] + mi := &file_otg_proto_msgTypes[760] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81258,7 +82816,7 @@ func (x *PatternFlowMplsTimeToLiveMetricTag) ProtoReflect() protoreflect.Message // Deprecated: Use PatternFlowMplsTimeToLiveMetricTag.ProtoReflect.Descriptor instead. func (*PatternFlowMplsTimeToLiveMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{754} + return file_otg_proto_rawDescGZIP(), []int{760} } func (x *PatternFlowMplsTimeToLiveMetricTag) GetName() string { @@ -81310,7 +82868,7 @@ type PatternFlowMplsTimeToLive struct { func (x *PatternFlowMplsTimeToLive) Reset() { *x = PatternFlowMplsTimeToLive{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[755] + mi := &file_otg_proto_msgTypes[761] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -81323,7 +82881,7 @@ func (x *PatternFlowMplsTimeToLive) String() string { func (*PatternFlowMplsTimeToLive) ProtoMessage() {} func (x *PatternFlowMplsTimeToLive) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[755] + mi := &file_otg_proto_msgTypes[761] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81336,7 +82894,7 @@ func (x *PatternFlowMplsTimeToLive) ProtoReflect() protoreflect.Message { // Deprecated: Use PatternFlowMplsTimeToLive.ProtoReflect.Descriptor instead. func (*PatternFlowMplsTimeToLive) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{755} + return file_otg_proto_rawDescGZIP(), []int{761} } func (x *PatternFlowMplsTimeToLive) GetChoice() PatternFlowMplsTimeToLive_Choice_Enum { @@ -81381,40 +82939,40 @@ func (x *PatternFlowMplsTimeToLive) GetMetricTags() []*PatternFlowMplsTimeToLive return nil } -// Version details -type Version struct { +// integer counter pattern +type PatternFlowSnmpv2CVersionCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Version of API specification - // default = - ApiSpecVersion *string `protobuf:"bytes,1,opt,name=api_spec_version,json=apiSpecVersion,proto3,oneof" json:"api_spec_version,omitempty"` - // Version of SDK generated from API specification - // default = - SdkVersion *string `protobuf:"bytes,2,opt,name=sdk_version,json=sdkVersion,proto3,oneof" json:"sdk_version,omitempty"` - // Version of application consuming or serving the API - // default = - AppVersion *string `protobuf:"bytes,3,opt,name=app_version,json=appVersion,proto3,oneof" json:"app_version,omitempty"` + // Description missing in models + // default = 1 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // Description missing in models + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // Description missing in models + // default = 1 + Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *Version) Reset() { - *x = Version{} +func (x *PatternFlowSnmpv2CVersionCounter) Reset() { + *x = PatternFlowSnmpv2CVersionCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[756] + mi := &file_otg_proto_msgTypes[762] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Version) String() string { +func (x *PatternFlowSnmpv2CVersionCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Version) ProtoMessage() {} +func (*PatternFlowSnmpv2CVersionCounter) ProtoMessage() {} -func (x *Version) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[756] +func (x *PatternFlowSnmpv2CVersionCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[762] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81425,59 +82983,70 @@ func (x *Version) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Version.ProtoReflect.Descriptor instead. -func (*Version) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{756} +// Deprecated: Use PatternFlowSnmpv2CVersionCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CVersionCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{762} } -func (x *Version) GetApiSpecVersion() string { - if x != nil && x.ApiSpecVersion != nil { - return *x.ApiSpecVersion +func (x *PatternFlowSnmpv2CVersionCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start } - return "" + return 0 } -func (x *Version) GetSdkVersion() string { - if x != nil && x.SdkVersion != nil { - return *x.SdkVersion +func (x *PatternFlowSnmpv2CVersionCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step } - return "" + return 0 } -func (x *Version) GetAppVersion() string { - if x != nil && x.AppVersion != nil { - return *x.AppVersion +func (x *PatternFlowSnmpv2CVersionCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count } - return "" + return 0 } -// The request has succeeded with no application content but the server -// may return a list of detailed warnings. -type Success struct { +// Version +type PatternFlowSnmpv2CVersion struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Warning *Warning `protobuf:"bytes,1,opt,name=warning,proto3" json:"warning,omitempty"` + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowSnmpv2CVersion_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowSnmpv2CVersion_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + // default = 1 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Description missing in models + // default = [1] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // Description missing in models + Increment *PatternFlowSnmpv2CVersionCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowSnmpv2CVersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *Success) Reset() { - *x = Success{} +func (x *PatternFlowSnmpv2CVersion) Reset() { + *x = PatternFlowSnmpv2CVersion{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[757] + mi := &file_otg_proto_msgTypes[763] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Success) String() string { +func (x *PatternFlowSnmpv2CVersion) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Success) ProtoMessage() {} +func (*PatternFlowSnmpv2CVersion) ProtoMessage() {} -func (x *Success) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[757] +func (x *PatternFlowSnmpv2CVersion) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[763] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81488,44 +83057,80 @@ func (x *Success) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Success.ProtoReflect.Descriptor instead. -func (*Success) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{757} +// Deprecated: Use PatternFlowSnmpv2CVersion.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CVersion) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{763} } -func (x *Success) GetWarning() *Warning { +func (x *PatternFlowSnmpv2CVersion) GetChoice() PatternFlowSnmpv2CVersion_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowSnmpv2CVersion_Choice_unspecified +} + +func (x *PatternFlowSnmpv2CVersion) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value + } + return 0 +} + +func (x *PatternFlowSnmpv2CVersion) GetValues() []uint32 { if x != nil { - return x.Warning + return x.Values } return nil } -// The request did not succeed and server has responded with error details. -type Failure struct { +func (x *PatternFlowSnmpv2CVersion) GetIncrement() *PatternFlowSnmpv2CVersionCounter { + if x != nil { + return x.Increment + } + return nil +} + +func (x *PatternFlowSnmpv2CVersion) GetDecrement() *PatternFlowSnmpv2CVersionCounter { + if x != nil { + return x.Decrement + } + return nil +} + +// integer counter pattern +type PatternFlowSnmpv2CPDURequestIdCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Error *Error `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` + // Description missing in models + // default = 0 + Start *int32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // Description missing in models + // default = 1 + Step *int32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // Description missing in models + // default = 1 + Count *int32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *Failure) Reset() { - *x = Failure{} +func (x *PatternFlowSnmpv2CPDURequestIdCounter) Reset() { + *x = PatternFlowSnmpv2CPDURequestIdCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[758] + mi := &file_otg_proto_msgTypes[764] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Failure) String() string { +func (x *PatternFlowSnmpv2CPDURequestIdCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Failure) ProtoMessage() {} +func (*PatternFlowSnmpv2CPDURequestIdCounter) ProtoMessage() {} -func (x *Failure) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[758] +func (x *PatternFlowSnmpv2CPDURequestIdCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[764] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81536,43 +83141,75 @@ func (x *Failure) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Failure.ProtoReflect.Descriptor instead. -func (*Failure) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{758} +// Deprecated: Use PatternFlowSnmpv2CPDURequestIdCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CPDURequestIdCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{764} } -func (x *Failure) GetError() *Error { - if x != nil { - return x.Error +func (x *PatternFlowSnmpv2CPDURequestIdCounter) GetStart() int32 { + if x != nil && x.Start != nil { + return *x.Start } - return nil + return 0 } -type SetConfigRequest struct { +func (x *PatternFlowSnmpv2CPDURequestIdCounter) GetStep() int32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +func (x *PatternFlowSnmpv2CPDURequestIdCounter) GetCount() int32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// Identifies a particular SNMP request. +// This index is echoed back in the response from the SNMP agent, +// allowing the SNMP manager to match an incoming response to the appropriate request. +// +// - Encoding of this field follows ASN.1 X.690(section 8.3) specification. +// Refer: http://www.itu.int/ITU-T/asn1/ +type PatternFlowSnmpv2CPDURequestId struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Config *Config `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"` + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowSnmpv2CPDURequestId_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowSnmpv2CPDURequestId_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + // default = 0 + Value *int32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Description missing in models + // default = [0] + Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // Description missing in models + Increment *PatternFlowSnmpv2CPDURequestIdCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowSnmpv2CPDURequestIdCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *SetConfigRequest) Reset() { - *x = SetConfigRequest{} +func (x *PatternFlowSnmpv2CPDURequestId) Reset() { + *x = PatternFlowSnmpv2CPDURequestId{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[759] + mi := &file_otg_proto_msgTypes[765] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SetConfigRequest) String() string { +func (x *PatternFlowSnmpv2CPDURequestId) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetConfigRequest) ProtoMessage() {} +func (*PatternFlowSnmpv2CPDURequestId) ProtoMessage() {} -func (x *SetConfigRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[759] +func (x *PatternFlowSnmpv2CPDURequestId) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[765] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81583,43 +83220,80 @@ func (x *SetConfigRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetConfigRequest.ProtoReflect.Descriptor instead. -func (*SetConfigRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{759} +// Deprecated: Use PatternFlowSnmpv2CPDURequestId.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CPDURequestId) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{765} } -func (x *SetConfigRequest) GetConfig() *Config { +func (x *PatternFlowSnmpv2CPDURequestId) GetChoice() PatternFlowSnmpv2CPDURequestId_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowSnmpv2CPDURequestId_Choice_unspecified +} + +func (x *PatternFlowSnmpv2CPDURequestId) GetValue() int32 { + if x != nil && x.Value != nil { + return *x.Value + } + return 0 +} + +func (x *PatternFlowSnmpv2CPDURequestId) GetValues() []int32 { if x != nil { - return x.Config + return x.Values } return nil } -type UpdateConfigRequest struct { +func (x *PatternFlowSnmpv2CPDURequestId) GetIncrement() *PatternFlowSnmpv2CPDURequestIdCounter { + if x != nil { + return x.Increment + } + return nil +} + +func (x *PatternFlowSnmpv2CPDURequestId) GetDecrement() *PatternFlowSnmpv2CPDURequestIdCounter { + if x != nil { + return x.Decrement + } + return nil +} + +// integer counter pattern +type PatternFlowSnmpv2CPDUErrorIndexCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ConfigUpdate *ConfigUpdate `protobuf:"bytes,1,opt,name=config_update,json=configUpdate,proto3" json:"config_update,omitempty"` + // Description missing in models + // default = 0 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // Description missing in models + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // Description missing in models + // default = 1 + Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *UpdateConfigRequest) Reset() { - *x = UpdateConfigRequest{} +func (x *PatternFlowSnmpv2CPDUErrorIndexCounter) Reset() { + *x = PatternFlowSnmpv2CPDUErrorIndexCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[760] + mi := &file_otg_proto_msgTypes[766] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *UpdateConfigRequest) String() string { +func (x *PatternFlowSnmpv2CPDUErrorIndexCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UpdateConfigRequest) ProtoMessage() {} +func (*PatternFlowSnmpv2CPDUErrorIndexCounter) ProtoMessage() {} -func (x *UpdateConfigRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[760] +func (x *PatternFlowSnmpv2CPDUErrorIndexCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[766] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81630,43 +83304,71 @@ func (x *UpdateConfigRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UpdateConfigRequest.ProtoReflect.Descriptor instead. -func (*UpdateConfigRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{760} +// Deprecated: Use PatternFlowSnmpv2CPDUErrorIndexCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CPDUErrorIndexCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{766} } -func (x *UpdateConfigRequest) GetConfigUpdate() *ConfigUpdate { - if x != nil { - return x.ConfigUpdate +func (x *PatternFlowSnmpv2CPDUErrorIndexCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start } - return nil + return 0 } -type SetConfigResponse struct { +func (x *PatternFlowSnmpv2CPDUErrorIndexCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +func (x *PatternFlowSnmpv2CPDUErrorIndexCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// When Error Status is non-zero, this field contains a pointer that specifies which +// object generated the error. Always zero in a request. +type PatternFlowSnmpv2CPDUErrorIndex struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Warning *Warning `protobuf:"bytes,1,opt,name=warning,proto3" json:"warning,omitempty"` + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowSnmpv2CPDUErrorIndex_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowSnmpv2CPDUErrorIndex_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + // default = 0 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Description missing in models + // default = [0] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // Description missing in models + Increment *PatternFlowSnmpv2CPDUErrorIndexCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowSnmpv2CPDUErrorIndexCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *SetConfigResponse) Reset() { - *x = SetConfigResponse{} +func (x *PatternFlowSnmpv2CPDUErrorIndex) Reset() { + *x = PatternFlowSnmpv2CPDUErrorIndex{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[761] + mi := &file_otg_proto_msgTypes[767] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SetConfigResponse) String() string { +func (x *PatternFlowSnmpv2CPDUErrorIndex) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetConfigResponse) ProtoMessage() {} +func (*PatternFlowSnmpv2CPDUErrorIndex) ProtoMessage() {} -func (x *SetConfigResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[761] +func (x *PatternFlowSnmpv2CPDUErrorIndex) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[767] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81677,43 +83379,80 @@ func (x *SetConfigResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetConfigResponse.ProtoReflect.Descriptor instead. -func (*SetConfigResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{761} +// Deprecated: Use PatternFlowSnmpv2CPDUErrorIndex.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CPDUErrorIndex) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{767} } -func (x *SetConfigResponse) GetWarning() *Warning { +func (x *PatternFlowSnmpv2CPDUErrorIndex) GetChoice() PatternFlowSnmpv2CPDUErrorIndex_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowSnmpv2CPDUErrorIndex_Choice_unspecified +} + +func (x *PatternFlowSnmpv2CPDUErrorIndex) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value + } + return 0 +} + +func (x *PatternFlowSnmpv2CPDUErrorIndex) GetValues() []uint32 { if x != nil { - return x.Warning + return x.Values } return nil } -type GetConfigResponse struct { +func (x *PatternFlowSnmpv2CPDUErrorIndex) GetIncrement() *PatternFlowSnmpv2CPDUErrorIndexCounter { + if x != nil { + return x.Increment + } + return nil +} + +func (x *PatternFlowSnmpv2CPDUErrorIndex) GetDecrement() *PatternFlowSnmpv2CPDUErrorIndexCounter { + if x != nil { + return x.Decrement + } + return nil +} + +// integer counter pattern +type PatternFlowSnmpv2CBulkPDURequestIdCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Config *Config `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"` + // Description missing in models + // default = 0 + Start *int32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // Description missing in models + // default = 1 + Step *int32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // Description missing in models + // default = 1 + Count *int32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *GetConfigResponse) Reset() { - *x = GetConfigResponse{} +func (x *PatternFlowSnmpv2CBulkPDURequestIdCounter) Reset() { + *x = PatternFlowSnmpv2CBulkPDURequestIdCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[762] + mi := &file_otg_proto_msgTypes[768] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetConfigResponse) String() string { +func (x *PatternFlowSnmpv2CBulkPDURequestIdCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetConfigResponse) ProtoMessage() {} +func (*PatternFlowSnmpv2CBulkPDURequestIdCounter) ProtoMessage() {} -func (x *GetConfigResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[762] +func (x *PatternFlowSnmpv2CBulkPDURequestIdCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[768] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81724,43 +83463,75 @@ func (x *GetConfigResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetConfigResponse.ProtoReflect.Descriptor instead. -func (*GetConfigResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{762} +// Deprecated: Use PatternFlowSnmpv2CBulkPDURequestIdCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CBulkPDURequestIdCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{768} } -func (x *GetConfigResponse) GetConfig() *Config { - if x != nil { - return x.Config +func (x *PatternFlowSnmpv2CBulkPDURequestIdCounter) GetStart() int32 { + if x != nil && x.Start != nil { + return *x.Start } - return nil + return 0 } -type UpdateConfigResponse struct { +func (x *PatternFlowSnmpv2CBulkPDURequestIdCounter) GetStep() int32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +func (x *PatternFlowSnmpv2CBulkPDURequestIdCounter) GetCount() int32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// Identifies a particular SNMP request. +// This index is echoed back in the response from the SNMP agent, +// allowing the SNMP manager to match an incoming response to the appropriate request. +// +// - Encoding of this field follows ASN.1 X.690(section 8.3) specification. +// Refer: http://www.itu.int/ITU-T/asn1/ +type PatternFlowSnmpv2CBulkPDURequestId struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Warning *Warning `protobuf:"bytes,1,opt,name=warning,proto3" json:"warning,omitempty"` + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowSnmpv2CBulkPDURequestId_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowSnmpv2CBulkPDURequestId_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + // default = 0 + Value *int32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Description missing in models + // default = [0] + Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // Description missing in models + Increment *PatternFlowSnmpv2CBulkPDURequestIdCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowSnmpv2CBulkPDURequestIdCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *UpdateConfigResponse) Reset() { - *x = UpdateConfigResponse{} +func (x *PatternFlowSnmpv2CBulkPDURequestId) Reset() { + *x = PatternFlowSnmpv2CBulkPDURequestId{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[763] + mi := &file_otg_proto_msgTypes[769] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *UpdateConfigResponse) String() string { +func (x *PatternFlowSnmpv2CBulkPDURequestId) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UpdateConfigResponse) ProtoMessage() {} +func (*PatternFlowSnmpv2CBulkPDURequestId) ProtoMessage() {} -func (x *UpdateConfigResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[763] +func (x *PatternFlowSnmpv2CBulkPDURequestId) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[769] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81771,43 +83542,81 @@ func (x *UpdateConfigResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UpdateConfigResponse.ProtoReflect.Descriptor instead. -func (*UpdateConfigResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{763} +// Deprecated: Use PatternFlowSnmpv2CBulkPDURequestId.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CBulkPDURequestId) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{769} } -func (x *UpdateConfigResponse) GetWarning() *Warning { +func (x *PatternFlowSnmpv2CBulkPDURequestId) GetChoice() PatternFlowSnmpv2CBulkPDURequestId_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowSnmpv2CBulkPDURequestId_Choice_unspecified +} + +func (x *PatternFlowSnmpv2CBulkPDURequestId) GetValue() int32 { + if x != nil && x.Value != nil { + return *x.Value + } + return 0 +} + +func (x *PatternFlowSnmpv2CBulkPDURequestId) GetValues() []int32 { if x != nil { - return x.Warning + return x.Values } return nil } -type SetControlStateRequest struct { +func (x *PatternFlowSnmpv2CBulkPDURequestId) GetIncrement() *PatternFlowSnmpv2CBulkPDURequestIdCounter { + if x != nil { + return x.Increment + } + return nil +} + +func (x *PatternFlowSnmpv2CBulkPDURequestId) GetDecrement() *PatternFlowSnmpv2CBulkPDURequestIdCounter { + if x != nil { + return x.Decrement + } + return nil +} + +// One variable binding in the Response-PDU is requested for the first non_repeaters +// variable bindings in the GetBulkRequest. +type PatternFlowSnmpv2CBulkPDUNonRepeaters struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ControlState *ControlState `protobuf:"bytes,1,opt,name=control_state,json=controlState,proto3" json:"control_state,omitempty"` + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + // default = 0 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Description missing in models + // default = [0] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` } -func (x *SetControlStateRequest) Reset() { - *x = SetControlStateRequest{} +func (x *PatternFlowSnmpv2CBulkPDUNonRepeaters) Reset() { + *x = PatternFlowSnmpv2CBulkPDUNonRepeaters{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[764] + mi := &file_otg_proto_msgTypes[770] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SetControlStateRequest) String() string { +func (x *PatternFlowSnmpv2CBulkPDUNonRepeaters) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetControlStateRequest) ProtoMessage() {} +func (*PatternFlowSnmpv2CBulkPDUNonRepeaters) ProtoMessage() {} -func (x *SetControlStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[764] +func (x *PatternFlowSnmpv2CBulkPDUNonRepeaters) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[770] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81818,43 +83627,66 @@ func (x *SetControlStateRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetControlStateRequest.ProtoReflect.Descriptor instead. -func (*SetControlStateRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{764} +// Deprecated: Use PatternFlowSnmpv2CBulkPDUNonRepeaters.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CBulkPDUNonRepeaters) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{770} } -func (x *SetControlStateRequest) GetControlState() *ControlState { +func (x *PatternFlowSnmpv2CBulkPDUNonRepeaters) GetChoice() PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_unspecified +} + +func (x *PatternFlowSnmpv2CBulkPDUNonRepeaters) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value + } + return 0 +} + +func (x *PatternFlowSnmpv2CBulkPDUNonRepeaters) GetValues() []uint32 { if x != nil { - return x.ControlState + return x.Values } return nil } -type SetControlStateResponse struct { +// integer counter pattern +type PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Warning *Warning `protobuf:"bytes,1,opt,name=warning,proto3" json:"warning,omitempty"` + // Description missing in models + // default = 0 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // Description missing in models + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // Description missing in models + // default = 1 + Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *SetControlStateResponse) Reset() { - *x = SetControlStateResponse{} +func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) Reset() { + *x = PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[765] + mi := &file_otg_proto_msgTypes[771] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SetControlStateResponse) String() string { +func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetControlStateResponse) ProtoMessage() {} +func (*PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) ProtoMessage() {} -func (x *SetControlStateResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[765] +func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[771] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81865,43 +83697,72 @@ func (x *SetControlStateResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetControlStateResponse.ProtoReflect.Descriptor instead. -func (*SetControlStateResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{765} +// Deprecated: Use PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{771} } -func (x *SetControlStateResponse) GetWarning() *Warning { - if x != nil { - return x.Warning +func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start } - return nil + return 0 } -type SetControlActionRequest struct { +func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// A maximum of max_repetitions variable bindings are requested in the Response-PDU +// for each of the remaining variable bindings in the GetBulkRequest after the non_repeaters +// variable bindings. +type PatternFlowSnmpv2CBulkPDUMaxRepetitions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ControlAction *ControlAction `protobuf:"bytes,1,opt,name=control_action,json=controlAction,proto3" json:"control_action,omitempty"` + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + // default = 0 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Description missing in models + // default = [0] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // Description missing in models + Increment *PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *SetControlActionRequest) Reset() { - *x = SetControlActionRequest{} +func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitions) Reset() { + *x = PatternFlowSnmpv2CBulkPDUMaxRepetitions{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[766] + mi := &file_otg_proto_msgTypes[772] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SetControlActionRequest) String() string { +func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitions) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetControlActionRequest) ProtoMessage() {} +func (*PatternFlowSnmpv2CBulkPDUMaxRepetitions) ProtoMessage() {} -func (x *SetControlActionRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[766] +func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitions) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[772] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81912,90 +83773,80 @@ func (x *SetControlActionRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetControlActionRequest.ProtoReflect.Descriptor instead. -func (*SetControlActionRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{766} +// Deprecated: Use PatternFlowSnmpv2CBulkPDUMaxRepetitions.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CBulkPDUMaxRepetitions) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{772} } -func (x *SetControlActionRequest) GetControlAction() *ControlAction { - if x != nil { - return x.ControlAction +func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitions) GetChoice() PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil -} - -type SetControlActionResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ControlActionResponse *ControlActionResponse `protobuf:"bytes,1,opt,name=control_action_response,json=controlActionResponse,proto3" json:"control_action_response,omitempty"` + return PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_unspecified } -func (x *SetControlActionResponse) Reset() { - *x = SetControlActionResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[767] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitions) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value } + return 0 } -func (x *SetControlActionResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SetControlActionResponse) ProtoMessage() {} - -func (x *SetControlActionResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[767] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitions) GetValues() []uint32 { + if x != nil { + return x.Values } - return mi.MessageOf(x) + return nil } -// Deprecated: Use SetControlActionResponse.ProtoReflect.Descriptor instead. -func (*SetControlActionResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{767} +func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitions) GetIncrement() *PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter { + if x != nil { + return x.Increment + } + return nil } -func (x *SetControlActionResponse) GetControlActionResponse() *ControlActionResponse { +func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitions) GetDecrement() *PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter { if x != nil { - return x.ControlActionResponse + return x.Decrement } return nil } -type GetMetricsRequest struct { +// integer counter pattern +type PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - MetricsRequest *MetricsRequest `protobuf:"bytes,1,opt,name=metrics_request,json=metricsRequest,proto3" json:"metrics_request,omitempty"` + // Description missing in models + // default = 0 + Start *int32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // Description missing in models + // default = 1 + Step *int32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // Description missing in models + // default = 1 + Count *int32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *GetMetricsRequest) Reset() { - *x = GetMetricsRequest{} +func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) Reset() { + *x = PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[768] + mi := &file_otg_proto_msgTypes[773] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetMetricsRequest) String() string { +func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetMetricsRequest) ProtoMessage() {} +func (*PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) ProtoMessage() {} -func (x *GetMetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[768] +func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[773] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82006,43 +83857,70 @@ func (x *GetMetricsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetMetricsRequest.ProtoReflect.Descriptor instead. -func (*GetMetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{768} +// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{773} } -func (x *GetMetricsRequest) GetMetricsRequest() *MetricsRequest { - if x != nil { - return x.MetricsRequest +func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) GetStart() int32 { + if x != nil && x.Start != nil { + return *x.Start } - return nil + return 0 } -type GetMetricsResponse struct { +func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) GetStep() int32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) GetCount() int32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// Integer value returned for the requested OID. +type PatternFlowSnmpv2CVariableBindingValueIntegerValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - MetricsResponse *MetricsResponse `protobuf:"bytes,1,opt,name=metrics_response,json=metricsResponse,proto3" json:"metrics_response,omitempty"` + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + // default = 0 + Value *int32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Description missing in models + // default = [0] + Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // Description missing in models + Increment *PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *GetMetricsResponse) Reset() { - *x = GetMetricsResponse{} +func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValue) Reset() { + *x = PatternFlowSnmpv2CVariableBindingValueIntegerValue{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[769] + mi := &file_otg_proto_msgTypes[774] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetMetricsResponse) String() string { +func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValue) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetMetricsResponse) ProtoMessage() {} +func (*PatternFlowSnmpv2CVariableBindingValueIntegerValue) ProtoMessage() {} -func (x *GetMetricsResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[769] +func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValue) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[774] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82053,43 +83931,80 @@ func (x *GetMetricsResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetMetricsResponse.ProtoReflect.Descriptor instead. -func (*GetMetricsResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{769} +// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueIntegerValue.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CVariableBindingValueIntegerValue) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{774} } -func (x *GetMetricsResponse) GetMetricsResponse() *MetricsResponse { +func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValue) GetChoice() PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_unspecified +} + +func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValue) GetValue() int32 { + if x != nil && x.Value != nil { + return *x.Value + } + return 0 +} + +func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValue) GetValues() []int32 { if x != nil { - return x.MetricsResponse + return x.Values } return nil } -type GetStatesRequest struct { +func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValue) GetIncrement() *PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter { + if x != nil { + return x.Increment + } + return nil +} + +func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValue) GetDecrement() *PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter { + if x != nil { + return x.Decrement + } + return nil +} + +// ipv4 counter pattern +type PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - StatesRequest *StatesRequest `protobuf:"bytes,1,opt,name=states_request,json=statesRequest,proto3" json:"states_request,omitempty"` + // Description missing in models + // default = 0.0.0.0 + Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // Description missing in models + // default = 0.0.0.1 + Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // Description missing in models + // default = 1 + Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *GetStatesRequest) Reset() { - *x = GetStatesRequest{} +func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) Reset() { + *x = PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[770] + mi := &file_otg_proto_msgTypes[775] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetStatesRequest) String() string { +func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetStatesRequest) ProtoMessage() {} +func (*PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) ProtoMessage() {} -func (x *GetStatesRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[770] +func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[775] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82100,43 +84015,70 @@ func (x *GetStatesRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetStatesRequest.ProtoReflect.Descriptor instead. -func (*GetStatesRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{770} +// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{775} } -func (x *GetStatesRequest) GetStatesRequest() *StatesRequest { - if x != nil { - return x.StatesRequest +func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) GetStart() string { + if x != nil && x.Start != nil { + return *x.Start } - return nil + return "" } -type GetStatesResponse struct { +func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) GetStep() string { + if x != nil && x.Step != nil { + return *x.Step + } + return "" +} + +func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// IPv4 address returned for the requested OID. +type PatternFlowSnmpv2CVariableBindingValueIpAddressValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - StatesResponse *StatesResponse `protobuf:"bytes,1,opt,name=states_response,json=statesResponse,proto3" json:"states_response,omitempty"` + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + // default = 0.0.0.0 + Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Description missing in models + // default = ['0.0.0.0'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` + // Description missing in models + Increment *PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *GetStatesResponse) Reset() { - *x = GetStatesResponse{} +func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValue) Reset() { + *x = PatternFlowSnmpv2CVariableBindingValueIpAddressValue{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[771] + mi := &file_otg_proto_msgTypes[776] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetStatesResponse) String() string { +func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValue) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetStatesResponse) ProtoMessage() {} +func (*PatternFlowSnmpv2CVariableBindingValueIpAddressValue) ProtoMessage() {} -func (x *GetStatesResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[771] +func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValue) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[776] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82147,43 +84089,80 @@ func (x *GetStatesResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetStatesResponse.ProtoReflect.Descriptor instead. -func (*GetStatesResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{771} +// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueIpAddressValue.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CVariableBindingValueIpAddressValue) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{776} } -func (x *GetStatesResponse) GetStatesResponse() *StatesResponse { +func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValue) GetChoice() PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_unspecified +} + +func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValue) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value + } + return "" +} + +func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValue) GetValues() []string { if x != nil { - return x.StatesResponse + return x.Values } return nil } -type GetCaptureRequest struct { +func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValue) GetIncrement() *PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter { + if x != nil { + return x.Increment + } + return nil +} + +func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValue) GetDecrement() *PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter { + if x != nil { + return x.Decrement + } + return nil +} + +// integer counter pattern +type PatternFlowSnmpv2CVariableBindingValueCounterValueCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - CaptureRequest *CaptureRequest `protobuf:"bytes,1,opt,name=capture_request,json=captureRequest,proto3" json:"capture_request,omitempty"` + // Description missing in models + // default = 0 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // Description missing in models + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // Description missing in models + // default = 1 + Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *GetCaptureRequest) Reset() { - *x = GetCaptureRequest{} +func (x *PatternFlowSnmpv2CVariableBindingValueCounterValueCounter) Reset() { + *x = PatternFlowSnmpv2CVariableBindingValueCounterValueCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[772] + mi := &file_otg_proto_msgTypes[777] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetCaptureRequest) String() string { +func (x *PatternFlowSnmpv2CVariableBindingValueCounterValueCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetCaptureRequest) ProtoMessage() {} +func (*PatternFlowSnmpv2CVariableBindingValueCounterValueCounter) ProtoMessage() {} -func (x *GetCaptureRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[772] +func (x *PatternFlowSnmpv2CVariableBindingValueCounterValueCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[777] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82194,43 +84173,70 @@ func (x *GetCaptureRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetCaptureRequest.ProtoReflect.Descriptor instead. -func (*GetCaptureRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{772} +// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueCounterValueCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CVariableBindingValueCounterValueCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{777} } -func (x *GetCaptureRequest) GetCaptureRequest() *CaptureRequest { - if x != nil { - return x.CaptureRequest +func (x *PatternFlowSnmpv2CVariableBindingValueCounterValueCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start } - return nil + return 0 } -type GetCaptureResponse struct { +func (x *PatternFlowSnmpv2CVariableBindingValueCounterValueCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +func (x *PatternFlowSnmpv2CVariableBindingValueCounterValueCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// Counter returned for the requested OID. +type PatternFlowSnmpv2CVariableBindingValueCounterValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ResponseBytes []byte `protobuf:"bytes,1,opt,name=response_bytes,json=responseBytes,proto3" json:"response_bytes,omitempty"` + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + // default = 0 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Description missing in models + // default = [0] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // Description missing in models + Increment *PatternFlowSnmpv2CVariableBindingValueCounterValueCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowSnmpv2CVariableBindingValueCounterValueCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *GetCaptureResponse) Reset() { - *x = GetCaptureResponse{} +func (x *PatternFlowSnmpv2CVariableBindingValueCounterValue) Reset() { + *x = PatternFlowSnmpv2CVariableBindingValueCounterValue{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[773] + mi := &file_otg_proto_msgTypes[778] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetCaptureResponse) String() string { +func (x *PatternFlowSnmpv2CVariableBindingValueCounterValue) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetCaptureResponse) ProtoMessage() {} +func (*PatternFlowSnmpv2CVariableBindingValueCounterValue) ProtoMessage() {} -func (x *GetCaptureResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[773] +func (x *PatternFlowSnmpv2CVariableBindingValueCounterValue) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[778] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82241,43 +84247,80 @@ func (x *GetCaptureResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetCaptureResponse.ProtoReflect.Descriptor instead. -func (*GetCaptureResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{773} +// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueCounterValue.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CVariableBindingValueCounterValue) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{778} } -func (x *GetCaptureResponse) GetResponseBytes() []byte { +func (x *PatternFlowSnmpv2CVariableBindingValueCounterValue) GetChoice() PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_unspecified +} + +func (x *PatternFlowSnmpv2CVariableBindingValueCounterValue) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value + } + return 0 +} + +func (x *PatternFlowSnmpv2CVariableBindingValueCounterValue) GetValues() []uint32 { if x != nil { - return x.ResponseBytes + return x.Values } return nil } -type GetVersionResponse struct { +func (x *PatternFlowSnmpv2CVariableBindingValueCounterValue) GetIncrement() *PatternFlowSnmpv2CVariableBindingValueCounterValueCounter { + if x != nil { + return x.Increment + } + return nil +} + +func (x *PatternFlowSnmpv2CVariableBindingValueCounterValue) GetDecrement() *PatternFlowSnmpv2CVariableBindingValueCounterValueCounter { + if x != nil { + return x.Decrement + } + return nil +} + +// integer counter pattern +type PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Version *Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` + // Description missing in models + // default = 0 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // Description missing in models + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // Description missing in models + // default = 1 + Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *GetVersionResponse) Reset() { - *x = GetVersionResponse{} +func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) Reset() { + *x = PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[774] + mi := &file_otg_proto_msgTypes[779] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetVersionResponse) String() string { +func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetVersionResponse) ProtoMessage() {} +func (*PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) ProtoMessage() {} -func (x *GetVersionResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[774] +func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[779] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82288,41 +84331,70 @@ func (x *GetVersionResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetVersionResponse.ProtoReflect.Descriptor instead. -func (*GetVersionResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{774} +// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{779} } -func (x *GetVersionResponse) GetVersion() *Version { - if x != nil { - return x.Version +func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start } - return nil + return 0 } -type LagProtocol_Choice struct { +func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// Timeticks returned for the requested OID. +type PatternFlowSnmpv2CVariableBindingValueTimeticksValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + // default = 0 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Description missing in models + // default = [0] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // Description missing in models + Increment *PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *LagProtocol_Choice) Reset() { - *x = LagProtocol_Choice{} +func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValue) Reset() { + *x = PatternFlowSnmpv2CVariableBindingValueTimeticksValue{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[775] + mi := &file_otg_proto_msgTypes[780] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LagProtocol_Choice) String() string { +func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValue) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LagProtocol_Choice) ProtoMessage() {} +func (*PatternFlowSnmpv2CVariableBindingValueTimeticksValue) ProtoMessage() {} -func (x *LagProtocol_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[775] +func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValue) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[780] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82333,72 +84405,80 @@ func (x *LagProtocol_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LagProtocol_Choice.ProtoReflect.Descriptor instead. -func (*LagProtocol_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{6, 0} +// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueTimeticksValue.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CVariableBindingValueTimeticksValue) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{780} } -type LagPortLacp_ActorActivity struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValue) GetChoice() PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_unspecified } -func (x *LagPortLacp_ActorActivity) Reset() { - *x = LagPortLacp_ActorActivity{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[776] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValue) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value } + return 0 } -func (x *LagPortLacp_ActorActivity) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValue) GetValues() []uint32 { + if x != nil { + return x.Values + } + return nil } -func (*LagPortLacp_ActorActivity) ProtoMessage() {} - -func (x *LagPortLacp_ActorActivity) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[776] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValue) GetIncrement() *PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter { + if x != nil { + return x.Increment } - return mi.MessageOf(x) + return nil } -// Deprecated: Use LagPortLacp_ActorActivity.ProtoReflect.Descriptor instead. -func (*LagPortLacp_ActorActivity) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{9, 0} +func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValue) GetDecrement() *PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter { + if x != nil { + return x.Decrement + } + return nil } -type EthernetConnection_Choice struct { +// integer counter pattern +type PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = 0 + Start *uint64 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // Description missing in models + // default = 1 + Step *uint64 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // Description missing in models + // default = 1 + Count *uint64 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *EthernetConnection_Choice) Reset() { - *x = EthernetConnection_Choice{} +func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) Reset() { + *x = PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[777] + mi := &file_otg_proto_msgTypes[781] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *EthernetConnection_Choice) String() string { +func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EthernetConnection_Choice) ProtoMessage() {} +func (*PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) ProtoMessage() {} -func (x *EthernetConnection_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[777] +func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[781] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82409,34 +84489,70 @@ func (x *EthernetConnection_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EthernetConnection_Choice.ProtoReflect.Descriptor instead. -func (*EthernetConnection_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{12, 0} +// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{781} } -type DeviceVlan_Tpid struct { +func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) GetStart() uint64 { + if x != nil && x.Start != nil { + return *x.Start + } + return 0 +} + +func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) GetStep() uint64 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) GetCount() uint64 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// Big counter returned for the requested OID. +type PatternFlowSnmpv2CVariableBindingValueBigCounterValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + // default = 0 + Value *uint64 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Description missing in models + // default = [0] + Values []uint64 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // Description missing in models + Increment *PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *DeviceVlan_Tpid) Reset() { - *x = DeviceVlan_Tpid{} +func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValue) Reset() { + *x = PatternFlowSnmpv2CVariableBindingValueBigCounterValue{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[778] + mi := &file_otg_proto_msgTypes[782] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DeviceVlan_Tpid) String() string { +func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValue) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeviceVlan_Tpid) ProtoMessage() {} +func (*PatternFlowSnmpv2CVariableBindingValueBigCounterValue) ProtoMessage() {} -func (x *DeviceVlan_Tpid) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[778] +func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValue) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[782] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82447,72 +84563,80 @@ func (x *DeviceVlan_Tpid) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeviceVlan_Tpid.ProtoReflect.Descriptor instead. -func (*DeviceVlan_Tpid) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{13, 0} +// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueBigCounterValue.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CVariableBindingValueBigCounterValue) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{782} } -type DeviceIpv4GatewayMAC_Choice struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValue) GetChoice() PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_unspecified } -func (x *DeviceIpv4GatewayMAC_Choice) Reset() { - *x = DeviceIpv4GatewayMAC_Choice{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[779] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValue) GetValue() uint64 { + if x != nil && x.Value != nil { + return *x.Value } + return 0 } -func (x *DeviceIpv4GatewayMAC_Choice) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValue) GetValues() []uint64 { + if x != nil { + return x.Values + } + return nil } -func (*DeviceIpv4GatewayMAC_Choice) ProtoMessage() {} - -func (x *DeviceIpv4GatewayMAC_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[779] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValue) GetIncrement() *PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter { + if x != nil { + return x.Increment } - return mi.MessageOf(x) + return nil } -// Deprecated: Use DeviceIpv4GatewayMAC_Choice.ProtoReflect.Descriptor instead. -func (*DeviceIpv4GatewayMAC_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{16, 0} +func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValue) GetDecrement() *PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter { + if x != nil { + return x.Decrement + } + return nil } -type DeviceIpv6GatewayMAC_Choice struct { +// integer counter pattern +type PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = 0 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // Description missing in models + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // Description missing in models + // default = 1 + Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *DeviceIpv6GatewayMAC_Choice) Reset() { - *x = DeviceIpv6GatewayMAC_Choice{} +func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) Reset() { + *x = PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[780] + mi := &file_otg_proto_msgTypes[783] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DeviceIpv6GatewayMAC_Choice) String() string { +func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeviceIpv6GatewayMAC_Choice) ProtoMessage() {} +func (*PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) ProtoMessage() {} -func (x *DeviceIpv6GatewayMAC_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[780] +func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[783] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82523,72 +84647,70 @@ func (x *DeviceIpv6GatewayMAC_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeviceIpv6GatewayMAC_Choice.ProtoReflect.Descriptor instead. -func (*DeviceIpv6GatewayMAC_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{19, 0} -} - -type Layer1_Speed struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{783} } -func (x *Layer1_Speed) Reset() { - *x = Layer1_Speed{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[781] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start } + return 0 } -func (x *Layer1_Speed) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Layer1_Speed) ProtoMessage() {} - -func (x *Layer1_Speed) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[781] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use Layer1_Speed.ProtoReflect.Descriptor instead. -func (*Layer1_Speed) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{20, 0} +func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 } -type Layer1_Media struct { +// Unsigned integer value returned for the requested OID. +type PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + // default = 0 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Description missing in models + // default = [0] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // Description missing in models + Increment *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *Layer1_Media) Reset() { - *x = Layer1_Media{} +func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) Reset() { + *x = PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[782] + mi := &file_otg_proto_msgTypes[784] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Layer1_Media) String() string { +func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Layer1_Media) ProtoMessage() {} +func (*PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) ProtoMessage() {} -func (x *Layer1_Media) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[782] +func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[784] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82599,72 +84721,80 @@ func (x *Layer1_Media) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Layer1_Media.ProtoReflect.Descriptor instead. -func (*Layer1_Media) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{20, 1} +// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{784} } -type Layer1FlowControl_Choice struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) GetChoice() PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_unspecified } -func (x *Layer1FlowControl_Choice) Reset() { - *x = Layer1FlowControl_Choice{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[783] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value } + return 0 } -func (x *Layer1FlowControl_Choice) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) GetValues() []uint32 { + if x != nil { + return x.Values + } + return nil } -func (*Layer1FlowControl_Choice) ProtoMessage() {} - -func (x *Layer1FlowControl_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[783] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) GetIncrement() *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter { + if x != nil { + return x.Increment } - return mi.MessageOf(x) + return nil } -// Deprecated: Use Layer1FlowControl_Choice.ProtoReflect.Descriptor instead. -func (*Layer1FlowControl_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{22, 0} +func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) GetDecrement() *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter { + if x != nil { + return x.Decrement + } + return nil } -type Capture_Format struct { +// integer counter pattern +type PatternFlowSnmpv2CCommonRequestIdCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = 0 + Start *int32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // Description missing in models + // default = 1 + Step *int32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // Description missing in models + // default = 1 + Count *int32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *Capture_Format) Reset() { - *x = Capture_Format{} +func (x *PatternFlowSnmpv2CCommonRequestIdCounter) Reset() { + *x = PatternFlowSnmpv2CCommonRequestIdCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[784] + mi := &file_otg_proto_msgTypes[785] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Capture_Format) String() string { +func (x *PatternFlowSnmpv2CCommonRequestIdCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Capture_Format) ProtoMessage() {} +func (*PatternFlowSnmpv2CCommonRequestIdCounter) ProtoMessage() {} -func (x *Capture_Format) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[784] +func (x *PatternFlowSnmpv2CCommonRequestIdCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[785] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82675,34 +84805,75 @@ func (x *Capture_Format) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Capture_Format.ProtoReflect.Descriptor instead. -func (*Capture_Format) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{25, 0} +// Deprecated: Use PatternFlowSnmpv2CCommonRequestIdCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CCommonRequestIdCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{785} } -type CaptureFilter_Choice struct { +func (x *PatternFlowSnmpv2CCommonRequestIdCounter) GetStart() int32 { + if x != nil && x.Start != nil { + return *x.Start + } + return 0 +} + +func (x *PatternFlowSnmpv2CCommonRequestIdCounter) GetStep() int32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +func (x *PatternFlowSnmpv2CCommonRequestIdCounter) GetCount() int32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// Identifies a particular SNMP request. +// This index is echoed back in the response from the SNMP agent, +// allowing the SNMP manager to match an incoming response to the appropriate request. +// +// - Encoding of this field follows ASN.1 X.690(section 8.3) specification. +// Refer: http://www.itu.int/ITU-T/asn1/ +type PatternFlowSnmpv2CCommonRequestId struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowSnmpv2CCommonRequestId_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowSnmpv2CCommonRequestId_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + // default = 0 + Value *int32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Description missing in models + // default = [0] + Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // Description missing in models + Increment *PatternFlowSnmpv2CCommonRequestIdCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowSnmpv2CCommonRequestIdCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *CaptureFilter_Choice) Reset() { - *x = CaptureFilter_Choice{} +func (x *PatternFlowSnmpv2CCommonRequestId) Reset() { + *x = PatternFlowSnmpv2CCommonRequestId{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[785] + mi := &file_otg_proto_msgTypes[786] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *CaptureFilter_Choice) String() string { +func (x *PatternFlowSnmpv2CCommonRequestId) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CaptureFilter_Choice) ProtoMessage() {} +func (*PatternFlowSnmpv2CCommonRequestId) ProtoMessage() {} -func (x *CaptureFilter_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[785] +func (x *PatternFlowSnmpv2CCommonRequestId) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[786] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82713,57 +84884,65 @@ func (x *CaptureFilter_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CaptureFilter_Choice.ProtoReflect.Descriptor instead. -func (*CaptureFilter_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{26, 0} +// Deprecated: Use PatternFlowSnmpv2CCommonRequestId.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CCommonRequestId) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{786} } -type IsisInterface_NetworkType struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *PatternFlowSnmpv2CCommonRequestId) GetChoice() PatternFlowSnmpv2CCommonRequestId_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowSnmpv2CCommonRequestId_Choice_unspecified } -func (x *IsisInterface_NetworkType) Reset() { - *x = IsisInterface_NetworkType{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[786] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PatternFlowSnmpv2CCommonRequestId) GetValue() int32 { + if x != nil && x.Value != nil { + return *x.Value } + return 0 } -func (x *IsisInterface_NetworkType) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *PatternFlowSnmpv2CCommonRequestId) GetValues() []int32 { + if x != nil { + return x.Values + } + return nil } -func (*IsisInterface_NetworkType) ProtoMessage() {} - -func (x *IsisInterface_NetworkType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[786] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PatternFlowSnmpv2CCommonRequestId) GetIncrement() *PatternFlowSnmpv2CCommonRequestIdCounter { + if x != nil { + return x.Increment } - return mi.MessageOf(x) + return nil } -// Deprecated: Use IsisInterface_NetworkType.ProtoReflect.Descriptor instead. -func (*IsisInterface_NetworkType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{37, 0} +func (x *PatternFlowSnmpv2CCommonRequestId) GetDecrement() *PatternFlowSnmpv2CCommonRequestIdCounter { + if x != nil { + return x.Decrement + } + return nil } -type IsisInterface_LevelType struct { +// Version details +type Version struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Version of API specification + // default = + ApiSpecVersion *string `protobuf:"bytes,1,opt,name=api_spec_version,json=apiSpecVersion,proto3,oneof" json:"api_spec_version,omitempty"` + // Version of SDK generated from API specification + // default = + SdkVersion *string `protobuf:"bytes,2,opt,name=sdk_version,json=sdkVersion,proto3,oneof" json:"sdk_version,omitempty"` + // Version of application consuming or serving the API + // default = + AppVersion *string `protobuf:"bytes,3,opt,name=app_version,json=appVersion,proto3,oneof" json:"app_version,omitempty"` } -func (x *IsisInterface_LevelType) Reset() { - *x = IsisInterface_LevelType{} +func (x *Version) Reset() { + *x = Version{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[787] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -82771,13 +84950,13 @@ func (x *IsisInterface_LevelType) Reset() { } } -func (x *IsisInterface_LevelType) String() string { +func (x *Version) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisInterface_LevelType) ProtoMessage() {} +func (*Version) ProtoMessage() {} -func (x *IsisInterface_LevelType) ProtoReflect() protoreflect.Message { +func (x *Version) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[787] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -82789,19 +84968,44 @@ func (x *IsisInterface_LevelType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisInterface_LevelType.ProtoReflect.Descriptor instead. -func (*IsisInterface_LevelType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{37, 1} +// Deprecated: Use Version.ProtoReflect.Descriptor instead. +func (*Version) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{787} } -type IsisInterfaceAuthentication_AuthType struct { +func (x *Version) GetApiSpecVersion() string { + if x != nil && x.ApiSpecVersion != nil { + return *x.ApiSpecVersion + } + return "" +} + +func (x *Version) GetSdkVersion() string { + if x != nil && x.SdkVersion != nil { + return *x.SdkVersion + } + return "" +} + +func (x *Version) GetAppVersion() string { + if x != nil && x.AppVersion != nil { + return *x.AppVersion + } + return "" +} + +// The request has succeeded with no application content but the server +// may return a list of detailed warnings. +type Success struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Warning *Warning `protobuf:"bytes,1,opt,name=warning,proto3" json:"warning,omitempty"` } -func (x *IsisInterfaceAuthentication_AuthType) Reset() { - *x = IsisInterfaceAuthentication_AuthType{} +func (x *Success) Reset() { + *x = Success{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[788] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -82809,13 +85013,13 @@ func (x *IsisInterfaceAuthentication_AuthType) Reset() { } } -func (x *IsisInterfaceAuthentication_AuthType) String() string { +func (x *Success) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisInterfaceAuthentication_AuthType) ProtoMessage() {} +func (*Success) ProtoMessage() {} -func (x *IsisInterfaceAuthentication_AuthType) ProtoReflect() protoreflect.Message { +func (x *Success) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[788] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -82827,19 +85031,29 @@ func (x *IsisInterfaceAuthentication_AuthType) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use IsisInterfaceAuthentication_AuthType.ProtoReflect.Descriptor instead. -func (*IsisInterfaceAuthentication_AuthType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{42, 0} +// Deprecated: Use Success.ProtoReflect.Descriptor instead. +func (*Success) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{788} } -type IsisAuthenticationBase_AuthType struct { +func (x *Success) GetWarning() *Warning { + if x != nil { + return x.Warning + } + return nil +} + +// The request did not succeed and server has responded with error details. +type Failure struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Error *Error `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` } -func (x *IsisAuthenticationBase_AuthType) Reset() { - *x = IsisAuthenticationBase_AuthType{} +func (x *Failure) Reset() { + *x = Failure{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[789] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -82847,13 +85061,13 @@ func (x *IsisAuthenticationBase_AuthType) Reset() { } } -func (x *IsisAuthenticationBase_AuthType) String() string { +func (x *Failure) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisAuthenticationBase_AuthType) ProtoMessage() {} +func (*Failure) ProtoMessage() {} -func (x *IsisAuthenticationBase_AuthType) ProtoReflect() protoreflect.Message { +func (x *Failure) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[789] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -82865,19 +85079,28 @@ func (x *IsisAuthenticationBase_AuthType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisAuthenticationBase_AuthType.ProtoReflect.Descriptor instead. -func (*IsisAuthenticationBase_AuthType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{48, 0} +// Deprecated: Use Failure.ProtoReflect.Descriptor instead. +func (*Failure) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{789} } -type IsisV4RouteRange_OriginType struct { +func (x *Failure) GetError() *Error { + if x != nil { + return x.Error + } + return nil +} + +type SetConfigRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Config *Config `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"` } -func (x *IsisV4RouteRange_OriginType) Reset() { - *x = IsisV4RouteRange_OriginType{} +func (x *SetConfigRequest) Reset() { + *x = SetConfigRequest{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[790] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -82885,13 +85108,13 @@ func (x *IsisV4RouteRange_OriginType) Reset() { } } -func (x *IsisV4RouteRange_OriginType) String() string { +func (x *SetConfigRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisV4RouteRange_OriginType) ProtoMessage() {} +func (*SetConfigRequest) ProtoMessage() {} -func (x *IsisV4RouteRange_OriginType) ProtoReflect() protoreflect.Message { +func (x *SetConfigRequest) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[790] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -82903,19 +85126,28 @@ func (x *IsisV4RouteRange_OriginType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisV4RouteRange_OriginType.ProtoReflect.Descriptor instead. -func (*IsisV4RouteRange_OriginType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{49, 0} +// Deprecated: Use SetConfigRequest.ProtoReflect.Descriptor instead. +func (*SetConfigRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{790} } -type IsisV4RouteRange_RedistributionType struct { +func (x *SetConfigRequest) GetConfig() *Config { + if x != nil { + return x.Config + } + return nil +} + +type UpdateConfigRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + ConfigUpdate *ConfigUpdate `protobuf:"bytes,1,opt,name=config_update,json=configUpdate,proto3" json:"config_update,omitempty"` } -func (x *IsisV4RouteRange_RedistributionType) Reset() { - *x = IsisV4RouteRange_RedistributionType{} +func (x *UpdateConfigRequest) Reset() { + *x = UpdateConfigRequest{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[791] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -82923,13 +85155,13 @@ func (x *IsisV4RouteRange_RedistributionType) Reset() { } } -func (x *IsisV4RouteRange_RedistributionType) String() string { +func (x *UpdateConfigRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisV4RouteRange_RedistributionType) ProtoMessage() {} +func (*UpdateConfigRequest) ProtoMessage() {} -func (x *IsisV4RouteRange_RedistributionType) ProtoReflect() protoreflect.Message { +func (x *UpdateConfigRequest) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[791] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -82941,19 +85173,28 @@ func (x *IsisV4RouteRange_RedistributionType) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use IsisV4RouteRange_RedistributionType.ProtoReflect.Descriptor instead. -func (*IsisV4RouteRange_RedistributionType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{49, 1} +// Deprecated: Use UpdateConfigRequest.ProtoReflect.Descriptor instead. +func (*UpdateConfigRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{791} } -type IsisV6RouteRange_OriginType struct { +func (x *UpdateConfigRequest) GetConfigUpdate() *ConfigUpdate { + if x != nil { + return x.ConfigUpdate + } + return nil +} + +type SetConfigResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Warning *Warning `protobuf:"bytes,1,opt,name=warning,proto3" json:"warning,omitempty"` } -func (x *IsisV6RouteRange_OriginType) Reset() { - *x = IsisV6RouteRange_OriginType{} +func (x *SetConfigResponse) Reset() { + *x = SetConfigResponse{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[792] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -82961,13 +85202,13 @@ func (x *IsisV6RouteRange_OriginType) Reset() { } } -func (x *IsisV6RouteRange_OriginType) String() string { +func (x *SetConfigResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisV6RouteRange_OriginType) ProtoMessage() {} +func (*SetConfigResponse) ProtoMessage() {} -func (x *IsisV6RouteRange_OriginType) ProtoReflect() protoreflect.Message { +func (x *SetConfigResponse) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[792] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -82979,19 +85220,28 @@ func (x *IsisV6RouteRange_OriginType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisV6RouteRange_OriginType.ProtoReflect.Descriptor instead. -func (*IsisV6RouteRange_OriginType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{53, 0} +// Deprecated: Use SetConfigResponse.ProtoReflect.Descriptor instead. +func (*SetConfigResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{792} } -type IsisV6RouteRange_RedistributionType struct { +func (x *SetConfigResponse) GetWarning() *Warning { + if x != nil { + return x.Warning + } + return nil +} + +type GetConfigResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Config *Config `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"` } -func (x *IsisV6RouteRange_RedistributionType) Reset() { - *x = IsisV6RouteRange_RedistributionType{} +func (x *GetConfigResponse) Reset() { + *x = GetConfigResponse{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[793] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -82999,13 +85249,13 @@ func (x *IsisV6RouteRange_RedistributionType) Reset() { } } -func (x *IsisV6RouteRange_RedistributionType) String() string { +func (x *GetConfigResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisV6RouteRange_RedistributionType) ProtoMessage() {} +func (*GetConfigResponse) ProtoMessage() {} -func (x *IsisV6RouteRange_RedistributionType) ProtoReflect() protoreflect.Message { +func (x *GetConfigResponse) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[793] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83017,19 +85267,28 @@ func (x *IsisV6RouteRange_RedistributionType) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use IsisV6RouteRange_RedistributionType.ProtoReflect.Descriptor instead. -func (*IsisV6RouteRange_RedistributionType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{53, 1} +// Deprecated: Use GetConfigResponse.ProtoReflect.Descriptor instead. +func (*GetConfigResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{793} } -type DeviceBgpMessageHeaderError_Subcode struct { +func (x *GetConfigResponse) GetConfig() *Config { + if x != nil { + return x.Config + } + return nil +} + +type UpdateConfigResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Warning *Warning `protobuf:"bytes,1,opt,name=warning,proto3" json:"warning,omitempty"` } -func (x *DeviceBgpMessageHeaderError_Subcode) Reset() { - *x = DeviceBgpMessageHeaderError_Subcode{} +func (x *UpdateConfigResponse) Reset() { + *x = UpdateConfigResponse{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[794] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83037,13 +85296,13 @@ func (x *DeviceBgpMessageHeaderError_Subcode) Reset() { } } -func (x *DeviceBgpMessageHeaderError_Subcode) String() string { +func (x *UpdateConfigResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeviceBgpMessageHeaderError_Subcode) ProtoMessage() {} +func (*UpdateConfigResponse) ProtoMessage() {} -func (x *DeviceBgpMessageHeaderError_Subcode) ProtoReflect() protoreflect.Message { +func (x *UpdateConfigResponse) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[794] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83055,19 +85314,28 @@ func (x *DeviceBgpMessageHeaderError_Subcode) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use DeviceBgpMessageHeaderError_Subcode.ProtoReflect.Descriptor instead. -func (*DeviceBgpMessageHeaderError_Subcode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{55, 0} +// Deprecated: Use UpdateConfigResponse.ProtoReflect.Descriptor instead. +func (*UpdateConfigResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{794} } -type DeviceBgpOpenMessageError_Subcode struct { +func (x *UpdateConfigResponse) GetWarning() *Warning { + if x != nil { + return x.Warning + } + return nil +} + +type SetControlStateRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields -} -func (x *DeviceBgpOpenMessageError_Subcode) Reset() { - *x = DeviceBgpOpenMessageError_Subcode{} + ControlState *ControlState `protobuf:"bytes,1,opt,name=control_state,json=controlState,proto3" json:"control_state,omitempty"` +} + +func (x *SetControlStateRequest) Reset() { + *x = SetControlStateRequest{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[795] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83075,13 +85343,13 @@ func (x *DeviceBgpOpenMessageError_Subcode) Reset() { } } -func (x *DeviceBgpOpenMessageError_Subcode) String() string { +func (x *SetControlStateRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeviceBgpOpenMessageError_Subcode) ProtoMessage() {} +func (*SetControlStateRequest) ProtoMessage() {} -func (x *DeviceBgpOpenMessageError_Subcode) ProtoReflect() protoreflect.Message { +func (x *SetControlStateRequest) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[795] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83093,19 +85361,28 @@ func (x *DeviceBgpOpenMessageError_Subcode) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use DeviceBgpOpenMessageError_Subcode.ProtoReflect.Descriptor instead. -func (*DeviceBgpOpenMessageError_Subcode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{56, 0} +// Deprecated: Use SetControlStateRequest.ProtoReflect.Descriptor instead. +func (*SetControlStateRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{795} } -type DeviceBgpUpdateMessageError_Subcode struct { +func (x *SetControlStateRequest) GetControlState() *ControlState { + if x != nil { + return x.ControlState + } + return nil +} + +type SetControlStateResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Warning *Warning `protobuf:"bytes,1,opt,name=warning,proto3" json:"warning,omitempty"` } -func (x *DeviceBgpUpdateMessageError_Subcode) Reset() { - *x = DeviceBgpUpdateMessageError_Subcode{} +func (x *SetControlStateResponse) Reset() { + *x = SetControlStateResponse{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[796] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83113,13 +85390,13 @@ func (x *DeviceBgpUpdateMessageError_Subcode) Reset() { } } -func (x *DeviceBgpUpdateMessageError_Subcode) String() string { +func (x *SetControlStateResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeviceBgpUpdateMessageError_Subcode) ProtoMessage() {} +func (*SetControlStateResponse) ProtoMessage() {} -func (x *DeviceBgpUpdateMessageError_Subcode) ProtoReflect() protoreflect.Message { +func (x *SetControlStateResponse) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[796] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83131,19 +85408,28 @@ func (x *DeviceBgpUpdateMessageError_Subcode) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use DeviceBgpUpdateMessageError_Subcode.ProtoReflect.Descriptor instead. -func (*DeviceBgpUpdateMessageError_Subcode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{57, 0} +// Deprecated: Use SetControlStateResponse.ProtoReflect.Descriptor instead. +func (*SetControlStateResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{796} } -type DeviceBgpCeaseError_Subcode struct { +func (x *SetControlStateResponse) GetWarning() *Warning { + if x != nil { + return x.Warning + } + return nil +} + +type SetControlActionRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + ControlAction *ControlAction `protobuf:"bytes,1,opt,name=control_action,json=controlAction,proto3" json:"control_action,omitempty"` } -func (x *DeviceBgpCeaseError_Subcode) Reset() { - *x = DeviceBgpCeaseError_Subcode{} +func (x *SetControlActionRequest) Reset() { + *x = SetControlActionRequest{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[797] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83151,13 +85437,13 @@ func (x *DeviceBgpCeaseError_Subcode) Reset() { } } -func (x *DeviceBgpCeaseError_Subcode) String() string { +func (x *SetControlActionRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeviceBgpCeaseError_Subcode) ProtoMessage() {} +func (*SetControlActionRequest) ProtoMessage() {} -func (x *DeviceBgpCeaseError_Subcode) ProtoReflect() protoreflect.Message { +func (x *SetControlActionRequest) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[797] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83169,19 +85455,28 @@ func (x *DeviceBgpCeaseError_Subcode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeviceBgpCeaseError_Subcode.ProtoReflect.Descriptor instead. -func (*DeviceBgpCeaseError_Subcode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{60, 0} +// Deprecated: Use SetControlActionRequest.ProtoReflect.Descriptor instead. +func (*SetControlActionRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{797} } -type BgpV4Peer_AsType struct { +func (x *SetControlActionRequest) GetControlAction() *ControlAction { + if x != nil { + return x.ControlAction + } + return nil +} + +type SetControlActionResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + ControlActionResponse *ControlActionResponse `protobuf:"bytes,1,opt,name=control_action_response,json=controlActionResponse,proto3" json:"control_action_response,omitempty"` } -func (x *BgpV4Peer_AsType) Reset() { - *x = BgpV4Peer_AsType{} +func (x *SetControlActionResponse) Reset() { + *x = SetControlActionResponse{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[798] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83189,13 +85484,13 @@ func (x *BgpV4Peer_AsType) Reset() { } } -func (x *BgpV4Peer_AsType) String() string { +func (x *SetControlActionResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV4Peer_AsType) ProtoMessage() {} +func (*SetControlActionResponse) ProtoMessage() {} -func (x *BgpV4Peer_AsType) ProtoReflect() protoreflect.Message { +func (x *SetControlActionResponse) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[798] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83207,19 +85502,28 @@ func (x *BgpV4Peer_AsType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV4Peer_AsType.ProtoReflect.Descriptor instead. -func (*BgpV4Peer_AsType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{62, 0} +// Deprecated: Use SetControlActionResponse.ProtoReflect.Descriptor instead. +func (*SetControlActionResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{798} } -type BgpV4Peer_AsNumberWidth struct { +func (x *SetControlActionResponse) GetControlActionResponse() *ControlActionResponse { + if x != nil { + return x.ControlActionResponse + } + return nil +} + +type GetMetricsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + MetricsRequest *MetricsRequest `protobuf:"bytes,1,opt,name=metrics_request,json=metricsRequest,proto3" json:"metrics_request,omitempty"` } -func (x *BgpV4Peer_AsNumberWidth) Reset() { - *x = BgpV4Peer_AsNumberWidth{} +func (x *GetMetricsRequest) Reset() { + *x = GetMetricsRequest{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[799] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83227,13 +85531,13 @@ func (x *BgpV4Peer_AsNumberWidth) Reset() { } } -func (x *BgpV4Peer_AsNumberWidth) String() string { +func (x *GetMetricsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV4Peer_AsNumberWidth) ProtoMessage() {} +func (*GetMetricsRequest) ProtoMessage() {} -func (x *BgpV4Peer_AsNumberWidth) ProtoReflect() protoreflect.Message { +func (x *GetMetricsRequest) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[799] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83245,19 +85549,28 @@ func (x *BgpV4Peer_AsNumberWidth) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV4Peer_AsNumberWidth.ProtoReflect.Descriptor instead. -func (*BgpV4Peer_AsNumberWidth) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{62, 1} +// Deprecated: Use GetMetricsRequest.ProtoReflect.Descriptor instead. +func (*GetMetricsRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{799} } -type BgpV4EthernetSegment_ActiveMode struct { +func (x *GetMetricsRequest) GetMetricsRequest() *MetricsRequest { + if x != nil { + return x.MetricsRequest + } + return nil +} + +type GetMetricsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + MetricsResponse *MetricsResponse `protobuf:"bytes,1,opt,name=metrics_response,json=metricsResponse,proto3" json:"metrics_response,omitempty"` } -func (x *BgpV4EthernetSegment_ActiveMode) Reset() { - *x = BgpV4EthernetSegment_ActiveMode{} +func (x *GetMetricsResponse) Reset() { + *x = GetMetricsResponse{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[800] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83265,13 +85578,13 @@ func (x *BgpV4EthernetSegment_ActiveMode) Reset() { } } -func (x *BgpV4EthernetSegment_ActiveMode) String() string { +func (x *GetMetricsResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV4EthernetSegment_ActiveMode) ProtoMessage() {} +func (*GetMetricsResponse) ProtoMessage() {} -func (x *BgpV4EthernetSegment_ActiveMode) ProtoReflect() protoreflect.Message { +func (x *GetMetricsResponse) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[800] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83283,19 +85596,28 @@ func (x *BgpV4EthernetSegment_ActiveMode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV4EthernetSegment_ActiveMode.ProtoReflect.Descriptor instead. -func (*BgpV4EthernetSegment_ActiveMode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{64, 0} +// Deprecated: Use GetMetricsResponse.ProtoReflect.Descriptor instead. +func (*GetMetricsResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{800} } -type BgpRouteAdvanced_Origin struct { +func (x *GetMetricsResponse) GetMetricsResponse() *MetricsResponse { + if x != nil { + return x.MetricsResponse + } + return nil +} + +type GetStatesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + StatesRequest *StatesRequest `protobuf:"bytes,1,opt,name=states_request,json=statesRequest,proto3" json:"states_request,omitempty"` } -func (x *BgpRouteAdvanced_Origin) Reset() { - *x = BgpRouteAdvanced_Origin{} +func (x *GetStatesRequest) Reset() { + *x = GetStatesRequest{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[801] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83303,13 +85625,13 @@ func (x *BgpRouteAdvanced_Origin) Reset() { } } -func (x *BgpRouteAdvanced_Origin) String() string { +func (x *GetStatesRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpRouteAdvanced_Origin) ProtoMessage() {} +func (*GetStatesRequest) ProtoMessage() {} -func (x *BgpRouteAdvanced_Origin) ProtoReflect() protoreflect.Message { +func (x *GetStatesRequest) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[801] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83321,19 +85643,28 @@ func (x *BgpRouteAdvanced_Origin) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpRouteAdvanced_Origin.ProtoReflect.Descriptor instead. -func (*BgpRouteAdvanced_Origin) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{66, 0} +// Deprecated: Use GetStatesRequest.ProtoReflect.Descriptor instead. +func (*GetStatesRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{801} } -type BgpCommunity_Type struct { +func (x *GetStatesRequest) GetStatesRequest() *StatesRequest { + if x != nil { + return x.StatesRequest + } + return nil +} + +type GetStatesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + StatesResponse *StatesResponse `protobuf:"bytes,1,opt,name=states_response,json=statesResponse,proto3" json:"states_response,omitempty"` } -func (x *BgpCommunity_Type) Reset() { - *x = BgpCommunity_Type{} +func (x *GetStatesResponse) Reset() { + *x = GetStatesResponse{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[802] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83341,13 +85672,13 @@ func (x *BgpCommunity_Type) Reset() { } } -func (x *BgpCommunity_Type) String() string { +func (x *GetStatesResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpCommunity_Type) ProtoMessage() {} +func (*GetStatesResponse) ProtoMessage() {} -func (x *BgpCommunity_Type) ProtoReflect() protoreflect.Message { +func (x *GetStatesResponse) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[802] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83359,19 +85690,28 @@ func (x *BgpCommunity_Type) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpCommunity_Type.ProtoReflect.Descriptor instead. -func (*BgpCommunity_Type) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{67, 0} +// Deprecated: Use GetStatesResponse.ProtoReflect.Descriptor instead. +func (*GetStatesResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{802} } -type BgpExtCommunity_Type struct { +func (x *GetStatesResponse) GetStatesResponse() *StatesResponse { + if x != nil { + return x.StatesResponse + } + return nil +} + +type GetCaptureRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + CaptureRequest *CaptureRequest `protobuf:"bytes,1,opt,name=capture_request,json=captureRequest,proto3" json:"capture_request,omitempty"` } -func (x *BgpExtCommunity_Type) Reset() { - *x = BgpExtCommunity_Type{} +func (x *GetCaptureRequest) Reset() { + *x = GetCaptureRequest{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[803] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83379,13 +85719,13 @@ func (x *BgpExtCommunity_Type) Reset() { } } -func (x *BgpExtCommunity_Type) String() string { +func (x *GetCaptureRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpExtCommunity_Type) ProtoMessage() {} +func (*GetCaptureRequest) ProtoMessage() {} -func (x *BgpExtCommunity_Type) ProtoReflect() protoreflect.Message { +func (x *GetCaptureRequest) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[803] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83397,19 +85737,28 @@ func (x *BgpExtCommunity_Type) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpExtCommunity_Type.ProtoReflect.Descriptor instead. -func (*BgpExtCommunity_Type) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{68, 0} +// Deprecated: Use GetCaptureRequest.ProtoReflect.Descriptor instead. +func (*GetCaptureRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{803} } -type BgpExtCommunity_Subtype struct { +func (x *GetCaptureRequest) GetCaptureRequest() *CaptureRequest { + if x != nil { + return x.CaptureRequest + } + return nil +} + +type GetCaptureResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + ResponseBytes []byte `protobuf:"bytes,1,opt,name=response_bytes,json=responseBytes,proto3" json:"response_bytes,omitempty"` } -func (x *BgpExtCommunity_Subtype) Reset() { - *x = BgpExtCommunity_Subtype{} +func (x *GetCaptureResponse) Reset() { + *x = GetCaptureResponse{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[804] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83417,13 +85766,13 @@ func (x *BgpExtCommunity_Subtype) Reset() { } } -func (x *BgpExtCommunity_Subtype) String() string { +func (x *GetCaptureResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpExtCommunity_Subtype) ProtoMessage() {} +func (*GetCaptureResponse) ProtoMessage() {} -func (x *BgpExtCommunity_Subtype) ProtoReflect() protoreflect.Message { +func (x *GetCaptureResponse) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[804] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83435,19 +85784,28 @@ func (x *BgpExtCommunity_Subtype) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpExtCommunity_Subtype.ProtoReflect.Descriptor instead. -func (*BgpExtCommunity_Subtype) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{68, 1} +// Deprecated: Use GetCaptureResponse.ProtoReflect.Descriptor instead. +func (*GetCaptureResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{804} } -type BgpAsPath_AsSetMode struct { +func (x *GetCaptureResponse) GetResponseBytes() []byte { + if x != nil { + return x.ResponseBytes + } + return nil +} + +type GetVersionResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Version *Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` } -func (x *BgpAsPath_AsSetMode) Reset() { - *x = BgpAsPath_AsSetMode{} +func (x *GetVersionResponse) Reset() { + *x = GetVersionResponse{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[805] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83455,13 +85813,13 @@ func (x *BgpAsPath_AsSetMode) Reset() { } } -func (x *BgpAsPath_AsSetMode) String() string { +func (x *GetVersionResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAsPath_AsSetMode) ProtoMessage() {} +func (*GetVersionResponse) ProtoMessage() {} -func (x *BgpAsPath_AsSetMode) ProtoReflect() protoreflect.Message { +func (x *GetVersionResponse) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[805] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83473,19 +85831,26 @@ func (x *BgpAsPath_AsSetMode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpAsPath_AsSetMode.ProtoReflect.Descriptor instead. -func (*BgpAsPath_AsSetMode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{69, 0} +// Deprecated: Use GetVersionResponse.ProtoReflect.Descriptor instead. +func (*GetVersionResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{805} } -type BgpAsPathSegment_Type struct { +func (x *GetVersionResponse) GetVersion() *Version { + if x != nil { + return x.Version + } + return nil +} + +type LagProtocol_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpAsPathSegment_Type) Reset() { - *x = BgpAsPathSegment_Type{} +func (x *LagProtocol_Choice) Reset() { + *x = LagProtocol_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[806] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83493,13 +85858,13 @@ func (x *BgpAsPathSegment_Type) Reset() { } } -func (x *BgpAsPathSegment_Type) String() string { +func (x *LagProtocol_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAsPathSegment_Type) ProtoMessage() {} +func (*LagProtocol_Choice) ProtoMessage() {} -func (x *BgpAsPathSegment_Type) ProtoReflect() protoreflect.Message { +func (x *LagProtocol_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[806] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83511,19 +85876,19 @@ func (x *BgpAsPathSegment_Type) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpAsPathSegment_Type.ProtoReflect.Descriptor instead. -func (*BgpAsPathSegment_Type) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{70, 0} +// Deprecated: Use LagProtocol_Choice.ProtoReflect.Descriptor instead. +func (*LagProtocol_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{6, 0} } -type BgpV4EvpnEvis_Choice struct { +type LagPortLacp_ActorActivity struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpV4EvpnEvis_Choice) Reset() { - *x = BgpV4EvpnEvis_Choice{} +func (x *LagPortLacp_ActorActivity) Reset() { + *x = LagPortLacp_ActorActivity{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[807] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83531,13 +85896,13 @@ func (x *BgpV4EvpnEvis_Choice) Reset() { } } -func (x *BgpV4EvpnEvis_Choice) String() string { +func (x *LagPortLacp_ActorActivity) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV4EvpnEvis_Choice) ProtoMessage() {} +func (*LagPortLacp_ActorActivity) ProtoMessage() {} -func (x *BgpV4EvpnEvis_Choice) ProtoReflect() protoreflect.Message { +func (x *LagPortLacp_ActorActivity) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[807] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83549,19 +85914,19 @@ func (x *BgpV4EvpnEvis_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV4EvpnEvis_Choice.ProtoReflect.Descriptor instead. -func (*BgpV4EvpnEvis_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{71, 0} +// Deprecated: Use LagPortLacp_ActorActivity.ProtoReflect.Descriptor instead. +func (*LagPortLacp_ActorActivity) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{9, 0} } -type BgpV4EviVxlan_ReplicationType struct { +type EthernetConnection_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpV4EviVxlan_ReplicationType) Reset() { - *x = BgpV4EviVxlan_ReplicationType{} +func (x *EthernetConnection_Choice) Reset() { + *x = EthernetConnection_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[808] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83569,13 +85934,13 @@ func (x *BgpV4EviVxlan_ReplicationType) Reset() { } } -func (x *BgpV4EviVxlan_ReplicationType) String() string { +func (x *EthernetConnection_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV4EviVxlan_ReplicationType) ProtoMessage() {} +func (*EthernetConnection_Choice) ProtoMessage() {} -func (x *BgpV4EviVxlan_ReplicationType) ProtoReflect() protoreflect.Message { +func (x *EthernetConnection_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[808] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83587,19 +85952,19 @@ func (x *BgpV4EviVxlan_ReplicationType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV4EviVxlan_ReplicationType.ProtoReflect.Descriptor instead. -func (*BgpV4EviVxlan_ReplicationType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{72, 0} +// Deprecated: Use EthernetConnection_Choice.ProtoReflect.Descriptor instead. +func (*EthernetConnection_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{12, 0} } -type BgpRouteDistinguisher_RdType struct { +type DeviceVlan_Tpid struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpRouteDistinguisher_RdType) Reset() { - *x = BgpRouteDistinguisher_RdType{} +func (x *DeviceVlan_Tpid) Reset() { + *x = DeviceVlan_Tpid{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[809] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83607,13 +85972,13 @@ func (x *BgpRouteDistinguisher_RdType) Reset() { } } -func (x *BgpRouteDistinguisher_RdType) String() string { +func (x *DeviceVlan_Tpid) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpRouteDistinguisher_RdType) ProtoMessage() {} +func (*DeviceVlan_Tpid) ProtoMessage() {} -func (x *BgpRouteDistinguisher_RdType) ProtoReflect() protoreflect.Message { +func (x *DeviceVlan_Tpid) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[809] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83625,19 +85990,19 @@ func (x *BgpRouteDistinguisher_RdType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpRouteDistinguisher_RdType.ProtoReflect.Descriptor instead. -func (*BgpRouteDistinguisher_RdType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{75, 0} +// Deprecated: Use DeviceVlan_Tpid.ProtoReflect.Descriptor instead. +func (*DeviceVlan_Tpid) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{13, 0} } -type BgpRouteTarget_RtType struct { +type DeviceIpv4GatewayMAC_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpRouteTarget_RtType) Reset() { - *x = BgpRouteTarget_RtType{} +func (x *DeviceIpv4GatewayMAC_Choice) Reset() { + *x = DeviceIpv4GatewayMAC_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[810] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83645,13 +86010,13 @@ func (x *BgpRouteTarget_RtType) Reset() { } } -func (x *BgpRouteTarget_RtType) String() string { +func (x *DeviceIpv4GatewayMAC_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpRouteTarget_RtType) ProtoMessage() {} +func (*DeviceIpv4GatewayMAC_Choice) ProtoMessage() {} -func (x *BgpRouteTarget_RtType) ProtoReflect() protoreflect.Message { +func (x *DeviceIpv4GatewayMAC_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[810] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83663,19 +86028,19 @@ func (x *BgpRouteTarget_RtType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpRouteTarget_RtType.ProtoReflect.Descriptor instead. -func (*BgpRouteTarget_RtType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{76, 0} +// Deprecated: Use DeviceIpv4GatewayMAC_Choice.ProtoReflect.Descriptor instead. +func (*DeviceIpv4GatewayMAC_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{16, 0} } -type BgpV4RouteRange_NextHopMode struct { +type DeviceIpv6GatewayMAC_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpV4RouteRange_NextHopMode) Reset() { - *x = BgpV4RouteRange_NextHopMode{} +func (x *DeviceIpv6GatewayMAC_Choice) Reset() { + *x = DeviceIpv6GatewayMAC_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[811] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83683,13 +86048,13 @@ func (x *BgpV4RouteRange_NextHopMode) Reset() { } } -func (x *BgpV4RouteRange_NextHopMode) String() string { +func (x *DeviceIpv6GatewayMAC_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV4RouteRange_NextHopMode) ProtoMessage() {} +func (*DeviceIpv6GatewayMAC_Choice) ProtoMessage() {} -func (x *BgpV4RouteRange_NextHopMode) ProtoReflect() protoreflect.Message { +func (x *DeviceIpv6GatewayMAC_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[811] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83701,19 +86066,19 @@ func (x *BgpV4RouteRange_NextHopMode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV4RouteRange_NextHopMode.ProtoReflect.Descriptor instead. -func (*BgpV4RouteRange_NextHopMode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{80, 0} +// Deprecated: Use DeviceIpv6GatewayMAC_Choice.ProtoReflect.Descriptor instead. +func (*DeviceIpv6GatewayMAC_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{19, 0} } -type BgpV4RouteRange_NextHopAddressType struct { +type Layer1_Speed struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpV4RouteRange_NextHopAddressType) Reset() { - *x = BgpV4RouteRange_NextHopAddressType{} +func (x *Layer1_Speed) Reset() { + *x = Layer1_Speed{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[812] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83721,13 +86086,13 @@ func (x *BgpV4RouteRange_NextHopAddressType) Reset() { } } -func (x *BgpV4RouteRange_NextHopAddressType) String() string { +func (x *Layer1_Speed) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV4RouteRange_NextHopAddressType) ProtoMessage() {} +func (*Layer1_Speed) ProtoMessage() {} -func (x *BgpV4RouteRange_NextHopAddressType) ProtoReflect() protoreflect.Message { +func (x *Layer1_Speed) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[812] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83739,19 +86104,19 @@ func (x *BgpV4RouteRange_NextHopAddressType) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use BgpV4RouteRange_NextHopAddressType.ProtoReflect.Descriptor instead. -func (*BgpV4RouteRange_NextHopAddressType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{80, 1} +// Deprecated: Use Layer1_Speed.ProtoReflect.Descriptor instead. +func (*Layer1_Speed) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{20, 0} } -type BgpExtendedCommunity_Choice struct { +type Layer1_Media struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpExtendedCommunity_Choice) Reset() { - *x = BgpExtendedCommunity_Choice{} +func (x *Layer1_Media) Reset() { + *x = Layer1_Media{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[813] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83759,13 +86124,13 @@ func (x *BgpExtendedCommunity_Choice) Reset() { } } -func (x *BgpExtendedCommunity_Choice) String() string { +func (x *Layer1_Media) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpExtendedCommunity_Choice) ProtoMessage() {} +func (*Layer1_Media) ProtoMessage() {} -func (x *BgpExtendedCommunity_Choice) ProtoReflect() protoreflect.Message { +func (x *Layer1_Media) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[813] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83777,19 +86142,19 @@ func (x *BgpExtendedCommunity_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpExtendedCommunity_Choice.ProtoReflect.Descriptor instead. -func (*BgpExtendedCommunity_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{82, 0} +// Deprecated: Use Layer1_Media.ProtoReflect.Descriptor instead. +func (*Layer1_Media) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{20, 1} } -type BgpExtendedCommunityTransitive2OctetAsType_Choice struct { +type Layer1FlowControl_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpExtendedCommunityTransitive2OctetAsType_Choice) Reset() { - *x = BgpExtendedCommunityTransitive2OctetAsType_Choice{} +func (x *Layer1FlowControl_Choice) Reset() { + *x = Layer1FlowControl_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[814] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83797,13 +86162,13 @@ func (x *BgpExtendedCommunityTransitive2OctetAsType_Choice) Reset() { } } -func (x *BgpExtendedCommunityTransitive2OctetAsType_Choice) String() string { +func (x *Layer1FlowControl_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpExtendedCommunityTransitive2OctetAsType_Choice) ProtoMessage() {} +func (*Layer1FlowControl_Choice) ProtoMessage() {} -func (x *BgpExtendedCommunityTransitive2OctetAsType_Choice) ProtoReflect() protoreflect.Message { +func (x *Layer1FlowControl_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[814] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83815,19 +86180,19 @@ func (x *BgpExtendedCommunityTransitive2OctetAsType_Choice) ProtoReflect() proto return mi.MessageOf(x) } -// Deprecated: Use BgpExtendedCommunityTransitive2OctetAsType_Choice.ProtoReflect.Descriptor instead. -func (*BgpExtendedCommunityTransitive2OctetAsType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{85, 0} +// Deprecated: Use Layer1FlowControl_Choice.ProtoReflect.Descriptor instead. +func (*Layer1FlowControl_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{22, 0} } -type BgpExtendedCommunityTransitiveIpv4AddressType_Choice struct { +type Capture_Format struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpExtendedCommunityTransitiveIpv4AddressType_Choice) Reset() { - *x = BgpExtendedCommunityTransitiveIpv4AddressType_Choice{} +func (x *Capture_Format) Reset() { + *x = Capture_Format{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[815] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83835,13 +86200,13 @@ func (x *BgpExtendedCommunityTransitiveIpv4AddressType_Choice) Reset() { } } -func (x *BgpExtendedCommunityTransitiveIpv4AddressType_Choice) String() string { +func (x *Capture_Format) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpExtendedCommunityTransitiveIpv4AddressType_Choice) ProtoMessage() {} +func (*Capture_Format) ProtoMessage() {} -func (x *BgpExtendedCommunityTransitiveIpv4AddressType_Choice) ProtoReflect() protoreflect.Message { +func (x *Capture_Format) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[815] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83853,19 +86218,19 @@ func (x *BgpExtendedCommunityTransitiveIpv4AddressType_Choice) ProtoReflect() pr return mi.MessageOf(x) } -// Deprecated: Use BgpExtendedCommunityTransitiveIpv4AddressType_Choice.ProtoReflect.Descriptor instead. -func (*BgpExtendedCommunityTransitiveIpv4AddressType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{88, 0} +// Deprecated: Use Capture_Format.ProtoReflect.Descriptor instead. +func (*Capture_Format) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{25, 0} } -type BgpExtendedCommunityTransitive4OctetAsType_Choice struct { +type CaptureFilter_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpExtendedCommunityTransitive4OctetAsType_Choice) Reset() { - *x = BgpExtendedCommunityTransitive4OctetAsType_Choice{} +func (x *CaptureFilter_Choice) Reset() { + *x = CaptureFilter_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[816] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83873,13 +86238,13 @@ func (x *BgpExtendedCommunityTransitive4OctetAsType_Choice) Reset() { } } -func (x *BgpExtendedCommunityTransitive4OctetAsType_Choice) String() string { +func (x *CaptureFilter_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpExtendedCommunityTransitive4OctetAsType_Choice) ProtoMessage() {} +func (*CaptureFilter_Choice) ProtoMessage() {} -func (x *BgpExtendedCommunityTransitive4OctetAsType_Choice) ProtoReflect() protoreflect.Message { +func (x *CaptureFilter_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[816] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83891,19 +86256,19 @@ func (x *BgpExtendedCommunityTransitive4OctetAsType_Choice) ProtoReflect() proto return mi.MessageOf(x) } -// Deprecated: Use BgpExtendedCommunityTransitive4OctetAsType_Choice.ProtoReflect.Descriptor instead. -func (*BgpExtendedCommunityTransitive4OctetAsType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{91, 0} +// Deprecated: Use CaptureFilter_Choice.ProtoReflect.Descriptor instead. +func (*CaptureFilter_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{26, 0} } -type BgpExtendedCommunityTransitiveOpaqueType_Choice struct { +type IsisInterface_NetworkType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpExtendedCommunityTransitiveOpaqueType_Choice) Reset() { - *x = BgpExtendedCommunityTransitiveOpaqueType_Choice{} +func (x *IsisInterface_NetworkType) Reset() { + *x = IsisInterface_NetworkType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[817] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83911,13 +86276,13 @@ func (x *BgpExtendedCommunityTransitiveOpaqueType_Choice) Reset() { } } -func (x *BgpExtendedCommunityTransitiveOpaqueType_Choice) String() string { +func (x *IsisInterface_NetworkType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpExtendedCommunityTransitiveOpaqueType_Choice) ProtoMessage() {} +func (*IsisInterface_NetworkType) ProtoMessage() {} -func (x *BgpExtendedCommunityTransitiveOpaqueType_Choice) ProtoReflect() protoreflect.Message { +func (x *IsisInterface_NetworkType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[817] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83929,19 +86294,19 @@ func (x *BgpExtendedCommunityTransitiveOpaqueType_Choice) ProtoReflect() protore return mi.MessageOf(x) } -// Deprecated: Use BgpExtendedCommunityTransitiveOpaqueType_Choice.ProtoReflect.Descriptor instead. -func (*BgpExtendedCommunityTransitiveOpaqueType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{94, 0} +// Deprecated: Use IsisInterface_NetworkType.ProtoReflect.Descriptor instead. +func (*IsisInterface_NetworkType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{37, 0} } -type BgpExtendedCommunityTransitiveEvpnType_Choice struct { +type IsisInterface_LevelType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpExtendedCommunityTransitiveEvpnType_Choice) Reset() { - *x = BgpExtendedCommunityTransitiveEvpnType_Choice{} +func (x *IsisInterface_LevelType) Reset() { + *x = IsisInterface_LevelType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[818] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83949,13 +86314,13 @@ func (x *BgpExtendedCommunityTransitiveEvpnType_Choice) Reset() { } } -func (x *BgpExtendedCommunityTransitiveEvpnType_Choice) String() string { +func (x *IsisInterface_LevelType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpExtendedCommunityTransitiveEvpnType_Choice) ProtoMessage() {} +func (*IsisInterface_LevelType) ProtoMessage() {} -func (x *BgpExtendedCommunityTransitiveEvpnType_Choice) ProtoReflect() protoreflect.Message { +func (x *IsisInterface_LevelType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[818] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83967,19 +86332,19 @@ func (x *BgpExtendedCommunityTransitiveEvpnType_Choice) ProtoReflect() protorefl return mi.MessageOf(x) } -// Deprecated: Use BgpExtendedCommunityTransitiveEvpnType_Choice.ProtoReflect.Descriptor instead. -func (*BgpExtendedCommunityTransitiveEvpnType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{96, 0} +// Deprecated: Use IsisInterface_LevelType.ProtoReflect.Descriptor instead. +func (*IsisInterface_LevelType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{37, 1} } -type BgpExtendedCommunityNonTransitive2OctetAsType_Choice struct { +type IsisInterfaceAuthentication_AuthType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpExtendedCommunityNonTransitive2OctetAsType_Choice) Reset() { - *x = BgpExtendedCommunityNonTransitive2OctetAsType_Choice{} +func (x *IsisInterfaceAuthentication_AuthType) Reset() { + *x = IsisInterfaceAuthentication_AuthType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[819] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -83987,13 +86352,13 @@ func (x *BgpExtendedCommunityNonTransitive2OctetAsType_Choice) Reset() { } } -func (x *BgpExtendedCommunityNonTransitive2OctetAsType_Choice) String() string { +func (x *IsisInterfaceAuthentication_AuthType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpExtendedCommunityNonTransitive2OctetAsType_Choice) ProtoMessage() {} +func (*IsisInterfaceAuthentication_AuthType) ProtoMessage() {} -func (x *BgpExtendedCommunityNonTransitive2OctetAsType_Choice) ProtoReflect() protoreflect.Message { +func (x *IsisInterfaceAuthentication_AuthType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[819] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84005,19 +86370,19 @@ func (x *BgpExtendedCommunityNonTransitive2OctetAsType_Choice) ProtoReflect() pr return mi.MessageOf(x) } -// Deprecated: Use BgpExtendedCommunityNonTransitive2OctetAsType_Choice.ProtoReflect.Descriptor instead. -func (*BgpExtendedCommunityNonTransitive2OctetAsType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{98, 0} +// Deprecated: Use IsisInterfaceAuthentication_AuthType.ProtoReflect.Descriptor instead. +func (*IsisInterfaceAuthentication_AuthType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{42, 0} } -type BgpV6RouteRange_NextHopMode struct { +type IsisAuthenticationBase_AuthType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpV6RouteRange_NextHopMode) Reset() { - *x = BgpV6RouteRange_NextHopMode{} +func (x *IsisAuthenticationBase_AuthType) Reset() { + *x = IsisAuthenticationBase_AuthType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[820] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84025,13 +86390,13 @@ func (x *BgpV6RouteRange_NextHopMode) Reset() { } } -func (x *BgpV6RouteRange_NextHopMode) String() string { +func (x *IsisAuthenticationBase_AuthType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6RouteRange_NextHopMode) ProtoMessage() {} +func (*IsisAuthenticationBase_AuthType) ProtoMessage() {} -func (x *BgpV6RouteRange_NextHopMode) ProtoReflect() protoreflect.Message { +func (x *IsisAuthenticationBase_AuthType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[820] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84043,19 +86408,19 @@ func (x *BgpV6RouteRange_NextHopMode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6RouteRange_NextHopMode.ProtoReflect.Descriptor instead. -func (*BgpV6RouteRange_NextHopMode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{100, 0} +// Deprecated: Use IsisAuthenticationBase_AuthType.ProtoReflect.Descriptor instead. +func (*IsisAuthenticationBase_AuthType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{48, 0} } -type BgpV6RouteRange_NextHopAddressType struct { +type IsisV4RouteRange_OriginType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpV6RouteRange_NextHopAddressType) Reset() { - *x = BgpV6RouteRange_NextHopAddressType{} +func (x *IsisV4RouteRange_OriginType) Reset() { + *x = IsisV4RouteRange_OriginType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[821] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84063,13 +86428,13 @@ func (x *BgpV6RouteRange_NextHopAddressType) Reset() { } } -func (x *BgpV6RouteRange_NextHopAddressType) String() string { +func (x *IsisV4RouteRange_OriginType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6RouteRange_NextHopAddressType) ProtoMessage() {} +func (*IsisV4RouteRange_OriginType) ProtoMessage() {} -func (x *BgpV6RouteRange_NextHopAddressType) ProtoReflect() protoreflect.Message { +func (x *IsisV4RouteRange_OriginType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[821] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84081,19 +86446,19 @@ func (x *BgpV6RouteRange_NextHopAddressType) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use BgpV6RouteRange_NextHopAddressType.ProtoReflect.Descriptor instead. -func (*BgpV6RouteRange_NextHopAddressType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{100, 1} +// Deprecated: Use IsisV4RouteRange_OriginType.ProtoReflect.Descriptor instead. +func (*IsisV4RouteRange_OriginType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{49, 0} } -type BgpSrteV4Policy_NextHopMode struct { +type IsisV4RouteRange_RedistributionType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpSrteV4Policy_NextHopMode) Reset() { - *x = BgpSrteV4Policy_NextHopMode{} +func (x *IsisV4RouteRange_RedistributionType) Reset() { + *x = IsisV4RouteRange_RedistributionType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[822] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84101,13 +86466,13 @@ func (x *BgpSrteV4Policy_NextHopMode) Reset() { } } -func (x *BgpSrteV4Policy_NextHopMode) String() string { +func (x *IsisV4RouteRange_RedistributionType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteV4Policy_NextHopMode) ProtoMessage() {} +func (*IsisV4RouteRange_RedistributionType) ProtoMessage() {} -func (x *BgpSrteV4Policy_NextHopMode) ProtoReflect() protoreflect.Message { +func (x *IsisV4RouteRange_RedistributionType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[822] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84119,19 +86484,19 @@ func (x *BgpSrteV4Policy_NextHopMode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteV4Policy_NextHopMode.ProtoReflect.Descriptor instead. -func (*BgpSrteV4Policy_NextHopMode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{101, 0} +// Deprecated: Use IsisV4RouteRange_RedistributionType.ProtoReflect.Descriptor instead. +func (*IsisV4RouteRange_RedistributionType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{49, 1} } -type BgpSrteV4Policy_NextHopAddressType struct { +type IsisV6RouteRange_OriginType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpSrteV4Policy_NextHopAddressType) Reset() { - *x = BgpSrteV4Policy_NextHopAddressType{} +func (x *IsisV6RouteRange_OriginType) Reset() { + *x = IsisV6RouteRange_OriginType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[823] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84139,13 +86504,13 @@ func (x *BgpSrteV4Policy_NextHopAddressType) Reset() { } } -func (x *BgpSrteV4Policy_NextHopAddressType) String() string { +func (x *IsisV6RouteRange_OriginType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteV4Policy_NextHopAddressType) ProtoMessage() {} +func (*IsisV6RouteRange_OriginType) ProtoMessage() {} -func (x *BgpSrteV4Policy_NextHopAddressType) ProtoReflect() protoreflect.Message { +func (x *IsisV6RouteRange_OriginType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[823] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84157,19 +86522,19 @@ func (x *BgpSrteV4Policy_NextHopAddressType) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use BgpSrteV4Policy_NextHopAddressType.ProtoReflect.Descriptor instead. -func (*BgpSrteV4Policy_NextHopAddressType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{101, 1} +// Deprecated: Use IsisV6RouteRange_OriginType.ProtoReflect.Descriptor instead. +func (*IsisV6RouteRange_OriginType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{53, 0} } -type BgpSrteRemoteEndpointSubTlv_AddressFamily struct { +type IsisV6RouteRange_RedistributionType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpSrteRemoteEndpointSubTlv_AddressFamily) Reset() { - *x = BgpSrteRemoteEndpointSubTlv_AddressFamily{} +func (x *IsisV6RouteRange_RedistributionType) Reset() { + *x = IsisV6RouteRange_RedistributionType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[824] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84177,13 +86542,13 @@ func (x *BgpSrteRemoteEndpointSubTlv_AddressFamily) Reset() { } } -func (x *BgpSrteRemoteEndpointSubTlv_AddressFamily) String() string { +func (x *IsisV6RouteRange_RedistributionType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteRemoteEndpointSubTlv_AddressFamily) ProtoMessage() {} +func (*IsisV6RouteRange_RedistributionType) ProtoMessage() {} -func (x *BgpSrteRemoteEndpointSubTlv_AddressFamily) ProtoReflect() protoreflect.Message { +func (x *IsisV6RouteRange_RedistributionType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[824] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84195,19 +86560,19 @@ func (x *BgpSrteRemoteEndpointSubTlv_AddressFamily) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use BgpSrteRemoteEndpointSubTlv_AddressFamily.ProtoReflect.Descriptor instead. -func (*BgpSrteRemoteEndpointSubTlv_AddressFamily) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{103, 0} +// Deprecated: Use IsisV6RouteRange_RedistributionType.ProtoReflect.Descriptor instead. +func (*IsisV6RouteRange_RedistributionType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{53, 1} } -type BgpSrteBindingSubTlv_BindingSidType struct { +type DeviceBgpMessageHeaderError_Subcode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpSrteBindingSubTlv_BindingSidType) Reset() { - *x = BgpSrteBindingSubTlv_BindingSidType{} +func (x *DeviceBgpMessageHeaderError_Subcode) Reset() { + *x = DeviceBgpMessageHeaderError_Subcode{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[825] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84215,13 +86580,13 @@ func (x *BgpSrteBindingSubTlv_BindingSidType) Reset() { } } -func (x *BgpSrteBindingSubTlv_BindingSidType) String() string { +func (x *DeviceBgpMessageHeaderError_Subcode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteBindingSubTlv_BindingSidType) ProtoMessage() {} +func (*DeviceBgpMessageHeaderError_Subcode) ProtoMessage() {} -func (x *BgpSrteBindingSubTlv_BindingSidType) ProtoReflect() protoreflect.Message { +func (x *DeviceBgpMessageHeaderError_Subcode) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[825] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84233,19 +86598,19 @@ func (x *BgpSrteBindingSubTlv_BindingSidType) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use BgpSrteBindingSubTlv_BindingSidType.ProtoReflect.Descriptor instead. -func (*BgpSrteBindingSubTlv_BindingSidType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{105, 0} +// Deprecated: Use DeviceBgpMessageHeaderError_Subcode.ProtoReflect.Descriptor instead. +func (*DeviceBgpMessageHeaderError_Subcode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{55, 0} } -type BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy struct { +type DeviceBgpOpenMessageError_Subcode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) Reset() { - *x = BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy{} +func (x *DeviceBgpOpenMessageError_Subcode) Reset() { + *x = DeviceBgpOpenMessageError_Subcode{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[826] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84253,13 +86618,13 @@ func (x *BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) Reset() { } } -func (x *BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) String() string { +func (x *DeviceBgpOpenMessageError_Subcode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) ProtoMessage() {} +func (*DeviceBgpOpenMessageError_Subcode) ProtoMessage() {} -func (x *BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) ProtoReflect() protoreflect.Message { +func (x *DeviceBgpOpenMessageError_Subcode) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[826] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84271,19 +86636,19 @@ func (x *BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) ProtoRefl return mi.MessageOf(x) } -// Deprecated: Use BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy.ProtoReflect.Descriptor instead. -func (*BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{109, 0} +// Deprecated: Use DeviceBgpOpenMessageError_Subcode.ProtoReflect.Descriptor instead. +func (*DeviceBgpOpenMessageError_Subcode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{56, 0} } -type BgpSrteSegment_SegmentType struct { +type DeviceBgpUpdateMessageError_Subcode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpSrteSegment_SegmentType) Reset() { - *x = BgpSrteSegment_SegmentType{} +func (x *DeviceBgpUpdateMessageError_Subcode) Reset() { + *x = DeviceBgpUpdateMessageError_Subcode{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[827] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84291,13 +86656,13 @@ func (x *BgpSrteSegment_SegmentType) Reset() { } } -func (x *BgpSrteSegment_SegmentType) String() string { +func (x *DeviceBgpUpdateMessageError_Subcode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSegment_SegmentType) ProtoMessage() {} +func (*DeviceBgpUpdateMessageError_Subcode) ProtoMessage() {} -func (x *BgpSrteSegment_SegmentType) ProtoReflect() protoreflect.Message { +func (x *DeviceBgpUpdateMessageError_Subcode) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[827] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84309,19 +86674,19 @@ func (x *BgpSrteSegment_SegmentType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSegment_SegmentType.ProtoReflect.Descriptor instead. -func (*BgpSrteSegment_SegmentType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{111, 0} +// Deprecated: Use DeviceBgpUpdateMessageError_Subcode.ProtoReflect.Descriptor instead. +func (*DeviceBgpUpdateMessageError_Subcode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{57, 0} } -type BgpSrteV6Policy_NextHopMode struct { +type DeviceBgpCeaseError_Subcode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpSrteV6Policy_NextHopMode) Reset() { - *x = BgpSrteV6Policy_NextHopMode{} +func (x *DeviceBgpCeaseError_Subcode) Reset() { + *x = DeviceBgpCeaseError_Subcode{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[828] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84329,13 +86694,13 @@ func (x *BgpSrteV6Policy_NextHopMode) Reset() { } } -func (x *BgpSrteV6Policy_NextHopMode) String() string { +func (x *DeviceBgpCeaseError_Subcode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteV6Policy_NextHopMode) ProtoMessage() {} +func (*DeviceBgpCeaseError_Subcode) ProtoMessage() {} -func (x *BgpSrteV6Policy_NextHopMode) ProtoReflect() protoreflect.Message { +func (x *DeviceBgpCeaseError_Subcode) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[828] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84347,19 +86712,19 @@ func (x *BgpSrteV6Policy_NextHopMode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteV6Policy_NextHopMode.ProtoReflect.Descriptor instead. -func (*BgpSrteV6Policy_NextHopMode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{125, 0} +// Deprecated: Use DeviceBgpCeaseError_Subcode.ProtoReflect.Descriptor instead. +func (*DeviceBgpCeaseError_Subcode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{60, 0} } -type BgpSrteV6Policy_NextHopAddressType struct { +type BgpV4Peer_AsType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpSrteV6Policy_NextHopAddressType) Reset() { - *x = BgpSrteV6Policy_NextHopAddressType{} +func (x *BgpV4Peer_AsType) Reset() { + *x = BgpV4Peer_AsType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[829] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84367,13 +86732,13 @@ func (x *BgpSrteV6Policy_NextHopAddressType) Reset() { } } -func (x *BgpSrteV6Policy_NextHopAddressType) String() string { +func (x *BgpV4Peer_AsType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteV6Policy_NextHopAddressType) ProtoMessage() {} +func (*BgpV4Peer_AsType) ProtoMessage() {} -func (x *BgpSrteV6Policy_NextHopAddressType) ProtoReflect() protoreflect.Message { +func (x *BgpV4Peer_AsType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[829] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84385,19 +86750,19 @@ func (x *BgpSrteV6Policy_NextHopAddressType) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use BgpSrteV6Policy_NextHopAddressType.ProtoReflect.Descriptor instead. -func (*BgpSrteV6Policy_NextHopAddressType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{125, 1} +// Deprecated: Use BgpV4Peer_AsType.ProtoReflect.Descriptor instead. +func (*BgpV4Peer_AsType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{62, 0} } -type BgpV6Peer_AsType struct { +type BgpV4Peer_AsNumberWidth struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpV6Peer_AsType) Reset() { - *x = BgpV6Peer_AsType{} +func (x *BgpV4Peer_AsNumberWidth) Reset() { + *x = BgpV4Peer_AsNumberWidth{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[830] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84405,13 +86770,13 @@ func (x *BgpV6Peer_AsType) Reset() { } } -func (x *BgpV6Peer_AsType) String() string { +func (x *BgpV4Peer_AsNumberWidth) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6Peer_AsType) ProtoMessage() {} +func (*BgpV4Peer_AsNumberWidth) ProtoMessage() {} -func (x *BgpV6Peer_AsType) ProtoReflect() protoreflect.Message { +func (x *BgpV4Peer_AsNumberWidth) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[830] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84423,19 +86788,19 @@ func (x *BgpV6Peer_AsType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6Peer_AsType.ProtoReflect.Descriptor instead. -func (*BgpV6Peer_AsType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{128, 0} +// Deprecated: Use BgpV4Peer_AsNumberWidth.ProtoReflect.Descriptor instead. +func (*BgpV4Peer_AsNumberWidth) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{62, 1} } -type BgpV6Peer_AsNumberWidth struct { +type BgpV4EthernetSegment_ActiveMode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpV6Peer_AsNumberWidth) Reset() { - *x = BgpV6Peer_AsNumberWidth{} +func (x *BgpV4EthernetSegment_ActiveMode) Reset() { + *x = BgpV4EthernetSegment_ActiveMode{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[831] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84443,13 +86808,13 @@ func (x *BgpV6Peer_AsNumberWidth) Reset() { } } -func (x *BgpV6Peer_AsNumberWidth) String() string { +func (x *BgpV4EthernetSegment_ActiveMode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6Peer_AsNumberWidth) ProtoMessage() {} +func (*BgpV4EthernetSegment_ActiveMode) ProtoMessage() {} -func (x *BgpV6Peer_AsNumberWidth) ProtoReflect() protoreflect.Message { +func (x *BgpV4EthernetSegment_ActiveMode) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[831] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84461,19 +86826,19 @@ func (x *BgpV6Peer_AsNumberWidth) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6Peer_AsNumberWidth.ProtoReflect.Descriptor instead. -func (*BgpV6Peer_AsNumberWidth) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{128, 1} +// Deprecated: Use BgpV4EthernetSegment_ActiveMode.ProtoReflect.Descriptor instead. +func (*BgpV4EthernetSegment_ActiveMode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{64, 0} } -type BgpV6EthernetSegment_ActiveMode struct { +type BgpRouteAdvanced_Origin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpV6EthernetSegment_ActiveMode) Reset() { - *x = BgpV6EthernetSegment_ActiveMode{} +func (x *BgpRouteAdvanced_Origin) Reset() { + *x = BgpRouteAdvanced_Origin{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[832] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84481,13 +86846,13 @@ func (x *BgpV6EthernetSegment_ActiveMode) Reset() { } } -func (x *BgpV6EthernetSegment_ActiveMode) String() string { +func (x *BgpRouteAdvanced_Origin) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6EthernetSegment_ActiveMode) ProtoMessage() {} +func (*BgpRouteAdvanced_Origin) ProtoMessage() {} -func (x *BgpV6EthernetSegment_ActiveMode) ProtoReflect() protoreflect.Message { +func (x *BgpRouteAdvanced_Origin) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[832] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84499,19 +86864,19 @@ func (x *BgpV6EthernetSegment_ActiveMode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6EthernetSegment_ActiveMode.ProtoReflect.Descriptor instead. -func (*BgpV6EthernetSegment_ActiveMode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{131, 0} +// Deprecated: Use BgpRouteAdvanced_Origin.ProtoReflect.Descriptor instead. +func (*BgpRouteAdvanced_Origin) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{66, 0} } -type BgpV6EvpnEvis_Choice struct { +type BgpCommunity_Type struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpV6EvpnEvis_Choice) Reset() { - *x = BgpV6EvpnEvis_Choice{} +func (x *BgpCommunity_Type) Reset() { + *x = BgpCommunity_Type{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[833] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84519,13 +86884,13 @@ func (x *BgpV6EvpnEvis_Choice) Reset() { } } -func (x *BgpV6EvpnEvis_Choice) String() string { +func (x *BgpCommunity_Type) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6EvpnEvis_Choice) ProtoMessage() {} +func (*BgpCommunity_Type) ProtoMessage() {} -func (x *BgpV6EvpnEvis_Choice) ProtoReflect() protoreflect.Message { +func (x *BgpCommunity_Type) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[833] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84537,19 +86902,19 @@ func (x *BgpV6EvpnEvis_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6EvpnEvis_Choice.ProtoReflect.Descriptor instead. -func (*BgpV6EvpnEvis_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{132, 0} +// Deprecated: Use BgpCommunity_Type.ProtoReflect.Descriptor instead. +func (*BgpCommunity_Type) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{67, 0} } -type BgpV6EviVxlan_ReplicationType struct { +type BgpExtCommunity_Type struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpV6EviVxlan_ReplicationType) Reset() { - *x = BgpV6EviVxlan_ReplicationType{} +func (x *BgpExtCommunity_Type) Reset() { + *x = BgpExtCommunity_Type{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[834] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84557,13 +86922,13 @@ func (x *BgpV6EviVxlan_ReplicationType) Reset() { } } -func (x *BgpV6EviVxlan_ReplicationType) String() string { +func (x *BgpExtCommunity_Type) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6EviVxlan_ReplicationType) ProtoMessage() {} +func (*BgpExtCommunity_Type) ProtoMessage() {} -func (x *BgpV6EviVxlan_ReplicationType) ProtoReflect() protoreflect.Message { +func (x *BgpExtCommunity_Type) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[834] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84575,19 +86940,19 @@ func (x *BgpV6EviVxlan_ReplicationType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6EviVxlan_ReplicationType.ProtoReflect.Descriptor instead. -func (*BgpV6EviVxlan_ReplicationType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{133, 0} +// Deprecated: Use BgpExtCommunity_Type.ProtoReflect.Descriptor instead. +func (*BgpExtCommunity_Type) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{68, 0} } -type VxlanV4TunnelDestinationIPMode_Choice struct { +type BgpExtCommunity_Subtype struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *VxlanV4TunnelDestinationIPMode_Choice) Reset() { - *x = VxlanV4TunnelDestinationIPMode_Choice{} +func (x *BgpExtCommunity_Subtype) Reset() { + *x = BgpExtCommunity_Subtype{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[835] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84595,13 +86960,13 @@ func (x *VxlanV4TunnelDestinationIPMode_Choice) Reset() { } } -func (x *VxlanV4TunnelDestinationIPMode_Choice) String() string { +func (x *BgpExtCommunity_Subtype) String() string { return protoimpl.X.MessageStringOf(x) } -func (*VxlanV4TunnelDestinationIPMode_Choice) ProtoMessage() {} +func (*BgpExtCommunity_Subtype) ProtoMessage() {} -func (x *VxlanV4TunnelDestinationIPMode_Choice) ProtoReflect() protoreflect.Message { +func (x *BgpExtCommunity_Subtype) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[835] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84613,19 +86978,19 @@ func (x *VxlanV4TunnelDestinationIPMode_Choice) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use VxlanV4TunnelDestinationIPMode_Choice.ProtoReflect.Descriptor instead. -func (*VxlanV4TunnelDestinationIPMode_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{138, 0} +// Deprecated: Use BgpExtCommunity_Subtype.ProtoReflect.Descriptor instead. +func (*BgpExtCommunity_Subtype) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{68, 1} } -type VxlanV6TunnelDestinationIPMode_Choice struct { +type BgpAsPath_AsSetMode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *VxlanV6TunnelDestinationIPMode_Choice) Reset() { - *x = VxlanV6TunnelDestinationIPMode_Choice{} +func (x *BgpAsPath_AsSetMode) Reset() { + *x = BgpAsPath_AsSetMode{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[836] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84633,13 +86998,13 @@ func (x *VxlanV6TunnelDestinationIPMode_Choice) Reset() { } } -func (x *VxlanV6TunnelDestinationIPMode_Choice) String() string { +func (x *BgpAsPath_AsSetMode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*VxlanV6TunnelDestinationIPMode_Choice) ProtoMessage() {} +func (*BgpAsPath_AsSetMode) ProtoMessage() {} -func (x *VxlanV6TunnelDestinationIPMode_Choice) ProtoReflect() protoreflect.Message { +func (x *BgpAsPath_AsSetMode) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[836] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84651,19 +87016,19 @@ func (x *VxlanV6TunnelDestinationIPMode_Choice) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use VxlanV6TunnelDestinationIPMode_Choice.ProtoReflect.Descriptor instead. -func (*VxlanV6TunnelDestinationIPMode_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{139, 0} +// Deprecated: Use BgpAsPath_AsSetMode.ProtoReflect.Descriptor instead. +func (*BgpAsPath_AsSetMode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{69, 0} } -type RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle struct { +type BgpAsPathSegment_Type struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) Reset() { - *x = RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle{} +func (x *BgpAsPathSegment_Type) Reset() { + *x = BgpAsPathSegment_Type{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[837] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84671,13 +87036,13 @@ func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) Reset() { } } -func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) String() string { +func (x *BgpAsPathSegment_Type) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) ProtoMessage() {} +func (*BgpAsPathSegment_Type) ProtoMessage() {} -func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) ProtoReflect() protoreflect.Message { +func (x *BgpAsPathSegment_Type) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[837] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84689,19 +87054,19 @@ func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) ProtoReflect() p return mi.MessageOf(x) } -// Deprecated: Use RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle.ProtoReflect.Descriptor instead. -func (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{150, 0} +// Deprecated: Use BgpAsPathSegment_Type.ProtoReflect.Descriptor instead. +func (*BgpAsPathSegment_Type) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{70, 0} } -type RsvpEro_PrependNeighborIp struct { +type BgpV4EvpnEvis_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *RsvpEro_PrependNeighborIp) Reset() { - *x = RsvpEro_PrependNeighborIp{} +func (x *BgpV4EvpnEvis_Choice) Reset() { + *x = BgpV4EvpnEvis_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[838] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84709,13 +87074,13 @@ func (x *RsvpEro_PrependNeighborIp) Reset() { } } -func (x *RsvpEro_PrependNeighborIp) String() string { +func (x *BgpV4EvpnEvis_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpEro_PrependNeighborIp) ProtoMessage() {} +func (*BgpV4EvpnEvis_Choice) ProtoMessage() {} -func (x *RsvpEro_PrependNeighborIp) ProtoReflect() protoreflect.Message { +func (x *BgpV4EvpnEvis_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[838] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84727,19 +87092,19 @@ func (x *RsvpEro_PrependNeighborIp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpEro_PrependNeighborIp.ProtoReflect.Descriptor instead. -func (*RsvpEro_PrependNeighborIp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{156, 0} +// Deprecated: Use BgpV4EvpnEvis_Choice.ProtoReflect.Descriptor instead. +func (*BgpV4EvpnEvis_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{71, 0} } -type RsvpEroSubobject_Type struct { +type BgpV4EviVxlan_ReplicationType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *RsvpEroSubobject_Type) Reset() { - *x = RsvpEroSubobject_Type{} +func (x *BgpV4EviVxlan_ReplicationType) Reset() { + *x = BgpV4EviVxlan_ReplicationType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[839] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84747,13 +87112,13 @@ func (x *RsvpEroSubobject_Type) Reset() { } } -func (x *RsvpEroSubobject_Type) String() string { +func (x *BgpV4EviVxlan_ReplicationType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpEroSubobject_Type) ProtoMessage() {} +func (*BgpV4EviVxlan_ReplicationType) ProtoMessage() {} -func (x *RsvpEroSubobject_Type) ProtoReflect() protoreflect.Message { +func (x *BgpV4EviVxlan_ReplicationType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[839] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84765,19 +87130,19 @@ func (x *RsvpEroSubobject_Type) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpEroSubobject_Type.ProtoReflect.Descriptor instead. -func (*RsvpEroSubobject_Type) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{157, 0} +// Deprecated: Use BgpV4EviVxlan_ReplicationType.ProtoReflect.Descriptor instead. +func (*BgpV4EviVxlan_ReplicationType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{72, 0} } -type RsvpEroSubobject_HopType struct { +type BgpRouteDistinguisher_RdType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *RsvpEroSubobject_HopType) Reset() { - *x = RsvpEroSubobject_HopType{} +func (x *BgpRouteDistinguisher_RdType) Reset() { + *x = BgpRouteDistinguisher_RdType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[840] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84785,13 +87150,13 @@ func (x *RsvpEroSubobject_HopType) Reset() { } } -func (x *RsvpEroSubobject_HopType) String() string { +func (x *BgpRouteDistinguisher_RdType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpEroSubobject_HopType) ProtoMessage() {} +func (*BgpRouteDistinguisher_RdType) ProtoMessage() {} -func (x *RsvpEroSubobject_HopType) ProtoReflect() protoreflect.Message { +func (x *BgpRouteDistinguisher_RdType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[840] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84803,19 +87168,19 @@ func (x *RsvpEroSubobject_HopType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpEroSubobject_HopType.ProtoReflect.Descriptor instead. -func (*RsvpEroSubobject_HopType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{157, 1} +// Deprecated: Use BgpRouteDistinguisher_RdType.ProtoReflect.Descriptor instead. +func (*BgpRouteDistinguisher_RdType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{75, 0} } -type FlowTxRx_Choice struct { +type BgpRouteTarget_RtType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowTxRx_Choice) Reset() { - *x = FlowTxRx_Choice{} +func (x *BgpRouteTarget_RtType) Reset() { + *x = BgpRouteTarget_RtType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[841] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84823,13 +87188,13 @@ func (x *FlowTxRx_Choice) Reset() { } } -func (x *FlowTxRx_Choice) String() string { +func (x *BgpRouteTarget_RtType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowTxRx_Choice) ProtoMessage() {} +func (*BgpRouteTarget_RtType) ProtoMessage() {} -func (x *FlowTxRx_Choice) ProtoReflect() protoreflect.Message { +func (x *BgpRouteTarget_RtType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[841] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84841,19 +87206,19 @@ func (x *FlowTxRx_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowTxRx_Choice.ProtoReflect.Descriptor instead. -func (*FlowTxRx_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{159, 0} +// Deprecated: Use BgpRouteTarget_RtType.ProtoReflect.Descriptor instead. +func (*BgpRouteTarget_RtType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{76, 0} } -type FlowRouter_Mode struct { +type BgpV4RouteRange_NextHopMode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowRouter_Mode) Reset() { - *x = FlowRouter_Mode{} +func (x *BgpV4RouteRange_NextHopMode) Reset() { + *x = BgpV4RouteRange_NextHopMode{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[842] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84861,13 +87226,13 @@ func (x *FlowRouter_Mode) Reset() { } } -func (x *FlowRouter_Mode) String() string { +func (x *BgpV4RouteRange_NextHopMode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRouter_Mode) ProtoMessage() {} +func (*BgpV4RouteRange_NextHopMode) ProtoMessage() {} -func (x *FlowRouter_Mode) ProtoReflect() protoreflect.Message { +func (x *BgpV4RouteRange_NextHopMode) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[842] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84879,19 +87244,19 @@ func (x *FlowRouter_Mode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRouter_Mode.ProtoReflect.Descriptor instead. -func (*FlowRouter_Mode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{161, 0} +// Deprecated: Use BgpV4RouteRange_NextHopMode.ProtoReflect.Descriptor instead. +func (*BgpV4RouteRange_NextHopMode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{80, 0} } -type FlowHeader_Choice struct { +type BgpV4RouteRange_NextHopAddressType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowHeader_Choice) Reset() { - *x = FlowHeader_Choice{} +func (x *BgpV4RouteRange_NextHopAddressType) Reset() { + *x = BgpV4RouteRange_NextHopAddressType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[843] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84899,13 +87264,13 @@ func (x *FlowHeader_Choice) Reset() { } } -func (x *FlowHeader_Choice) String() string { +func (x *BgpV4RouteRange_NextHopAddressType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowHeader_Choice) ProtoMessage() {} +func (*BgpV4RouteRange_NextHopAddressType) ProtoMessage() {} -func (x *FlowHeader_Choice) ProtoReflect() protoreflect.Message { +func (x *BgpV4RouteRange_NextHopAddressType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[843] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84917,19 +87282,19 @@ func (x *FlowHeader_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowHeader_Choice.ProtoReflect.Descriptor instead. -func (*FlowHeader_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{162, 0} +// Deprecated: Use BgpV4RouteRange_NextHopAddressType.ProtoReflect.Descriptor instead. +func (*BgpV4RouteRange_NextHopAddressType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{80, 1} } -type FlowIpv4Options_Choice struct { +type BgpExtendedCommunity_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowIpv4Options_Choice) Reset() { - *x = FlowIpv4Options_Choice{} +func (x *BgpExtendedCommunity_Choice) Reset() { + *x = BgpExtendedCommunity_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[844] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84937,13 +87302,13 @@ func (x *FlowIpv4Options_Choice) Reset() { } } -func (x *FlowIpv4Options_Choice) String() string { +func (x *BgpExtendedCommunity_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIpv4Options_Choice) ProtoMessage() {} +func (*BgpExtendedCommunity_Choice) ProtoMessage() {} -func (x *FlowIpv4Options_Choice) ProtoReflect() protoreflect.Message { +func (x *BgpExtendedCommunity_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[844] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84955,19 +87320,19 @@ func (x *FlowIpv4Options_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIpv4Options_Choice.ProtoReflect.Descriptor instead. -func (*FlowIpv4Options_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{169, 0} +// Deprecated: Use BgpExtendedCommunity_Choice.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunity_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{82, 0} } -type FlowIpv4OptionsCustomLength_Choice struct { +type BgpExtendedCommunityTransitive2OctetAsType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowIpv4OptionsCustomLength_Choice) Reset() { - *x = FlowIpv4OptionsCustomLength_Choice{} +func (x *BgpExtendedCommunityTransitive2OctetAsType_Choice) Reset() { + *x = BgpExtendedCommunityTransitive2OctetAsType_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[845] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84975,13 +87340,13 @@ func (x *FlowIpv4OptionsCustomLength_Choice) Reset() { } } -func (x *FlowIpv4OptionsCustomLength_Choice) String() string { +func (x *BgpExtendedCommunityTransitive2OctetAsType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIpv4OptionsCustomLength_Choice) ProtoMessage() {} +func (*BgpExtendedCommunityTransitive2OctetAsType_Choice) ProtoMessage() {} -func (x *FlowIpv4OptionsCustomLength_Choice) ProtoReflect() protoreflect.Message { +func (x *BgpExtendedCommunityTransitive2OctetAsType_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[845] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -84993,19 +87358,19 @@ func (x *FlowIpv4OptionsCustomLength_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use FlowIpv4OptionsCustomLength_Choice.ProtoReflect.Descriptor instead. -func (*FlowIpv4OptionsCustomLength_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{172, 0} +// Deprecated: Use BgpExtendedCommunityTransitive2OctetAsType_Choice.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitive2OctetAsType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{85, 0} } -type FlowIpv4Priority_Choice struct { +type BgpExtendedCommunityTransitiveIpv4AddressType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowIpv4Priority_Choice) Reset() { - *x = FlowIpv4Priority_Choice{} +func (x *BgpExtendedCommunityTransitiveIpv4AddressType_Choice) Reset() { + *x = BgpExtendedCommunityTransitiveIpv4AddressType_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[846] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85013,13 +87378,13 @@ func (x *FlowIpv4Priority_Choice) Reset() { } } -func (x *FlowIpv4Priority_Choice) String() string { +func (x *BgpExtendedCommunityTransitiveIpv4AddressType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIpv4Priority_Choice) ProtoMessage() {} +func (*BgpExtendedCommunityTransitiveIpv4AddressType_Choice) ProtoMessage() {} -func (x *FlowIpv4Priority_Choice) ProtoReflect() protoreflect.Message { +func (x *BgpExtendedCommunityTransitiveIpv4AddressType_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[846] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85031,19 +87396,19 @@ func (x *FlowIpv4Priority_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIpv4Priority_Choice.ProtoReflect.Descriptor instead. -func (*FlowIpv4Priority_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{173, 0} +// Deprecated: Use BgpExtendedCommunityTransitiveIpv4AddressType_Choice.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitiveIpv4AddressType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{88, 0} } -type FlowIcmp_Choice struct { +type BgpExtendedCommunityTransitive4OctetAsType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowIcmp_Choice) Reset() { - *x = FlowIcmp_Choice{} +func (x *BgpExtendedCommunityTransitive4OctetAsType_Choice) Reset() { + *x = BgpExtendedCommunityTransitive4OctetAsType_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[847] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85051,13 +87416,13 @@ func (x *FlowIcmp_Choice) Reset() { } } -func (x *FlowIcmp_Choice) String() string { +func (x *BgpExtendedCommunityTransitive4OctetAsType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIcmp_Choice) ProtoMessage() {} +func (*BgpExtendedCommunityTransitive4OctetAsType_Choice) ProtoMessage() {} -func (x *FlowIcmp_Choice) ProtoReflect() protoreflect.Message { +func (x *BgpExtendedCommunityTransitive4OctetAsType_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[847] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85069,19 +87434,19 @@ func (x *FlowIcmp_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIcmp_Choice.ProtoReflect.Descriptor instead. -func (*FlowIcmp_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{186, 0} +// Deprecated: Use BgpExtendedCommunityTransitive4OctetAsType_Choice.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitive4OctetAsType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{91, 0} } -type FlowIcmpv6_Choice struct { +type BgpExtendedCommunityTransitiveOpaqueType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowIcmpv6_Choice) Reset() { - *x = FlowIcmpv6_Choice{} +func (x *BgpExtendedCommunityTransitiveOpaqueType_Choice) Reset() { + *x = BgpExtendedCommunityTransitiveOpaqueType_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[848] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85089,13 +87454,13 @@ func (x *FlowIcmpv6_Choice) Reset() { } } -func (x *FlowIcmpv6_Choice) String() string { +func (x *BgpExtendedCommunityTransitiveOpaqueType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIcmpv6_Choice) ProtoMessage() {} +func (*BgpExtendedCommunityTransitiveOpaqueType_Choice) ProtoMessage() {} -func (x *FlowIcmpv6_Choice) ProtoReflect() protoreflect.Message { +func (x *BgpExtendedCommunityTransitiveOpaqueType_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[848] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85107,19 +87472,19 @@ func (x *FlowIcmpv6_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIcmpv6_Choice.ProtoReflect.Descriptor instead. -func (*FlowIcmpv6_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{188, 0} +// Deprecated: Use BgpExtendedCommunityTransitiveOpaqueType_Choice.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitiveOpaqueType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{94, 0} } -type FlowSize_Choice struct { +type BgpExtendedCommunityTransitiveEvpnType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowSize_Choice) Reset() { - *x = FlowSize_Choice{} +func (x *BgpExtendedCommunityTransitiveEvpnType_Choice) Reset() { + *x = BgpExtendedCommunityTransitiveEvpnType_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[849] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85127,13 +87492,13 @@ func (x *FlowSize_Choice) Reset() { } } -func (x *FlowSize_Choice) String() string { +func (x *BgpExtendedCommunityTransitiveEvpnType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowSize_Choice) ProtoMessage() {} +func (*BgpExtendedCommunityTransitiveEvpnType_Choice) ProtoMessage() {} -func (x *FlowSize_Choice) ProtoReflect() protoreflect.Message { +func (x *BgpExtendedCommunityTransitiveEvpnType_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[849] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85145,19 +87510,19 @@ func (x *FlowSize_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowSize_Choice.ProtoReflect.Descriptor instead. -func (*FlowSize_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{193, 0} +// Deprecated: Use BgpExtendedCommunityTransitiveEvpnType_Choice.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitiveEvpnType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{96, 0} } -type FlowSizeWeightPairs_Choice struct { +type BgpExtendedCommunityNonTransitive2OctetAsType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowSizeWeightPairs_Choice) Reset() { - *x = FlowSizeWeightPairs_Choice{} +func (x *BgpExtendedCommunityNonTransitive2OctetAsType_Choice) Reset() { + *x = BgpExtendedCommunityNonTransitive2OctetAsType_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[850] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85165,13 +87530,13 @@ func (x *FlowSizeWeightPairs_Choice) Reset() { } } -func (x *FlowSizeWeightPairs_Choice) String() string { +func (x *BgpExtendedCommunityNonTransitive2OctetAsType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowSizeWeightPairs_Choice) ProtoMessage() {} +func (*BgpExtendedCommunityNonTransitive2OctetAsType_Choice) ProtoMessage() {} -func (x *FlowSizeWeightPairs_Choice) ProtoReflect() protoreflect.Message { +func (x *BgpExtendedCommunityNonTransitive2OctetAsType_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[850] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85183,19 +87548,19 @@ func (x *FlowSizeWeightPairs_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowSizeWeightPairs_Choice.ProtoReflect.Descriptor instead. -func (*FlowSizeWeightPairs_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{196, 0} +// Deprecated: Use BgpExtendedCommunityNonTransitive2OctetAsType_Choice.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityNonTransitive2OctetAsType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{98, 0} } -type FlowSizeWeightPairs_Predefined struct { +type BgpV6RouteRange_NextHopMode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowSizeWeightPairs_Predefined) Reset() { - *x = FlowSizeWeightPairs_Predefined{} +func (x *BgpV6RouteRange_NextHopMode) Reset() { + *x = BgpV6RouteRange_NextHopMode{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[851] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85203,13 +87568,13 @@ func (x *FlowSizeWeightPairs_Predefined) Reset() { } } -func (x *FlowSizeWeightPairs_Predefined) String() string { +func (x *BgpV6RouteRange_NextHopMode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowSizeWeightPairs_Predefined) ProtoMessage() {} +func (*BgpV6RouteRange_NextHopMode) ProtoMessage() {} -func (x *FlowSizeWeightPairs_Predefined) ProtoReflect() protoreflect.Message { +func (x *BgpV6RouteRange_NextHopMode) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[851] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85221,19 +87586,19 @@ func (x *FlowSizeWeightPairs_Predefined) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowSizeWeightPairs_Predefined.ProtoReflect.Descriptor instead. -func (*FlowSizeWeightPairs_Predefined) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{196, 1} +// Deprecated: Use BgpV6RouteRange_NextHopMode.ProtoReflect.Descriptor instead. +func (*BgpV6RouteRange_NextHopMode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{100, 0} } -type FlowRate_Choice struct { +type BgpV6RouteRange_NextHopAddressType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowRate_Choice) Reset() { - *x = FlowRate_Choice{} +func (x *BgpV6RouteRange_NextHopAddressType) Reset() { + *x = BgpV6RouteRange_NextHopAddressType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[852] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85241,13 +87606,13 @@ func (x *FlowRate_Choice) Reset() { } } -func (x *FlowRate_Choice) String() string { +func (x *BgpV6RouteRange_NextHopAddressType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRate_Choice) ProtoMessage() {} +func (*BgpV6RouteRange_NextHopAddressType) ProtoMessage() {} -func (x *FlowRate_Choice) ProtoReflect() protoreflect.Message { +func (x *BgpV6RouteRange_NextHopAddressType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[852] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85259,19 +87624,19 @@ func (x *FlowRate_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRate_Choice.ProtoReflect.Descriptor instead. -func (*FlowRate_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{198, 0} +// Deprecated: Use BgpV6RouteRange_NextHopAddressType.ProtoReflect.Descriptor instead. +func (*BgpV6RouteRange_NextHopAddressType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{100, 1} } -type FlowDuration_Choice struct { +type BgpSrteV4Policy_NextHopMode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowDuration_Choice) Reset() { - *x = FlowDuration_Choice{} +func (x *BgpSrteV4Policy_NextHopMode) Reset() { + *x = BgpSrteV4Policy_NextHopMode{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[853] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85279,13 +87644,13 @@ func (x *FlowDuration_Choice) Reset() { } } -func (x *FlowDuration_Choice) String() string { +func (x *BgpSrteV4Policy_NextHopMode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowDuration_Choice) ProtoMessage() {} +func (*BgpSrteV4Policy_NextHopMode) ProtoMessage() {} -func (x *FlowDuration_Choice) ProtoReflect() protoreflect.Message { +func (x *BgpSrteV4Policy_NextHopMode) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[853] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85297,19 +87662,19 @@ func (x *FlowDuration_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowDuration_Choice.ProtoReflect.Descriptor instead. -func (*FlowDuration_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{199, 0} +// Deprecated: Use BgpSrteV4Policy_NextHopMode.ProtoReflect.Descriptor instead. +func (*BgpSrteV4Policy_NextHopMode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{101, 0} } -type FlowDelay_Choice struct { +type BgpSrteV4Policy_NextHopAddressType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowDelay_Choice) Reset() { - *x = FlowDelay_Choice{} +func (x *BgpSrteV4Policy_NextHopAddressType) Reset() { + *x = BgpSrteV4Policy_NextHopAddressType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[854] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85317,13 +87682,13 @@ func (x *FlowDelay_Choice) Reset() { } } -func (x *FlowDelay_Choice) String() string { +func (x *BgpSrteV4Policy_NextHopAddressType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowDelay_Choice) ProtoMessage() {} +func (*BgpSrteV4Policy_NextHopAddressType) ProtoMessage() {} -func (x *FlowDelay_Choice) ProtoReflect() protoreflect.Message { +func (x *BgpSrteV4Policy_NextHopAddressType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[854] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85335,19 +87700,19 @@ func (x *FlowDelay_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowDelay_Choice.ProtoReflect.Descriptor instead. -func (*FlowDelay_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{201, 0} +// Deprecated: Use BgpSrteV4Policy_NextHopAddressType.ProtoReflect.Descriptor instead. +func (*BgpSrteV4Policy_NextHopAddressType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{101, 1} } -type FlowDurationInterBurstGap_Choice struct { +type BgpSrteRemoteEndpointSubTlv_AddressFamily struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowDurationInterBurstGap_Choice) Reset() { - *x = FlowDurationInterBurstGap_Choice{} +func (x *BgpSrteRemoteEndpointSubTlv_AddressFamily) Reset() { + *x = BgpSrteRemoteEndpointSubTlv_AddressFamily{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[855] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85355,13 +87720,13 @@ func (x *FlowDurationInterBurstGap_Choice) Reset() { } } -func (x *FlowDurationInterBurstGap_Choice) String() string { +func (x *BgpSrteRemoteEndpointSubTlv_AddressFamily) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowDurationInterBurstGap_Choice) ProtoMessage() {} +func (*BgpSrteRemoteEndpointSubTlv_AddressFamily) ProtoMessage() {} -func (x *FlowDurationInterBurstGap_Choice) ProtoReflect() protoreflect.Message { +func (x *BgpSrteRemoteEndpointSubTlv_AddressFamily) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[855] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85373,19 +87738,19 @@ func (x *FlowDurationInterBurstGap_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowDurationInterBurstGap_Choice.ProtoReflect.Descriptor instead. -func (*FlowDurationInterBurstGap_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{205, 0} +// Deprecated: Use BgpSrteRemoteEndpointSubTlv_AddressFamily.ProtoReflect.Descriptor instead. +func (*BgpSrteRemoteEndpointSubTlv_AddressFamily) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{103, 0} } -type FlowLatencyMetrics_Mode struct { +type BgpSrteBindingSubTlv_BindingSidType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowLatencyMetrics_Mode) Reset() { - *x = FlowLatencyMetrics_Mode{} +func (x *BgpSrteBindingSubTlv_BindingSidType) Reset() { + *x = BgpSrteBindingSubTlv_BindingSidType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[856] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85393,13 +87758,13 @@ func (x *FlowLatencyMetrics_Mode) Reset() { } } -func (x *FlowLatencyMetrics_Mode) String() string { +func (x *BgpSrteBindingSubTlv_BindingSidType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowLatencyMetrics_Mode) ProtoMessage() {} +func (*BgpSrteBindingSubTlv_BindingSidType) ProtoMessage() {} -func (x *FlowLatencyMetrics_Mode) ProtoReflect() protoreflect.Message { +func (x *BgpSrteBindingSubTlv_BindingSidType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[856] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85411,19 +87776,19 @@ func (x *FlowLatencyMetrics_Mode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowLatencyMetrics_Mode.ProtoReflect.Descriptor instead. -func (*FlowLatencyMetrics_Mode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{207, 0} +// Deprecated: Use BgpSrteBindingSubTlv_BindingSidType.ProtoReflect.Descriptor instead. +func (*BgpSrteBindingSubTlv_BindingSidType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{105, 0} } -type FlowRxTxRatio_Choice struct { +type BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowRxTxRatio_Choice) Reset() { - *x = FlowRxTxRatio_Choice{} +func (x *BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) Reset() { + *x = BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[857] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85431,13 +87796,13 @@ func (x *FlowRxTxRatio_Choice) Reset() { } } -func (x *FlowRxTxRatio_Choice) String() string { +func (x *BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRxTxRatio_Choice) ProtoMessage() {} +func (*BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) ProtoMessage() {} -func (x *FlowRxTxRatio_Choice) ProtoReflect() protoreflect.Message { +func (x *BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[857] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85449,19 +87814,19 @@ func (x *FlowRxTxRatio_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRxTxRatio_Choice.ProtoReflect.Descriptor instead. -func (*FlowRxTxRatio_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{209, 0} +// Deprecated: Use BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy.ProtoReflect.Descriptor instead. +func (*BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{109, 0} } -type EventRequest_Type struct { +type BgpSrteSegment_SegmentType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *EventRequest_Type) Reset() { - *x = EventRequest_Type{} +func (x *BgpSrteSegment_SegmentType) Reset() { + *x = BgpSrteSegment_SegmentType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[858] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85469,13 +87834,13 @@ func (x *EventRequest_Type) Reset() { } } -func (x *EventRequest_Type) String() string { +func (x *BgpSrteSegment_SegmentType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EventRequest_Type) ProtoMessage() {} +func (*BgpSrteSegment_SegmentType) ProtoMessage() {} -func (x *EventRequest_Type) ProtoReflect() protoreflect.Message { +func (x *BgpSrteSegment_SegmentType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[858] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85487,19 +87852,19 @@ func (x *EventRequest_Type) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EventRequest_Type.ProtoReflect.Descriptor instead. -func (*EventRequest_Type) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{215, 0} +// Deprecated: Use BgpSrteSegment_SegmentType.ProtoReflect.Descriptor instead. +func (*BgpSrteSegment_SegmentType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{111, 0} } -type LldpConnection_Choice struct { +type BgpSrteV6Policy_NextHopMode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpConnection_Choice) Reset() { - *x = LldpConnection_Choice{} +func (x *BgpSrteV6Policy_NextHopMode) Reset() { + *x = BgpSrteV6Policy_NextHopMode{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[859] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85507,13 +87872,13 @@ func (x *LldpConnection_Choice) Reset() { } } -func (x *LldpConnection_Choice) String() string { +func (x *BgpSrteV6Policy_NextHopMode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpConnection_Choice) ProtoMessage() {} +func (*BgpSrteV6Policy_NextHopMode) ProtoMessage() {} -func (x *LldpConnection_Choice) ProtoReflect() protoreflect.Message { +func (x *BgpSrteV6Policy_NextHopMode) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[859] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85525,19 +87890,19 @@ func (x *LldpConnection_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpConnection_Choice.ProtoReflect.Descriptor instead. -func (*LldpConnection_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{218, 0} +// Deprecated: Use BgpSrteV6Policy_NextHopMode.ProtoReflect.Descriptor instead. +func (*BgpSrteV6Policy_NextHopMode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{125, 0} } -type LldpChassisId_Choice struct { +type BgpSrteV6Policy_NextHopAddressType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpChassisId_Choice) Reset() { - *x = LldpChassisId_Choice{} +func (x *BgpSrteV6Policy_NextHopAddressType) Reset() { + *x = BgpSrteV6Policy_NextHopAddressType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[860] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85545,13 +87910,13 @@ func (x *LldpChassisId_Choice) Reset() { } } -func (x *LldpChassisId_Choice) String() string { +func (x *BgpSrteV6Policy_NextHopAddressType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpChassisId_Choice) ProtoMessage() {} +func (*BgpSrteV6Policy_NextHopAddressType) ProtoMessage() {} -func (x *LldpChassisId_Choice) ProtoReflect() protoreflect.Message { +func (x *BgpSrteV6Policy_NextHopAddressType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[860] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85563,19 +87928,19 @@ func (x *LldpChassisId_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpChassisId_Choice.ProtoReflect.Descriptor instead. -func (*LldpChassisId_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{219, 0} +// Deprecated: Use BgpSrteV6Policy_NextHopAddressType.ProtoReflect.Descriptor instead. +func (*BgpSrteV6Policy_NextHopAddressType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{125, 1} } -type LldpPortId_Choice struct { +type BgpV6Peer_AsType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpPortId_Choice) Reset() { - *x = LldpPortId_Choice{} +func (x *BgpV6Peer_AsType) Reset() { + *x = BgpV6Peer_AsType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[861] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85583,13 +87948,13 @@ func (x *LldpPortId_Choice) Reset() { } } -func (x *LldpPortId_Choice) String() string { +func (x *BgpV6Peer_AsType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpPortId_Choice) ProtoMessage() {} +func (*BgpV6Peer_AsType) ProtoMessage() {} -func (x *LldpPortId_Choice) ProtoReflect() protoreflect.Message { +func (x *BgpV6Peer_AsType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[861] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85601,19 +87966,19 @@ func (x *LldpPortId_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpPortId_Choice.ProtoReflect.Descriptor instead. -func (*LldpPortId_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{220, 0} +// Deprecated: Use BgpV6Peer_AsType.ProtoReflect.Descriptor instead. +func (*BgpV6Peer_AsType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{128, 0} } -type LldpChassisMacSubType_Choice struct { +type BgpV6Peer_AsNumberWidth struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpChassisMacSubType_Choice) Reset() { - *x = LldpChassisMacSubType_Choice{} +func (x *BgpV6Peer_AsNumberWidth) Reset() { + *x = BgpV6Peer_AsNumberWidth{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[862] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85621,13 +87986,13 @@ func (x *LldpChassisMacSubType_Choice) Reset() { } } -func (x *LldpChassisMacSubType_Choice) String() string { +func (x *BgpV6Peer_AsNumberWidth) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpChassisMacSubType_Choice) ProtoMessage() {} +func (*BgpV6Peer_AsNumberWidth) ProtoMessage() {} -func (x *LldpChassisMacSubType_Choice) ProtoReflect() protoreflect.Message { +func (x *BgpV6Peer_AsNumberWidth) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[862] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85639,19 +88004,19 @@ func (x *LldpChassisMacSubType_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpChassisMacSubType_Choice.ProtoReflect.Descriptor instead. -func (*LldpChassisMacSubType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{221, 0} +// Deprecated: Use BgpV6Peer_AsNumberWidth.ProtoReflect.Descriptor instead. +func (*BgpV6Peer_AsNumberWidth) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{128, 1} } -type LldpPortInterfaceNameSubType_Choice struct { +type BgpV6EthernetSegment_ActiveMode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpPortInterfaceNameSubType_Choice) Reset() { - *x = LldpPortInterfaceNameSubType_Choice{} +func (x *BgpV6EthernetSegment_ActiveMode) Reset() { + *x = BgpV6EthernetSegment_ActiveMode{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[863] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85659,13 +88024,13 @@ func (x *LldpPortInterfaceNameSubType_Choice) Reset() { } } -func (x *LldpPortInterfaceNameSubType_Choice) String() string { +func (x *BgpV6EthernetSegment_ActiveMode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpPortInterfaceNameSubType_Choice) ProtoMessage() {} +func (*BgpV6EthernetSegment_ActiveMode) ProtoMessage() {} -func (x *LldpPortInterfaceNameSubType_Choice) ProtoReflect() protoreflect.Message { +func (x *BgpV6EthernetSegment_ActiveMode) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[863] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85677,19 +88042,19 @@ func (x *LldpPortInterfaceNameSubType_Choice) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use LldpPortInterfaceNameSubType_Choice.ProtoReflect.Descriptor instead. -func (*LldpPortInterfaceNameSubType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{222, 0} +// Deprecated: Use BgpV6EthernetSegment_ActiveMode.ProtoReflect.Descriptor instead. +func (*BgpV6EthernetSegment_ActiveMode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{131, 0} } -type LldpSystemName_Choice struct { +type BgpV6EvpnEvis_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpSystemName_Choice) Reset() { - *x = LldpSystemName_Choice{} +func (x *BgpV6EvpnEvis_Choice) Reset() { + *x = BgpV6EvpnEvis_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[864] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85697,13 +88062,13 @@ func (x *LldpSystemName_Choice) Reset() { } } -func (x *LldpSystemName_Choice) String() string { +func (x *BgpV6EvpnEvis_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpSystemName_Choice) ProtoMessage() {} +func (*BgpV6EvpnEvis_Choice) ProtoMessage() {} -func (x *LldpSystemName_Choice) ProtoReflect() protoreflect.Message { +func (x *BgpV6EvpnEvis_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[864] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85715,19 +88080,19 @@ func (x *LldpSystemName_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpSystemName_Choice.ProtoReflect.Descriptor instead. -func (*LldpSystemName_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{223, 0} +// Deprecated: Use BgpV6EvpnEvis_Choice.ProtoReflect.Descriptor instead. +func (*BgpV6EvpnEvis_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{132, 0} } -type Error_Kind struct { +type BgpV6EviVxlan_ReplicationType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *Error_Kind) Reset() { - *x = Error_Kind{} +func (x *BgpV6EviVxlan_ReplicationType) Reset() { + *x = BgpV6EviVxlan_ReplicationType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[865] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85735,13 +88100,13 @@ func (x *Error_Kind) Reset() { } } -func (x *Error_Kind) String() string { +func (x *BgpV6EviVxlan_ReplicationType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Error_Kind) ProtoMessage() {} +func (*BgpV6EviVxlan_ReplicationType) ProtoMessage() {} -func (x *Error_Kind) ProtoReflect() protoreflect.Message { +func (x *BgpV6EviVxlan_ReplicationType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[865] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85753,19 +88118,19 @@ func (x *Error_Kind) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Error_Kind.ProtoReflect.Descriptor instead. -func (*Error_Kind) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{224, 0} +// Deprecated: Use BgpV6EviVxlan_ReplicationType.ProtoReflect.Descriptor instead. +func (*BgpV6EviVxlan_ReplicationType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{133, 0} } -type ConfigUpdate_Choice struct { +type VxlanV4TunnelDestinationIPMode_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ConfigUpdate_Choice) Reset() { - *x = ConfigUpdate_Choice{} +func (x *VxlanV4TunnelDestinationIPMode_Choice) Reset() { + *x = VxlanV4TunnelDestinationIPMode_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[866] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85773,13 +88138,13 @@ func (x *ConfigUpdate_Choice) Reset() { } } -func (x *ConfigUpdate_Choice) String() string { +func (x *VxlanV4TunnelDestinationIPMode_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ConfigUpdate_Choice) ProtoMessage() {} +func (*VxlanV4TunnelDestinationIPMode_Choice) ProtoMessage() {} -func (x *ConfigUpdate_Choice) ProtoReflect() protoreflect.Message { +func (x *VxlanV4TunnelDestinationIPMode_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[866] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85791,19 +88156,19 @@ func (x *ConfigUpdate_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ConfigUpdate_Choice.ProtoReflect.Descriptor instead. -func (*ConfigUpdate_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{226, 0} +// Deprecated: Use VxlanV4TunnelDestinationIPMode_Choice.ProtoReflect.Descriptor instead. +func (*VxlanV4TunnelDestinationIPMode_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{138, 0} } -type FlowsUpdate_PropertyNames struct { +type VxlanV6TunnelDestinationIPMode_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowsUpdate_PropertyNames) Reset() { - *x = FlowsUpdate_PropertyNames{} +func (x *VxlanV6TunnelDestinationIPMode_Choice) Reset() { + *x = VxlanV6TunnelDestinationIPMode_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[867] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85811,13 +88176,13 @@ func (x *FlowsUpdate_PropertyNames) Reset() { } } -func (x *FlowsUpdate_PropertyNames) String() string { +func (x *VxlanV6TunnelDestinationIPMode_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowsUpdate_PropertyNames) ProtoMessage() {} +func (*VxlanV6TunnelDestinationIPMode_Choice) ProtoMessage() {} -func (x *FlowsUpdate_PropertyNames) ProtoReflect() protoreflect.Message { +func (x *VxlanV6TunnelDestinationIPMode_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[867] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85829,19 +88194,19 @@ func (x *FlowsUpdate_PropertyNames) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowsUpdate_PropertyNames.ProtoReflect.Descriptor instead. -func (*FlowsUpdate_PropertyNames) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{227, 0} +// Deprecated: Use VxlanV6TunnelDestinationIPMode_Choice.ProtoReflect.Descriptor instead. +func (*VxlanV6TunnelDestinationIPMode_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{139, 0} } -type ControlState_Choice struct { +type RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ControlState_Choice) Reset() { - *x = ControlState_Choice{} +func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) Reset() { + *x = RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[868] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85849,13 +88214,13 @@ func (x *ControlState_Choice) Reset() { } } -func (x *ControlState_Choice) String() string { +func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ControlState_Choice) ProtoMessage() {} +func (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) ProtoMessage() {} -func (x *ControlState_Choice) ProtoReflect() protoreflect.Message { +func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[868] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85867,19 +88232,19 @@ func (x *ControlState_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ControlState_Choice.ProtoReflect.Descriptor instead. -func (*ControlState_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{228, 0} +// Deprecated: Use RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle.ProtoReflect.Descriptor instead. +func (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{150, 0} } -type StatePort_Choice struct { +type RsvpEro_PrependNeighborIp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StatePort_Choice) Reset() { - *x = StatePort_Choice{} +func (x *RsvpEro_PrependNeighborIp) Reset() { + *x = RsvpEro_PrependNeighborIp{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[869] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85887,13 +88252,13 @@ func (x *StatePort_Choice) Reset() { } } -func (x *StatePort_Choice) String() string { +func (x *RsvpEro_PrependNeighborIp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StatePort_Choice) ProtoMessage() {} +func (*RsvpEro_PrependNeighborIp) ProtoMessage() {} -func (x *StatePort_Choice) ProtoReflect() protoreflect.Message { +func (x *RsvpEro_PrependNeighborIp) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[869] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85905,19 +88270,19 @@ func (x *StatePort_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StatePort_Choice.ProtoReflect.Descriptor instead. -func (*StatePort_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{229, 0} +// Deprecated: Use RsvpEro_PrependNeighborIp.ProtoReflect.Descriptor instead. +func (*RsvpEro_PrependNeighborIp) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{156, 0} } -type StateTraffic_Choice struct { +type RsvpEroSubobject_Type struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StateTraffic_Choice) Reset() { - *x = StateTraffic_Choice{} +func (x *RsvpEroSubobject_Type) Reset() { + *x = RsvpEroSubobject_Type{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[870] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85925,13 +88290,13 @@ func (x *StateTraffic_Choice) Reset() { } } -func (x *StateTraffic_Choice) String() string { +func (x *RsvpEroSubobject_Type) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateTraffic_Choice) ProtoMessage() {} +func (*RsvpEroSubobject_Type) ProtoMessage() {} -func (x *StateTraffic_Choice) ProtoReflect() protoreflect.Message { +func (x *RsvpEroSubobject_Type) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[870] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85943,19 +88308,19 @@ func (x *StateTraffic_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateTraffic_Choice.ProtoReflect.Descriptor instead. -func (*StateTraffic_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{230, 0} +// Deprecated: Use RsvpEroSubobject_Type.ProtoReflect.Descriptor instead. +func (*RsvpEroSubobject_Type) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{157, 0} } -type StateProtocol_Choice struct { +type RsvpEroSubobject_HopType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StateProtocol_Choice) Reset() { - *x = StateProtocol_Choice{} +func (x *RsvpEroSubobject_HopType) Reset() { + *x = RsvpEroSubobject_HopType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[871] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85963,13 +88328,13 @@ func (x *StateProtocol_Choice) Reset() { } } -func (x *StateProtocol_Choice) String() string { +func (x *RsvpEroSubobject_HopType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocol_Choice) ProtoMessage() {} +func (*RsvpEroSubobject_HopType) ProtoMessage() {} -func (x *StateProtocol_Choice) ProtoReflect() protoreflect.Message { +func (x *RsvpEroSubobject_HopType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[871] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -85981,19 +88346,19 @@ func (x *StateProtocol_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateProtocol_Choice.ProtoReflect.Descriptor instead. -func (*StateProtocol_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{231, 0} +// Deprecated: Use RsvpEroSubobject_HopType.ProtoReflect.Descriptor instead. +func (*RsvpEroSubobject_HopType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{157, 1} } -type StatePortLink_State struct { +type FlowTxRx_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StatePortLink_State) Reset() { - *x = StatePortLink_State{} +func (x *FlowTxRx_Choice) Reset() { + *x = FlowTxRx_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[872] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86001,13 +88366,13 @@ func (x *StatePortLink_State) Reset() { } } -func (x *StatePortLink_State) String() string { +func (x *FlowTxRx_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StatePortLink_State) ProtoMessage() {} +func (*FlowTxRx_Choice) ProtoMessage() {} -func (x *StatePortLink_State) ProtoReflect() protoreflect.Message { +func (x *FlowTxRx_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[872] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86019,19 +88384,19 @@ func (x *StatePortLink_State) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StatePortLink_State.ProtoReflect.Descriptor instead. -func (*StatePortLink_State) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{232, 0} +// Deprecated: Use FlowTxRx_Choice.ProtoReflect.Descriptor instead. +func (*FlowTxRx_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{159, 0} } -type StatePortCapture_State struct { +type FlowRouter_Mode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StatePortCapture_State) Reset() { - *x = StatePortCapture_State{} +func (x *FlowRouter_Mode) Reset() { + *x = FlowRouter_Mode{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[873] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86039,13 +88404,13 @@ func (x *StatePortCapture_State) Reset() { } } -func (x *StatePortCapture_State) String() string { +func (x *FlowRouter_Mode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StatePortCapture_State) ProtoMessage() {} +func (*FlowRouter_Mode) ProtoMessage() {} -func (x *StatePortCapture_State) ProtoReflect() protoreflect.Message { +func (x *FlowRouter_Mode) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[873] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86057,19 +88422,19 @@ func (x *StatePortCapture_State) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StatePortCapture_State.ProtoReflect.Descriptor instead. -func (*StatePortCapture_State) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{233, 0} +// Deprecated: Use FlowRouter_Mode.ProtoReflect.Descriptor instead. +func (*FlowRouter_Mode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{161, 0} } -type StateTrafficFlowTransmit_State struct { +type FlowHeader_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StateTrafficFlowTransmit_State) Reset() { - *x = StateTrafficFlowTransmit_State{} +func (x *FlowHeader_Choice) Reset() { + *x = FlowHeader_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[874] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86077,13 +88442,13 @@ func (x *StateTrafficFlowTransmit_State) Reset() { } } -func (x *StateTrafficFlowTransmit_State) String() string { +func (x *FlowHeader_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateTrafficFlowTransmit_State) ProtoMessage() {} +func (*FlowHeader_Choice) ProtoMessage() {} -func (x *StateTrafficFlowTransmit_State) ProtoReflect() protoreflect.Message { +func (x *FlowHeader_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[874] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86095,19 +88460,19 @@ func (x *StateTrafficFlowTransmit_State) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateTrafficFlowTransmit_State.ProtoReflect.Descriptor instead. -func (*StateTrafficFlowTransmit_State) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{234, 0} +// Deprecated: Use FlowHeader_Choice.ProtoReflect.Descriptor instead. +func (*FlowHeader_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{162, 0} } -type StateProtocolAll_State struct { +type FlowIpv4Options_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StateProtocolAll_State) Reset() { - *x = StateProtocolAll_State{} +func (x *FlowIpv4Options_Choice) Reset() { + *x = FlowIpv4Options_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[875] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86115,13 +88480,13 @@ func (x *StateProtocolAll_State) Reset() { } } -func (x *StateProtocolAll_State) String() string { +func (x *FlowIpv4Options_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolAll_State) ProtoMessage() {} +func (*FlowIpv4Options_Choice) ProtoMessage() {} -func (x *StateProtocolAll_State) ProtoReflect() protoreflect.Message { +func (x *FlowIpv4Options_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[875] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86133,19 +88498,19 @@ func (x *StateProtocolAll_State) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateProtocolAll_State.ProtoReflect.Descriptor instead. -func (*StateProtocolAll_State) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{235, 0} +// Deprecated: Use FlowIpv4Options_Choice.ProtoReflect.Descriptor instead. +func (*FlowIpv4Options_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{169, 0} } -type StateProtocolRoute_State struct { +type FlowIpv4OptionsCustomLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StateProtocolRoute_State) Reset() { - *x = StateProtocolRoute_State{} +func (x *FlowIpv4OptionsCustomLength_Choice) Reset() { + *x = FlowIpv4OptionsCustomLength_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[876] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86153,13 +88518,13 @@ func (x *StateProtocolRoute_State) Reset() { } } -func (x *StateProtocolRoute_State) String() string { +func (x *FlowIpv4OptionsCustomLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolRoute_State) ProtoMessage() {} +func (*FlowIpv4OptionsCustomLength_Choice) ProtoMessage() {} -func (x *StateProtocolRoute_State) ProtoReflect() protoreflect.Message { +func (x *FlowIpv4OptionsCustomLength_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[876] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86171,19 +88536,19 @@ func (x *StateProtocolRoute_State) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateProtocolRoute_State.ProtoReflect.Descriptor instead. -func (*StateProtocolRoute_State) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{236, 0} +// Deprecated: Use FlowIpv4OptionsCustomLength_Choice.ProtoReflect.Descriptor instead. +func (*FlowIpv4OptionsCustomLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{172, 0} } -type StateProtocolLacp_Choice struct { +type FlowIpv4Priority_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StateProtocolLacp_Choice) Reset() { - *x = StateProtocolLacp_Choice{} +func (x *FlowIpv4Priority_Choice) Reset() { + *x = FlowIpv4Priority_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[877] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86191,13 +88556,13 @@ func (x *StateProtocolLacp_Choice) Reset() { } } -func (x *StateProtocolLacp_Choice) String() string { +func (x *FlowIpv4Priority_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolLacp_Choice) ProtoMessage() {} +func (*FlowIpv4Priority_Choice) ProtoMessage() {} -func (x *StateProtocolLacp_Choice) ProtoReflect() protoreflect.Message { +func (x *FlowIpv4Priority_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[877] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86209,19 +88574,19 @@ func (x *StateProtocolLacp_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateProtocolLacp_Choice.ProtoReflect.Descriptor instead. -func (*StateProtocolLacp_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{237, 0} +// Deprecated: Use FlowIpv4Priority_Choice.ProtoReflect.Descriptor instead. +func (*FlowIpv4Priority_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{173, 0} } -type StateProtocolLacpAdmin_State struct { +type FlowIcmp_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StateProtocolLacpAdmin_State) Reset() { - *x = StateProtocolLacpAdmin_State{} +func (x *FlowIcmp_Choice) Reset() { + *x = FlowIcmp_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[878] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86229,13 +88594,13 @@ func (x *StateProtocolLacpAdmin_State) Reset() { } } -func (x *StateProtocolLacpAdmin_State) String() string { +func (x *FlowIcmp_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolLacpAdmin_State) ProtoMessage() {} +func (*FlowIcmp_Choice) ProtoMessage() {} -func (x *StateProtocolLacpAdmin_State) ProtoReflect() protoreflect.Message { +func (x *FlowIcmp_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[878] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86247,19 +88612,19 @@ func (x *StateProtocolLacpAdmin_State) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateProtocolLacpAdmin_State.ProtoReflect.Descriptor instead. -func (*StateProtocolLacpAdmin_State) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{238, 0} +// Deprecated: Use FlowIcmp_Choice.ProtoReflect.Descriptor instead. +func (*FlowIcmp_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{186, 0} } -type StateProtocolLacpMemberPorts_State struct { +type FlowIcmpv6_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StateProtocolLacpMemberPorts_State) Reset() { - *x = StateProtocolLacpMemberPorts_State{} +func (x *FlowIcmpv6_Choice) Reset() { + *x = FlowIcmpv6_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[879] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86267,13 +88632,13 @@ func (x *StateProtocolLacpMemberPorts_State) Reset() { } } -func (x *StateProtocolLacpMemberPorts_State) String() string { +func (x *FlowIcmpv6_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolLacpMemberPorts_State) ProtoMessage() {} +func (*FlowIcmpv6_Choice) ProtoMessage() {} -func (x *StateProtocolLacpMemberPorts_State) ProtoReflect() protoreflect.Message { +func (x *FlowIcmpv6_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[879] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86285,19 +88650,19 @@ func (x *StateProtocolLacpMemberPorts_State) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use StateProtocolLacpMemberPorts_State.ProtoReflect.Descriptor instead. -func (*StateProtocolLacpMemberPorts_State) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{239, 0} +// Deprecated: Use FlowIcmpv6_Choice.ProtoReflect.Descriptor instead. +func (*FlowIcmpv6_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{188, 0} } -type StateProtocolBgp_Choice struct { +type FlowSnmpv2CData_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StateProtocolBgp_Choice) Reset() { - *x = StateProtocolBgp_Choice{} +func (x *FlowSnmpv2CData_Choice) Reset() { + *x = FlowSnmpv2CData_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[880] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86305,13 +88670,13 @@ func (x *StateProtocolBgp_Choice) Reset() { } } -func (x *StateProtocolBgp_Choice) String() string { +func (x *FlowSnmpv2CData_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolBgp_Choice) ProtoMessage() {} +func (*FlowSnmpv2CData_Choice) ProtoMessage() {} -func (x *StateProtocolBgp_Choice) ProtoReflect() protoreflect.Message { +func (x *FlowSnmpv2CData_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[880] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86323,19 +88688,19 @@ func (x *StateProtocolBgp_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateProtocolBgp_Choice.ProtoReflect.Descriptor instead. -func (*StateProtocolBgp_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{240, 0} +// Deprecated: Use FlowSnmpv2CData_Choice.ProtoReflect.Descriptor instead. +func (*FlowSnmpv2CData_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{194, 0} } -type StateProtocolBgpPeers_State struct { +type FlowSnmpv2CPDU_ErrorStatus struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StateProtocolBgpPeers_State) Reset() { - *x = StateProtocolBgpPeers_State{} +func (x *FlowSnmpv2CPDU_ErrorStatus) Reset() { + *x = FlowSnmpv2CPDU_ErrorStatus{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[881] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86343,13 +88708,13 @@ func (x *StateProtocolBgpPeers_State) Reset() { } } -func (x *StateProtocolBgpPeers_State) String() string { +func (x *FlowSnmpv2CPDU_ErrorStatus) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolBgpPeers_State) ProtoMessage() {} +func (*FlowSnmpv2CPDU_ErrorStatus) ProtoMessage() {} -func (x *StateProtocolBgpPeers_State) ProtoReflect() protoreflect.Message { +func (x *FlowSnmpv2CPDU_ErrorStatus) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[881] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86361,19 +88726,19 @@ func (x *StateProtocolBgpPeers_State) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateProtocolBgpPeers_State.ProtoReflect.Descriptor instead. -func (*StateProtocolBgpPeers_State) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{241, 0} +// Deprecated: Use FlowSnmpv2CPDU_ErrorStatus.ProtoReflect.Descriptor instead. +func (*FlowSnmpv2CPDU_ErrorStatus) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{195, 0} } -type StateProtocolIsis_Choice struct { +type FlowSnmpv2CVariableBindingValue_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StateProtocolIsis_Choice) Reset() { - *x = StateProtocolIsis_Choice{} +func (x *FlowSnmpv2CVariableBindingValue_Choice) Reset() { + *x = FlowSnmpv2CVariableBindingValue_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[882] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86381,13 +88746,13 @@ func (x *StateProtocolIsis_Choice) Reset() { } } -func (x *StateProtocolIsis_Choice) String() string { +func (x *FlowSnmpv2CVariableBindingValue_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolIsis_Choice) ProtoMessage() {} +func (*FlowSnmpv2CVariableBindingValue_Choice) ProtoMessage() {} -func (x *StateProtocolIsis_Choice) ProtoReflect() protoreflect.Message { +func (x *FlowSnmpv2CVariableBindingValue_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[882] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86399,19 +88764,19 @@ func (x *StateProtocolIsis_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateProtocolIsis_Choice.ProtoReflect.Descriptor instead. -func (*StateProtocolIsis_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{242, 0} +// Deprecated: Use FlowSnmpv2CVariableBindingValue_Choice.ProtoReflect.Descriptor instead. +func (*FlowSnmpv2CVariableBindingValue_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{198, 0} } -type StateProtocolIsisRouters_State struct { +type FlowSize_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StateProtocolIsisRouters_State) Reset() { - *x = StateProtocolIsisRouters_State{} +func (x *FlowSize_Choice) Reset() { + *x = FlowSize_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[883] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86419,13 +88784,13 @@ func (x *StateProtocolIsisRouters_State) Reset() { } } -func (x *StateProtocolIsisRouters_State) String() string { +func (x *FlowSize_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolIsisRouters_State) ProtoMessage() {} +func (*FlowSize_Choice) ProtoMessage() {} -func (x *StateProtocolIsisRouters_State) ProtoReflect() protoreflect.Message { +func (x *FlowSize_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[883] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86437,19 +88802,19 @@ func (x *StateProtocolIsisRouters_State) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateProtocolIsisRouters_State.ProtoReflect.Descriptor instead. -func (*StateProtocolIsisRouters_State) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{243, 0} +// Deprecated: Use FlowSize_Choice.ProtoReflect.Descriptor instead. +func (*FlowSize_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{199, 0} } -type ControlAction_Choice struct { +type FlowSizeWeightPairs_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ControlAction_Choice) Reset() { - *x = ControlAction_Choice{} +func (x *FlowSizeWeightPairs_Choice) Reset() { + *x = FlowSizeWeightPairs_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[884] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86457,13 +88822,13 @@ func (x *ControlAction_Choice) Reset() { } } -func (x *ControlAction_Choice) String() string { +func (x *FlowSizeWeightPairs_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ControlAction_Choice) ProtoMessage() {} +func (*FlowSizeWeightPairs_Choice) ProtoMessage() {} -func (x *ControlAction_Choice) ProtoReflect() protoreflect.Message { +func (x *FlowSizeWeightPairs_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[884] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86475,19 +88840,19 @@ func (x *ControlAction_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ControlAction_Choice.ProtoReflect.Descriptor instead. -func (*ControlAction_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{244, 0} +// Deprecated: Use FlowSizeWeightPairs_Choice.ProtoReflect.Descriptor instead. +func (*FlowSizeWeightPairs_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{202, 0} } -type ActionResponse_Choice struct { +type FlowSizeWeightPairs_Predefined struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionResponse_Choice) Reset() { - *x = ActionResponse_Choice{} +func (x *FlowSizeWeightPairs_Predefined) Reset() { + *x = FlowSizeWeightPairs_Predefined{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[885] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86495,13 +88860,13 @@ func (x *ActionResponse_Choice) Reset() { } } -func (x *ActionResponse_Choice) String() string { +func (x *FlowSizeWeightPairs_Predefined) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponse_Choice) ProtoMessage() {} +func (*FlowSizeWeightPairs_Predefined) ProtoMessage() {} -func (x *ActionResponse_Choice) ProtoReflect() protoreflect.Message { +func (x *FlowSizeWeightPairs_Predefined) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[885] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86513,19 +88878,19 @@ func (x *ActionResponse_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionResponse_Choice.ProtoReflect.Descriptor instead. -func (*ActionResponse_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{246, 0} +// Deprecated: Use FlowSizeWeightPairs_Predefined.ProtoReflect.Descriptor instead. +func (*FlowSizeWeightPairs_Predefined) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{202, 1} } -type ActionProtocol_Choice struct { +type FlowRate_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionProtocol_Choice) Reset() { - *x = ActionProtocol_Choice{} +func (x *FlowRate_Choice) Reset() { + *x = FlowRate_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[886] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86533,13 +88898,13 @@ func (x *ActionProtocol_Choice) Reset() { } } -func (x *ActionProtocol_Choice) String() string { +func (x *FlowRate_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocol_Choice) ProtoMessage() {} +func (*FlowRate_Choice) ProtoMessage() {} -func (x *ActionProtocol_Choice) ProtoReflect() protoreflect.Message { +func (x *FlowRate_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[886] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86551,19 +88916,19 @@ func (x *ActionProtocol_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionProtocol_Choice.ProtoReflect.Descriptor instead. -func (*ActionProtocol_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{247, 0} +// Deprecated: Use FlowRate_Choice.ProtoReflect.Descriptor instead. +func (*FlowRate_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{204, 0} } -type ActionResponseProtocol_Choice struct { +type FlowDuration_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionResponseProtocol_Choice) Reset() { - *x = ActionResponseProtocol_Choice{} +func (x *FlowDuration_Choice) Reset() { + *x = FlowDuration_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[887] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86571,13 +88936,13 @@ func (x *ActionResponseProtocol_Choice) Reset() { } } -func (x *ActionResponseProtocol_Choice) String() string { +func (x *FlowDuration_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocol_Choice) ProtoMessage() {} +func (*FlowDuration_Choice) ProtoMessage() {} -func (x *ActionResponseProtocol_Choice) ProtoReflect() protoreflect.Message { +func (x *FlowDuration_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[887] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86589,19 +88954,19 @@ func (x *ActionResponseProtocol_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionResponseProtocol_Choice.ProtoReflect.Descriptor instead. -func (*ActionResponseProtocol_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{248, 0} +// Deprecated: Use FlowDuration_Choice.ProtoReflect.Descriptor instead. +func (*FlowDuration_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{205, 0} } -type ActionProtocolIpv4_Choice struct { +type FlowDelay_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionProtocolIpv4_Choice) Reset() { - *x = ActionProtocolIpv4_Choice{} +func (x *FlowDelay_Choice) Reset() { + *x = FlowDelay_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[888] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86609,13 +88974,13 @@ func (x *ActionProtocolIpv4_Choice) Reset() { } } -func (x *ActionProtocolIpv4_Choice) String() string { +func (x *FlowDelay_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolIpv4_Choice) ProtoMessage() {} +func (*FlowDelay_Choice) ProtoMessage() {} -func (x *ActionProtocolIpv4_Choice) ProtoReflect() protoreflect.Message { +func (x *FlowDelay_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[888] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86627,19 +88992,19 @@ func (x *ActionProtocolIpv4_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionProtocolIpv4_Choice.ProtoReflect.Descriptor instead. -func (*ActionProtocolIpv4_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{249, 0} +// Deprecated: Use FlowDelay_Choice.ProtoReflect.Descriptor instead. +func (*FlowDelay_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{207, 0} } -type ActionResponseProtocolIpv4_Choice struct { +type FlowDurationInterBurstGap_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionResponseProtocolIpv4_Choice) Reset() { - *x = ActionResponseProtocolIpv4_Choice{} +func (x *FlowDurationInterBurstGap_Choice) Reset() { + *x = FlowDurationInterBurstGap_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[889] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86647,13 +89012,13 @@ func (x *ActionResponseProtocolIpv4_Choice) Reset() { } } -func (x *ActionResponseProtocolIpv4_Choice) String() string { +func (x *FlowDurationInterBurstGap_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocolIpv4_Choice) ProtoMessage() {} +func (*FlowDurationInterBurstGap_Choice) ProtoMessage() {} -func (x *ActionResponseProtocolIpv4_Choice) ProtoReflect() protoreflect.Message { +func (x *FlowDurationInterBurstGap_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[889] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86665,19 +89030,19 @@ func (x *ActionResponseProtocolIpv4_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use ActionResponseProtocolIpv4_Choice.ProtoReflect.Descriptor instead. -func (*ActionResponseProtocolIpv4_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{250, 0} +// Deprecated: Use FlowDurationInterBurstGap_Choice.ProtoReflect.Descriptor instead. +func (*FlowDurationInterBurstGap_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{211, 0} } -type ActionResponseProtocolIpv4PingResponse_Result struct { +type FlowLatencyMetrics_Mode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionResponseProtocolIpv4PingResponse_Result) Reset() { - *x = ActionResponseProtocolIpv4PingResponse_Result{} +func (x *FlowLatencyMetrics_Mode) Reset() { + *x = FlowLatencyMetrics_Mode{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[890] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86685,13 +89050,13 @@ func (x *ActionResponseProtocolIpv4PingResponse_Result) Reset() { } } -func (x *ActionResponseProtocolIpv4PingResponse_Result) String() string { +func (x *FlowLatencyMetrics_Mode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocolIpv4PingResponse_Result) ProtoMessage() {} +func (*FlowLatencyMetrics_Mode) ProtoMessage() {} -func (x *ActionResponseProtocolIpv4PingResponse_Result) ProtoReflect() protoreflect.Message { +func (x *FlowLatencyMetrics_Mode) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[890] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86703,19 +89068,19 @@ func (x *ActionResponseProtocolIpv4PingResponse_Result) ProtoReflect() protorefl return mi.MessageOf(x) } -// Deprecated: Use ActionResponseProtocolIpv4PingResponse_Result.ProtoReflect.Descriptor instead. -func (*ActionResponseProtocolIpv4PingResponse_Result) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{254, 0} +// Deprecated: Use FlowLatencyMetrics_Mode.ProtoReflect.Descriptor instead. +func (*FlowLatencyMetrics_Mode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{213, 0} } -type ActionProtocolIpv6_Choice struct { +type FlowRxTxRatio_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionProtocolIpv6_Choice) Reset() { - *x = ActionProtocolIpv6_Choice{} +func (x *FlowRxTxRatio_Choice) Reset() { + *x = FlowRxTxRatio_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[891] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86723,13 +89088,13 @@ func (x *ActionProtocolIpv6_Choice) Reset() { } } -func (x *ActionProtocolIpv6_Choice) String() string { +func (x *FlowRxTxRatio_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolIpv6_Choice) ProtoMessage() {} +func (*FlowRxTxRatio_Choice) ProtoMessage() {} -func (x *ActionProtocolIpv6_Choice) ProtoReflect() protoreflect.Message { +func (x *FlowRxTxRatio_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[891] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86741,19 +89106,19 @@ func (x *ActionProtocolIpv6_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionProtocolIpv6_Choice.ProtoReflect.Descriptor instead. -func (*ActionProtocolIpv6_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{255, 0} +// Deprecated: Use FlowRxTxRatio_Choice.ProtoReflect.Descriptor instead. +func (*FlowRxTxRatio_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{215, 0} } -type ActionResponseProtocolIpv6_Choice struct { +type EventRequest_Type struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionResponseProtocolIpv6_Choice) Reset() { - *x = ActionResponseProtocolIpv6_Choice{} +func (x *EventRequest_Type) Reset() { + *x = EventRequest_Type{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[892] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86761,13 +89126,13 @@ func (x *ActionResponseProtocolIpv6_Choice) Reset() { } } -func (x *ActionResponseProtocolIpv6_Choice) String() string { +func (x *EventRequest_Type) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocolIpv6_Choice) ProtoMessage() {} +func (*EventRequest_Type) ProtoMessage() {} -func (x *ActionResponseProtocolIpv6_Choice) ProtoReflect() protoreflect.Message { +func (x *EventRequest_Type) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[892] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86779,19 +89144,19 @@ func (x *ActionResponseProtocolIpv6_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use ActionResponseProtocolIpv6_Choice.ProtoReflect.Descriptor instead. -func (*ActionResponseProtocolIpv6_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{256, 0} +// Deprecated: Use EventRequest_Type.ProtoReflect.Descriptor instead. +func (*EventRequest_Type) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{221, 0} } -type ActionResponseProtocolIpv6PingResponse_Result struct { +type LldpConnection_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionResponseProtocolIpv6PingResponse_Result) Reset() { - *x = ActionResponseProtocolIpv6PingResponse_Result{} +func (x *LldpConnection_Choice) Reset() { + *x = LldpConnection_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[893] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86799,13 +89164,13 @@ func (x *ActionResponseProtocolIpv6PingResponse_Result) Reset() { } } -func (x *ActionResponseProtocolIpv6PingResponse_Result) String() string { +func (x *LldpConnection_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocolIpv6PingResponse_Result) ProtoMessage() {} +func (*LldpConnection_Choice) ProtoMessage() {} -func (x *ActionResponseProtocolIpv6PingResponse_Result) ProtoReflect() protoreflect.Message { +func (x *LldpConnection_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[893] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86817,19 +89182,19 @@ func (x *ActionResponseProtocolIpv6PingResponse_Result) ProtoReflect() protorefl return mi.MessageOf(x) } -// Deprecated: Use ActionResponseProtocolIpv6PingResponse_Result.ProtoReflect.Descriptor instead. -func (*ActionResponseProtocolIpv6PingResponse_Result) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{260, 0} +// Deprecated: Use LldpConnection_Choice.ProtoReflect.Descriptor instead. +func (*LldpConnection_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{224, 0} } -type ActionProtocolBgp_Choice struct { +type LldpChassisId_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionProtocolBgp_Choice) Reset() { - *x = ActionProtocolBgp_Choice{} +func (x *LldpChassisId_Choice) Reset() { + *x = LldpChassisId_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[894] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86837,13 +89202,13 @@ func (x *ActionProtocolBgp_Choice) Reset() { } } -func (x *ActionProtocolBgp_Choice) String() string { +func (x *LldpChassisId_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolBgp_Choice) ProtoMessage() {} +func (*LldpChassisId_Choice) ProtoMessage() {} -func (x *ActionProtocolBgp_Choice) ProtoReflect() protoreflect.Message { +func (x *LldpChassisId_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[894] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86855,19 +89220,19 @@ func (x *ActionProtocolBgp_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionProtocolBgp_Choice.ProtoReflect.Descriptor instead. -func (*ActionProtocolBgp_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{261, 0} +// Deprecated: Use LldpChassisId_Choice.ProtoReflect.Descriptor instead. +func (*LldpChassisId_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{225, 0} } -type ActionProtocolBgpNotification_Choice struct { +type LldpPortId_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionProtocolBgpNotification_Choice) Reset() { - *x = ActionProtocolBgpNotification_Choice{} +func (x *LldpPortId_Choice) Reset() { + *x = LldpPortId_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[895] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86875,13 +89240,13 @@ func (x *ActionProtocolBgpNotification_Choice) Reset() { } } -func (x *ActionProtocolBgpNotification_Choice) String() string { +func (x *LldpPortId_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolBgpNotification_Choice) ProtoMessage() {} +func (*LldpPortId_Choice) ProtoMessage() {} -func (x *ActionProtocolBgpNotification_Choice) ProtoReflect() protoreflect.Message { +func (x *LldpPortId_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[895] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86893,19 +89258,19 @@ func (x *ActionProtocolBgpNotification_Choice) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use ActionProtocolBgpNotification_Choice.ProtoReflect.Descriptor instead. -func (*ActionProtocolBgpNotification_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{262, 0} +// Deprecated: Use LldpPortId_Choice.ProtoReflect.Descriptor instead. +func (*LldpPortId_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{226, 0} } -type MetricsRequest_Choice struct { +type LldpChassisMacSubType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *MetricsRequest_Choice) Reset() { - *x = MetricsRequest_Choice{} +func (x *LldpChassisMacSubType_Choice) Reset() { + *x = LldpChassisMacSubType_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[896] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86913,13 +89278,13 @@ func (x *MetricsRequest_Choice) Reset() { } } -func (x *MetricsRequest_Choice) String() string { +func (x *LldpChassisMacSubType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MetricsRequest_Choice) ProtoMessage() {} +func (*LldpChassisMacSubType_Choice) ProtoMessage() {} -func (x *MetricsRequest_Choice) ProtoReflect() protoreflect.Message { +func (x *LldpChassisMacSubType_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[896] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86931,19 +89296,19 @@ func (x *MetricsRequest_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use MetricsRequest_Choice.ProtoReflect.Descriptor instead. -func (*MetricsRequest_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{264, 0} +// Deprecated: Use LldpChassisMacSubType_Choice.ProtoReflect.Descriptor instead. +func (*LldpChassisMacSubType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{227, 0} } -type MetricsResponse_Choice struct { +type LldpPortInterfaceNameSubType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *MetricsResponse_Choice) Reset() { - *x = MetricsResponse_Choice{} +func (x *LldpPortInterfaceNameSubType_Choice) Reset() { + *x = LldpPortInterfaceNameSubType_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[897] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86951,13 +89316,13 @@ func (x *MetricsResponse_Choice) Reset() { } } -func (x *MetricsResponse_Choice) String() string { +func (x *LldpPortInterfaceNameSubType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MetricsResponse_Choice) ProtoMessage() {} +func (*LldpPortInterfaceNameSubType_Choice) ProtoMessage() {} -func (x *MetricsResponse_Choice) ProtoReflect() protoreflect.Message { +func (x *LldpPortInterfaceNameSubType_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[897] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86969,19 +89334,19 @@ func (x *MetricsResponse_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use MetricsResponse_Choice.ProtoReflect.Descriptor instead. -func (*MetricsResponse_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{265, 0} +// Deprecated: Use LldpPortInterfaceNameSubType_Choice.ProtoReflect.Descriptor instead. +func (*LldpPortInterfaceNameSubType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{228, 0} } -type PortMetricsRequest_ColumnNames struct { +type LldpSystemName_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PortMetricsRequest_ColumnNames) Reset() { - *x = PortMetricsRequest_ColumnNames{} +func (x *LldpSystemName_Choice) Reset() { + *x = LldpSystemName_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[898] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86989,13 +89354,13 @@ func (x *PortMetricsRequest_ColumnNames) Reset() { } } -func (x *PortMetricsRequest_ColumnNames) String() string { +func (x *LldpSystemName_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PortMetricsRequest_ColumnNames) ProtoMessage() {} +func (*LldpSystemName_Choice) ProtoMessage() {} -func (x *PortMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { +func (x *LldpSystemName_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[898] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87007,19 +89372,19 @@ func (x *PortMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PortMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. -func (*PortMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{266, 0} +// Deprecated: Use LldpSystemName_Choice.ProtoReflect.Descriptor instead. +func (*LldpSystemName_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{229, 0} } -type PortMetric_Link struct { +type Error_Kind struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PortMetric_Link) Reset() { - *x = PortMetric_Link{} +func (x *Error_Kind) Reset() { + *x = Error_Kind{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[899] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87027,13 +89392,13 @@ func (x *PortMetric_Link) Reset() { } } -func (x *PortMetric_Link) String() string { +func (x *Error_Kind) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PortMetric_Link) ProtoMessage() {} +func (*Error_Kind) ProtoMessage() {} -func (x *PortMetric_Link) ProtoReflect() protoreflect.Message { +func (x *Error_Kind) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[899] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87045,19 +89410,19 @@ func (x *PortMetric_Link) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PortMetric_Link.ProtoReflect.Descriptor instead. -func (*PortMetric_Link) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{267, 0} +// Deprecated: Use Error_Kind.ProtoReflect.Descriptor instead. +func (*Error_Kind) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{230, 0} } -type PortMetric_Capture struct { +type ConfigUpdate_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PortMetric_Capture) Reset() { - *x = PortMetric_Capture{} +func (x *ConfigUpdate_Choice) Reset() { + *x = ConfigUpdate_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[900] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87065,13 +89430,13 @@ func (x *PortMetric_Capture) Reset() { } } -func (x *PortMetric_Capture) String() string { +func (x *ConfigUpdate_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PortMetric_Capture) ProtoMessage() {} +func (*ConfigUpdate_Choice) ProtoMessage() {} -func (x *PortMetric_Capture) ProtoReflect() protoreflect.Message { +func (x *ConfigUpdate_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[900] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87083,19 +89448,19 @@ func (x *PortMetric_Capture) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PortMetric_Capture.ProtoReflect.Descriptor instead. -func (*PortMetric_Capture) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{267, 1} +// Deprecated: Use ConfigUpdate_Choice.ProtoReflect.Descriptor instead. +func (*ConfigUpdate_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{232, 0} } -type PortMetric_Transmit struct { +type FlowsUpdate_PropertyNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PortMetric_Transmit) Reset() { - *x = PortMetric_Transmit{} +func (x *FlowsUpdate_PropertyNames) Reset() { + *x = FlowsUpdate_PropertyNames{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[901] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87103,13 +89468,13 @@ func (x *PortMetric_Transmit) Reset() { } } -func (x *PortMetric_Transmit) String() string { +func (x *FlowsUpdate_PropertyNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PortMetric_Transmit) ProtoMessage() {} +func (*FlowsUpdate_PropertyNames) ProtoMessage() {} -func (x *PortMetric_Transmit) ProtoReflect() protoreflect.Message { +func (x *FlowsUpdate_PropertyNames) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[901] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87121,19 +89486,19 @@ func (x *PortMetric_Transmit) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PortMetric_Transmit.ProtoReflect.Descriptor instead. -func (*PortMetric_Transmit) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{267, 2} +// Deprecated: Use FlowsUpdate_PropertyNames.ProtoReflect.Descriptor instead. +func (*FlowsUpdate_PropertyNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{233, 0} } -type FlowMetricsRequest_MetricNames struct { +type ControlState_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowMetricsRequest_MetricNames) Reset() { - *x = FlowMetricsRequest_MetricNames{} +func (x *ControlState_Choice) Reset() { + *x = ControlState_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[902] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87141,13 +89506,13 @@ func (x *FlowMetricsRequest_MetricNames) Reset() { } } -func (x *FlowMetricsRequest_MetricNames) String() string { +func (x *ControlState_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowMetricsRequest_MetricNames) ProtoMessage() {} +func (*ControlState_Choice) ProtoMessage() {} -func (x *FlowMetricsRequest_MetricNames) ProtoReflect() protoreflect.Message { +func (x *ControlState_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[902] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87159,19 +89524,19 @@ func (x *FlowMetricsRequest_MetricNames) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowMetricsRequest_MetricNames.ProtoReflect.Descriptor instead. -func (*FlowMetricsRequest_MetricNames) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{268, 0} +// Deprecated: Use ControlState_Choice.ProtoReflect.Descriptor instead. +func (*ControlState_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{234, 0} } -type FlowTaggedMetricsFilter_MetricNames struct { +type StatePort_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowTaggedMetricsFilter_MetricNames) Reset() { - *x = FlowTaggedMetricsFilter_MetricNames{} +func (x *StatePort_Choice) Reset() { + *x = StatePort_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[903] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87179,13 +89544,13 @@ func (x *FlowTaggedMetricsFilter_MetricNames) Reset() { } } -func (x *FlowTaggedMetricsFilter_MetricNames) String() string { +func (x *StatePort_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowTaggedMetricsFilter_MetricNames) ProtoMessage() {} +func (*StatePort_Choice) ProtoMessage() {} -func (x *FlowTaggedMetricsFilter_MetricNames) ProtoReflect() protoreflect.Message { +func (x *StatePort_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[903] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87197,19 +89562,19 @@ func (x *FlowTaggedMetricsFilter_MetricNames) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use FlowTaggedMetricsFilter_MetricNames.ProtoReflect.Descriptor instead. -func (*FlowTaggedMetricsFilter_MetricNames) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{269, 0} +// Deprecated: Use StatePort_Choice.ProtoReflect.Descriptor instead. +func (*StatePort_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{235, 0} } -type FlowMetric_Transmit struct { +type StateTraffic_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowMetric_Transmit) Reset() { - *x = FlowMetric_Transmit{} +func (x *StateTraffic_Choice) Reset() { + *x = StateTraffic_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[904] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87217,13 +89582,13 @@ func (x *FlowMetric_Transmit) Reset() { } } -func (x *FlowMetric_Transmit) String() string { +func (x *StateTraffic_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowMetric_Transmit) ProtoMessage() {} +func (*StateTraffic_Choice) ProtoMessage() {} -func (x *FlowMetric_Transmit) ProtoReflect() protoreflect.Message { +func (x *StateTraffic_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[904] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87235,19 +89600,19 @@ func (x *FlowMetric_Transmit) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowMetric_Transmit.ProtoReflect.Descriptor instead. -func (*FlowMetric_Transmit) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{271, 0} +// Deprecated: Use StateTraffic_Choice.ProtoReflect.Descriptor instead. +func (*StateTraffic_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{236, 0} } -type FlowMetricTagValue_Choice struct { +type StateProtocol_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowMetricTagValue_Choice) Reset() { - *x = FlowMetricTagValue_Choice{} +func (x *StateProtocol_Choice) Reset() { + *x = StateProtocol_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[905] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87255,13 +89620,13 @@ func (x *FlowMetricTagValue_Choice) Reset() { } } -func (x *FlowMetricTagValue_Choice) String() string { +func (x *StateProtocol_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowMetricTagValue_Choice) ProtoMessage() {} +func (*StateProtocol_Choice) ProtoMessage() {} -func (x *FlowMetricTagValue_Choice) ProtoReflect() protoreflect.Message { +func (x *StateProtocol_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[905] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87273,19 +89638,19 @@ func (x *FlowMetricTagValue_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowMetricTagValue_Choice.ProtoReflect.Descriptor instead. -func (*FlowMetricTagValue_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{274, 0} +// Deprecated: Use StateProtocol_Choice.ProtoReflect.Descriptor instead. +func (*StateProtocol_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{237, 0} } -type Bgpv4MetricsRequest_ColumnNames struct { +type StatePortLink_State struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *Bgpv4MetricsRequest_ColumnNames) Reset() { - *x = Bgpv4MetricsRequest_ColumnNames{} +func (x *StatePortLink_State) Reset() { + *x = StatePortLink_State{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[906] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87293,13 +89658,13 @@ func (x *Bgpv4MetricsRequest_ColumnNames) Reset() { } } -func (x *Bgpv4MetricsRequest_ColumnNames) String() string { +func (x *StatePortLink_State) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Bgpv4MetricsRequest_ColumnNames) ProtoMessage() {} +func (*StatePortLink_State) ProtoMessage() {} -func (x *Bgpv4MetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { +func (x *StatePortLink_State) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[906] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87311,19 +89676,19 @@ func (x *Bgpv4MetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Bgpv4MetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. -func (*Bgpv4MetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{277, 0} +// Deprecated: Use StatePortLink_State.ProtoReflect.Descriptor instead. +func (*StatePortLink_State) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{238, 0} } -type Bgpv4Metric_SessionState struct { +type StatePortCapture_State struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *Bgpv4Metric_SessionState) Reset() { - *x = Bgpv4Metric_SessionState{} +func (x *StatePortCapture_State) Reset() { + *x = StatePortCapture_State{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[907] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87331,13 +89696,13 @@ func (x *Bgpv4Metric_SessionState) Reset() { } } -func (x *Bgpv4Metric_SessionState) String() string { +func (x *StatePortCapture_State) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Bgpv4Metric_SessionState) ProtoMessage() {} +func (*StatePortCapture_State) ProtoMessage() {} -func (x *Bgpv4Metric_SessionState) ProtoReflect() protoreflect.Message { +func (x *StatePortCapture_State) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[907] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87349,19 +89714,19 @@ func (x *Bgpv4Metric_SessionState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Bgpv4Metric_SessionState.ProtoReflect.Descriptor instead. -func (*Bgpv4Metric_SessionState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{278, 0} +// Deprecated: Use StatePortCapture_State.ProtoReflect.Descriptor instead. +func (*StatePortCapture_State) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{239, 0} } -type Bgpv4Metric_FsmState struct { +type StateTrafficFlowTransmit_State struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *Bgpv4Metric_FsmState) Reset() { - *x = Bgpv4Metric_FsmState{} +func (x *StateTrafficFlowTransmit_State) Reset() { + *x = StateTrafficFlowTransmit_State{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[908] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87369,13 +89734,13 @@ func (x *Bgpv4Metric_FsmState) Reset() { } } -func (x *Bgpv4Metric_FsmState) String() string { +func (x *StateTrafficFlowTransmit_State) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Bgpv4Metric_FsmState) ProtoMessage() {} +func (*StateTrafficFlowTransmit_State) ProtoMessage() {} -func (x *Bgpv4Metric_FsmState) ProtoReflect() protoreflect.Message { +func (x *StateTrafficFlowTransmit_State) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[908] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87387,19 +89752,19 @@ func (x *Bgpv4Metric_FsmState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Bgpv4Metric_FsmState.ProtoReflect.Descriptor instead. -func (*Bgpv4Metric_FsmState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{278, 1} +// Deprecated: Use StateTrafficFlowTransmit_State.ProtoReflect.Descriptor instead. +func (*StateTrafficFlowTransmit_State) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{240, 0} } -type Bgpv6MetricsRequest_ColumnNames struct { +type StateProtocolAll_State struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *Bgpv6MetricsRequest_ColumnNames) Reset() { - *x = Bgpv6MetricsRequest_ColumnNames{} +func (x *StateProtocolAll_State) Reset() { + *x = StateProtocolAll_State{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[909] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87407,13 +89772,13 @@ func (x *Bgpv6MetricsRequest_ColumnNames) Reset() { } } -func (x *Bgpv6MetricsRequest_ColumnNames) String() string { +func (x *StateProtocolAll_State) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Bgpv6MetricsRequest_ColumnNames) ProtoMessage() {} +func (*StateProtocolAll_State) ProtoMessage() {} -func (x *Bgpv6MetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { +func (x *StateProtocolAll_State) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[909] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87425,19 +89790,19 @@ func (x *Bgpv6MetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Bgpv6MetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. -func (*Bgpv6MetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{279, 0} +// Deprecated: Use StateProtocolAll_State.ProtoReflect.Descriptor instead. +func (*StateProtocolAll_State) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{241, 0} } -type Bgpv6Metric_SessionState struct { +type StateProtocolRoute_State struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *Bgpv6Metric_SessionState) Reset() { - *x = Bgpv6Metric_SessionState{} +func (x *StateProtocolRoute_State) Reset() { + *x = StateProtocolRoute_State{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[910] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87445,13 +89810,13 @@ func (x *Bgpv6Metric_SessionState) Reset() { } } -func (x *Bgpv6Metric_SessionState) String() string { +func (x *StateProtocolRoute_State) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Bgpv6Metric_SessionState) ProtoMessage() {} +func (*StateProtocolRoute_State) ProtoMessage() {} -func (x *Bgpv6Metric_SessionState) ProtoReflect() protoreflect.Message { +func (x *StateProtocolRoute_State) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[910] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87463,19 +89828,19 @@ func (x *Bgpv6Metric_SessionState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Bgpv6Metric_SessionState.ProtoReflect.Descriptor instead. -func (*Bgpv6Metric_SessionState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{280, 0} +// Deprecated: Use StateProtocolRoute_State.ProtoReflect.Descriptor instead. +func (*StateProtocolRoute_State) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{242, 0} } -type Bgpv6Metric_FsmState struct { +type StateProtocolLacp_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *Bgpv6Metric_FsmState) Reset() { - *x = Bgpv6Metric_FsmState{} +func (x *StateProtocolLacp_Choice) Reset() { + *x = StateProtocolLacp_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[911] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87483,13 +89848,13 @@ func (x *Bgpv6Metric_FsmState) Reset() { } } -func (x *Bgpv6Metric_FsmState) String() string { +func (x *StateProtocolLacp_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Bgpv6Metric_FsmState) ProtoMessage() {} +func (*StateProtocolLacp_Choice) ProtoMessage() {} -func (x *Bgpv6Metric_FsmState) ProtoReflect() protoreflect.Message { +func (x *StateProtocolLacp_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[911] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87501,19 +89866,19 @@ func (x *Bgpv6Metric_FsmState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Bgpv6Metric_FsmState.ProtoReflect.Descriptor instead. -func (*Bgpv6Metric_FsmState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{280, 1} +// Deprecated: Use StateProtocolLacp_Choice.ProtoReflect.Descriptor instead. +func (*StateProtocolLacp_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{243, 0} } -type IsisMetricsRequest_ColumnNames struct { +type StateProtocolLacpAdmin_State struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *IsisMetricsRequest_ColumnNames) Reset() { - *x = IsisMetricsRequest_ColumnNames{} +func (x *StateProtocolLacpAdmin_State) Reset() { + *x = StateProtocolLacpAdmin_State{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[912] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87521,13 +89886,13 @@ func (x *IsisMetricsRequest_ColumnNames) Reset() { } } -func (x *IsisMetricsRequest_ColumnNames) String() string { +func (x *StateProtocolLacpAdmin_State) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisMetricsRequest_ColumnNames) ProtoMessage() {} +func (*StateProtocolLacpAdmin_State) ProtoMessage() {} -func (x *IsisMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { +func (x *StateProtocolLacpAdmin_State) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[912] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87539,19 +89904,19 @@ func (x *IsisMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. -func (*IsisMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{281, 0} +// Deprecated: Use StateProtocolLacpAdmin_State.ProtoReflect.Descriptor instead. +func (*StateProtocolLacpAdmin_State) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{244, 0} } -type LagMetricsRequest_ColumnNames struct { +type StateProtocolLacpMemberPorts_State struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LagMetricsRequest_ColumnNames) Reset() { - *x = LagMetricsRequest_ColumnNames{} +func (x *StateProtocolLacpMemberPorts_State) Reset() { + *x = StateProtocolLacpMemberPorts_State{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[913] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87559,13 +89924,13 @@ func (x *LagMetricsRequest_ColumnNames) Reset() { } } -func (x *LagMetricsRequest_ColumnNames) String() string { +func (x *StateProtocolLacpMemberPorts_State) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LagMetricsRequest_ColumnNames) ProtoMessage() {} +func (*StateProtocolLacpMemberPorts_State) ProtoMessage() {} -func (x *LagMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { +func (x *StateProtocolLacpMemberPorts_State) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[913] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87577,19 +89942,19 @@ func (x *LagMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LagMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. -func (*LagMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{283, 0} +// Deprecated: Use StateProtocolLacpMemberPorts_State.ProtoReflect.Descriptor instead. +func (*StateProtocolLacpMemberPorts_State) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{245, 0} } -type LagMetric_OperStatus struct { +type StateProtocolBgp_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LagMetric_OperStatus) Reset() { - *x = LagMetric_OperStatus{} +func (x *StateProtocolBgp_Choice) Reset() { + *x = StateProtocolBgp_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[914] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87597,13 +89962,13 @@ func (x *LagMetric_OperStatus) Reset() { } } -func (x *LagMetric_OperStatus) String() string { +func (x *StateProtocolBgp_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LagMetric_OperStatus) ProtoMessage() {} +func (*StateProtocolBgp_Choice) ProtoMessage() {} -func (x *LagMetric_OperStatus) ProtoReflect() protoreflect.Message { +func (x *StateProtocolBgp_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[914] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87615,19 +89980,19 @@ func (x *LagMetric_OperStatus) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LagMetric_OperStatus.ProtoReflect.Descriptor instead. -func (*LagMetric_OperStatus) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{284, 0} +// Deprecated: Use StateProtocolBgp_Choice.ProtoReflect.Descriptor instead. +func (*StateProtocolBgp_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{246, 0} } -type LacpMetricsRequest_ColumnNames struct { +type StateProtocolBgpPeers_State struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LacpMetricsRequest_ColumnNames) Reset() { - *x = LacpMetricsRequest_ColumnNames{} +func (x *StateProtocolBgpPeers_State) Reset() { + *x = StateProtocolBgpPeers_State{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[915] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87635,13 +90000,13 @@ func (x *LacpMetricsRequest_ColumnNames) Reset() { } } -func (x *LacpMetricsRequest_ColumnNames) String() string { +func (x *StateProtocolBgpPeers_State) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LacpMetricsRequest_ColumnNames) ProtoMessage() {} +func (*StateProtocolBgpPeers_State) ProtoMessage() {} -func (x *LacpMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { +func (x *StateProtocolBgpPeers_State) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[915] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87653,19 +90018,19 @@ func (x *LacpMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LacpMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. -func (*LacpMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{285, 0} +// Deprecated: Use StateProtocolBgpPeers_State.ProtoReflect.Descriptor instead. +func (*StateProtocolBgpPeers_State) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{247, 0} } -type LacpMetric_Activity struct { +type StateProtocolIsis_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LacpMetric_Activity) Reset() { - *x = LacpMetric_Activity{} +func (x *StateProtocolIsis_Choice) Reset() { + *x = StateProtocolIsis_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[916] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87673,13 +90038,13 @@ func (x *LacpMetric_Activity) Reset() { } } -func (x *LacpMetric_Activity) String() string { +func (x *StateProtocolIsis_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LacpMetric_Activity) ProtoMessage() {} +func (*StateProtocolIsis_Choice) ProtoMessage() {} -func (x *LacpMetric_Activity) ProtoReflect() protoreflect.Message { +func (x *StateProtocolIsis_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[916] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87691,19 +90056,19 @@ func (x *LacpMetric_Activity) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LacpMetric_Activity.ProtoReflect.Descriptor instead. -func (*LacpMetric_Activity) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{286, 0} +// Deprecated: Use StateProtocolIsis_Choice.ProtoReflect.Descriptor instead. +func (*StateProtocolIsis_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{248, 0} } -type LacpMetric_Timeout struct { +type StateProtocolIsisRouters_State struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LacpMetric_Timeout) Reset() { - *x = LacpMetric_Timeout{} +func (x *StateProtocolIsisRouters_State) Reset() { + *x = StateProtocolIsisRouters_State{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[917] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87711,13 +90076,13 @@ func (x *LacpMetric_Timeout) Reset() { } } -func (x *LacpMetric_Timeout) String() string { +func (x *StateProtocolIsisRouters_State) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LacpMetric_Timeout) ProtoMessage() {} +func (*StateProtocolIsisRouters_State) ProtoMessage() {} -func (x *LacpMetric_Timeout) ProtoReflect() protoreflect.Message { +func (x *StateProtocolIsisRouters_State) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[917] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87729,19 +90094,19 @@ func (x *LacpMetric_Timeout) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LacpMetric_Timeout.ProtoReflect.Descriptor instead. -func (*LacpMetric_Timeout) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{286, 1} +// Deprecated: Use StateProtocolIsisRouters_State.ProtoReflect.Descriptor instead. +func (*StateProtocolIsisRouters_State) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{249, 0} } -type LacpMetric_Synchronization struct { +type ControlAction_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LacpMetric_Synchronization) Reset() { - *x = LacpMetric_Synchronization{} +func (x *ControlAction_Choice) Reset() { + *x = ControlAction_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[918] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87749,13 +90114,13 @@ func (x *LacpMetric_Synchronization) Reset() { } } -func (x *LacpMetric_Synchronization) String() string { +func (x *ControlAction_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LacpMetric_Synchronization) ProtoMessage() {} +func (*ControlAction_Choice) ProtoMessage() {} -func (x *LacpMetric_Synchronization) ProtoReflect() protoreflect.Message { +func (x *ControlAction_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[918] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87767,19 +90132,19 @@ func (x *LacpMetric_Synchronization) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LacpMetric_Synchronization.ProtoReflect.Descriptor instead. -func (*LacpMetric_Synchronization) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{286, 2} +// Deprecated: Use ControlAction_Choice.ProtoReflect.Descriptor instead. +func (*ControlAction_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{250, 0} } -type LldpMetricsRequest_ColumnNames struct { +type ActionResponse_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpMetricsRequest_ColumnNames) Reset() { - *x = LldpMetricsRequest_ColumnNames{} +func (x *ActionResponse_Choice) Reset() { + *x = ActionResponse_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[919] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87787,13 +90152,13 @@ func (x *LldpMetricsRequest_ColumnNames) Reset() { } } -func (x *LldpMetricsRequest_ColumnNames) String() string { +func (x *ActionResponse_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpMetricsRequest_ColumnNames) ProtoMessage() {} +func (*ActionResponse_Choice) ProtoMessage() {} -func (x *LldpMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { +func (x *ActionResponse_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[919] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87805,19 +90170,19 @@ func (x *LldpMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. -func (*LldpMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{287, 0} +// Deprecated: Use ActionResponse_Choice.ProtoReflect.Descriptor instead. +func (*ActionResponse_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{252, 0} } -type RsvpMetricsRequest_ColumnNames struct { +type ActionProtocol_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *RsvpMetricsRequest_ColumnNames) Reset() { - *x = RsvpMetricsRequest_ColumnNames{} +func (x *ActionProtocol_Choice) Reset() { + *x = ActionProtocol_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[920] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87825,13 +90190,13 @@ func (x *RsvpMetricsRequest_ColumnNames) Reset() { } } -func (x *RsvpMetricsRequest_ColumnNames) String() string { +func (x *ActionProtocol_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpMetricsRequest_ColumnNames) ProtoMessage() {} +func (*ActionProtocol_Choice) ProtoMessage() {} -func (x *RsvpMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { +func (x *ActionProtocol_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[920] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87843,19 +90208,19 @@ func (x *RsvpMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. -func (*RsvpMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{289, 0} +// Deprecated: Use ActionProtocol_Choice.ProtoReflect.Descriptor instead. +func (*ActionProtocol_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{253, 0} } -type StatesRequest_Choice struct { +type ActionResponseProtocol_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StatesRequest_Choice) Reset() { - *x = StatesRequest_Choice{} +func (x *ActionResponseProtocol_Choice) Reset() { + *x = ActionResponseProtocol_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[921] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87863,13 +90228,13 @@ func (x *StatesRequest_Choice) Reset() { } } -func (x *StatesRequest_Choice) String() string { +func (x *ActionResponseProtocol_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StatesRequest_Choice) ProtoMessage() {} +func (*ActionResponseProtocol_Choice) ProtoMessage() {} -func (x *StatesRequest_Choice) ProtoReflect() protoreflect.Message { +func (x *ActionResponseProtocol_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[921] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87881,19 +90246,19 @@ func (x *StatesRequest_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StatesRequest_Choice.ProtoReflect.Descriptor instead. -func (*StatesRequest_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{291, 0} +// Deprecated: Use ActionResponseProtocol_Choice.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocol_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{254, 0} } -type StatesResponse_Choice struct { +type ActionProtocolIpv4_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StatesResponse_Choice) Reset() { - *x = StatesResponse_Choice{} +func (x *ActionProtocolIpv4_Choice) Reset() { + *x = ActionProtocolIpv4_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[922] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87901,13 +90266,13 @@ func (x *StatesResponse_Choice) Reset() { } } -func (x *StatesResponse_Choice) String() string { +func (x *ActionProtocolIpv4_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StatesResponse_Choice) ProtoMessage() {} +func (*ActionProtocolIpv4_Choice) ProtoMessage() {} -func (x *StatesResponse_Choice) ProtoReflect() protoreflect.Message { +func (x *ActionProtocolIpv4_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[922] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87919,19 +90284,19 @@ func (x *StatesResponse_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StatesResponse_Choice.ProtoReflect.Descriptor instead. -func (*StatesResponse_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{292, 0} +// Deprecated: Use ActionProtocolIpv4_Choice.ProtoReflect.Descriptor instead. +func (*ActionProtocolIpv4_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{255, 0} } -type BgpPrefixStateRequest_PrefixFilters struct { +type ActionResponseProtocolIpv4_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpPrefixStateRequest_PrefixFilters) Reset() { - *x = BgpPrefixStateRequest_PrefixFilters{} +func (x *ActionResponseProtocolIpv4_Choice) Reset() { + *x = ActionResponseProtocolIpv4_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[923] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87939,13 +90304,13 @@ func (x *BgpPrefixStateRequest_PrefixFilters) Reset() { } } -func (x *BgpPrefixStateRequest_PrefixFilters) String() string { +func (x *ActionResponseProtocolIpv4_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpPrefixStateRequest_PrefixFilters) ProtoMessage() {} +func (*ActionResponseProtocolIpv4_Choice) ProtoMessage() {} -func (x *BgpPrefixStateRequest_PrefixFilters) ProtoReflect() protoreflect.Message { +func (x *ActionResponseProtocolIpv4_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[923] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87957,19 +90322,19 @@ func (x *BgpPrefixStateRequest_PrefixFilters) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use BgpPrefixStateRequest_PrefixFilters.ProtoReflect.Descriptor instead. -func (*BgpPrefixStateRequest_PrefixFilters) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{297, 0} +// Deprecated: Use ActionResponseProtocolIpv4_Choice.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocolIpv4_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{256, 0} } -type BgpPrefixIpv4UnicastFilter_Origin struct { +type ActionResponseProtocolIpv4PingResponse_Result struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpPrefixIpv4UnicastFilter_Origin) Reset() { - *x = BgpPrefixIpv4UnicastFilter_Origin{} +func (x *ActionResponseProtocolIpv4PingResponse_Result) Reset() { + *x = ActionResponseProtocolIpv4PingResponse_Result{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[924] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87977,13 +90342,13 @@ func (x *BgpPrefixIpv4UnicastFilter_Origin) Reset() { } } -func (x *BgpPrefixIpv4UnicastFilter_Origin) String() string { +func (x *ActionResponseProtocolIpv4PingResponse_Result) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpPrefixIpv4UnicastFilter_Origin) ProtoMessage() {} +func (*ActionResponseProtocolIpv4PingResponse_Result) ProtoMessage() {} -func (x *BgpPrefixIpv4UnicastFilter_Origin) ProtoReflect() protoreflect.Message { +func (x *ActionResponseProtocolIpv4PingResponse_Result) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[924] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87995,19 +90360,19 @@ func (x *BgpPrefixIpv4UnicastFilter_Origin) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use BgpPrefixIpv4UnicastFilter_Origin.ProtoReflect.Descriptor instead. -func (*BgpPrefixIpv4UnicastFilter_Origin) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{298, 0} +// Deprecated: Use ActionResponseProtocolIpv4PingResponse_Result.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocolIpv4PingResponse_Result) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{260, 0} } -type BgpPrefixIpv6UnicastFilter_Origin struct { +type ActionProtocolIpv6_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpPrefixIpv6UnicastFilter_Origin) Reset() { - *x = BgpPrefixIpv6UnicastFilter_Origin{} +func (x *ActionProtocolIpv6_Choice) Reset() { + *x = ActionProtocolIpv6_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[925] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88015,13 +90380,13 @@ func (x *BgpPrefixIpv6UnicastFilter_Origin) Reset() { } } -func (x *BgpPrefixIpv6UnicastFilter_Origin) String() string { +func (x *ActionProtocolIpv6_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpPrefixIpv6UnicastFilter_Origin) ProtoMessage() {} +func (*ActionProtocolIpv6_Choice) ProtoMessage() {} -func (x *BgpPrefixIpv6UnicastFilter_Origin) ProtoReflect() protoreflect.Message { +func (x *ActionProtocolIpv6_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[925] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88033,19 +90398,19 @@ func (x *BgpPrefixIpv6UnicastFilter_Origin) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use BgpPrefixIpv6UnicastFilter_Origin.ProtoReflect.Descriptor instead. -func (*BgpPrefixIpv6UnicastFilter_Origin) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{299, 0} +// Deprecated: Use ActionProtocolIpv6_Choice.ProtoReflect.Descriptor instead. +func (*ActionProtocolIpv6_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{261, 0} } -type BgpPrefixIpv4UnicastState_Origin struct { +type ActionResponseProtocolIpv6_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpPrefixIpv4UnicastState_Origin) Reset() { - *x = BgpPrefixIpv4UnicastState_Origin{} +func (x *ActionResponseProtocolIpv6_Choice) Reset() { + *x = ActionResponseProtocolIpv6_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[926] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88053,13 +90418,13 @@ func (x *BgpPrefixIpv4UnicastState_Origin) Reset() { } } -func (x *BgpPrefixIpv4UnicastState_Origin) String() string { +func (x *ActionResponseProtocolIpv6_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpPrefixIpv4UnicastState_Origin) ProtoMessage() {} +func (*ActionResponseProtocolIpv6_Choice) ProtoMessage() {} -func (x *BgpPrefixIpv4UnicastState_Origin) ProtoReflect() protoreflect.Message { +func (x *ActionResponseProtocolIpv6_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[926] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88071,19 +90436,19 @@ func (x *BgpPrefixIpv4UnicastState_Origin) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpPrefixIpv4UnicastState_Origin.ProtoReflect.Descriptor instead. -func (*BgpPrefixIpv4UnicastState_Origin) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{301, 0} +// Deprecated: Use ActionResponseProtocolIpv6_Choice.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocolIpv6_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{262, 0} } -type BgpPrefixIpv6UnicastState_Origin struct { +type ActionResponseProtocolIpv6PingResponse_Result struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpPrefixIpv6UnicastState_Origin) Reset() { - *x = BgpPrefixIpv6UnicastState_Origin{} +func (x *ActionResponseProtocolIpv6PingResponse_Result) Reset() { + *x = ActionResponseProtocolIpv6PingResponse_Result{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[927] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88091,13 +90456,13 @@ func (x *BgpPrefixIpv6UnicastState_Origin) Reset() { } } -func (x *BgpPrefixIpv6UnicastState_Origin) String() string { +func (x *ActionResponseProtocolIpv6PingResponse_Result) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpPrefixIpv6UnicastState_Origin) ProtoMessage() {} +func (*ActionResponseProtocolIpv6PingResponse_Result) ProtoMessage() {} -func (x *BgpPrefixIpv6UnicastState_Origin) ProtoReflect() protoreflect.Message { +func (x *ActionResponseProtocolIpv6PingResponse_Result) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[927] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88109,19 +90474,19 @@ func (x *BgpPrefixIpv6UnicastState_Origin) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpPrefixIpv6UnicastState_Origin.ProtoReflect.Descriptor instead. -func (*BgpPrefixIpv6UnicastState_Origin) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{302, 0} +// Deprecated: Use ActionResponseProtocolIpv6PingResponse_Result.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocolIpv6PingResponse_Result) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{266, 0} } -type ResultBgpCommunity_Type struct { +type ActionProtocolBgp_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ResultBgpCommunity_Type) Reset() { - *x = ResultBgpCommunity_Type{} +func (x *ActionProtocolBgp_Choice) Reset() { + *x = ActionProtocolBgp_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[928] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88129,13 +90494,13 @@ func (x *ResultBgpCommunity_Type) Reset() { } } -func (x *ResultBgpCommunity_Type) String() string { +func (x *ActionProtocolBgp_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ResultBgpCommunity_Type) ProtoMessage() {} +func (*ActionProtocolBgp_Choice) ProtoMessage() {} -func (x *ResultBgpCommunity_Type) ProtoReflect() protoreflect.Message { +func (x *ActionProtocolBgp_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[928] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88147,19 +90512,19 @@ func (x *ResultBgpCommunity_Type) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ResultBgpCommunity_Type.ProtoReflect.Descriptor instead. -func (*ResultBgpCommunity_Type) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{303, 0} +// Deprecated: Use ActionProtocolBgp_Choice.ProtoReflect.Descriptor instead. +func (*ActionProtocolBgp_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{267, 0} } -type ResultBgpAsPathSegment_Type struct { +type ActionProtocolBgpNotification_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ResultBgpAsPathSegment_Type) Reset() { - *x = ResultBgpAsPathSegment_Type{} +func (x *ActionProtocolBgpNotification_Choice) Reset() { + *x = ActionProtocolBgpNotification_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[929] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88167,13 +90532,13 @@ func (x *ResultBgpAsPathSegment_Type) Reset() { } } -func (x *ResultBgpAsPathSegment_Type) String() string { +func (x *ActionProtocolBgpNotification_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ResultBgpAsPathSegment_Type) ProtoMessage() {} +func (*ActionProtocolBgpNotification_Choice) ProtoMessage() {} -func (x *ResultBgpAsPathSegment_Type) ProtoReflect() protoreflect.Message { +func (x *ActionProtocolBgpNotification_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[929] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88185,19 +90550,19 @@ func (x *ResultBgpAsPathSegment_Type) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ResultBgpAsPathSegment_Type.ProtoReflect.Descriptor instead. -func (*ResultBgpAsPathSegment_Type) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{305, 0} +// Deprecated: Use ActionProtocolBgpNotification_Choice.ProtoReflect.Descriptor instead. +func (*ActionProtocolBgpNotification_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{268, 0} } -type IsisLspState_PduType struct { +type MetricsRequest_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *IsisLspState_PduType) Reset() { - *x = IsisLspState_PduType{} +func (x *MetricsRequest_Choice) Reset() { + *x = MetricsRequest_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[930] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88205,13 +90570,13 @@ func (x *IsisLspState_PduType) Reset() { } } -func (x *IsisLspState_PduType) String() string { +func (x *MetricsRequest_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspState_PduType) ProtoMessage() {} +func (*MetricsRequest_Choice) ProtoMessage() {} -func (x *IsisLspState_PduType) ProtoReflect() protoreflect.Message { +func (x *MetricsRequest_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[930] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88223,19 +90588,19 @@ func (x *IsisLspState_PduType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspState_PduType.ProtoReflect.Descriptor instead. -func (*IsisLspState_PduType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{308, 0} +// Deprecated: Use MetricsRequest_Choice.ProtoReflect.Descriptor instead. +func (*MetricsRequest_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{270, 0} } -type IsisLspV4Prefix_RedistributionType struct { +type MetricsResponse_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *IsisLspV4Prefix_RedistributionType) Reset() { - *x = IsisLspV4Prefix_RedistributionType{} +func (x *MetricsResponse_Choice) Reset() { + *x = MetricsResponse_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[931] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88243,13 +90608,13 @@ func (x *IsisLspV4Prefix_RedistributionType) Reset() { } } -func (x *IsisLspV4Prefix_RedistributionType) String() string { +func (x *MetricsResponse_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspV4Prefix_RedistributionType) ProtoMessage() {} +func (*MetricsResponse_Choice) ProtoMessage() {} -func (x *IsisLspV4Prefix_RedistributionType) ProtoReflect() protoreflect.Message { +func (x *MetricsResponse_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[931] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88261,19 +90626,19 @@ func (x *IsisLspV4Prefix_RedistributionType) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use IsisLspV4Prefix_RedistributionType.ProtoReflect.Descriptor instead. -func (*IsisLspV4Prefix_RedistributionType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{317, 0} +// Deprecated: Use MetricsResponse_Choice.ProtoReflect.Descriptor instead. +func (*MetricsResponse_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{271, 0} } -type IsisLspV4Prefix_OriginType struct { +type PortMetricsRequest_ColumnNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *IsisLspV4Prefix_OriginType) Reset() { - *x = IsisLspV4Prefix_OriginType{} +func (x *PortMetricsRequest_ColumnNames) Reset() { + *x = PortMetricsRequest_ColumnNames{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[932] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88281,13 +90646,13 @@ func (x *IsisLspV4Prefix_OriginType) Reset() { } } -func (x *IsisLspV4Prefix_OriginType) String() string { +func (x *PortMetricsRequest_ColumnNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspV4Prefix_OriginType) ProtoMessage() {} +func (*PortMetricsRequest_ColumnNames) ProtoMessage() {} -func (x *IsisLspV4Prefix_OriginType) ProtoReflect() protoreflect.Message { +func (x *PortMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[932] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88299,19 +90664,19 @@ func (x *IsisLspV4Prefix_OriginType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspV4Prefix_OriginType.ProtoReflect.Descriptor instead. -func (*IsisLspV4Prefix_OriginType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{317, 1} +// Deprecated: Use PortMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. +func (*PortMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{272, 0} } -type IsisLspExtendedV4Prefix_RedistributionType struct { +type PortMetric_Link struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *IsisLspExtendedV4Prefix_RedistributionType) Reset() { - *x = IsisLspExtendedV4Prefix_RedistributionType{} +func (x *PortMetric_Link) Reset() { + *x = PortMetric_Link{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[933] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88319,13 +90684,13 @@ func (x *IsisLspExtendedV4Prefix_RedistributionType) Reset() { } } -func (x *IsisLspExtendedV4Prefix_RedistributionType) String() string { +func (x *PortMetric_Link) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspExtendedV4Prefix_RedistributionType) ProtoMessage() {} +func (*PortMetric_Link) ProtoMessage() {} -func (x *IsisLspExtendedV4Prefix_RedistributionType) ProtoReflect() protoreflect.Message { +func (x *PortMetric_Link) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[933] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88337,19 +90702,19 @@ func (x *IsisLspExtendedV4Prefix_RedistributionType) ProtoReflect() protoreflect return mi.MessageOf(x) } -// Deprecated: Use IsisLspExtendedV4Prefix_RedistributionType.ProtoReflect.Descriptor instead. -func (*IsisLspExtendedV4Prefix_RedistributionType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{319, 0} +// Deprecated: Use PortMetric_Link.ProtoReflect.Descriptor instead. +func (*PortMetric_Link) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{273, 0} } -type IsisLspV6Prefix_RedistributionType struct { +type PortMetric_Capture struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *IsisLspV6Prefix_RedistributionType) Reset() { - *x = IsisLspV6Prefix_RedistributionType{} +func (x *PortMetric_Capture) Reset() { + *x = PortMetric_Capture{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[934] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88357,13 +90722,13 @@ func (x *IsisLspV6Prefix_RedistributionType) Reset() { } } -func (x *IsisLspV6Prefix_RedistributionType) String() string { +func (x *PortMetric_Capture) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspV6Prefix_RedistributionType) ProtoMessage() {} +func (*PortMetric_Capture) ProtoMessage() {} -func (x *IsisLspV6Prefix_RedistributionType) ProtoReflect() protoreflect.Message { +func (x *PortMetric_Capture) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[934] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88375,19 +90740,19 @@ func (x *IsisLspV6Prefix_RedistributionType) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use IsisLspV6Prefix_RedistributionType.ProtoReflect.Descriptor instead. -func (*IsisLspV6Prefix_RedistributionType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{321, 0} +// Deprecated: Use PortMetric_Capture.ProtoReflect.Descriptor instead. +func (*PortMetric_Capture) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{273, 1} } -type IsisLspV6Prefix_OriginType struct { +type PortMetric_Transmit struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *IsisLspV6Prefix_OriginType) Reset() { - *x = IsisLspV6Prefix_OriginType{} +func (x *PortMetric_Transmit) Reset() { + *x = PortMetric_Transmit{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[935] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88395,13 +90760,13 @@ func (x *IsisLspV6Prefix_OriginType) Reset() { } } -func (x *IsisLspV6Prefix_OriginType) String() string { +func (x *PortMetric_Transmit) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspV6Prefix_OriginType) ProtoMessage() {} +func (*PortMetric_Transmit) ProtoMessage() {} -func (x *IsisLspV6Prefix_OriginType) ProtoReflect() protoreflect.Message { +func (x *PortMetric_Transmit) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[935] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88413,33 +90778,33 @@ func (x *IsisLspV6Prefix_OriginType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspV6Prefix_OriginType.ProtoReflect.Descriptor instead. -func (*IsisLspV6Prefix_OriginType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{321, 1} +// Deprecated: Use PortMetric_Transmit.ProtoReflect.Descriptor instead. +func (*PortMetric_Transmit) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{273, 2} } -type LldpNeighborsState_ChassisIdType struct { +type FlowMetricsRequest_MetricNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpNeighborsState_ChassisIdType) Reset() { - *x = LldpNeighborsState_ChassisIdType{} - if protoimpl.UnsafeEnabled { +func (x *FlowMetricsRequest_MetricNames) Reset() { + *x = FlowMetricsRequest_MetricNames{} + if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[936] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpNeighborsState_ChassisIdType) String() string { +func (x *FlowMetricsRequest_MetricNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpNeighborsState_ChassisIdType) ProtoMessage() {} +func (*FlowMetricsRequest_MetricNames) ProtoMessage() {} -func (x *LldpNeighborsState_ChassisIdType) ProtoReflect() protoreflect.Message { +func (x *FlowMetricsRequest_MetricNames) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[936] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88451,19 +90816,19 @@ func (x *LldpNeighborsState_ChassisIdType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpNeighborsState_ChassisIdType.ProtoReflect.Descriptor instead. -func (*LldpNeighborsState_ChassisIdType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{324, 0} +// Deprecated: Use FlowMetricsRequest_MetricNames.ProtoReflect.Descriptor instead. +func (*FlowMetricsRequest_MetricNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{274, 0} } -type LldpNeighborsState_PortIdType struct { +type FlowTaggedMetricsFilter_MetricNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpNeighborsState_PortIdType) Reset() { - *x = LldpNeighborsState_PortIdType{} +func (x *FlowTaggedMetricsFilter_MetricNames) Reset() { + *x = FlowTaggedMetricsFilter_MetricNames{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[937] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88471,13 +90836,13 @@ func (x *LldpNeighborsState_PortIdType) Reset() { } } -func (x *LldpNeighborsState_PortIdType) String() string { +func (x *FlowTaggedMetricsFilter_MetricNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpNeighborsState_PortIdType) ProtoMessage() {} +func (*FlowTaggedMetricsFilter_MetricNames) ProtoMessage() {} -func (x *LldpNeighborsState_PortIdType) ProtoReflect() protoreflect.Message { +func (x *FlowTaggedMetricsFilter_MetricNames) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[937] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88489,19 +90854,19 @@ func (x *LldpNeighborsState_PortIdType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpNeighborsState_PortIdType.ProtoReflect.Descriptor instead. -func (*LldpNeighborsState_PortIdType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{324, 1} +// Deprecated: Use FlowTaggedMetricsFilter_MetricNames.ProtoReflect.Descriptor instead. +func (*FlowTaggedMetricsFilter_MetricNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{275, 0} } -type LldpCapabilityState_CapabilityName struct { +type FlowMetric_Transmit struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpCapabilityState_CapabilityName) Reset() { - *x = LldpCapabilityState_CapabilityName{} +func (x *FlowMetric_Transmit) Reset() { + *x = FlowMetric_Transmit{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[938] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88509,13 +90874,13 @@ func (x *LldpCapabilityState_CapabilityName) Reset() { } } -func (x *LldpCapabilityState_CapabilityName) String() string { +func (x *FlowMetric_Transmit) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpCapabilityState_CapabilityName) ProtoMessage() {} +func (*FlowMetric_Transmit) ProtoMessage() {} -func (x *LldpCapabilityState_CapabilityName) ProtoReflect() protoreflect.Message { +func (x *FlowMetric_Transmit) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[938] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88527,19 +90892,19 @@ func (x *LldpCapabilityState_CapabilityName) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use LldpCapabilityState_CapabilityName.ProtoReflect.Descriptor instead. -func (*LldpCapabilityState_CapabilityName) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{326, 0} +// Deprecated: Use FlowMetric_Transmit.ProtoReflect.Descriptor instead. +func (*FlowMetric_Transmit) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{277, 0} } -type RsvpLspState_SessionStatus struct { +type FlowMetricTagValue_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *RsvpLspState_SessionStatus) Reset() { - *x = RsvpLspState_SessionStatus{} +func (x *FlowMetricTagValue_Choice) Reset() { + *x = FlowMetricTagValue_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[939] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88547,13 +90912,13 @@ func (x *RsvpLspState_SessionStatus) Reset() { } } -func (x *RsvpLspState_SessionStatus) String() string { +func (x *FlowMetricTagValue_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpLspState_SessionStatus) ProtoMessage() {} +func (*FlowMetricTagValue_Choice) ProtoMessage() {} -func (x *RsvpLspState_SessionStatus) ProtoReflect() protoreflect.Message { +func (x *FlowMetricTagValue_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[939] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88565,19 +90930,19 @@ func (x *RsvpLspState_SessionStatus) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpLspState_SessionStatus.ProtoReflect.Descriptor instead. -func (*RsvpLspState_SessionStatus) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{330, 0} +// Deprecated: Use FlowMetricTagValue_Choice.ProtoReflect.Descriptor instead. +func (*FlowMetricTagValue_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{280, 0} } -type RsvpLspState_LastFlapReason struct { +type Bgpv4MetricsRequest_ColumnNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *RsvpLspState_LastFlapReason) Reset() { - *x = RsvpLspState_LastFlapReason{} +func (x *Bgpv4MetricsRequest_ColumnNames) Reset() { + *x = Bgpv4MetricsRequest_ColumnNames{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[940] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88585,13 +90950,13 @@ func (x *RsvpLspState_LastFlapReason) Reset() { } } -func (x *RsvpLspState_LastFlapReason) String() string { +func (x *Bgpv4MetricsRequest_ColumnNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpLspState_LastFlapReason) ProtoMessage() {} +func (*Bgpv4MetricsRequest_ColumnNames) ProtoMessage() {} -func (x *RsvpLspState_LastFlapReason) ProtoReflect() protoreflect.Message { +func (x *Bgpv4MetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[940] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88603,19 +90968,19 @@ func (x *RsvpLspState_LastFlapReason) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpLspState_LastFlapReason.ProtoReflect.Descriptor instead. -func (*RsvpLspState_LastFlapReason) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{330, 1} +// Deprecated: Use Bgpv4MetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. +func (*Bgpv4MetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{283, 0} } -type RsvpLspIpv4Ero_Type struct { +type Bgpv4Metric_SessionState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *RsvpLspIpv4Ero_Type) Reset() { - *x = RsvpLspIpv4Ero_Type{} +func (x *Bgpv4Metric_SessionState) Reset() { + *x = Bgpv4Metric_SessionState{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[941] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88623,13 +90988,13 @@ func (x *RsvpLspIpv4Ero_Type) Reset() { } } -func (x *RsvpLspIpv4Ero_Type) String() string { +func (x *Bgpv4Metric_SessionState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpLspIpv4Ero_Type) ProtoMessage() {} +func (*Bgpv4Metric_SessionState) ProtoMessage() {} -func (x *RsvpLspIpv4Ero_Type) ProtoReflect() protoreflect.Message { +func (x *Bgpv4Metric_SessionState) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[941] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88641,19 +91006,19 @@ func (x *RsvpLspIpv4Ero_Type) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpLspIpv4Ero_Type.ProtoReflect.Descriptor instead. -func (*RsvpLspIpv4Ero_Type) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{332, 0} +// Deprecated: Use Bgpv4Metric_SessionState.ProtoReflect.Descriptor instead. +func (*Bgpv4Metric_SessionState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{284, 0} } -type PatternFlowEthernetDst_Choice struct { +type Bgpv4Metric_FsmState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowEthernetDst_Choice) Reset() { - *x = PatternFlowEthernetDst_Choice{} +func (x *Bgpv4Metric_FsmState) Reset() { + *x = Bgpv4Metric_FsmState{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[942] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88661,13 +91026,13 @@ func (x *PatternFlowEthernetDst_Choice) Reset() { } } -func (x *PatternFlowEthernetDst_Choice) String() string { +func (x *Bgpv4Metric_FsmState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetDst_Choice) ProtoMessage() {} +func (*Bgpv4Metric_FsmState) ProtoMessage() {} -func (x *PatternFlowEthernetDst_Choice) ProtoReflect() protoreflect.Message { +func (x *Bgpv4Metric_FsmState) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[942] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88679,19 +91044,19 @@ func (x *PatternFlowEthernetDst_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetDst_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetDst_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{336, 0} +// Deprecated: Use Bgpv4Metric_FsmState.ProtoReflect.Descriptor instead. +func (*Bgpv4Metric_FsmState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{284, 1} } -type PatternFlowEthernetSrc_Choice struct { +type Bgpv6MetricsRequest_ColumnNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowEthernetSrc_Choice) Reset() { - *x = PatternFlowEthernetSrc_Choice{} +func (x *Bgpv6MetricsRequest_ColumnNames) Reset() { + *x = Bgpv6MetricsRequest_ColumnNames{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[943] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88699,13 +91064,13 @@ func (x *PatternFlowEthernetSrc_Choice) Reset() { } } -func (x *PatternFlowEthernetSrc_Choice) String() string { +func (x *Bgpv6MetricsRequest_ColumnNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetSrc_Choice) ProtoMessage() {} +func (*Bgpv6MetricsRequest_ColumnNames) ProtoMessage() {} -func (x *PatternFlowEthernetSrc_Choice) ProtoReflect() protoreflect.Message { +func (x *Bgpv6MetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[943] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88717,19 +91082,19 @@ func (x *PatternFlowEthernetSrc_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetSrc_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetSrc_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{339, 0} +// Deprecated: Use Bgpv6MetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. +func (*Bgpv6MetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{285, 0} } -type PatternFlowEthernetEtherType_Choice struct { +type Bgpv6Metric_SessionState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowEthernetEtherType_Choice) Reset() { - *x = PatternFlowEthernetEtherType_Choice{} +func (x *Bgpv6Metric_SessionState) Reset() { + *x = Bgpv6Metric_SessionState{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[944] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88737,13 +91102,13 @@ func (x *PatternFlowEthernetEtherType_Choice) Reset() { } } -func (x *PatternFlowEthernetEtherType_Choice) String() string { +func (x *Bgpv6Metric_SessionState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetEtherType_Choice) ProtoMessage() {} +func (*Bgpv6Metric_SessionState) ProtoMessage() {} -func (x *PatternFlowEthernetEtherType_Choice) ProtoReflect() protoreflect.Message { +func (x *Bgpv6Metric_SessionState) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[944] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88755,19 +91120,19 @@ func (x *PatternFlowEthernetEtherType_Choice) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetEtherType_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetEtherType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{342, 0} +// Deprecated: Use Bgpv6Metric_SessionState.ProtoReflect.Descriptor instead. +func (*Bgpv6Metric_SessionState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{286, 0} } -type PatternFlowEthernetPfcQueue_Choice struct { +type Bgpv6Metric_FsmState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowEthernetPfcQueue_Choice) Reset() { - *x = PatternFlowEthernetPfcQueue_Choice{} +func (x *Bgpv6Metric_FsmState) Reset() { + *x = Bgpv6Metric_FsmState{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[945] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88775,13 +91140,13 @@ func (x *PatternFlowEthernetPfcQueue_Choice) Reset() { } } -func (x *PatternFlowEthernetPfcQueue_Choice) String() string { +func (x *Bgpv6Metric_FsmState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPfcQueue_Choice) ProtoMessage() {} +func (*Bgpv6Metric_FsmState) ProtoMessage() {} -func (x *PatternFlowEthernetPfcQueue_Choice) ProtoReflect() protoreflect.Message { +func (x *Bgpv6Metric_FsmState) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[945] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88793,19 +91158,19 @@ func (x *PatternFlowEthernetPfcQueue_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPfcQueue_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPfcQueue_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{345, 0} +// Deprecated: Use Bgpv6Metric_FsmState.ProtoReflect.Descriptor instead. +func (*Bgpv6Metric_FsmState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{286, 1} } -type PatternFlowVlanPriority_Choice struct { +type IsisMetricsRequest_ColumnNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowVlanPriority_Choice) Reset() { - *x = PatternFlowVlanPriority_Choice{} +func (x *IsisMetricsRequest_ColumnNames) Reset() { + *x = IsisMetricsRequest_ColumnNames{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[946] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88813,13 +91178,13 @@ func (x *PatternFlowVlanPriority_Choice) Reset() { } } -func (x *PatternFlowVlanPriority_Choice) String() string { +func (x *IsisMetricsRequest_ColumnNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanPriority_Choice) ProtoMessage() {} +func (*IsisMetricsRequest_ColumnNames) ProtoMessage() {} -func (x *PatternFlowVlanPriority_Choice) ProtoReflect() protoreflect.Message { +func (x *IsisMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[946] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88831,19 +91196,19 @@ func (x *PatternFlowVlanPriority_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanPriority_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanPriority_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{348, 0} +// Deprecated: Use IsisMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. +func (*IsisMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{287, 0} } -type PatternFlowVlanCfi_Choice struct { +type LagMetricsRequest_ColumnNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowVlanCfi_Choice) Reset() { - *x = PatternFlowVlanCfi_Choice{} +func (x *LagMetricsRequest_ColumnNames) Reset() { + *x = LagMetricsRequest_ColumnNames{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[947] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88851,13 +91216,13 @@ func (x *PatternFlowVlanCfi_Choice) Reset() { } } -func (x *PatternFlowVlanCfi_Choice) String() string { +func (x *LagMetricsRequest_ColumnNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanCfi_Choice) ProtoMessage() {} +func (*LagMetricsRequest_ColumnNames) ProtoMessage() {} -func (x *PatternFlowVlanCfi_Choice) ProtoReflect() protoreflect.Message { +func (x *LagMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[947] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88869,19 +91234,19 @@ func (x *PatternFlowVlanCfi_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanCfi_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanCfi_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{351, 0} +// Deprecated: Use LagMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. +func (*LagMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{289, 0} } -type PatternFlowVlanId_Choice struct { +type LagMetric_OperStatus struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowVlanId_Choice) Reset() { - *x = PatternFlowVlanId_Choice{} +func (x *LagMetric_OperStatus) Reset() { + *x = LagMetric_OperStatus{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[948] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88889,13 +91254,13 @@ func (x *PatternFlowVlanId_Choice) Reset() { } } -func (x *PatternFlowVlanId_Choice) String() string { +func (x *LagMetric_OperStatus) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanId_Choice) ProtoMessage() {} +func (*LagMetric_OperStatus) ProtoMessage() {} -func (x *PatternFlowVlanId_Choice) ProtoReflect() protoreflect.Message { +func (x *LagMetric_OperStatus) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[948] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88907,19 +91272,19 @@ func (x *PatternFlowVlanId_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanId_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanId_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{354, 0} +// Deprecated: Use LagMetric_OperStatus.ProtoReflect.Descriptor instead. +func (*LagMetric_OperStatus) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{290, 0} } -type PatternFlowVlanTpid_Choice struct { +type LacpMetricsRequest_ColumnNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowVlanTpid_Choice) Reset() { - *x = PatternFlowVlanTpid_Choice{} +func (x *LacpMetricsRequest_ColumnNames) Reset() { + *x = LacpMetricsRequest_ColumnNames{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[949] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88927,13 +91292,13 @@ func (x *PatternFlowVlanTpid_Choice) Reset() { } } -func (x *PatternFlowVlanTpid_Choice) String() string { +func (x *LacpMetricsRequest_ColumnNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanTpid_Choice) ProtoMessage() {} +func (*LacpMetricsRequest_ColumnNames) ProtoMessage() {} -func (x *PatternFlowVlanTpid_Choice) ProtoReflect() protoreflect.Message { +func (x *LacpMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[949] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88945,19 +91310,19 @@ func (x *PatternFlowVlanTpid_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanTpid_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanTpid_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{357, 0} +// Deprecated: Use LacpMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. +func (*LacpMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{291, 0} } -type PatternFlowVxlanFlags_Choice struct { +type LacpMetric_Activity struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowVxlanFlags_Choice) Reset() { - *x = PatternFlowVxlanFlags_Choice{} +func (x *LacpMetric_Activity) Reset() { + *x = LacpMetric_Activity{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[950] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88965,13 +91330,13 @@ func (x *PatternFlowVxlanFlags_Choice) Reset() { } } -func (x *PatternFlowVxlanFlags_Choice) String() string { +func (x *LacpMetric_Activity) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanFlags_Choice) ProtoMessage() {} +func (*LacpMetric_Activity) ProtoMessage() {} -func (x *PatternFlowVxlanFlags_Choice) ProtoReflect() protoreflect.Message { +func (x *LacpMetric_Activity) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[950] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88983,19 +91348,19 @@ func (x *PatternFlowVxlanFlags_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanFlags_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanFlags_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{360, 0} +// Deprecated: Use LacpMetric_Activity.ProtoReflect.Descriptor instead. +func (*LacpMetric_Activity) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{292, 0} } -type PatternFlowVxlanReserved0_Choice struct { +type LacpMetric_Timeout struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowVxlanReserved0_Choice) Reset() { - *x = PatternFlowVxlanReserved0_Choice{} +func (x *LacpMetric_Timeout) Reset() { + *x = LacpMetric_Timeout{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[951] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89003,13 +91368,13 @@ func (x *PatternFlowVxlanReserved0_Choice) Reset() { } } -func (x *PatternFlowVxlanReserved0_Choice) String() string { +func (x *LacpMetric_Timeout) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanReserved0_Choice) ProtoMessage() {} +func (*LacpMetric_Timeout) ProtoMessage() {} -func (x *PatternFlowVxlanReserved0_Choice) ProtoReflect() protoreflect.Message { +func (x *LacpMetric_Timeout) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[951] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89021,19 +91386,19 @@ func (x *PatternFlowVxlanReserved0_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanReserved0_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanReserved0_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{363, 0} +// Deprecated: Use LacpMetric_Timeout.ProtoReflect.Descriptor instead. +func (*LacpMetric_Timeout) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{292, 1} } -type PatternFlowVxlanVni_Choice struct { +type LacpMetric_Synchronization struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowVxlanVni_Choice) Reset() { - *x = PatternFlowVxlanVni_Choice{} +func (x *LacpMetric_Synchronization) Reset() { + *x = LacpMetric_Synchronization{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[952] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89041,13 +91406,13 @@ func (x *PatternFlowVxlanVni_Choice) Reset() { } } -func (x *PatternFlowVxlanVni_Choice) String() string { +func (x *LacpMetric_Synchronization) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanVni_Choice) ProtoMessage() {} +func (*LacpMetric_Synchronization) ProtoMessage() {} -func (x *PatternFlowVxlanVni_Choice) ProtoReflect() protoreflect.Message { +func (x *LacpMetric_Synchronization) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[952] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89059,19 +91424,19 @@ func (x *PatternFlowVxlanVni_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanVni_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanVni_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{366, 0} +// Deprecated: Use LacpMetric_Synchronization.ProtoReflect.Descriptor instead. +func (*LacpMetric_Synchronization) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{292, 2} } -type PatternFlowVxlanReserved1_Choice struct { +type LldpMetricsRequest_ColumnNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowVxlanReserved1_Choice) Reset() { - *x = PatternFlowVxlanReserved1_Choice{} +func (x *LldpMetricsRequest_ColumnNames) Reset() { + *x = LldpMetricsRequest_ColumnNames{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[953] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89079,13 +91444,13 @@ func (x *PatternFlowVxlanReserved1_Choice) Reset() { } } -func (x *PatternFlowVxlanReserved1_Choice) String() string { +func (x *LldpMetricsRequest_ColumnNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanReserved1_Choice) ProtoMessage() {} +func (*LldpMetricsRequest_ColumnNames) ProtoMessage() {} -func (x *PatternFlowVxlanReserved1_Choice) ProtoReflect() protoreflect.Message { +func (x *LldpMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[953] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89097,19 +91462,19 @@ func (x *PatternFlowVxlanReserved1_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanReserved1_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanReserved1_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{369, 0} +// Deprecated: Use LldpMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. +func (*LldpMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{293, 0} } -type PatternFlowIpv4Version_Choice struct { +type RsvpMetricsRequest_ColumnNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4Version_Choice) Reset() { - *x = PatternFlowIpv4Version_Choice{} +func (x *RsvpMetricsRequest_ColumnNames) Reset() { + *x = RsvpMetricsRequest_ColumnNames{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[954] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89117,13 +91482,13 @@ func (x *PatternFlowIpv4Version_Choice) Reset() { } } -func (x *PatternFlowIpv4Version_Choice) String() string { +func (x *RsvpMetricsRequest_ColumnNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Version_Choice) ProtoMessage() {} +func (*RsvpMetricsRequest_ColumnNames) ProtoMessage() {} -func (x *PatternFlowIpv4Version_Choice) ProtoReflect() protoreflect.Message { +func (x *RsvpMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[954] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89135,19 +91500,19 @@ func (x *PatternFlowIpv4Version_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4Version_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4Version_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{372, 0} +// Deprecated: Use RsvpMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. +func (*RsvpMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{295, 0} } -type PatternFlowIpv4HeaderLength_Choice struct { +type StatesRequest_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4HeaderLength_Choice) Reset() { - *x = PatternFlowIpv4HeaderLength_Choice{} +func (x *StatesRequest_Choice) Reset() { + *x = StatesRequest_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[955] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89155,13 +91520,13 @@ func (x *PatternFlowIpv4HeaderLength_Choice) Reset() { } } -func (x *PatternFlowIpv4HeaderLength_Choice) String() string { +func (x *StatesRequest_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4HeaderLength_Choice) ProtoMessage() {} +func (*StatesRequest_Choice) ProtoMessage() {} -func (x *PatternFlowIpv4HeaderLength_Choice) ProtoReflect() protoreflect.Message { +func (x *StatesRequest_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[955] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89173,19 +91538,19 @@ func (x *PatternFlowIpv4HeaderLength_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4HeaderLength_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4HeaderLength_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{375, 0} +// Deprecated: Use StatesRequest_Choice.ProtoReflect.Descriptor instead. +func (*StatesRequest_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{297, 0} } -type PatternFlowIpv4TotalLength_Choice struct { +type StatesResponse_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4TotalLength_Choice) Reset() { - *x = PatternFlowIpv4TotalLength_Choice{} +func (x *StatesResponse_Choice) Reset() { + *x = StatesResponse_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[956] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89193,13 +91558,13 @@ func (x *PatternFlowIpv4TotalLength_Choice) Reset() { } } -func (x *PatternFlowIpv4TotalLength_Choice) String() string { +func (x *StatesResponse_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TotalLength_Choice) ProtoMessage() {} +func (*StatesResponse_Choice) ProtoMessage() {} -func (x *PatternFlowIpv4TotalLength_Choice) ProtoReflect() protoreflect.Message { +func (x *StatesResponse_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[956] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89211,19 +91576,19 @@ func (x *PatternFlowIpv4TotalLength_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TotalLength_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TotalLength_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{378, 0} +// Deprecated: Use StatesResponse_Choice.ProtoReflect.Descriptor instead. +func (*StatesResponse_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{298, 0} } -type PatternFlowIpv4Identification_Choice struct { +type BgpPrefixStateRequest_PrefixFilters struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4Identification_Choice) Reset() { - *x = PatternFlowIpv4Identification_Choice{} +func (x *BgpPrefixStateRequest_PrefixFilters) Reset() { + *x = BgpPrefixStateRequest_PrefixFilters{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[957] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89231,13 +91596,13 @@ func (x *PatternFlowIpv4Identification_Choice) Reset() { } } -func (x *PatternFlowIpv4Identification_Choice) String() string { +func (x *BgpPrefixStateRequest_PrefixFilters) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Identification_Choice) ProtoMessage() {} +func (*BgpPrefixStateRequest_PrefixFilters) ProtoMessage() {} -func (x *PatternFlowIpv4Identification_Choice) ProtoReflect() protoreflect.Message { +func (x *BgpPrefixStateRequest_PrefixFilters) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[957] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89249,19 +91614,19 @@ func (x *PatternFlowIpv4Identification_Choice) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4Identification_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4Identification_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{381, 0} +// Deprecated: Use BgpPrefixStateRequest_PrefixFilters.ProtoReflect.Descriptor instead. +func (*BgpPrefixStateRequest_PrefixFilters) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{303, 0} } -type PatternFlowIpv4Reserved_Choice struct { +type BgpPrefixIpv4UnicastFilter_Origin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4Reserved_Choice) Reset() { - *x = PatternFlowIpv4Reserved_Choice{} +func (x *BgpPrefixIpv4UnicastFilter_Origin) Reset() { + *x = BgpPrefixIpv4UnicastFilter_Origin{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[958] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89269,13 +91634,13 @@ func (x *PatternFlowIpv4Reserved_Choice) Reset() { } } -func (x *PatternFlowIpv4Reserved_Choice) String() string { +func (x *BgpPrefixIpv4UnicastFilter_Origin) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Reserved_Choice) ProtoMessage() {} +func (*BgpPrefixIpv4UnicastFilter_Origin) ProtoMessage() {} -func (x *PatternFlowIpv4Reserved_Choice) ProtoReflect() protoreflect.Message { +func (x *BgpPrefixIpv4UnicastFilter_Origin) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[958] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89287,19 +91652,19 @@ func (x *PatternFlowIpv4Reserved_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4Reserved_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4Reserved_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{384, 0} +// Deprecated: Use BgpPrefixIpv4UnicastFilter_Origin.ProtoReflect.Descriptor instead. +func (*BgpPrefixIpv4UnicastFilter_Origin) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{304, 0} } -type PatternFlowIpv4DontFragment_Choice struct { +type BgpPrefixIpv6UnicastFilter_Origin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4DontFragment_Choice) Reset() { - *x = PatternFlowIpv4DontFragment_Choice{} +func (x *BgpPrefixIpv6UnicastFilter_Origin) Reset() { + *x = BgpPrefixIpv6UnicastFilter_Origin{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[959] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89307,13 +91672,13 @@ func (x *PatternFlowIpv4DontFragment_Choice) Reset() { } } -func (x *PatternFlowIpv4DontFragment_Choice) String() string { +func (x *BgpPrefixIpv6UnicastFilter_Origin) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DontFragment_Choice) ProtoMessage() {} +func (*BgpPrefixIpv6UnicastFilter_Origin) ProtoMessage() {} -func (x *PatternFlowIpv4DontFragment_Choice) ProtoReflect() protoreflect.Message { +func (x *BgpPrefixIpv6UnicastFilter_Origin) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[959] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89325,19 +91690,19 @@ func (x *PatternFlowIpv4DontFragment_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DontFragment_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DontFragment_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{387, 0} +// Deprecated: Use BgpPrefixIpv6UnicastFilter_Origin.ProtoReflect.Descriptor instead. +func (*BgpPrefixIpv6UnicastFilter_Origin) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{305, 0} } -type PatternFlowIpv4MoreFragments_Choice struct { +type BgpPrefixIpv4UnicastState_Origin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4MoreFragments_Choice) Reset() { - *x = PatternFlowIpv4MoreFragments_Choice{} +func (x *BgpPrefixIpv4UnicastState_Origin) Reset() { + *x = BgpPrefixIpv4UnicastState_Origin{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[960] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89345,13 +91710,13 @@ func (x *PatternFlowIpv4MoreFragments_Choice) Reset() { } } -func (x *PatternFlowIpv4MoreFragments_Choice) String() string { +func (x *BgpPrefixIpv4UnicastState_Origin) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4MoreFragments_Choice) ProtoMessage() {} +func (*BgpPrefixIpv4UnicastState_Origin) ProtoMessage() {} -func (x *PatternFlowIpv4MoreFragments_Choice) ProtoReflect() protoreflect.Message { +func (x *BgpPrefixIpv4UnicastState_Origin) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[960] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89363,19 +91728,19 @@ func (x *PatternFlowIpv4MoreFragments_Choice) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4MoreFragments_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4MoreFragments_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{390, 0} +// Deprecated: Use BgpPrefixIpv4UnicastState_Origin.ProtoReflect.Descriptor instead. +func (*BgpPrefixIpv4UnicastState_Origin) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{307, 0} } -type PatternFlowIpv4FragmentOffset_Choice struct { +type BgpPrefixIpv6UnicastState_Origin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4FragmentOffset_Choice) Reset() { - *x = PatternFlowIpv4FragmentOffset_Choice{} +func (x *BgpPrefixIpv6UnicastState_Origin) Reset() { + *x = BgpPrefixIpv6UnicastState_Origin{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[961] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89383,13 +91748,13 @@ func (x *PatternFlowIpv4FragmentOffset_Choice) Reset() { } } -func (x *PatternFlowIpv4FragmentOffset_Choice) String() string { +func (x *BgpPrefixIpv6UnicastState_Origin) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4FragmentOffset_Choice) ProtoMessage() {} +func (*BgpPrefixIpv6UnicastState_Origin) ProtoMessage() {} -func (x *PatternFlowIpv4FragmentOffset_Choice) ProtoReflect() protoreflect.Message { +func (x *BgpPrefixIpv6UnicastState_Origin) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[961] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89401,19 +91766,19 @@ func (x *PatternFlowIpv4FragmentOffset_Choice) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4FragmentOffset_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4FragmentOffset_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{393, 0} +// Deprecated: Use BgpPrefixIpv6UnicastState_Origin.ProtoReflect.Descriptor instead. +func (*BgpPrefixIpv6UnicastState_Origin) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{308, 0} } -type PatternFlowIpv4TimeToLive_Choice struct { +type ResultBgpCommunity_Type struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4TimeToLive_Choice) Reset() { - *x = PatternFlowIpv4TimeToLive_Choice{} +func (x *ResultBgpCommunity_Type) Reset() { + *x = ResultBgpCommunity_Type{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[962] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89421,13 +91786,13 @@ func (x *PatternFlowIpv4TimeToLive_Choice) Reset() { } } -func (x *PatternFlowIpv4TimeToLive_Choice) String() string { +func (x *ResultBgpCommunity_Type) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TimeToLive_Choice) ProtoMessage() {} +func (*ResultBgpCommunity_Type) ProtoMessage() {} -func (x *PatternFlowIpv4TimeToLive_Choice) ProtoReflect() protoreflect.Message { +func (x *ResultBgpCommunity_Type) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[962] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89439,19 +91804,19 @@ func (x *PatternFlowIpv4TimeToLive_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TimeToLive_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TimeToLive_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{396, 0} +// Deprecated: Use ResultBgpCommunity_Type.ProtoReflect.Descriptor instead. +func (*ResultBgpCommunity_Type) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{309, 0} } -type PatternFlowIpv4Protocol_Choice struct { +type ResultBgpAsPathSegment_Type struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4Protocol_Choice) Reset() { - *x = PatternFlowIpv4Protocol_Choice{} +func (x *ResultBgpAsPathSegment_Type) Reset() { + *x = ResultBgpAsPathSegment_Type{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[963] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89459,13 +91824,13 @@ func (x *PatternFlowIpv4Protocol_Choice) Reset() { } } -func (x *PatternFlowIpv4Protocol_Choice) String() string { +func (x *ResultBgpAsPathSegment_Type) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Protocol_Choice) ProtoMessage() {} +func (*ResultBgpAsPathSegment_Type) ProtoMessage() {} -func (x *PatternFlowIpv4Protocol_Choice) ProtoReflect() protoreflect.Message { +func (x *ResultBgpAsPathSegment_Type) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[963] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89477,19 +91842,19 @@ func (x *PatternFlowIpv4Protocol_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4Protocol_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4Protocol_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{399, 0} +// Deprecated: Use ResultBgpAsPathSegment_Type.ProtoReflect.Descriptor instead. +func (*ResultBgpAsPathSegment_Type) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{311, 0} } -type PatternFlowIpv4HeaderChecksum_Choice struct { +type IsisLspState_PduType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4HeaderChecksum_Choice) Reset() { - *x = PatternFlowIpv4HeaderChecksum_Choice{} +func (x *IsisLspState_PduType) Reset() { + *x = IsisLspState_PduType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[964] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89497,13 +91862,13 @@ func (x *PatternFlowIpv4HeaderChecksum_Choice) Reset() { } } -func (x *PatternFlowIpv4HeaderChecksum_Choice) String() string { +func (x *IsisLspState_PduType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4HeaderChecksum_Choice) ProtoMessage() {} +func (*IsisLspState_PduType) ProtoMessage() {} -func (x *PatternFlowIpv4HeaderChecksum_Choice) ProtoReflect() protoreflect.Message { +func (x *IsisLspState_PduType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[964] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89515,19 +91880,19 @@ func (x *PatternFlowIpv4HeaderChecksum_Choice) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4HeaderChecksum_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4HeaderChecksum_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{400, 0} +// Deprecated: Use IsisLspState_PduType.ProtoReflect.Descriptor instead. +func (*IsisLspState_PduType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{314, 0} } -type PatternFlowIpv4HeaderChecksum_Generated struct { +type IsisLspV4Prefix_RedistributionType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4HeaderChecksum_Generated) Reset() { - *x = PatternFlowIpv4HeaderChecksum_Generated{} +func (x *IsisLspV4Prefix_RedistributionType) Reset() { + *x = IsisLspV4Prefix_RedistributionType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[965] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89535,13 +91900,13 @@ func (x *PatternFlowIpv4HeaderChecksum_Generated) Reset() { } } -func (x *PatternFlowIpv4HeaderChecksum_Generated) String() string { +func (x *IsisLspV4Prefix_RedistributionType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4HeaderChecksum_Generated) ProtoMessage() {} +func (*IsisLspV4Prefix_RedistributionType) ProtoMessage() {} -func (x *PatternFlowIpv4HeaderChecksum_Generated) ProtoReflect() protoreflect.Message { +func (x *IsisLspV4Prefix_RedistributionType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[965] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89553,19 +91918,19 @@ func (x *PatternFlowIpv4HeaderChecksum_Generated) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4HeaderChecksum_Generated.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4HeaderChecksum_Generated) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{400, 1} +// Deprecated: Use IsisLspV4Prefix_RedistributionType.ProtoReflect.Descriptor instead. +func (*IsisLspV4Prefix_RedistributionType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{323, 0} } -type PatternFlowIpv4Src_Choice struct { +type IsisLspV4Prefix_OriginType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4Src_Choice) Reset() { - *x = PatternFlowIpv4Src_Choice{} +func (x *IsisLspV4Prefix_OriginType) Reset() { + *x = IsisLspV4Prefix_OriginType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[966] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89573,13 +91938,13 @@ func (x *PatternFlowIpv4Src_Choice) Reset() { } } -func (x *PatternFlowIpv4Src_Choice) String() string { +func (x *IsisLspV4Prefix_OriginType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Src_Choice) ProtoMessage() {} +func (*IsisLspV4Prefix_OriginType) ProtoMessage() {} -func (x *PatternFlowIpv4Src_Choice) ProtoReflect() protoreflect.Message { +func (x *IsisLspV4Prefix_OriginType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[966] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89591,19 +91956,19 @@ func (x *PatternFlowIpv4Src_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4Src_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4Src_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{403, 0} +// Deprecated: Use IsisLspV4Prefix_OriginType.ProtoReflect.Descriptor instead. +func (*IsisLspV4Prefix_OriginType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{323, 1} } -type PatternFlowIpv4Dst_Choice struct { +type IsisLspExtendedV4Prefix_RedistributionType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4Dst_Choice) Reset() { - *x = PatternFlowIpv4Dst_Choice{} +func (x *IsisLspExtendedV4Prefix_RedistributionType) Reset() { + *x = IsisLspExtendedV4Prefix_RedistributionType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[967] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89611,13 +91976,13 @@ func (x *PatternFlowIpv4Dst_Choice) Reset() { } } -func (x *PatternFlowIpv4Dst_Choice) String() string { +func (x *IsisLspExtendedV4Prefix_RedistributionType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Dst_Choice) ProtoMessage() {} +func (*IsisLspExtendedV4Prefix_RedistributionType) ProtoMessage() {} -func (x *PatternFlowIpv4Dst_Choice) ProtoReflect() protoreflect.Message { +func (x *IsisLspExtendedV4Prefix_RedistributionType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[967] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89629,19 +91994,19 @@ func (x *PatternFlowIpv4Dst_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4Dst_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4Dst_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{406, 0} +// Deprecated: Use IsisLspExtendedV4Prefix_RedistributionType.ProtoReflect.Descriptor instead. +func (*IsisLspExtendedV4Prefix_RedistributionType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{325, 0} } -type PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice struct { +type IsisLspV6Prefix_RedistributionType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice) Reset() { - *x = PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice{} +func (x *IsisLspV6Prefix_RedistributionType) Reset() { + *x = IsisLspV6Prefix_RedistributionType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[968] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89649,13 +92014,13 @@ func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice) Reset() { } } -func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice) String() string { +func (x *IsisLspV6Prefix_RedistributionType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice) ProtoMessage() {} +func (*IsisLspV6Prefix_RedistributionType) ProtoMessage() {} -func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice) ProtoReflect() protoreflect.Message { +func (x *IsisLspV6Prefix_RedistributionType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[968] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89667,19 +92032,19 @@ func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice) ProtoReflect() proto return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{408, 0} +// Deprecated: Use IsisLspV6Prefix_RedistributionType.ProtoReflect.Descriptor instead. +func (*IsisLspV6Prefix_RedistributionType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{327, 0} } -type PatternFlowIpv4OptionsCustomTypeOptionClass_Choice struct { +type IsisLspV6Prefix_OriginType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4OptionsCustomTypeOptionClass_Choice) Reset() { - *x = PatternFlowIpv4OptionsCustomTypeOptionClass_Choice{} +func (x *IsisLspV6Prefix_OriginType) Reset() { + *x = IsisLspV6Prefix_OriginType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[969] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89687,13 +92052,13 @@ func (x *PatternFlowIpv4OptionsCustomTypeOptionClass_Choice) Reset() { } } -func (x *PatternFlowIpv4OptionsCustomTypeOptionClass_Choice) String() string { +func (x *IsisLspV6Prefix_OriginType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4OptionsCustomTypeOptionClass_Choice) ProtoMessage() {} +func (*IsisLspV6Prefix_OriginType) ProtoMessage() {} -func (x *PatternFlowIpv4OptionsCustomTypeOptionClass_Choice) ProtoReflect() protoreflect.Message { +func (x *IsisLspV6Prefix_OriginType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[969] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89705,19 +92070,19 @@ func (x *PatternFlowIpv4OptionsCustomTypeOptionClass_Choice) ProtoReflect() prot return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4OptionsCustomTypeOptionClass_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4OptionsCustomTypeOptionClass_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{410, 0} +// Deprecated: Use IsisLspV6Prefix_OriginType.ProtoReflect.Descriptor instead. +func (*IsisLspV6Prefix_OriginType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{327, 1} } -type PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice struct { +type LldpNeighborsState_ChassisIdType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice) Reset() { - *x = PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice{} +func (x *LldpNeighborsState_ChassisIdType) Reset() { + *x = LldpNeighborsState_ChassisIdType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[970] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89725,13 +92090,13 @@ func (x *PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice) Reset() { } } -func (x *PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice) String() string { +func (x *LldpNeighborsState_ChassisIdType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice) ProtoMessage() {} +func (*LldpNeighborsState_ChassisIdType) ProtoMessage() {} -func (x *PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice) ProtoReflect() protoreflect.Message { +func (x *LldpNeighborsState_ChassisIdType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[970] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89743,19 +92108,19 @@ func (x *PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice) ProtoReflect() pro return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{412, 0} +// Deprecated: Use LldpNeighborsState_ChassisIdType.ProtoReflect.Descriptor instead. +func (*LldpNeighborsState_ChassisIdType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{330, 0} } -type PatternFlowIpv4PriorityRaw_Choice struct { +type LldpNeighborsState_PortIdType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4PriorityRaw_Choice) Reset() { - *x = PatternFlowIpv4PriorityRaw_Choice{} +func (x *LldpNeighborsState_PortIdType) Reset() { + *x = LldpNeighborsState_PortIdType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[971] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89763,13 +92128,13 @@ func (x *PatternFlowIpv4PriorityRaw_Choice) Reset() { } } -func (x *PatternFlowIpv4PriorityRaw_Choice) String() string { +func (x *LldpNeighborsState_PortIdType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4PriorityRaw_Choice) ProtoMessage() {} +func (*LldpNeighborsState_PortIdType) ProtoMessage() {} -func (x *PatternFlowIpv4PriorityRaw_Choice) ProtoReflect() protoreflect.Message { +func (x *LldpNeighborsState_PortIdType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[971] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89781,19 +92146,19 @@ func (x *PatternFlowIpv4PriorityRaw_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4PriorityRaw_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4PriorityRaw_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{415, 0} +// Deprecated: Use LldpNeighborsState_PortIdType.ProtoReflect.Descriptor instead. +func (*LldpNeighborsState_PortIdType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{330, 1} } -type PatternFlowIpv4DscpPhb_Choice struct { +type LldpCapabilityState_CapabilityName struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4DscpPhb_Choice) Reset() { - *x = PatternFlowIpv4DscpPhb_Choice{} +func (x *LldpCapabilityState_CapabilityName) Reset() { + *x = LldpCapabilityState_CapabilityName{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[972] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89801,13 +92166,13 @@ func (x *PatternFlowIpv4DscpPhb_Choice) Reset() { } } -func (x *PatternFlowIpv4DscpPhb_Choice) String() string { +func (x *LldpCapabilityState_CapabilityName) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DscpPhb_Choice) ProtoMessage() {} +func (*LldpCapabilityState_CapabilityName) ProtoMessage() {} -func (x *PatternFlowIpv4DscpPhb_Choice) ProtoReflect() protoreflect.Message { +func (x *LldpCapabilityState_CapabilityName) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[972] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89819,19 +92184,19 @@ func (x *PatternFlowIpv4DscpPhb_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DscpPhb_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DscpPhb_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{418, 0} +// Deprecated: Use LldpCapabilityState_CapabilityName.ProtoReflect.Descriptor instead. +func (*LldpCapabilityState_CapabilityName) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{332, 0} } -type PatternFlowIpv4DscpEcn_Choice struct { +type RsvpLspState_SessionStatus struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4DscpEcn_Choice) Reset() { - *x = PatternFlowIpv4DscpEcn_Choice{} +func (x *RsvpLspState_SessionStatus) Reset() { + *x = RsvpLspState_SessionStatus{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[973] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89839,13 +92204,13 @@ func (x *PatternFlowIpv4DscpEcn_Choice) Reset() { } } -func (x *PatternFlowIpv4DscpEcn_Choice) String() string { +func (x *RsvpLspState_SessionStatus) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DscpEcn_Choice) ProtoMessage() {} +func (*RsvpLspState_SessionStatus) ProtoMessage() {} -func (x *PatternFlowIpv4DscpEcn_Choice) ProtoReflect() protoreflect.Message { +func (x *RsvpLspState_SessionStatus) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[973] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89857,19 +92222,19 @@ func (x *PatternFlowIpv4DscpEcn_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DscpEcn_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DscpEcn_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{421, 0} +// Deprecated: Use RsvpLspState_SessionStatus.ProtoReflect.Descriptor instead. +func (*RsvpLspState_SessionStatus) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{336, 0} } -type PatternFlowIpv4TosPrecedence_Choice struct { +type RsvpLspState_LastFlapReason struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4TosPrecedence_Choice) Reset() { - *x = PatternFlowIpv4TosPrecedence_Choice{} +func (x *RsvpLspState_LastFlapReason) Reset() { + *x = RsvpLspState_LastFlapReason{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[974] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89877,13 +92242,13 @@ func (x *PatternFlowIpv4TosPrecedence_Choice) Reset() { } } -func (x *PatternFlowIpv4TosPrecedence_Choice) String() string { +func (x *RsvpLspState_LastFlapReason) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosPrecedence_Choice) ProtoMessage() {} +func (*RsvpLspState_LastFlapReason) ProtoMessage() {} -func (x *PatternFlowIpv4TosPrecedence_Choice) ProtoReflect() protoreflect.Message { +func (x *RsvpLspState_LastFlapReason) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[974] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89895,19 +92260,19 @@ func (x *PatternFlowIpv4TosPrecedence_Choice) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosPrecedence_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosPrecedence_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{424, 0} +// Deprecated: Use RsvpLspState_LastFlapReason.ProtoReflect.Descriptor instead. +func (*RsvpLspState_LastFlapReason) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{336, 1} } -type PatternFlowIpv4TosDelay_Choice struct { +type RsvpLspIpv4Ero_Type struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4TosDelay_Choice) Reset() { - *x = PatternFlowIpv4TosDelay_Choice{} +func (x *RsvpLspIpv4Ero_Type) Reset() { + *x = RsvpLspIpv4Ero_Type{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[975] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89915,13 +92280,13 @@ func (x *PatternFlowIpv4TosDelay_Choice) Reset() { } } -func (x *PatternFlowIpv4TosDelay_Choice) String() string { +func (x *RsvpLspIpv4Ero_Type) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosDelay_Choice) ProtoMessage() {} +func (*RsvpLspIpv4Ero_Type) ProtoMessage() {} -func (x *PatternFlowIpv4TosDelay_Choice) ProtoReflect() protoreflect.Message { +func (x *RsvpLspIpv4Ero_Type) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[975] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89933,19 +92298,19 @@ func (x *PatternFlowIpv4TosDelay_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosDelay_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosDelay_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{427, 0} +// Deprecated: Use RsvpLspIpv4Ero_Type.ProtoReflect.Descriptor instead. +func (*RsvpLspIpv4Ero_Type) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{338, 0} } -type PatternFlowIpv4TosThroughput_Choice struct { +type PatternFlowEthernetDst_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4TosThroughput_Choice) Reset() { - *x = PatternFlowIpv4TosThroughput_Choice{} +func (x *PatternFlowEthernetDst_Choice) Reset() { + *x = PatternFlowEthernetDst_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[976] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89953,13 +92318,13 @@ func (x *PatternFlowIpv4TosThroughput_Choice) Reset() { } } -func (x *PatternFlowIpv4TosThroughput_Choice) String() string { +func (x *PatternFlowEthernetDst_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosThroughput_Choice) ProtoMessage() {} +func (*PatternFlowEthernetDst_Choice) ProtoMessage() {} -func (x *PatternFlowIpv4TosThroughput_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetDst_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[976] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89971,19 +92336,19 @@ func (x *PatternFlowIpv4TosThroughput_Choice) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosThroughput_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosThroughput_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{430, 0} +// Deprecated: Use PatternFlowEthernetDst_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetDst_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{342, 0} } -type PatternFlowIpv4TosReliability_Choice struct { +type PatternFlowEthernetSrc_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4TosReliability_Choice) Reset() { - *x = PatternFlowIpv4TosReliability_Choice{} +func (x *PatternFlowEthernetSrc_Choice) Reset() { + *x = PatternFlowEthernetSrc_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[977] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89991,13 +92356,13 @@ func (x *PatternFlowIpv4TosReliability_Choice) Reset() { } } -func (x *PatternFlowIpv4TosReliability_Choice) String() string { +func (x *PatternFlowEthernetSrc_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosReliability_Choice) ProtoMessage() {} +func (*PatternFlowEthernetSrc_Choice) ProtoMessage() {} -func (x *PatternFlowIpv4TosReliability_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetSrc_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[977] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90009,19 +92374,19 @@ func (x *PatternFlowIpv4TosReliability_Choice) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosReliability_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosReliability_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{433, 0} +// Deprecated: Use PatternFlowEthernetSrc_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetSrc_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{345, 0} } -type PatternFlowIpv4TosMonetary_Choice struct { +type PatternFlowEthernetEtherType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4TosMonetary_Choice) Reset() { - *x = PatternFlowIpv4TosMonetary_Choice{} +func (x *PatternFlowEthernetEtherType_Choice) Reset() { + *x = PatternFlowEthernetEtherType_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[978] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90029,13 +92394,13 @@ func (x *PatternFlowIpv4TosMonetary_Choice) Reset() { } } -func (x *PatternFlowIpv4TosMonetary_Choice) String() string { +func (x *PatternFlowEthernetEtherType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosMonetary_Choice) ProtoMessage() {} +func (*PatternFlowEthernetEtherType_Choice) ProtoMessage() {} -func (x *PatternFlowIpv4TosMonetary_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetEtherType_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[978] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90047,19 +92412,19 @@ func (x *PatternFlowIpv4TosMonetary_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosMonetary_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosMonetary_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{436, 0} +// Deprecated: Use PatternFlowEthernetEtherType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetEtherType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{348, 0} } -type PatternFlowIpv4TosUnused_Choice struct { +type PatternFlowEthernetPfcQueue_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4TosUnused_Choice) Reset() { - *x = PatternFlowIpv4TosUnused_Choice{} +func (x *PatternFlowEthernetPfcQueue_Choice) Reset() { + *x = PatternFlowEthernetPfcQueue_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[979] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90067,13 +92432,13 @@ func (x *PatternFlowIpv4TosUnused_Choice) Reset() { } } -func (x *PatternFlowIpv4TosUnused_Choice) String() string { +func (x *PatternFlowEthernetPfcQueue_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosUnused_Choice) ProtoMessage() {} +func (*PatternFlowEthernetPfcQueue_Choice) ProtoMessage() {} -func (x *PatternFlowIpv4TosUnused_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPfcQueue_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[979] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90085,19 +92450,19 @@ func (x *PatternFlowIpv4TosUnused_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosUnused_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosUnused_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{439, 0} +// Deprecated: Use PatternFlowEthernetPfcQueue_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPfcQueue_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{351, 0} } -type PatternFlowIpv6Version_Choice struct { +type PatternFlowVlanPriority_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv6Version_Choice) Reset() { - *x = PatternFlowIpv6Version_Choice{} +func (x *PatternFlowVlanPriority_Choice) Reset() { + *x = PatternFlowVlanPriority_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[980] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90105,13 +92470,13 @@ func (x *PatternFlowIpv6Version_Choice) Reset() { } } -func (x *PatternFlowIpv6Version_Choice) String() string { +func (x *PatternFlowVlanPriority_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6Version_Choice) ProtoMessage() {} +func (*PatternFlowVlanPriority_Choice) ProtoMessage() {} -func (x *PatternFlowIpv6Version_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVlanPriority_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[980] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90123,19 +92488,19 @@ func (x *PatternFlowIpv6Version_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6Version_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6Version_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{442, 0} +// Deprecated: Use PatternFlowVlanPriority_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanPriority_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{354, 0} } -type PatternFlowIpv6TrafficClass_Choice struct { +type PatternFlowVlanCfi_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv6TrafficClass_Choice) Reset() { - *x = PatternFlowIpv6TrafficClass_Choice{} +func (x *PatternFlowVlanCfi_Choice) Reset() { + *x = PatternFlowVlanCfi_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[981] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90143,13 +92508,13 @@ func (x *PatternFlowIpv6TrafficClass_Choice) Reset() { } } -func (x *PatternFlowIpv6TrafficClass_Choice) String() string { +func (x *PatternFlowVlanCfi_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6TrafficClass_Choice) ProtoMessage() {} +func (*PatternFlowVlanCfi_Choice) ProtoMessage() {} -func (x *PatternFlowIpv6TrafficClass_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVlanCfi_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[981] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90161,19 +92526,19 @@ func (x *PatternFlowIpv6TrafficClass_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6TrafficClass_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6TrafficClass_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{445, 0} +// Deprecated: Use PatternFlowVlanCfi_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanCfi_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{357, 0} } -type PatternFlowIpv6FlowLabel_Choice struct { +type PatternFlowVlanId_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv6FlowLabel_Choice) Reset() { - *x = PatternFlowIpv6FlowLabel_Choice{} +func (x *PatternFlowVlanId_Choice) Reset() { + *x = PatternFlowVlanId_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[982] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90181,13 +92546,13 @@ func (x *PatternFlowIpv6FlowLabel_Choice) Reset() { } } -func (x *PatternFlowIpv6FlowLabel_Choice) String() string { +func (x *PatternFlowVlanId_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6FlowLabel_Choice) ProtoMessage() {} +func (*PatternFlowVlanId_Choice) ProtoMessage() {} -func (x *PatternFlowIpv6FlowLabel_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVlanId_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[982] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90199,19 +92564,19 @@ func (x *PatternFlowIpv6FlowLabel_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6FlowLabel_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6FlowLabel_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{448, 0} +// Deprecated: Use PatternFlowVlanId_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanId_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{360, 0} } -type PatternFlowIpv6PayloadLength_Choice struct { +type PatternFlowVlanTpid_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv6PayloadLength_Choice) Reset() { - *x = PatternFlowIpv6PayloadLength_Choice{} +func (x *PatternFlowVlanTpid_Choice) Reset() { + *x = PatternFlowVlanTpid_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[983] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90219,13 +92584,13 @@ func (x *PatternFlowIpv6PayloadLength_Choice) Reset() { } } -func (x *PatternFlowIpv6PayloadLength_Choice) String() string { +func (x *PatternFlowVlanTpid_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6PayloadLength_Choice) ProtoMessage() {} +func (*PatternFlowVlanTpid_Choice) ProtoMessage() {} -func (x *PatternFlowIpv6PayloadLength_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVlanTpid_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[983] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90237,19 +92602,19 @@ func (x *PatternFlowIpv6PayloadLength_Choice) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6PayloadLength_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6PayloadLength_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{451, 0} +// Deprecated: Use PatternFlowVlanTpid_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanTpid_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{363, 0} } -type PatternFlowIpv6NextHeader_Choice struct { +type PatternFlowVxlanFlags_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv6NextHeader_Choice) Reset() { - *x = PatternFlowIpv6NextHeader_Choice{} +func (x *PatternFlowVxlanFlags_Choice) Reset() { + *x = PatternFlowVxlanFlags_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[984] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90257,13 +92622,13 @@ func (x *PatternFlowIpv6NextHeader_Choice) Reset() { } } -func (x *PatternFlowIpv6NextHeader_Choice) String() string { +func (x *PatternFlowVxlanFlags_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6NextHeader_Choice) ProtoMessage() {} +func (*PatternFlowVxlanFlags_Choice) ProtoMessage() {} -func (x *PatternFlowIpv6NextHeader_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVxlanFlags_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[984] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90275,19 +92640,19 @@ func (x *PatternFlowIpv6NextHeader_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6NextHeader_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6NextHeader_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{454, 0} +// Deprecated: Use PatternFlowVxlanFlags_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanFlags_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{366, 0} } -type PatternFlowIpv6HopLimit_Choice struct { +type PatternFlowVxlanReserved0_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv6HopLimit_Choice) Reset() { - *x = PatternFlowIpv6HopLimit_Choice{} +func (x *PatternFlowVxlanReserved0_Choice) Reset() { + *x = PatternFlowVxlanReserved0_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[985] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90295,13 +92660,13 @@ func (x *PatternFlowIpv6HopLimit_Choice) Reset() { } } -func (x *PatternFlowIpv6HopLimit_Choice) String() string { +func (x *PatternFlowVxlanReserved0_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6HopLimit_Choice) ProtoMessage() {} +func (*PatternFlowVxlanReserved0_Choice) ProtoMessage() {} -func (x *PatternFlowIpv6HopLimit_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVxlanReserved0_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[985] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90313,19 +92678,19 @@ func (x *PatternFlowIpv6HopLimit_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6HopLimit_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6HopLimit_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{457, 0} +// Deprecated: Use PatternFlowVxlanReserved0_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanReserved0_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{369, 0} } -type PatternFlowIpv6Src_Choice struct { +type PatternFlowVxlanVni_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv6Src_Choice) Reset() { - *x = PatternFlowIpv6Src_Choice{} +func (x *PatternFlowVxlanVni_Choice) Reset() { + *x = PatternFlowVxlanVni_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[986] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90333,13 +92698,13 @@ func (x *PatternFlowIpv6Src_Choice) Reset() { } } -func (x *PatternFlowIpv6Src_Choice) String() string { +func (x *PatternFlowVxlanVni_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6Src_Choice) ProtoMessage() {} +func (*PatternFlowVxlanVni_Choice) ProtoMessage() {} -func (x *PatternFlowIpv6Src_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVxlanVni_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[986] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90351,19 +92716,19 @@ func (x *PatternFlowIpv6Src_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6Src_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6Src_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{460, 0} +// Deprecated: Use PatternFlowVxlanVni_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanVni_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{372, 0} } -type PatternFlowIpv6Dst_Choice struct { +type PatternFlowVxlanReserved1_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv6Dst_Choice) Reset() { - *x = PatternFlowIpv6Dst_Choice{} +func (x *PatternFlowVxlanReserved1_Choice) Reset() { + *x = PatternFlowVxlanReserved1_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[987] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90371,13 +92736,13 @@ func (x *PatternFlowIpv6Dst_Choice) Reset() { } } -func (x *PatternFlowIpv6Dst_Choice) String() string { +func (x *PatternFlowVxlanReserved1_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6Dst_Choice) ProtoMessage() {} +func (*PatternFlowVxlanReserved1_Choice) ProtoMessage() {} -func (x *PatternFlowIpv6Dst_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowVxlanReserved1_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[987] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90389,19 +92754,19 @@ func (x *PatternFlowIpv6Dst_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6Dst_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6Dst_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{463, 0} +// Deprecated: Use PatternFlowVxlanReserved1_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanReserved1_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{375, 0} } -type PatternFlowPfcPauseDst_Choice struct { +type PatternFlowIpv4Version_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPauseDst_Choice) Reset() { - *x = PatternFlowPfcPauseDst_Choice{} +func (x *PatternFlowIpv4Version_Choice) Reset() { + *x = PatternFlowIpv4Version_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[988] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90409,13 +92774,13 @@ func (x *PatternFlowPfcPauseDst_Choice) Reset() { } } -func (x *PatternFlowPfcPauseDst_Choice) String() string { +func (x *PatternFlowIpv4Version_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseDst_Choice) ProtoMessage() {} +func (*PatternFlowIpv4Version_Choice) ProtoMessage() {} -func (x *PatternFlowPfcPauseDst_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4Version_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[988] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90427,19 +92792,19 @@ func (x *PatternFlowPfcPauseDst_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseDst_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseDst_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{466, 0} +// Deprecated: Use PatternFlowIpv4Version_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Version_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{378, 0} } -type PatternFlowPfcPauseSrc_Choice struct { +type PatternFlowIpv4HeaderLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPauseSrc_Choice) Reset() { - *x = PatternFlowPfcPauseSrc_Choice{} +func (x *PatternFlowIpv4HeaderLength_Choice) Reset() { + *x = PatternFlowIpv4HeaderLength_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[989] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90447,13 +92812,13 @@ func (x *PatternFlowPfcPauseSrc_Choice) Reset() { } } -func (x *PatternFlowPfcPauseSrc_Choice) String() string { +func (x *PatternFlowIpv4HeaderLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseSrc_Choice) ProtoMessage() {} +func (*PatternFlowIpv4HeaderLength_Choice) ProtoMessage() {} -func (x *PatternFlowPfcPauseSrc_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4HeaderLength_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[989] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90465,19 +92830,19 @@ func (x *PatternFlowPfcPauseSrc_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseSrc_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseSrc_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{469, 0} +// Deprecated: Use PatternFlowIpv4HeaderLength_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4HeaderLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{381, 0} } -type PatternFlowPfcPauseEtherType_Choice struct { +type PatternFlowIpv4TotalLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPauseEtherType_Choice) Reset() { - *x = PatternFlowPfcPauseEtherType_Choice{} +func (x *PatternFlowIpv4TotalLength_Choice) Reset() { + *x = PatternFlowIpv4TotalLength_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[990] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90485,13 +92850,13 @@ func (x *PatternFlowPfcPauseEtherType_Choice) Reset() { } } -func (x *PatternFlowPfcPauseEtherType_Choice) String() string { +func (x *PatternFlowIpv4TotalLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseEtherType_Choice) ProtoMessage() {} +func (*PatternFlowIpv4TotalLength_Choice) ProtoMessage() {} -func (x *PatternFlowPfcPauseEtherType_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TotalLength_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[990] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90503,19 +92868,19 @@ func (x *PatternFlowPfcPauseEtherType_Choice) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseEtherType_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseEtherType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{472, 0} +// Deprecated: Use PatternFlowIpv4TotalLength_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TotalLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{384, 0} } -type PatternFlowPfcPauseControlOpCode_Choice struct { +type PatternFlowIpv4Identification_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPauseControlOpCode_Choice) Reset() { - *x = PatternFlowPfcPauseControlOpCode_Choice{} +func (x *PatternFlowIpv4Identification_Choice) Reset() { + *x = PatternFlowIpv4Identification_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[991] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90523,13 +92888,13 @@ func (x *PatternFlowPfcPauseControlOpCode_Choice) Reset() { } } -func (x *PatternFlowPfcPauseControlOpCode_Choice) String() string { +func (x *PatternFlowIpv4Identification_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseControlOpCode_Choice) ProtoMessage() {} +func (*PatternFlowIpv4Identification_Choice) ProtoMessage() {} -func (x *PatternFlowPfcPauseControlOpCode_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4Identification_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[991] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90541,19 +92906,19 @@ func (x *PatternFlowPfcPauseControlOpCode_Choice) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseControlOpCode_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseControlOpCode_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{475, 0} +// Deprecated: Use PatternFlowIpv4Identification_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Identification_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{387, 0} } -type PatternFlowPfcPauseClassEnableVector_Choice struct { +type PatternFlowIpv4Reserved_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPauseClassEnableVector_Choice) Reset() { - *x = PatternFlowPfcPauseClassEnableVector_Choice{} +func (x *PatternFlowIpv4Reserved_Choice) Reset() { + *x = PatternFlowIpv4Reserved_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[992] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90561,13 +92926,13 @@ func (x *PatternFlowPfcPauseClassEnableVector_Choice) Reset() { } } -func (x *PatternFlowPfcPauseClassEnableVector_Choice) String() string { +func (x *PatternFlowIpv4Reserved_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseClassEnableVector_Choice) ProtoMessage() {} +func (*PatternFlowIpv4Reserved_Choice) ProtoMessage() {} -func (x *PatternFlowPfcPauseClassEnableVector_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4Reserved_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[992] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90579,19 +92944,19 @@ func (x *PatternFlowPfcPauseClassEnableVector_Choice) ProtoReflect() protoreflec return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseClassEnableVector_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseClassEnableVector_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{478, 0} +// Deprecated: Use PatternFlowIpv4Reserved_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Reserved_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{390, 0} } -type PatternFlowPfcPausePauseClass0_Choice struct { +type PatternFlowIpv4DontFragment_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPausePauseClass0_Choice) Reset() { - *x = PatternFlowPfcPausePauseClass0_Choice{} +func (x *PatternFlowIpv4DontFragment_Choice) Reset() { + *x = PatternFlowIpv4DontFragment_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[993] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90599,13 +92964,13 @@ func (x *PatternFlowPfcPausePauseClass0_Choice) Reset() { } } -func (x *PatternFlowPfcPausePauseClass0_Choice) String() string { +func (x *PatternFlowIpv4DontFragment_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass0_Choice) ProtoMessage() {} +func (*PatternFlowIpv4DontFragment_Choice) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass0_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4DontFragment_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[993] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90617,19 +92982,19 @@ func (x *PatternFlowPfcPausePauseClass0_Choice) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass0_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass0_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{481, 0} +// Deprecated: Use PatternFlowIpv4DontFragment_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DontFragment_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{393, 0} } -type PatternFlowPfcPausePauseClass1_Choice struct { +type PatternFlowIpv4MoreFragments_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPausePauseClass1_Choice) Reset() { - *x = PatternFlowPfcPausePauseClass1_Choice{} +func (x *PatternFlowIpv4MoreFragments_Choice) Reset() { + *x = PatternFlowIpv4MoreFragments_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[994] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90637,13 +93002,13 @@ func (x *PatternFlowPfcPausePauseClass1_Choice) Reset() { } } -func (x *PatternFlowPfcPausePauseClass1_Choice) String() string { +func (x *PatternFlowIpv4MoreFragments_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass1_Choice) ProtoMessage() {} +func (*PatternFlowIpv4MoreFragments_Choice) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass1_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4MoreFragments_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[994] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90655,19 +93020,19 @@ func (x *PatternFlowPfcPausePauseClass1_Choice) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass1_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass1_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{484, 0} +// Deprecated: Use PatternFlowIpv4MoreFragments_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4MoreFragments_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{396, 0} } -type PatternFlowPfcPausePauseClass2_Choice struct { +type PatternFlowIpv4FragmentOffset_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPausePauseClass2_Choice) Reset() { - *x = PatternFlowPfcPausePauseClass2_Choice{} +func (x *PatternFlowIpv4FragmentOffset_Choice) Reset() { + *x = PatternFlowIpv4FragmentOffset_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[995] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90675,13 +93040,13 @@ func (x *PatternFlowPfcPausePauseClass2_Choice) Reset() { } } -func (x *PatternFlowPfcPausePauseClass2_Choice) String() string { +func (x *PatternFlowIpv4FragmentOffset_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass2_Choice) ProtoMessage() {} +func (*PatternFlowIpv4FragmentOffset_Choice) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass2_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4FragmentOffset_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[995] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90693,19 +93058,19 @@ func (x *PatternFlowPfcPausePauseClass2_Choice) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass2_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass2_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{487, 0} +// Deprecated: Use PatternFlowIpv4FragmentOffset_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4FragmentOffset_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{399, 0} } -type PatternFlowPfcPausePauseClass3_Choice struct { +type PatternFlowIpv4TimeToLive_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPausePauseClass3_Choice) Reset() { - *x = PatternFlowPfcPausePauseClass3_Choice{} +func (x *PatternFlowIpv4TimeToLive_Choice) Reset() { + *x = PatternFlowIpv4TimeToLive_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[996] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90713,13 +93078,13 @@ func (x *PatternFlowPfcPausePauseClass3_Choice) Reset() { } } -func (x *PatternFlowPfcPausePauseClass3_Choice) String() string { +func (x *PatternFlowIpv4TimeToLive_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass3_Choice) ProtoMessage() {} +func (*PatternFlowIpv4TimeToLive_Choice) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass3_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TimeToLive_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[996] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90731,19 +93096,19 @@ func (x *PatternFlowPfcPausePauseClass3_Choice) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass3_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass3_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{490, 0} +// Deprecated: Use PatternFlowIpv4TimeToLive_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TimeToLive_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{402, 0} } -type PatternFlowPfcPausePauseClass4_Choice struct { +type PatternFlowIpv4Protocol_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPausePauseClass4_Choice) Reset() { - *x = PatternFlowPfcPausePauseClass4_Choice{} +func (x *PatternFlowIpv4Protocol_Choice) Reset() { + *x = PatternFlowIpv4Protocol_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[997] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90751,13 +93116,13 @@ func (x *PatternFlowPfcPausePauseClass4_Choice) Reset() { } } -func (x *PatternFlowPfcPausePauseClass4_Choice) String() string { +func (x *PatternFlowIpv4Protocol_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass4_Choice) ProtoMessage() {} +func (*PatternFlowIpv4Protocol_Choice) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass4_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4Protocol_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[997] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90769,19 +93134,19 @@ func (x *PatternFlowPfcPausePauseClass4_Choice) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass4_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass4_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{493, 0} +// Deprecated: Use PatternFlowIpv4Protocol_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Protocol_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{405, 0} } -type PatternFlowPfcPausePauseClass5_Choice struct { +type PatternFlowIpv4HeaderChecksum_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPausePauseClass5_Choice) Reset() { - *x = PatternFlowPfcPausePauseClass5_Choice{} +func (x *PatternFlowIpv4HeaderChecksum_Choice) Reset() { + *x = PatternFlowIpv4HeaderChecksum_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[998] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90789,13 +93154,13 @@ func (x *PatternFlowPfcPausePauseClass5_Choice) Reset() { } } -func (x *PatternFlowPfcPausePauseClass5_Choice) String() string { +func (x *PatternFlowIpv4HeaderChecksum_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass5_Choice) ProtoMessage() {} +func (*PatternFlowIpv4HeaderChecksum_Choice) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass5_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4HeaderChecksum_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[998] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90807,19 +93172,19 @@ func (x *PatternFlowPfcPausePauseClass5_Choice) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass5_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass5_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{496, 0} +// Deprecated: Use PatternFlowIpv4HeaderChecksum_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4HeaderChecksum_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{406, 0} } -type PatternFlowPfcPausePauseClass6_Choice struct { +type PatternFlowIpv4HeaderChecksum_Generated struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPausePauseClass6_Choice) Reset() { - *x = PatternFlowPfcPausePauseClass6_Choice{} +func (x *PatternFlowIpv4HeaderChecksum_Generated) Reset() { + *x = PatternFlowIpv4HeaderChecksum_Generated{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[999] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90827,13 +93192,13 @@ func (x *PatternFlowPfcPausePauseClass6_Choice) Reset() { } } -func (x *PatternFlowPfcPausePauseClass6_Choice) String() string { +func (x *PatternFlowIpv4HeaderChecksum_Generated) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass6_Choice) ProtoMessage() {} +func (*PatternFlowIpv4HeaderChecksum_Generated) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass6_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4HeaderChecksum_Generated) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[999] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90845,19 +93210,19 @@ func (x *PatternFlowPfcPausePauseClass6_Choice) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass6_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass6_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{499, 0} +// Deprecated: Use PatternFlowIpv4HeaderChecksum_Generated.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4HeaderChecksum_Generated) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{406, 1} } -type PatternFlowPfcPausePauseClass7_Choice struct { +type PatternFlowIpv4Src_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPausePauseClass7_Choice) Reset() { - *x = PatternFlowPfcPausePauseClass7_Choice{} +func (x *PatternFlowIpv4Src_Choice) Reset() { + *x = PatternFlowIpv4Src_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1000] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90865,13 +93230,13 @@ func (x *PatternFlowPfcPausePauseClass7_Choice) Reset() { } } -func (x *PatternFlowPfcPausePauseClass7_Choice) String() string { +func (x *PatternFlowIpv4Src_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass7_Choice) ProtoMessage() {} +func (*PatternFlowIpv4Src_Choice) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass7_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4Src_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1000] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90883,19 +93248,19 @@ func (x *PatternFlowPfcPausePauseClass7_Choice) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass7_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass7_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{502, 0} +// Deprecated: Use PatternFlowIpv4Src_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Src_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{409, 0} } -type PatternFlowEthernetPauseDst_Choice struct { +type PatternFlowIpv4Dst_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowEthernetPauseDst_Choice) Reset() { - *x = PatternFlowEthernetPauseDst_Choice{} +func (x *PatternFlowIpv4Dst_Choice) Reset() { + *x = PatternFlowIpv4Dst_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1001] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90903,13 +93268,13 @@ func (x *PatternFlowEthernetPauseDst_Choice) Reset() { } } -func (x *PatternFlowEthernetPauseDst_Choice) String() string { +func (x *PatternFlowIpv4Dst_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseDst_Choice) ProtoMessage() {} +func (*PatternFlowIpv4Dst_Choice) ProtoMessage() {} -func (x *PatternFlowEthernetPauseDst_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4Dst_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1001] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90921,19 +93286,19 @@ func (x *PatternFlowEthernetPauseDst_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseDst_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseDst_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{505, 0} +// Deprecated: Use PatternFlowIpv4Dst_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Dst_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{412, 0} } -type PatternFlowEthernetPauseSrc_Choice struct { +type PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowEthernetPauseSrc_Choice) Reset() { - *x = PatternFlowEthernetPauseSrc_Choice{} +func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice) Reset() { + *x = PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1002] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90941,13 +93306,13 @@ func (x *PatternFlowEthernetPauseSrc_Choice) Reset() { } } -func (x *PatternFlowEthernetPauseSrc_Choice) String() string { +func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseSrc_Choice) ProtoMessage() {} +func (*PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice) ProtoMessage() {} -func (x *PatternFlowEthernetPauseSrc_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1002] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90959,19 +93324,19 @@ func (x *PatternFlowEthernetPauseSrc_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseSrc_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseSrc_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{508, 0} +// Deprecated: Use PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{414, 0} } -type PatternFlowEthernetPauseEtherType_Choice struct { +type PatternFlowIpv4OptionsCustomTypeOptionClass_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowEthernetPauseEtherType_Choice) Reset() { - *x = PatternFlowEthernetPauseEtherType_Choice{} +func (x *PatternFlowIpv4OptionsCustomTypeOptionClass_Choice) Reset() { + *x = PatternFlowIpv4OptionsCustomTypeOptionClass_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1003] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90979,13 +93344,13 @@ func (x *PatternFlowEthernetPauseEtherType_Choice) Reset() { } } -func (x *PatternFlowEthernetPauseEtherType_Choice) String() string { +func (x *PatternFlowIpv4OptionsCustomTypeOptionClass_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseEtherType_Choice) ProtoMessage() {} +func (*PatternFlowIpv4OptionsCustomTypeOptionClass_Choice) ProtoMessage() {} -func (x *PatternFlowEthernetPauseEtherType_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4OptionsCustomTypeOptionClass_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1003] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -90997,19 +93362,19 @@ func (x *PatternFlowEthernetPauseEtherType_Choice) ProtoReflect() protoreflect.M return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseEtherType_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseEtherType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{511, 0} +// Deprecated: Use PatternFlowIpv4OptionsCustomTypeOptionClass_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4OptionsCustomTypeOptionClass_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{416, 0} } -type PatternFlowEthernetPauseControlOpCode_Choice struct { +type PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowEthernetPauseControlOpCode_Choice) Reset() { - *x = PatternFlowEthernetPauseControlOpCode_Choice{} +func (x *PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice) Reset() { + *x = PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1004] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91017,13 +93382,13 @@ func (x *PatternFlowEthernetPauseControlOpCode_Choice) Reset() { } } -func (x *PatternFlowEthernetPauseControlOpCode_Choice) String() string { +func (x *PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseControlOpCode_Choice) ProtoMessage() {} +func (*PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice) ProtoMessage() {} -func (x *PatternFlowEthernetPauseControlOpCode_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1004] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91035,19 +93400,19 @@ func (x *PatternFlowEthernetPauseControlOpCode_Choice) ProtoReflect() protorefle return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseControlOpCode_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseControlOpCode_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{514, 0} +// Deprecated: Use PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{418, 0} } -type PatternFlowEthernetPauseTime_Choice struct { +type PatternFlowIpv4PriorityRaw_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowEthernetPauseTime_Choice) Reset() { - *x = PatternFlowEthernetPauseTime_Choice{} +func (x *PatternFlowIpv4PriorityRaw_Choice) Reset() { + *x = PatternFlowIpv4PriorityRaw_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1005] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91055,13 +93420,13 @@ func (x *PatternFlowEthernetPauseTime_Choice) Reset() { } } -func (x *PatternFlowEthernetPauseTime_Choice) String() string { +func (x *PatternFlowIpv4PriorityRaw_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseTime_Choice) ProtoMessage() {} +func (*PatternFlowIpv4PriorityRaw_Choice) ProtoMessage() {} -func (x *PatternFlowEthernetPauseTime_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4PriorityRaw_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1005] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91073,19 +93438,19 @@ func (x *PatternFlowEthernetPauseTime_Choice) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseTime_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseTime_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{517, 0} +// Deprecated: Use PatternFlowIpv4PriorityRaw_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4PriorityRaw_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{421, 0} } -type PatternFlowTcpSrcPort_Choice struct { +type PatternFlowIpv4DscpPhb_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpSrcPort_Choice) Reset() { - *x = PatternFlowTcpSrcPort_Choice{} +func (x *PatternFlowIpv4DscpPhb_Choice) Reset() { + *x = PatternFlowIpv4DscpPhb_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1006] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91093,13 +93458,13 @@ func (x *PatternFlowTcpSrcPort_Choice) Reset() { } } -func (x *PatternFlowTcpSrcPort_Choice) String() string { +func (x *PatternFlowIpv4DscpPhb_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpSrcPort_Choice) ProtoMessage() {} +func (*PatternFlowIpv4DscpPhb_Choice) ProtoMessage() {} -func (x *PatternFlowTcpSrcPort_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4DscpPhb_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1006] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91111,19 +93476,19 @@ func (x *PatternFlowTcpSrcPort_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpSrcPort_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpSrcPort_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{520, 0} +// Deprecated: Use PatternFlowIpv4DscpPhb_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DscpPhb_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{424, 0} } -type PatternFlowTcpDstPort_Choice struct { +type PatternFlowIpv4DscpEcn_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpDstPort_Choice) Reset() { - *x = PatternFlowTcpDstPort_Choice{} +func (x *PatternFlowIpv4DscpEcn_Choice) Reset() { + *x = PatternFlowIpv4DscpEcn_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1007] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91131,13 +93496,13 @@ func (x *PatternFlowTcpDstPort_Choice) Reset() { } } -func (x *PatternFlowTcpDstPort_Choice) String() string { +func (x *PatternFlowIpv4DscpEcn_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpDstPort_Choice) ProtoMessage() {} +func (*PatternFlowIpv4DscpEcn_Choice) ProtoMessage() {} -func (x *PatternFlowTcpDstPort_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4DscpEcn_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1007] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91149,19 +93514,19 @@ func (x *PatternFlowTcpDstPort_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpDstPort_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpDstPort_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{523, 0} +// Deprecated: Use PatternFlowIpv4DscpEcn_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DscpEcn_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{427, 0} } -type PatternFlowTcpSeqNum_Choice struct { +type PatternFlowIpv4TosPrecedence_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpSeqNum_Choice) Reset() { - *x = PatternFlowTcpSeqNum_Choice{} +func (x *PatternFlowIpv4TosPrecedence_Choice) Reset() { + *x = PatternFlowIpv4TosPrecedence_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1008] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91169,13 +93534,13 @@ func (x *PatternFlowTcpSeqNum_Choice) Reset() { } } -func (x *PatternFlowTcpSeqNum_Choice) String() string { +func (x *PatternFlowIpv4TosPrecedence_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpSeqNum_Choice) ProtoMessage() {} +func (*PatternFlowIpv4TosPrecedence_Choice) ProtoMessage() {} -func (x *PatternFlowTcpSeqNum_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosPrecedence_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1008] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91187,19 +93552,19 @@ func (x *PatternFlowTcpSeqNum_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpSeqNum_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpSeqNum_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{526, 0} +// Deprecated: Use PatternFlowIpv4TosPrecedence_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosPrecedence_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{430, 0} } -type PatternFlowTcpAckNum_Choice struct { +type PatternFlowIpv4TosDelay_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpAckNum_Choice) Reset() { - *x = PatternFlowTcpAckNum_Choice{} +func (x *PatternFlowIpv4TosDelay_Choice) Reset() { + *x = PatternFlowIpv4TosDelay_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1009] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91207,13 +93572,13 @@ func (x *PatternFlowTcpAckNum_Choice) Reset() { } } -func (x *PatternFlowTcpAckNum_Choice) String() string { +func (x *PatternFlowIpv4TosDelay_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpAckNum_Choice) ProtoMessage() {} +func (*PatternFlowIpv4TosDelay_Choice) ProtoMessage() {} -func (x *PatternFlowTcpAckNum_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosDelay_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1009] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91225,19 +93590,19 @@ func (x *PatternFlowTcpAckNum_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpAckNum_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpAckNum_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{529, 0} +// Deprecated: Use PatternFlowIpv4TosDelay_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosDelay_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{433, 0} } -type PatternFlowTcpDataOffset_Choice struct { +type PatternFlowIpv4TosThroughput_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpDataOffset_Choice) Reset() { - *x = PatternFlowTcpDataOffset_Choice{} +func (x *PatternFlowIpv4TosThroughput_Choice) Reset() { + *x = PatternFlowIpv4TosThroughput_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1010] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91245,13 +93610,13 @@ func (x *PatternFlowTcpDataOffset_Choice) Reset() { } } -func (x *PatternFlowTcpDataOffset_Choice) String() string { +func (x *PatternFlowIpv4TosThroughput_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpDataOffset_Choice) ProtoMessage() {} +func (*PatternFlowIpv4TosThroughput_Choice) ProtoMessage() {} -func (x *PatternFlowTcpDataOffset_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosThroughput_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1010] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91263,19 +93628,19 @@ func (x *PatternFlowTcpDataOffset_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpDataOffset_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpDataOffset_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{532, 0} +// Deprecated: Use PatternFlowIpv4TosThroughput_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosThroughput_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{436, 0} } -type PatternFlowTcpEcnNs_Choice struct { +type PatternFlowIpv4TosReliability_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpEcnNs_Choice) Reset() { - *x = PatternFlowTcpEcnNs_Choice{} +func (x *PatternFlowIpv4TosReliability_Choice) Reset() { + *x = PatternFlowIpv4TosReliability_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1011] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91283,13 +93648,13 @@ func (x *PatternFlowTcpEcnNs_Choice) Reset() { } } -func (x *PatternFlowTcpEcnNs_Choice) String() string { +func (x *PatternFlowIpv4TosReliability_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpEcnNs_Choice) ProtoMessage() {} +func (*PatternFlowIpv4TosReliability_Choice) ProtoMessage() {} -func (x *PatternFlowTcpEcnNs_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosReliability_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1011] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91301,19 +93666,19 @@ func (x *PatternFlowTcpEcnNs_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpEcnNs_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpEcnNs_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{535, 0} +// Deprecated: Use PatternFlowIpv4TosReliability_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosReliability_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{439, 0} } -type PatternFlowTcpEcnCwr_Choice struct { +type PatternFlowIpv4TosMonetary_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpEcnCwr_Choice) Reset() { - *x = PatternFlowTcpEcnCwr_Choice{} +func (x *PatternFlowIpv4TosMonetary_Choice) Reset() { + *x = PatternFlowIpv4TosMonetary_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1012] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91321,13 +93686,13 @@ func (x *PatternFlowTcpEcnCwr_Choice) Reset() { } } -func (x *PatternFlowTcpEcnCwr_Choice) String() string { +func (x *PatternFlowIpv4TosMonetary_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpEcnCwr_Choice) ProtoMessage() {} +func (*PatternFlowIpv4TosMonetary_Choice) ProtoMessage() {} -func (x *PatternFlowTcpEcnCwr_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosMonetary_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1012] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91339,19 +93704,19 @@ func (x *PatternFlowTcpEcnCwr_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpEcnCwr_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpEcnCwr_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{538, 0} +// Deprecated: Use PatternFlowIpv4TosMonetary_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosMonetary_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{442, 0} } -type PatternFlowTcpEcnEcho_Choice struct { +type PatternFlowIpv4TosUnused_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpEcnEcho_Choice) Reset() { - *x = PatternFlowTcpEcnEcho_Choice{} +func (x *PatternFlowIpv4TosUnused_Choice) Reset() { + *x = PatternFlowIpv4TosUnused_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1013] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91359,13 +93724,13 @@ func (x *PatternFlowTcpEcnEcho_Choice) Reset() { } } -func (x *PatternFlowTcpEcnEcho_Choice) String() string { +func (x *PatternFlowIpv4TosUnused_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpEcnEcho_Choice) ProtoMessage() {} +func (*PatternFlowIpv4TosUnused_Choice) ProtoMessage() {} -func (x *PatternFlowTcpEcnEcho_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv4TosUnused_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1013] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91377,19 +93742,19 @@ func (x *PatternFlowTcpEcnEcho_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpEcnEcho_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpEcnEcho_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{541, 0} +// Deprecated: Use PatternFlowIpv4TosUnused_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosUnused_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{445, 0} } -type PatternFlowTcpCtlUrg_Choice struct { +type PatternFlowIpv6Version_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpCtlUrg_Choice) Reset() { - *x = PatternFlowTcpCtlUrg_Choice{} +func (x *PatternFlowIpv6Version_Choice) Reset() { + *x = PatternFlowIpv6Version_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1014] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91397,13 +93762,13 @@ func (x *PatternFlowTcpCtlUrg_Choice) Reset() { } } -func (x *PatternFlowTcpCtlUrg_Choice) String() string { +func (x *PatternFlowIpv6Version_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlUrg_Choice) ProtoMessage() {} +func (*PatternFlowIpv6Version_Choice) ProtoMessage() {} -func (x *PatternFlowTcpCtlUrg_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6Version_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1014] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91415,19 +93780,19 @@ func (x *PatternFlowTcpCtlUrg_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlUrg_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlUrg_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{544, 0} +// Deprecated: Use PatternFlowIpv6Version_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6Version_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{448, 0} } -type PatternFlowTcpCtlAck_Choice struct { +type PatternFlowIpv6TrafficClass_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpCtlAck_Choice) Reset() { - *x = PatternFlowTcpCtlAck_Choice{} +func (x *PatternFlowIpv6TrafficClass_Choice) Reset() { + *x = PatternFlowIpv6TrafficClass_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1015] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91435,13 +93800,13 @@ func (x *PatternFlowTcpCtlAck_Choice) Reset() { } } -func (x *PatternFlowTcpCtlAck_Choice) String() string { +func (x *PatternFlowIpv6TrafficClass_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlAck_Choice) ProtoMessage() {} +func (*PatternFlowIpv6TrafficClass_Choice) ProtoMessage() {} -func (x *PatternFlowTcpCtlAck_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6TrafficClass_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1015] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91453,19 +93818,19 @@ func (x *PatternFlowTcpCtlAck_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlAck_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlAck_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{547, 0} +// Deprecated: Use PatternFlowIpv6TrafficClass_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6TrafficClass_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{451, 0} } -type PatternFlowTcpCtlPsh_Choice struct { +type PatternFlowIpv6FlowLabel_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpCtlPsh_Choice) Reset() { - *x = PatternFlowTcpCtlPsh_Choice{} +func (x *PatternFlowIpv6FlowLabel_Choice) Reset() { + *x = PatternFlowIpv6FlowLabel_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1016] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91473,13 +93838,13 @@ func (x *PatternFlowTcpCtlPsh_Choice) Reset() { } } -func (x *PatternFlowTcpCtlPsh_Choice) String() string { +func (x *PatternFlowIpv6FlowLabel_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlPsh_Choice) ProtoMessage() {} +func (*PatternFlowIpv6FlowLabel_Choice) ProtoMessage() {} -func (x *PatternFlowTcpCtlPsh_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6FlowLabel_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1016] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91491,19 +93856,19 @@ func (x *PatternFlowTcpCtlPsh_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlPsh_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlPsh_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{550, 0} +// Deprecated: Use PatternFlowIpv6FlowLabel_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6FlowLabel_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{454, 0} } -type PatternFlowTcpCtlRst_Choice struct { +type PatternFlowIpv6PayloadLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpCtlRst_Choice) Reset() { - *x = PatternFlowTcpCtlRst_Choice{} +func (x *PatternFlowIpv6PayloadLength_Choice) Reset() { + *x = PatternFlowIpv6PayloadLength_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1017] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91511,13 +93876,13 @@ func (x *PatternFlowTcpCtlRst_Choice) Reset() { } } -func (x *PatternFlowTcpCtlRst_Choice) String() string { +func (x *PatternFlowIpv6PayloadLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlRst_Choice) ProtoMessage() {} +func (*PatternFlowIpv6PayloadLength_Choice) ProtoMessage() {} -func (x *PatternFlowTcpCtlRst_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6PayloadLength_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1017] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91529,19 +93894,19 @@ func (x *PatternFlowTcpCtlRst_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlRst_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlRst_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{553, 0} +// Deprecated: Use PatternFlowIpv6PayloadLength_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6PayloadLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{457, 0} } -type PatternFlowTcpCtlSyn_Choice struct { +type PatternFlowIpv6NextHeader_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpCtlSyn_Choice) Reset() { - *x = PatternFlowTcpCtlSyn_Choice{} +func (x *PatternFlowIpv6NextHeader_Choice) Reset() { + *x = PatternFlowIpv6NextHeader_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1018] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91549,13 +93914,13 @@ func (x *PatternFlowTcpCtlSyn_Choice) Reset() { } } -func (x *PatternFlowTcpCtlSyn_Choice) String() string { +func (x *PatternFlowIpv6NextHeader_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlSyn_Choice) ProtoMessage() {} +func (*PatternFlowIpv6NextHeader_Choice) ProtoMessage() {} -func (x *PatternFlowTcpCtlSyn_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6NextHeader_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1018] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91567,19 +93932,19 @@ func (x *PatternFlowTcpCtlSyn_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlSyn_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlSyn_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{556, 0} +// Deprecated: Use PatternFlowIpv6NextHeader_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6NextHeader_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{460, 0} } -type PatternFlowTcpCtlFin_Choice struct { +type PatternFlowIpv6HopLimit_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpCtlFin_Choice) Reset() { - *x = PatternFlowTcpCtlFin_Choice{} +func (x *PatternFlowIpv6HopLimit_Choice) Reset() { + *x = PatternFlowIpv6HopLimit_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1019] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91587,13 +93952,13 @@ func (x *PatternFlowTcpCtlFin_Choice) Reset() { } } -func (x *PatternFlowTcpCtlFin_Choice) String() string { +func (x *PatternFlowIpv6HopLimit_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlFin_Choice) ProtoMessage() {} +func (*PatternFlowIpv6HopLimit_Choice) ProtoMessage() {} -func (x *PatternFlowTcpCtlFin_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6HopLimit_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1019] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91605,19 +93970,19 @@ func (x *PatternFlowTcpCtlFin_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlFin_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlFin_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{559, 0} +// Deprecated: Use PatternFlowIpv6HopLimit_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6HopLimit_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{463, 0} } -type PatternFlowTcpWindow_Choice struct { +type PatternFlowIpv6Src_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpWindow_Choice) Reset() { - *x = PatternFlowTcpWindow_Choice{} +func (x *PatternFlowIpv6Src_Choice) Reset() { + *x = PatternFlowIpv6Src_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1020] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91625,13 +93990,13 @@ func (x *PatternFlowTcpWindow_Choice) Reset() { } } -func (x *PatternFlowTcpWindow_Choice) String() string { +func (x *PatternFlowIpv6Src_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpWindow_Choice) ProtoMessage() {} +func (*PatternFlowIpv6Src_Choice) ProtoMessage() {} -func (x *PatternFlowTcpWindow_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6Src_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1020] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91643,19 +94008,19 @@ func (x *PatternFlowTcpWindow_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpWindow_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpWindow_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{562, 0} +// Deprecated: Use PatternFlowIpv6Src_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6Src_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{466, 0} } -type PatternFlowUdpSrcPort_Choice struct { +type PatternFlowIpv6Dst_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowUdpSrcPort_Choice) Reset() { - *x = PatternFlowUdpSrcPort_Choice{} +func (x *PatternFlowIpv6Dst_Choice) Reset() { + *x = PatternFlowIpv6Dst_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1021] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91663,13 +94028,13 @@ func (x *PatternFlowUdpSrcPort_Choice) Reset() { } } -func (x *PatternFlowUdpSrcPort_Choice) String() string { +func (x *PatternFlowIpv6Dst_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpSrcPort_Choice) ProtoMessage() {} +func (*PatternFlowIpv6Dst_Choice) ProtoMessage() {} -func (x *PatternFlowUdpSrcPort_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowIpv6Dst_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1021] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91681,19 +94046,19 @@ func (x *PatternFlowUdpSrcPort_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpSrcPort_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpSrcPort_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{565, 0} +// Deprecated: Use PatternFlowIpv6Dst_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6Dst_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{469, 0} } -type PatternFlowUdpDstPort_Choice struct { +type PatternFlowPfcPauseDst_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowUdpDstPort_Choice) Reset() { - *x = PatternFlowUdpDstPort_Choice{} +func (x *PatternFlowPfcPauseDst_Choice) Reset() { + *x = PatternFlowPfcPauseDst_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1022] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91701,13 +94066,13 @@ func (x *PatternFlowUdpDstPort_Choice) Reset() { } } -func (x *PatternFlowUdpDstPort_Choice) String() string { +func (x *PatternFlowPfcPauseDst_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpDstPort_Choice) ProtoMessage() {} +func (*PatternFlowPfcPauseDst_Choice) ProtoMessage() {} -func (x *PatternFlowUdpDstPort_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPauseDst_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1022] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91719,19 +94084,19 @@ func (x *PatternFlowUdpDstPort_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpDstPort_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpDstPort_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{568, 0} +// Deprecated: Use PatternFlowPfcPauseDst_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseDst_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{472, 0} } -type PatternFlowUdpLength_Choice struct { +type PatternFlowPfcPauseSrc_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowUdpLength_Choice) Reset() { - *x = PatternFlowUdpLength_Choice{} +func (x *PatternFlowPfcPauseSrc_Choice) Reset() { + *x = PatternFlowPfcPauseSrc_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1023] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91739,13 +94104,13 @@ func (x *PatternFlowUdpLength_Choice) Reset() { } } -func (x *PatternFlowUdpLength_Choice) String() string { +func (x *PatternFlowPfcPauseSrc_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpLength_Choice) ProtoMessage() {} +func (*PatternFlowPfcPauseSrc_Choice) ProtoMessage() {} -func (x *PatternFlowUdpLength_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPauseSrc_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1023] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91757,19 +94122,19 @@ func (x *PatternFlowUdpLength_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpLength_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpLength_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{571, 0} +// Deprecated: Use PatternFlowPfcPauseSrc_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseSrc_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{475, 0} } -type PatternFlowUdpChecksum_Choice struct { +type PatternFlowPfcPauseEtherType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowUdpChecksum_Choice) Reset() { - *x = PatternFlowUdpChecksum_Choice{} +func (x *PatternFlowPfcPauseEtherType_Choice) Reset() { + *x = PatternFlowPfcPauseEtherType_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1024] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91777,13 +94142,13 @@ func (x *PatternFlowUdpChecksum_Choice) Reset() { } } -func (x *PatternFlowUdpChecksum_Choice) String() string { +func (x *PatternFlowPfcPauseEtherType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpChecksum_Choice) ProtoMessage() {} +func (*PatternFlowPfcPauseEtherType_Choice) ProtoMessage() {} -func (x *PatternFlowUdpChecksum_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPauseEtherType_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1024] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91795,19 +94160,19 @@ func (x *PatternFlowUdpChecksum_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpChecksum_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpChecksum_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{572, 0} +// Deprecated: Use PatternFlowPfcPauseEtherType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseEtherType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{478, 0} } -type PatternFlowUdpChecksum_Generated struct { +type PatternFlowPfcPauseControlOpCode_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowUdpChecksum_Generated) Reset() { - *x = PatternFlowUdpChecksum_Generated{} +func (x *PatternFlowPfcPauseControlOpCode_Choice) Reset() { + *x = PatternFlowPfcPauseControlOpCode_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1025] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91815,13 +94180,13 @@ func (x *PatternFlowUdpChecksum_Generated) Reset() { } } -func (x *PatternFlowUdpChecksum_Generated) String() string { +func (x *PatternFlowPfcPauseControlOpCode_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpChecksum_Generated) ProtoMessage() {} +func (*PatternFlowPfcPauseControlOpCode_Choice) ProtoMessage() {} -func (x *PatternFlowUdpChecksum_Generated) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPauseControlOpCode_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1025] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91833,19 +94198,19 @@ func (x *PatternFlowUdpChecksum_Generated) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpChecksum_Generated.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpChecksum_Generated) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{572, 1} +// Deprecated: Use PatternFlowPfcPauseControlOpCode_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseControlOpCode_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{481, 0} } -type PatternFlowGreChecksumPresent_Choice struct { +type PatternFlowPfcPauseClassEnableVector_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGreChecksumPresent_Choice) Reset() { - *x = PatternFlowGreChecksumPresent_Choice{} +func (x *PatternFlowPfcPauseClassEnableVector_Choice) Reset() { + *x = PatternFlowPfcPauseClassEnableVector_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1026] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91853,13 +94218,13 @@ func (x *PatternFlowGreChecksumPresent_Choice) Reset() { } } -func (x *PatternFlowGreChecksumPresent_Choice) String() string { +func (x *PatternFlowPfcPauseClassEnableVector_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreChecksumPresent_Choice) ProtoMessage() {} +func (*PatternFlowPfcPauseClassEnableVector_Choice) ProtoMessage() {} -func (x *PatternFlowGreChecksumPresent_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPauseClassEnableVector_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1026] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91871,19 +94236,19 @@ func (x *PatternFlowGreChecksumPresent_Choice) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreChecksumPresent_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGreChecksumPresent_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{575, 0} +// Deprecated: Use PatternFlowPfcPauseClassEnableVector_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseClassEnableVector_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{484, 0} } -type PatternFlowGreReserved0_Choice struct { +type PatternFlowPfcPausePauseClass0_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGreReserved0_Choice) Reset() { - *x = PatternFlowGreReserved0_Choice{} +func (x *PatternFlowPfcPausePauseClass0_Choice) Reset() { + *x = PatternFlowPfcPausePauseClass0_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1027] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91891,13 +94256,13 @@ func (x *PatternFlowGreReserved0_Choice) Reset() { } } -func (x *PatternFlowGreReserved0_Choice) String() string { +func (x *PatternFlowPfcPausePauseClass0_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreReserved0_Choice) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass0_Choice) ProtoMessage() {} -func (x *PatternFlowGreReserved0_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass0_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1027] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91909,19 +94274,19 @@ func (x *PatternFlowGreReserved0_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreReserved0_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGreReserved0_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{578, 0} +// Deprecated: Use PatternFlowPfcPausePauseClass0_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass0_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{487, 0} } -type PatternFlowGreVersion_Choice struct { +type PatternFlowPfcPausePauseClass1_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGreVersion_Choice) Reset() { - *x = PatternFlowGreVersion_Choice{} +func (x *PatternFlowPfcPausePauseClass1_Choice) Reset() { + *x = PatternFlowPfcPausePauseClass1_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1028] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91929,13 +94294,13 @@ func (x *PatternFlowGreVersion_Choice) Reset() { } } -func (x *PatternFlowGreVersion_Choice) String() string { +func (x *PatternFlowPfcPausePauseClass1_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreVersion_Choice) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass1_Choice) ProtoMessage() {} -func (x *PatternFlowGreVersion_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass1_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1028] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91947,19 +94312,19 @@ func (x *PatternFlowGreVersion_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreVersion_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGreVersion_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{581, 0} +// Deprecated: Use PatternFlowPfcPausePauseClass1_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass1_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{490, 0} } -type PatternFlowGreProtocol_Choice struct { +type PatternFlowPfcPausePauseClass2_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGreProtocol_Choice) Reset() { - *x = PatternFlowGreProtocol_Choice{} +func (x *PatternFlowPfcPausePauseClass2_Choice) Reset() { + *x = PatternFlowPfcPausePauseClass2_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1029] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91967,13 +94332,13 @@ func (x *PatternFlowGreProtocol_Choice) Reset() { } } -func (x *PatternFlowGreProtocol_Choice) String() string { +func (x *PatternFlowPfcPausePauseClass2_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreProtocol_Choice) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass2_Choice) ProtoMessage() {} -func (x *PatternFlowGreProtocol_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass2_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1029] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -91985,19 +94350,19 @@ func (x *PatternFlowGreProtocol_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreProtocol_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGreProtocol_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{584, 0} +// Deprecated: Use PatternFlowPfcPausePauseClass2_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass2_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{493, 0} } -type PatternFlowGreChecksum_Choice struct { +type PatternFlowPfcPausePauseClass3_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGreChecksum_Choice) Reset() { - *x = PatternFlowGreChecksum_Choice{} +func (x *PatternFlowPfcPausePauseClass3_Choice) Reset() { + *x = PatternFlowPfcPausePauseClass3_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1030] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92005,13 +94370,13 @@ func (x *PatternFlowGreChecksum_Choice) Reset() { } } -func (x *PatternFlowGreChecksum_Choice) String() string { +func (x *PatternFlowPfcPausePauseClass3_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreChecksum_Choice) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass3_Choice) ProtoMessage() {} -func (x *PatternFlowGreChecksum_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass3_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1030] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92023,19 +94388,19 @@ func (x *PatternFlowGreChecksum_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreChecksum_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGreChecksum_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{585, 0} +// Deprecated: Use PatternFlowPfcPausePauseClass3_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass3_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{496, 0} } -type PatternFlowGreChecksum_Generated struct { +type PatternFlowPfcPausePauseClass4_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGreChecksum_Generated) Reset() { - *x = PatternFlowGreChecksum_Generated{} +func (x *PatternFlowPfcPausePauseClass4_Choice) Reset() { + *x = PatternFlowPfcPausePauseClass4_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1031] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92043,13 +94408,13 @@ func (x *PatternFlowGreChecksum_Generated) Reset() { } } -func (x *PatternFlowGreChecksum_Generated) String() string { +func (x *PatternFlowPfcPausePauseClass4_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreChecksum_Generated) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass4_Choice) ProtoMessage() {} -func (x *PatternFlowGreChecksum_Generated) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass4_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1031] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92061,19 +94426,19 @@ func (x *PatternFlowGreChecksum_Generated) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreChecksum_Generated.ProtoReflect.Descriptor instead. -func (*PatternFlowGreChecksum_Generated) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{585, 1} +// Deprecated: Use PatternFlowPfcPausePauseClass4_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass4_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{499, 0} } -type PatternFlowGreReserved1_Choice struct { +type PatternFlowPfcPausePauseClass5_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGreReserved1_Choice) Reset() { - *x = PatternFlowGreReserved1_Choice{} +func (x *PatternFlowPfcPausePauseClass5_Choice) Reset() { + *x = PatternFlowPfcPausePauseClass5_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1032] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92081,13 +94446,13 @@ func (x *PatternFlowGreReserved1_Choice) Reset() { } } -func (x *PatternFlowGreReserved1_Choice) String() string { +func (x *PatternFlowPfcPausePauseClass5_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreReserved1_Choice) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass5_Choice) ProtoMessage() {} -func (x *PatternFlowGreReserved1_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass5_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1032] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92099,19 +94464,19 @@ func (x *PatternFlowGreReserved1_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreReserved1_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGreReserved1_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{588, 0} +// Deprecated: Use PatternFlowPfcPausePauseClass5_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass5_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{502, 0} } -type PatternFlowGtpv1Version_Choice struct { +type PatternFlowPfcPausePauseClass6_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1Version_Choice) Reset() { - *x = PatternFlowGtpv1Version_Choice{} +func (x *PatternFlowPfcPausePauseClass6_Choice) Reset() { + *x = PatternFlowPfcPausePauseClass6_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1033] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92119,13 +94484,13 @@ func (x *PatternFlowGtpv1Version_Choice) Reset() { } } -func (x *PatternFlowGtpv1Version_Choice) String() string { +func (x *PatternFlowPfcPausePauseClass6_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1Version_Choice) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass6_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1Version_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass6_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1033] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92137,19 +94502,19 @@ func (x *PatternFlowGtpv1Version_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1Version_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1Version_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{591, 0} +// Deprecated: Use PatternFlowPfcPausePauseClass6_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass6_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{505, 0} } -type PatternFlowGtpv1ProtocolType_Choice struct { +type PatternFlowPfcPausePauseClass7_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1ProtocolType_Choice) Reset() { - *x = PatternFlowGtpv1ProtocolType_Choice{} +func (x *PatternFlowPfcPausePauseClass7_Choice) Reset() { + *x = PatternFlowPfcPausePauseClass7_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1034] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92157,13 +94522,13 @@ func (x *PatternFlowGtpv1ProtocolType_Choice) Reset() { } } -func (x *PatternFlowGtpv1ProtocolType_Choice) String() string { +func (x *PatternFlowPfcPausePauseClass7_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1ProtocolType_Choice) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass7_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1ProtocolType_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowPfcPausePauseClass7_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1034] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92175,19 +94540,19 @@ func (x *PatternFlowGtpv1ProtocolType_Choice) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1ProtocolType_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1ProtocolType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{594, 0} +// Deprecated: Use PatternFlowPfcPausePauseClass7_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass7_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{508, 0} } -type PatternFlowGtpv1Reserved_Choice struct { +type PatternFlowEthernetPauseDst_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1Reserved_Choice) Reset() { - *x = PatternFlowGtpv1Reserved_Choice{} +func (x *PatternFlowEthernetPauseDst_Choice) Reset() { + *x = PatternFlowEthernetPauseDst_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1035] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92195,13 +94560,13 @@ func (x *PatternFlowGtpv1Reserved_Choice) Reset() { } } -func (x *PatternFlowGtpv1Reserved_Choice) String() string { +func (x *PatternFlowEthernetPauseDst_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1Reserved_Choice) ProtoMessage() {} +func (*PatternFlowEthernetPauseDst_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1Reserved_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPauseDst_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1035] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92213,19 +94578,19 @@ func (x *PatternFlowGtpv1Reserved_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1Reserved_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1Reserved_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{597, 0} +// Deprecated: Use PatternFlowEthernetPauseDst_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseDst_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{511, 0} } -type PatternFlowGtpv1EFlag_Choice struct { +type PatternFlowEthernetPauseSrc_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1EFlag_Choice) Reset() { - *x = PatternFlowGtpv1EFlag_Choice{} +func (x *PatternFlowEthernetPauseSrc_Choice) Reset() { + *x = PatternFlowEthernetPauseSrc_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1036] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92233,13 +94598,13 @@ func (x *PatternFlowGtpv1EFlag_Choice) Reset() { } } -func (x *PatternFlowGtpv1EFlag_Choice) String() string { +func (x *PatternFlowEthernetPauseSrc_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1EFlag_Choice) ProtoMessage() {} +func (*PatternFlowEthernetPauseSrc_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1EFlag_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPauseSrc_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1036] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92251,19 +94616,19 @@ func (x *PatternFlowGtpv1EFlag_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1EFlag_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1EFlag_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{600, 0} +// Deprecated: Use PatternFlowEthernetPauseSrc_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseSrc_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{514, 0} } -type PatternFlowGtpv1SFlag_Choice struct { +type PatternFlowEthernetPauseEtherType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1SFlag_Choice) Reset() { - *x = PatternFlowGtpv1SFlag_Choice{} +func (x *PatternFlowEthernetPauseEtherType_Choice) Reset() { + *x = PatternFlowEthernetPauseEtherType_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1037] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92271,13 +94636,13 @@ func (x *PatternFlowGtpv1SFlag_Choice) Reset() { } } -func (x *PatternFlowGtpv1SFlag_Choice) String() string { +func (x *PatternFlowEthernetPauseEtherType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1SFlag_Choice) ProtoMessage() {} +func (*PatternFlowEthernetPauseEtherType_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1SFlag_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPauseEtherType_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1037] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92289,19 +94654,19 @@ func (x *PatternFlowGtpv1SFlag_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1SFlag_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1SFlag_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{603, 0} +// Deprecated: Use PatternFlowEthernetPauseEtherType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseEtherType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{517, 0} } -type PatternFlowGtpv1PnFlag_Choice struct { +type PatternFlowEthernetPauseControlOpCode_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1PnFlag_Choice) Reset() { - *x = PatternFlowGtpv1PnFlag_Choice{} +func (x *PatternFlowEthernetPauseControlOpCode_Choice) Reset() { + *x = PatternFlowEthernetPauseControlOpCode_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1038] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92309,13 +94674,13 @@ func (x *PatternFlowGtpv1PnFlag_Choice) Reset() { } } -func (x *PatternFlowGtpv1PnFlag_Choice) String() string { +func (x *PatternFlowEthernetPauseControlOpCode_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1PnFlag_Choice) ProtoMessage() {} +func (*PatternFlowEthernetPauseControlOpCode_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1PnFlag_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPauseControlOpCode_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1038] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92327,19 +94692,19 @@ func (x *PatternFlowGtpv1PnFlag_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1PnFlag_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1PnFlag_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{606, 0} +// Deprecated: Use PatternFlowEthernetPauseControlOpCode_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseControlOpCode_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{520, 0} } -type PatternFlowGtpv1MessageType_Choice struct { +type PatternFlowEthernetPauseTime_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1MessageType_Choice) Reset() { - *x = PatternFlowGtpv1MessageType_Choice{} +func (x *PatternFlowEthernetPauseTime_Choice) Reset() { + *x = PatternFlowEthernetPauseTime_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1039] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92347,13 +94712,13 @@ func (x *PatternFlowGtpv1MessageType_Choice) Reset() { } } -func (x *PatternFlowGtpv1MessageType_Choice) String() string { +func (x *PatternFlowEthernetPauseTime_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1MessageType_Choice) ProtoMessage() {} +func (*PatternFlowEthernetPauseTime_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1MessageType_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowEthernetPauseTime_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1039] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92365,19 +94730,19 @@ func (x *PatternFlowGtpv1MessageType_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1MessageType_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1MessageType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{609, 0} +// Deprecated: Use PatternFlowEthernetPauseTime_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseTime_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{523, 0} } -type PatternFlowGtpv1MessageLength_Choice struct { +type PatternFlowTcpSrcPort_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1MessageLength_Choice) Reset() { - *x = PatternFlowGtpv1MessageLength_Choice{} +func (x *PatternFlowTcpSrcPort_Choice) Reset() { + *x = PatternFlowTcpSrcPort_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1040] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92385,13 +94750,13 @@ func (x *PatternFlowGtpv1MessageLength_Choice) Reset() { } } -func (x *PatternFlowGtpv1MessageLength_Choice) String() string { +func (x *PatternFlowTcpSrcPort_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1MessageLength_Choice) ProtoMessage() {} +func (*PatternFlowTcpSrcPort_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1MessageLength_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpSrcPort_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1040] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92403,19 +94768,19 @@ func (x *PatternFlowGtpv1MessageLength_Choice) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1MessageLength_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1MessageLength_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{612, 0} +// Deprecated: Use PatternFlowTcpSrcPort_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpSrcPort_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{526, 0} } -type PatternFlowGtpv1Teid_Choice struct { +type PatternFlowTcpDstPort_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1Teid_Choice) Reset() { - *x = PatternFlowGtpv1Teid_Choice{} +func (x *PatternFlowTcpDstPort_Choice) Reset() { + *x = PatternFlowTcpDstPort_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1041] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92423,13 +94788,13 @@ func (x *PatternFlowGtpv1Teid_Choice) Reset() { } } -func (x *PatternFlowGtpv1Teid_Choice) String() string { +func (x *PatternFlowTcpDstPort_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1Teid_Choice) ProtoMessage() {} +func (*PatternFlowTcpDstPort_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1Teid_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpDstPort_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1041] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92441,19 +94806,19 @@ func (x *PatternFlowGtpv1Teid_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1Teid_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1Teid_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{615, 0} +// Deprecated: Use PatternFlowTcpDstPort_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpDstPort_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{529, 0} } -type PatternFlowGtpv1SquenceNumber_Choice struct { +type PatternFlowTcpSeqNum_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1SquenceNumber_Choice) Reset() { - *x = PatternFlowGtpv1SquenceNumber_Choice{} +func (x *PatternFlowTcpSeqNum_Choice) Reset() { + *x = PatternFlowTcpSeqNum_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1042] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92461,13 +94826,13 @@ func (x *PatternFlowGtpv1SquenceNumber_Choice) Reset() { } } -func (x *PatternFlowGtpv1SquenceNumber_Choice) String() string { +func (x *PatternFlowTcpSeqNum_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1SquenceNumber_Choice) ProtoMessage() {} +func (*PatternFlowTcpSeqNum_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1SquenceNumber_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpSeqNum_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1042] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92479,19 +94844,19 @@ func (x *PatternFlowGtpv1SquenceNumber_Choice) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1SquenceNumber_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1SquenceNumber_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{618, 0} +// Deprecated: Use PatternFlowTcpSeqNum_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpSeqNum_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{532, 0} } -type PatternFlowGtpv1NPduNumber_Choice struct { +type PatternFlowTcpAckNum_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1NPduNumber_Choice) Reset() { - *x = PatternFlowGtpv1NPduNumber_Choice{} +func (x *PatternFlowTcpAckNum_Choice) Reset() { + *x = PatternFlowTcpAckNum_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1043] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92499,13 +94864,13 @@ func (x *PatternFlowGtpv1NPduNumber_Choice) Reset() { } } -func (x *PatternFlowGtpv1NPduNumber_Choice) String() string { +func (x *PatternFlowTcpAckNum_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1NPduNumber_Choice) ProtoMessage() {} +func (*PatternFlowTcpAckNum_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1NPduNumber_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpAckNum_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1043] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92517,19 +94882,19 @@ func (x *PatternFlowGtpv1NPduNumber_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1NPduNumber_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1NPduNumber_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{621, 0} +// Deprecated: Use PatternFlowTcpAckNum_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpAckNum_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{535, 0} } -type PatternFlowGtpv1NextExtensionHeaderType_Choice struct { +type PatternFlowTcpDataOffset_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1NextExtensionHeaderType_Choice) Reset() { - *x = PatternFlowGtpv1NextExtensionHeaderType_Choice{} +func (x *PatternFlowTcpDataOffset_Choice) Reset() { + *x = PatternFlowTcpDataOffset_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1044] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92537,13 +94902,13 @@ func (x *PatternFlowGtpv1NextExtensionHeaderType_Choice) Reset() { } } -func (x *PatternFlowGtpv1NextExtensionHeaderType_Choice) String() string { +func (x *PatternFlowTcpDataOffset_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1NextExtensionHeaderType_Choice) ProtoMessage() {} +func (*PatternFlowTcpDataOffset_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1NextExtensionHeaderType_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpDataOffset_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1044] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92555,19 +94920,19 @@ func (x *PatternFlowGtpv1NextExtensionHeaderType_Choice) ProtoReflect() protoref return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1NextExtensionHeaderType_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1NextExtensionHeaderType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{624, 0} +// Deprecated: Use PatternFlowTcpDataOffset_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpDataOffset_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{538, 0} } -type PatternFlowGtpExtensionExtensionLength_Choice struct { +type PatternFlowTcpEcnNs_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpExtensionExtensionLength_Choice) Reset() { - *x = PatternFlowGtpExtensionExtensionLength_Choice{} +func (x *PatternFlowTcpEcnNs_Choice) Reset() { + *x = PatternFlowTcpEcnNs_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1045] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92575,13 +94940,13 @@ func (x *PatternFlowGtpExtensionExtensionLength_Choice) Reset() { } } -func (x *PatternFlowGtpExtensionExtensionLength_Choice) String() string { +func (x *PatternFlowTcpEcnNs_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpExtensionExtensionLength_Choice) ProtoMessage() {} +func (*PatternFlowTcpEcnNs_Choice) ProtoMessage() {} -func (x *PatternFlowGtpExtensionExtensionLength_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpEcnNs_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1045] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92593,19 +94958,19 @@ func (x *PatternFlowGtpExtensionExtensionLength_Choice) ProtoReflect() protorefl return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpExtensionExtensionLength_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpExtensionExtensionLength_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{627, 0} +// Deprecated: Use PatternFlowTcpEcnNs_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpEcnNs_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{541, 0} } -type PatternFlowGtpExtensionContents_Choice struct { +type PatternFlowTcpEcnCwr_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpExtensionContents_Choice) Reset() { - *x = PatternFlowGtpExtensionContents_Choice{} +func (x *PatternFlowTcpEcnCwr_Choice) Reset() { + *x = PatternFlowTcpEcnCwr_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1046] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92613,13 +94978,13 @@ func (x *PatternFlowGtpExtensionContents_Choice) Reset() { } } -func (x *PatternFlowGtpExtensionContents_Choice) String() string { +func (x *PatternFlowTcpEcnCwr_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpExtensionContents_Choice) ProtoMessage() {} +func (*PatternFlowTcpEcnCwr_Choice) ProtoMessage() {} -func (x *PatternFlowGtpExtensionContents_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpEcnCwr_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1046] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92631,19 +94996,19 @@ func (x *PatternFlowGtpExtensionContents_Choice) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpExtensionContents_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpExtensionContents_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{630, 0} +// Deprecated: Use PatternFlowTcpEcnCwr_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpEcnCwr_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{544, 0} } -type PatternFlowGtpExtensionNextExtensionHeader_Choice struct { +type PatternFlowTcpEcnEcho_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpExtensionNextExtensionHeader_Choice) Reset() { - *x = PatternFlowGtpExtensionNextExtensionHeader_Choice{} +func (x *PatternFlowTcpEcnEcho_Choice) Reset() { + *x = PatternFlowTcpEcnEcho_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1047] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92651,13 +95016,13 @@ func (x *PatternFlowGtpExtensionNextExtensionHeader_Choice) Reset() { } } -func (x *PatternFlowGtpExtensionNextExtensionHeader_Choice) String() string { +func (x *PatternFlowTcpEcnEcho_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpExtensionNextExtensionHeader_Choice) ProtoMessage() {} +func (*PatternFlowTcpEcnEcho_Choice) ProtoMessage() {} -func (x *PatternFlowGtpExtensionNextExtensionHeader_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpEcnEcho_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1047] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92669,19 +95034,19 @@ func (x *PatternFlowGtpExtensionNextExtensionHeader_Choice) ProtoReflect() proto return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpExtensionNextExtensionHeader_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpExtensionNextExtensionHeader_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{633, 0} +// Deprecated: Use PatternFlowTcpEcnEcho_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpEcnEcho_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{547, 0} } -type PatternFlowGtpv2Version_Choice struct { +type PatternFlowTcpCtlUrg_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv2Version_Choice) Reset() { - *x = PatternFlowGtpv2Version_Choice{} +func (x *PatternFlowTcpCtlUrg_Choice) Reset() { + *x = PatternFlowTcpCtlUrg_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1048] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92689,13 +95054,13 @@ func (x *PatternFlowGtpv2Version_Choice) Reset() { } } -func (x *PatternFlowGtpv2Version_Choice) String() string { +func (x *PatternFlowTcpCtlUrg_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Version_Choice) ProtoMessage() {} +func (*PatternFlowTcpCtlUrg_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv2Version_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpCtlUrg_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1048] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92707,19 +95072,19 @@ func (x *PatternFlowGtpv2Version_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2Version_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2Version_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{636, 0} +// Deprecated: Use PatternFlowTcpCtlUrg_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlUrg_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{550, 0} } -type PatternFlowGtpv2PiggybackingFlag_Choice struct { +type PatternFlowTcpCtlAck_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv2PiggybackingFlag_Choice) Reset() { - *x = PatternFlowGtpv2PiggybackingFlag_Choice{} +func (x *PatternFlowTcpCtlAck_Choice) Reset() { + *x = PatternFlowTcpCtlAck_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1049] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92727,13 +95092,13 @@ func (x *PatternFlowGtpv2PiggybackingFlag_Choice) Reset() { } } -func (x *PatternFlowGtpv2PiggybackingFlag_Choice) String() string { +func (x *PatternFlowTcpCtlAck_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2PiggybackingFlag_Choice) ProtoMessage() {} +func (*PatternFlowTcpCtlAck_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv2PiggybackingFlag_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpCtlAck_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1049] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92745,19 +95110,19 @@ func (x *PatternFlowGtpv2PiggybackingFlag_Choice) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2PiggybackingFlag_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2PiggybackingFlag_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{639, 0} +// Deprecated: Use PatternFlowTcpCtlAck_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlAck_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{553, 0} } -type PatternFlowGtpv2TeidFlag_Choice struct { +type PatternFlowTcpCtlPsh_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv2TeidFlag_Choice) Reset() { - *x = PatternFlowGtpv2TeidFlag_Choice{} +func (x *PatternFlowTcpCtlPsh_Choice) Reset() { + *x = PatternFlowTcpCtlPsh_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1050] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92765,13 +95130,13 @@ func (x *PatternFlowGtpv2TeidFlag_Choice) Reset() { } } -func (x *PatternFlowGtpv2TeidFlag_Choice) String() string { +func (x *PatternFlowTcpCtlPsh_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2TeidFlag_Choice) ProtoMessage() {} +func (*PatternFlowTcpCtlPsh_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv2TeidFlag_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpCtlPsh_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1050] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92783,19 +95148,19 @@ func (x *PatternFlowGtpv2TeidFlag_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2TeidFlag_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2TeidFlag_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{642, 0} +// Deprecated: Use PatternFlowTcpCtlPsh_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlPsh_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{556, 0} } -type PatternFlowGtpv2Spare1_Choice struct { +type PatternFlowTcpCtlRst_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv2Spare1_Choice) Reset() { - *x = PatternFlowGtpv2Spare1_Choice{} +func (x *PatternFlowTcpCtlRst_Choice) Reset() { + *x = PatternFlowTcpCtlRst_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1051] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92803,13 +95168,13 @@ func (x *PatternFlowGtpv2Spare1_Choice) Reset() { } } -func (x *PatternFlowGtpv2Spare1_Choice) String() string { +func (x *PatternFlowTcpCtlRst_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Spare1_Choice) ProtoMessage() {} +func (*PatternFlowTcpCtlRst_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv2Spare1_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpCtlRst_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1051] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92821,19 +95186,19 @@ func (x *PatternFlowGtpv2Spare1_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2Spare1_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2Spare1_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{645, 0} +// Deprecated: Use PatternFlowTcpCtlRst_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlRst_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{559, 0} } -type PatternFlowGtpv2MessageType_Choice struct { +type PatternFlowTcpCtlSyn_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv2MessageType_Choice) Reset() { - *x = PatternFlowGtpv2MessageType_Choice{} +func (x *PatternFlowTcpCtlSyn_Choice) Reset() { + *x = PatternFlowTcpCtlSyn_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1052] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92841,13 +95206,13 @@ func (x *PatternFlowGtpv2MessageType_Choice) Reset() { } } -func (x *PatternFlowGtpv2MessageType_Choice) String() string { +func (x *PatternFlowTcpCtlSyn_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2MessageType_Choice) ProtoMessage() {} +func (*PatternFlowTcpCtlSyn_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv2MessageType_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpCtlSyn_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1052] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92859,19 +95224,19 @@ func (x *PatternFlowGtpv2MessageType_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2MessageType_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2MessageType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{648, 0} +// Deprecated: Use PatternFlowTcpCtlSyn_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlSyn_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{562, 0} } -type PatternFlowGtpv2MessageLength_Choice struct { +type PatternFlowTcpCtlFin_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv2MessageLength_Choice) Reset() { - *x = PatternFlowGtpv2MessageLength_Choice{} +func (x *PatternFlowTcpCtlFin_Choice) Reset() { + *x = PatternFlowTcpCtlFin_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1053] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92879,13 +95244,13 @@ func (x *PatternFlowGtpv2MessageLength_Choice) Reset() { } } -func (x *PatternFlowGtpv2MessageLength_Choice) String() string { +func (x *PatternFlowTcpCtlFin_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2MessageLength_Choice) ProtoMessage() {} +func (*PatternFlowTcpCtlFin_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv2MessageLength_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpCtlFin_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1053] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92897,19 +95262,19 @@ func (x *PatternFlowGtpv2MessageLength_Choice) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2MessageLength_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2MessageLength_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{651, 0} +// Deprecated: Use PatternFlowTcpCtlFin_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlFin_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{565, 0} } -type PatternFlowGtpv2Teid_Choice struct { +type PatternFlowTcpWindow_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv2Teid_Choice) Reset() { - *x = PatternFlowGtpv2Teid_Choice{} +func (x *PatternFlowTcpWindow_Choice) Reset() { + *x = PatternFlowTcpWindow_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1054] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92917,13 +95282,13 @@ func (x *PatternFlowGtpv2Teid_Choice) Reset() { } } -func (x *PatternFlowGtpv2Teid_Choice) String() string { +func (x *PatternFlowTcpWindow_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Teid_Choice) ProtoMessage() {} +func (*PatternFlowTcpWindow_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv2Teid_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowTcpWindow_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1054] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92935,19 +95300,19 @@ func (x *PatternFlowGtpv2Teid_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2Teid_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2Teid_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{654, 0} +// Deprecated: Use PatternFlowTcpWindow_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpWindow_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{568, 0} } -type PatternFlowGtpv2SequenceNumber_Choice struct { +type PatternFlowUdpSrcPort_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv2SequenceNumber_Choice) Reset() { - *x = PatternFlowGtpv2SequenceNumber_Choice{} +func (x *PatternFlowUdpSrcPort_Choice) Reset() { + *x = PatternFlowUdpSrcPort_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1055] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92955,13 +95320,13 @@ func (x *PatternFlowGtpv2SequenceNumber_Choice) Reset() { } } -func (x *PatternFlowGtpv2SequenceNumber_Choice) String() string { +func (x *PatternFlowUdpSrcPort_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2SequenceNumber_Choice) ProtoMessage() {} +func (*PatternFlowUdpSrcPort_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv2SequenceNumber_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowUdpSrcPort_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1055] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92973,19 +95338,19 @@ func (x *PatternFlowGtpv2SequenceNumber_Choice) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2SequenceNumber_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2SequenceNumber_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{657, 0} +// Deprecated: Use PatternFlowUdpSrcPort_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpSrcPort_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{571, 0} } -type PatternFlowGtpv2Spare2_Choice struct { +type PatternFlowUdpDstPort_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv2Spare2_Choice) Reset() { - *x = PatternFlowGtpv2Spare2_Choice{} +func (x *PatternFlowUdpDstPort_Choice) Reset() { + *x = PatternFlowUdpDstPort_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1056] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -92993,13 +95358,13 @@ func (x *PatternFlowGtpv2Spare2_Choice) Reset() { } } -func (x *PatternFlowGtpv2Spare2_Choice) String() string { +func (x *PatternFlowUdpDstPort_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Spare2_Choice) ProtoMessage() {} +func (*PatternFlowUdpDstPort_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv2Spare2_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowUdpDstPort_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1056] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93011,19 +95376,19 @@ func (x *PatternFlowGtpv2Spare2_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2Spare2_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2Spare2_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{660, 0} +// Deprecated: Use PatternFlowUdpDstPort_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpDstPort_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{574, 0} } -type PatternFlowArpHardwareType_Choice struct { +type PatternFlowUdpLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowArpHardwareType_Choice) Reset() { - *x = PatternFlowArpHardwareType_Choice{} +func (x *PatternFlowUdpLength_Choice) Reset() { + *x = PatternFlowUdpLength_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1057] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93031,13 +95396,13 @@ func (x *PatternFlowArpHardwareType_Choice) Reset() { } } -func (x *PatternFlowArpHardwareType_Choice) String() string { +func (x *PatternFlowUdpLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpHardwareType_Choice) ProtoMessage() {} +func (*PatternFlowUdpLength_Choice) ProtoMessage() {} -func (x *PatternFlowArpHardwareType_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowUdpLength_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1057] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93049,19 +95414,19 @@ func (x *PatternFlowArpHardwareType_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpHardwareType_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowArpHardwareType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{663, 0} +// Deprecated: Use PatternFlowUdpLength_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{577, 0} } -type PatternFlowArpProtocolType_Choice struct { +type PatternFlowUdpChecksum_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowArpProtocolType_Choice) Reset() { - *x = PatternFlowArpProtocolType_Choice{} +func (x *PatternFlowUdpChecksum_Choice) Reset() { + *x = PatternFlowUdpChecksum_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1058] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93069,13 +95434,13 @@ func (x *PatternFlowArpProtocolType_Choice) Reset() { } } -func (x *PatternFlowArpProtocolType_Choice) String() string { +func (x *PatternFlowUdpChecksum_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpProtocolType_Choice) ProtoMessage() {} +func (*PatternFlowUdpChecksum_Choice) ProtoMessage() {} -func (x *PatternFlowArpProtocolType_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowUdpChecksum_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1058] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93087,19 +95452,19 @@ func (x *PatternFlowArpProtocolType_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpProtocolType_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowArpProtocolType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{666, 0} +// Deprecated: Use PatternFlowUdpChecksum_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpChecksum_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{578, 0} } -type PatternFlowArpHardwareLength_Choice struct { +type PatternFlowUdpChecksum_Generated struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowArpHardwareLength_Choice) Reset() { - *x = PatternFlowArpHardwareLength_Choice{} +func (x *PatternFlowUdpChecksum_Generated) Reset() { + *x = PatternFlowUdpChecksum_Generated{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1059] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93107,13 +95472,13 @@ func (x *PatternFlowArpHardwareLength_Choice) Reset() { } } -func (x *PatternFlowArpHardwareLength_Choice) String() string { +func (x *PatternFlowUdpChecksum_Generated) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpHardwareLength_Choice) ProtoMessage() {} +func (*PatternFlowUdpChecksum_Generated) ProtoMessage() {} -func (x *PatternFlowArpHardwareLength_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowUdpChecksum_Generated) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1059] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93125,19 +95490,19 @@ func (x *PatternFlowArpHardwareLength_Choice) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpHardwareLength_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowArpHardwareLength_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{669, 0} +// Deprecated: Use PatternFlowUdpChecksum_Generated.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpChecksum_Generated) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{578, 1} } -type PatternFlowArpProtocolLength_Choice struct { +type PatternFlowGreChecksumPresent_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowArpProtocolLength_Choice) Reset() { - *x = PatternFlowArpProtocolLength_Choice{} +func (x *PatternFlowGreChecksumPresent_Choice) Reset() { + *x = PatternFlowGreChecksumPresent_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1060] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93145,13 +95510,13 @@ func (x *PatternFlowArpProtocolLength_Choice) Reset() { } } -func (x *PatternFlowArpProtocolLength_Choice) String() string { +func (x *PatternFlowGreChecksumPresent_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpProtocolLength_Choice) ProtoMessage() {} +func (*PatternFlowGreChecksumPresent_Choice) ProtoMessage() {} -func (x *PatternFlowArpProtocolLength_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGreChecksumPresent_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1060] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93163,19 +95528,19 @@ func (x *PatternFlowArpProtocolLength_Choice) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpProtocolLength_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowArpProtocolLength_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{672, 0} +// Deprecated: Use PatternFlowGreChecksumPresent_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGreChecksumPresent_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{581, 0} } -type PatternFlowArpOperation_Choice struct { +type PatternFlowGreReserved0_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowArpOperation_Choice) Reset() { - *x = PatternFlowArpOperation_Choice{} +func (x *PatternFlowGreReserved0_Choice) Reset() { + *x = PatternFlowGreReserved0_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1061] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93183,13 +95548,13 @@ func (x *PatternFlowArpOperation_Choice) Reset() { } } -func (x *PatternFlowArpOperation_Choice) String() string { +func (x *PatternFlowGreReserved0_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpOperation_Choice) ProtoMessage() {} +func (*PatternFlowGreReserved0_Choice) ProtoMessage() {} -func (x *PatternFlowArpOperation_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGreReserved0_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1061] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93201,19 +95566,19 @@ func (x *PatternFlowArpOperation_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpOperation_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowArpOperation_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{675, 0} +// Deprecated: Use PatternFlowGreReserved0_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGreReserved0_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{584, 0} } -type PatternFlowArpSenderHardwareAddr_Choice struct { +type PatternFlowGreVersion_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowArpSenderHardwareAddr_Choice) Reset() { - *x = PatternFlowArpSenderHardwareAddr_Choice{} +func (x *PatternFlowGreVersion_Choice) Reset() { + *x = PatternFlowGreVersion_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1062] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93221,13 +95586,13 @@ func (x *PatternFlowArpSenderHardwareAddr_Choice) Reset() { } } -func (x *PatternFlowArpSenderHardwareAddr_Choice) String() string { +func (x *PatternFlowGreVersion_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpSenderHardwareAddr_Choice) ProtoMessage() {} +func (*PatternFlowGreVersion_Choice) ProtoMessage() {} -func (x *PatternFlowArpSenderHardwareAddr_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGreVersion_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1062] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93239,19 +95604,19 @@ func (x *PatternFlowArpSenderHardwareAddr_Choice) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpSenderHardwareAddr_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowArpSenderHardwareAddr_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{678, 0} +// Deprecated: Use PatternFlowGreVersion_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGreVersion_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{587, 0} } -type PatternFlowArpSenderProtocolAddr_Choice struct { +type PatternFlowGreProtocol_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowArpSenderProtocolAddr_Choice) Reset() { - *x = PatternFlowArpSenderProtocolAddr_Choice{} +func (x *PatternFlowGreProtocol_Choice) Reset() { + *x = PatternFlowGreProtocol_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1063] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93259,13 +95624,13 @@ func (x *PatternFlowArpSenderProtocolAddr_Choice) Reset() { } } -func (x *PatternFlowArpSenderProtocolAddr_Choice) String() string { +func (x *PatternFlowGreProtocol_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpSenderProtocolAddr_Choice) ProtoMessage() {} +func (*PatternFlowGreProtocol_Choice) ProtoMessage() {} -func (x *PatternFlowArpSenderProtocolAddr_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGreProtocol_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1063] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93277,19 +95642,19 @@ func (x *PatternFlowArpSenderProtocolAddr_Choice) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpSenderProtocolAddr_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowArpSenderProtocolAddr_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{681, 0} +// Deprecated: Use PatternFlowGreProtocol_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGreProtocol_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{590, 0} } -type PatternFlowArpTargetHardwareAddr_Choice struct { +type PatternFlowGreChecksum_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowArpTargetHardwareAddr_Choice) Reset() { - *x = PatternFlowArpTargetHardwareAddr_Choice{} +func (x *PatternFlowGreChecksum_Choice) Reset() { + *x = PatternFlowGreChecksum_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1064] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93297,13 +95662,13 @@ func (x *PatternFlowArpTargetHardwareAddr_Choice) Reset() { } } -func (x *PatternFlowArpTargetHardwareAddr_Choice) String() string { +func (x *PatternFlowGreChecksum_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpTargetHardwareAddr_Choice) ProtoMessage() {} +func (*PatternFlowGreChecksum_Choice) ProtoMessage() {} -func (x *PatternFlowArpTargetHardwareAddr_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGreChecksum_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1064] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93315,19 +95680,19 @@ func (x *PatternFlowArpTargetHardwareAddr_Choice) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpTargetHardwareAddr_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowArpTargetHardwareAddr_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{684, 0} +// Deprecated: Use PatternFlowGreChecksum_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGreChecksum_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{591, 0} } -type PatternFlowArpTargetProtocolAddr_Choice struct { +type PatternFlowGreChecksum_Generated struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowArpTargetProtocolAddr_Choice) Reset() { - *x = PatternFlowArpTargetProtocolAddr_Choice{} +func (x *PatternFlowGreChecksum_Generated) Reset() { + *x = PatternFlowGreChecksum_Generated{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1065] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93335,13 +95700,13 @@ func (x *PatternFlowArpTargetProtocolAddr_Choice) Reset() { } } -func (x *PatternFlowArpTargetProtocolAddr_Choice) String() string { +func (x *PatternFlowGreChecksum_Generated) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpTargetProtocolAddr_Choice) ProtoMessage() {} +func (*PatternFlowGreChecksum_Generated) ProtoMessage() {} -func (x *PatternFlowArpTargetProtocolAddr_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGreChecksum_Generated) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1065] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93353,19 +95718,19 @@ func (x *PatternFlowArpTargetProtocolAddr_Choice) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpTargetProtocolAddr_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowArpTargetProtocolAddr_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{687, 0} +// Deprecated: Use PatternFlowGreChecksum_Generated.ProtoReflect.Descriptor instead. +func (*PatternFlowGreChecksum_Generated) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{591, 1} } -type PatternFlowIcmpEchoType_Choice struct { +type PatternFlowGreReserved1_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpEchoType_Choice) Reset() { - *x = PatternFlowIcmpEchoType_Choice{} +func (x *PatternFlowGreReserved1_Choice) Reset() { + *x = PatternFlowGreReserved1_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1066] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93373,13 +95738,13 @@ func (x *PatternFlowIcmpEchoType_Choice) Reset() { } } -func (x *PatternFlowIcmpEchoType_Choice) String() string { +func (x *PatternFlowGreReserved1_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoType_Choice) ProtoMessage() {} +func (*PatternFlowGreReserved1_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpEchoType_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGreReserved1_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1066] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93391,19 +95756,19 @@ func (x *PatternFlowIcmpEchoType_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoType_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{690, 0} +// Deprecated: Use PatternFlowGreReserved1_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGreReserved1_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{594, 0} } -type PatternFlowIcmpEchoCode_Choice struct { +type PatternFlowGtpv1Version_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpEchoCode_Choice) Reset() { - *x = PatternFlowIcmpEchoCode_Choice{} +func (x *PatternFlowGtpv1Version_Choice) Reset() { + *x = PatternFlowGtpv1Version_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1067] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93411,13 +95776,13 @@ func (x *PatternFlowIcmpEchoCode_Choice) Reset() { } } -func (x *PatternFlowIcmpEchoCode_Choice) String() string { +func (x *PatternFlowGtpv1Version_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoCode_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1Version_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpEchoCode_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1Version_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1067] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93429,19 +95794,19 @@ func (x *PatternFlowIcmpEchoCode_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoCode_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoCode_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{693, 0} +// Deprecated: Use PatternFlowGtpv1Version_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1Version_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{597, 0} } -type PatternFlowIcmpEchoChecksum_Choice struct { +type PatternFlowGtpv1ProtocolType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpEchoChecksum_Choice) Reset() { - *x = PatternFlowIcmpEchoChecksum_Choice{} +func (x *PatternFlowGtpv1ProtocolType_Choice) Reset() { + *x = PatternFlowGtpv1ProtocolType_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1068] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93449,13 +95814,13 @@ func (x *PatternFlowIcmpEchoChecksum_Choice) Reset() { } } -func (x *PatternFlowIcmpEchoChecksum_Choice) String() string { +func (x *PatternFlowGtpv1ProtocolType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoChecksum_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1ProtocolType_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpEchoChecksum_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1ProtocolType_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1068] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93467,19 +95832,19 @@ func (x *PatternFlowIcmpEchoChecksum_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoChecksum_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoChecksum_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{694, 0} +// Deprecated: Use PatternFlowGtpv1ProtocolType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1ProtocolType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{600, 0} } -type PatternFlowIcmpEchoChecksum_Generated struct { +type PatternFlowGtpv1Reserved_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpEchoChecksum_Generated) Reset() { - *x = PatternFlowIcmpEchoChecksum_Generated{} +func (x *PatternFlowGtpv1Reserved_Choice) Reset() { + *x = PatternFlowGtpv1Reserved_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1069] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93487,13 +95852,13 @@ func (x *PatternFlowIcmpEchoChecksum_Generated) Reset() { } } -func (x *PatternFlowIcmpEchoChecksum_Generated) String() string { +func (x *PatternFlowGtpv1Reserved_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoChecksum_Generated) ProtoMessage() {} +func (*PatternFlowGtpv1Reserved_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpEchoChecksum_Generated) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1Reserved_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1069] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93505,19 +95870,19 @@ func (x *PatternFlowIcmpEchoChecksum_Generated) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoChecksum_Generated.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoChecksum_Generated) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{694, 1} +// Deprecated: Use PatternFlowGtpv1Reserved_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1Reserved_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{603, 0} } -type PatternFlowIcmpEchoIdentifier_Choice struct { +type PatternFlowGtpv1EFlag_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpEchoIdentifier_Choice) Reset() { - *x = PatternFlowIcmpEchoIdentifier_Choice{} +func (x *PatternFlowGtpv1EFlag_Choice) Reset() { + *x = PatternFlowGtpv1EFlag_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1070] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93525,13 +95890,13 @@ func (x *PatternFlowIcmpEchoIdentifier_Choice) Reset() { } } -func (x *PatternFlowIcmpEchoIdentifier_Choice) String() string { +func (x *PatternFlowGtpv1EFlag_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoIdentifier_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1EFlag_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpEchoIdentifier_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1EFlag_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1070] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93543,19 +95908,19 @@ func (x *PatternFlowIcmpEchoIdentifier_Choice) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoIdentifier_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoIdentifier_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{697, 0} +// Deprecated: Use PatternFlowGtpv1EFlag_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1EFlag_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{606, 0} } -type PatternFlowIcmpEchoSequenceNumber_Choice struct { +type PatternFlowGtpv1SFlag_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpEchoSequenceNumber_Choice) Reset() { - *x = PatternFlowIcmpEchoSequenceNumber_Choice{} +func (x *PatternFlowGtpv1SFlag_Choice) Reset() { + *x = PatternFlowGtpv1SFlag_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1071] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93563,13 +95928,13 @@ func (x *PatternFlowIcmpEchoSequenceNumber_Choice) Reset() { } } -func (x *PatternFlowIcmpEchoSequenceNumber_Choice) String() string { +func (x *PatternFlowGtpv1SFlag_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoSequenceNumber_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1SFlag_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpEchoSequenceNumber_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1SFlag_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1071] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93581,19 +95946,19 @@ func (x *PatternFlowIcmpEchoSequenceNumber_Choice) ProtoReflect() protoreflect.M return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoSequenceNumber_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoSequenceNumber_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{700, 0} +// Deprecated: Use PatternFlowGtpv1SFlag_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1SFlag_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{609, 0} } -type PatternFlowIcmpCommonChecksum_Choice struct { +type PatternFlowGtpv1PnFlag_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpCommonChecksum_Choice) Reset() { - *x = PatternFlowIcmpCommonChecksum_Choice{} +func (x *PatternFlowGtpv1PnFlag_Choice) Reset() { + *x = PatternFlowGtpv1PnFlag_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1072] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93601,13 +95966,13 @@ func (x *PatternFlowIcmpCommonChecksum_Choice) Reset() { } } -func (x *PatternFlowIcmpCommonChecksum_Choice) String() string { +func (x *PatternFlowGtpv1PnFlag_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpCommonChecksum_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1PnFlag_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpCommonChecksum_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1PnFlag_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1072] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93619,19 +95984,19 @@ func (x *PatternFlowIcmpCommonChecksum_Choice) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpCommonChecksum_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpCommonChecksum_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{701, 0} +// Deprecated: Use PatternFlowGtpv1PnFlag_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1PnFlag_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{612, 0} } -type PatternFlowIcmpCommonChecksum_Generated struct { +type PatternFlowGtpv1MessageType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpCommonChecksum_Generated) Reset() { - *x = PatternFlowIcmpCommonChecksum_Generated{} +func (x *PatternFlowGtpv1MessageType_Choice) Reset() { + *x = PatternFlowGtpv1MessageType_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1073] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93639,13 +96004,13 @@ func (x *PatternFlowIcmpCommonChecksum_Generated) Reset() { } } -func (x *PatternFlowIcmpCommonChecksum_Generated) String() string { +func (x *PatternFlowGtpv1MessageType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpCommonChecksum_Generated) ProtoMessage() {} +func (*PatternFlowGtpv1MessageType_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpCommonChecksum_Generated) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1MessageType_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1073] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93657,19 +96022,19 @@ func (x *PatternFlowIcmpCommonChecksum_Generated) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpCommonChecksum_Generated.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpCommonChecksum_Generated) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{701, 1} +// Deprecated: Use PatternFlowGtpv1MessageType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1MessageType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{615, 0} } -type PatternFlowIcmpNextFieldsIdentifier_Choice struct { +type PatternFlowGtpv1MessageLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpNextFieldsIdentifier_Choice) Reset() { - *x = PatternFlowIcmpNextFieldsIdentifier_Choice{} +func (x *PatternFlowGtpv1MessageLength_Choice) Reset() { + *x = PatternFlowGtpv1MessageLength_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1074] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93677,13 +96042,13 @@ func (x *PatternFlowIcmpNextFieldsIdentifier_Choice) Reset() { } } -func (x *PatternFlowIcmpNextFieldsIdentifier_Choice) String() string { +func (x *PatternFlowGtpv1MessageLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpNextFieldsIdentifier_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1MessageLength_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpNextFieldsIdentifier_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1MessageLength_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1074] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93695,19 +96060,19 @@ func (x *PatternFlowIcmpNextFieldsIdentifier_Choice) ProtoReflect() protoreflect return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpNextFieldsIdentifier_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpNextFieldsIdentifier_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{704, 0} +// Deprecated: Use PatternFlowGtpv1MessageLength_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1MessageLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{618, 0} } -type PatternFlowIcmpNextFieldsSequenceNumber_Choice struct { +type PatternFlowGtpv1Teid_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpNextFieldsSequenceNumber_Choice) Reset() { - *x = PatternFlowIcmpNextFieldsSequenceNumber_Choice{} +func (x *PatternFlowGtpv1Teid_Choice) Reset() { + *x = PatternFlowGtpv1Teid_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1075] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93715,13 +96080,13 @@ func (x *PatternFlowIcmpNextFieldsSequenceNumber_Choice) Reset() { } } -func (x *PatternFlowIcmpNextFieldsSequenceNumber_Choice) String() string { +func (x *PatternFlowGtpv1Teid_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpNextFieldsSequenceNumber_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1Teid_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpNextFieldsSequenceNumber_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1Teid_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1075] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93733,19 +96098,19 @@ func (x *PatternFlowIcmpNextFieldsSequenceNumber_Choice) ProtoReflect() protoref return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpNextFieldsSequenceNumber_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpNextFieldsSequenceNumber_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{707, 0} +// Deprecated: Use PatternFlowGtpv1Teid_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1Teid_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{621, 0} } -type PatternFlowIcmpv6EchoType_Choice struct { +type PatternFlowGtpv1SquenceNumber_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpv6EchoType_Choice) Reset() { - *x = PatternFlowIcmpv6EchoType_Choice{} +func (x *PatternFlowGtpv1SquenceNumber_Choice) Reset() { + *x = PatternFlowGtpv1SquenceNumber_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1076] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93753,13 +96118,13 @@ func (x *PatternFlowIcmpv6EchoType_Choice) Reset() { } } -func (x *PatternFlowIcmpv6EchoType_Choice) String() string { +func (x *PatternFlowGtpv1SquenceNumber_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoType_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1SquenceNumber_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoType_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1SquenceNumber_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1076] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93771,19 +96136,19 @@ func (x *PatternFlowIcmpv6EchoType_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoType_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{710, 0} +// Deprecated: Use PatternFlowGtpv1SquenceNumber_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1SquenceNumber_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{624, 0} } -type PatternFlowIcmpv6EchoCode_Choice struct { +type PatternFlowGtpv1NPduNumber_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpv6EchoCode_Choice) Reset() { - *x = PatternFlowIcmpv6EchoCode_Choice{} +func (x *PatternFlowGtpv1NPduNumber_Choice) Reset() { + *x = PatternFlowGtpv1NPduNumber_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1077] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93791,13 +96156,13 @@ func (x *PatternFlowIcmpv6EchoCode_Choice) Reset() { } } -func (x *PatternFlowIcmpv6EchoCode_Choice) String() string { +func (x *PatternFlowGtpv1NPduNumber_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoCode_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1NPduNumber_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoCode_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1NPduNumber_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1077] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93809,19 +96174,19 @@ func (x *PatternFlowIcmpv6EchoCode_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoCode_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoCode_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{713, 0} +// Deprecated: Use PatternFlowGtpv1NPduNumber_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1NPduNumber_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{627, 0} } -type PatternFlowIcmpv6EchoIdentifier_Choice struct { +type PatternFlowGtpv1NextExtensionHeaderType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpv6EchoIdentifier_Choice) Reset() { - *x = PatternFlowIcmpv6EchoIdentifier_Choice{} +func (x *PatternFlowGtpv1NextExtensionHeaderType_Choice) Reset() { + *x = PatternFlowGtpv1NextExtensionHeaderType_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1078] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93829,13 +96194,13 @@ func (x *PatternFlowIcmpv6EchoIdentifier_Choice) Reset() { } } -func (x *PatternFlowIcmpv6EchoIdentifier_Choice) String() string { +func (x *PatternFlowGtpv1NextExtensionHeaderType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoIdentifier_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1NextExtensionHeaderType_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoIdentifier_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv1NextExtensionHeaderType_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1078] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93847,19 +96212,19 @@ func (x *PatternFlowIcmpv6EchoIdentifier_Choice) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoIdentifier_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoIdentifier_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{716, 0} +// Deprecated: Use PatternFlowGtpv1NextExtensionHeaderType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1NextExtensionHeaderType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{630, 0} } -type PatternFlowIcmpv6EchoSequenceNumber_Choice struct { +type PatternFlowGtpExtensionExtensionLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpv6EchoSequenceNumber_Choice) Reset() { - *x = PatternFlowIcmpv6EchoSequenceNumber_Choice{} +func (x *PatternFlowGtpExtensionExtensionLength_Choice) Reset() { + *x = PatternFlowGtpExtensionExtensionLength_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1079] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93867,13 +96232,13 @@ func (x *PatternFlowIcmpv6EchoSequenceNumber_Choice) Reset() { } } -func (x *PatternFlowIcmpv6EchoSequenceNumber_Choice) String() string { +func (x *PatternFlowGtpExtensionExtensionLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoSequenceNumber_Choice) ProtoMessage() {} +func (*PatternFlowGtpExtensionExtensionLength_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoSequenceNumber_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpExtensionExtensionLength_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1079] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93885,19 +96250,19 @@ func (x *PatternFlowIcmpv6EchoSequenceNumber_Choice) ProtoReflect() protoreflect return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoSequenceNumber_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoSequenceNumber_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{719, 0} +// Deprecated: Use PatternFlowGtpExtensionExtensionLength_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpExtensionExtensionLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{633, 0} } -type PatternFlowIcmpv6EchoChecksum_Choice struct { +type PatternFlowGtpExtensionContents_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpv6EchoChecksum_Choice) Reset() { - *x = PatternFlowIcmpv6EchoChecksum_Choice{} +func (x *PatternFlowGtpExtensionContents_Choice) Reset() { + *x = PatternFlowGtpExtensionContents_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1080] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93905,13 +96270,13 @@ func (x *PatternFlowIcmpv6EchoChecksum_Choice) Reset() { } } -func (x *PatternFlowIcmpv6EchoChecksum_Choice) String() string { +func (x *PatternFlowGtpExtensionContents_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoChecksum_Choice) ProtoMessage() {} +func (*PatternFlowGtpExtensionContents_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoChecksum_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpExtensionContents_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1080] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93923,19 +96288,19 @@ func (x *PatternFlowIcmpv6EchoChecksum_Choice) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoChecksum_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoChecksum_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{720, 0} +// Deprecated: Use PatternFlowGtpExtensionContents_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpExtensionContents_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{636, 0} } -type PatternFlowIcmpv6EchoChecksum_Generated struct { +type PatternFlowGtpExtensionNextExtensionHeader_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpv6EchoChecksum_Generated) Reset() { - *x = PatternFlowIcmpv6EchoChecksum_Generated{} +func (x *PatternFlowGtpExtensionNextExtensionHeader_Choice) Reset() { + *x = PatternFlowGtpExtensionNextExtensionHeader_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1081] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93943,13 +96308,13 @@ func (x *PatternFlowIcmpv6EchoChecksum_Generated) Reset() { } } -func (x *PatternFlowIcmpv6EchoChecksum_Generated) String() string { +func (x *PatternFlowGtpExtensionNextExtensionHeader_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoChecksum_Generated) ProtoMessage() {} +func (*PatternFlowGtpExtensionNextExtensionHeader_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoChecksum_Generated) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpExtensionNextExtensionHeader_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1081] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93961,19 +96326,19 @@ func (x *PatternFlowIcmpv6EchoChecksum_Generated) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoChecksum_Generated.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoChecksum_Generated) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{720, 1} +// Deprecated: Use PatternFlowGtpExtensionNextExtensionHeader_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpExtensionNextExtensionHeader_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{639, 0} } -type PatternFlowIcmpv6CommonChecksum_Choice struct { +type PatternFlowGtpv2Version_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpv6CommonChecksum_Choice) Reset() { - *x = PatternFlowIcmpv6CommonChecksum_Choice{} +func (x *PatternFlowGtpv2Version_Choice) Reset() { + *x = PatternFlowGtpv2Version_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1082] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93981,13 +96346,13 @@ func (x *PatternFlowIcmpv6CommonChecksum_Choice) Reset() { } } -func (x *PatternFlowIcmpv6CommonChecksum_Choice) String() string { +func (x *PatternFlowGtpv2Version_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6CommonChecksum_Choice) ProtoMessage() {} +func (*PatternFlowGtpv2Version_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpv6CommonChecksum_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2Version_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1082] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -93999,19 +96364,19 @@ func (x *PatternFlowIcmpv6CommonChecksum_Choice) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6CommonChecksum_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6CommonChecksum_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{721, 0} +// Deprecated: Use PatternFlowGtpv2Version_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Version_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{642, 0} } -type PatternFlowIcmpv6CommonChecksum_Generated struct { +type PatternFlowGtpv2PiggybackingFlag_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpv6CommonChecksum_Generated) Reset() { - *x = PatternFlowIcmpv6CommonChecksum_Generated{} +func (x *PatternFlowGtpv2PiggybackingFlag_Choice) Reset() { + *x = PatternFlowGtpv2PiggybackingFlag_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1083] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -94019,13 +96384,13 @@ func (x *PatternFlowIcmpv6CommonChecksum_Generated) Reset() { } } -func (x *PatternFlowIcmpv6CommonChecksum_Generated) String() string { +func (x *PatternFlowGtpv2PiggybackingFlag_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6CommonChecksum_Generated) ProtoMessage() {} +func (*PatternFlowGtpv2PiggybackingFlag_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpv6CommonChecksum_Generated) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2PiggybackingFlag_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1083] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -94037,19 +96402,19 @@ func (x *PatternFlowIcmpv6CommonChecksum_Generated) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6CommonChecksum_Generated.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6CommonChecksum_Generated) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{721, 1} +// Deprecated: Use PatternFlowGtpv2PiggybackingFlag_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2PiggybackingFlag_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{645, 0} } -type PatternFlowPppAddress_Choice struct { +type PatternFlowGtpv2TeidFlag_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPppAddress_Choice) Reset() { - *x = PatternFlowPppAddress_Choice{} +func (x *PatternFlowGtpv2TeidFlag_Choice) Reset() { + *x = PatternFlowGtpv2TeidFlag_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1084] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -94057,13 +96422,13 @@ func (x *PatternFlowPppAddress_Choice) Reset() { } } -func (x *PatternFlowPppAddress_Choice) String() string { +func (x *PatternFlowGtpv2TeidFlag_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPppAddress_Choice) ProtoMessage() {} +func (*PatternFlowGtpv2TeidFlag_Choice) ProtoMessage() {} -func (x *PatternFlowPppAddress_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2TeidFlag_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1084] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -94075,19 +96440,19 @@ func (x *PatternFlowPppAddress_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPppAddress_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPppAddress_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{724, 0} +// Deprecated: Use PatternFlowGtpv2TeidFlag_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2TeidFlag_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{648, 0} } -type PatternFlowPppControl_Choice struct { +type PatternFlowGtpv2Spare1_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPppControl_Choice) Reset() { - *x = PatternFlowPppControl_Choice{} +func (x *PatternFlowGtpv2Spare1_Choice) Reset() { + *x = PatternFlowGtpv2Spare1_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1085] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -94095,13 +96460,13 @@ func (x *PatternFlowPppControl_Choice) Reset() { } } -func (x *PatternFlowPppControl_Choice) String() string { +func (x *PatternFlowGtpv2Spare1_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPppControl_Choice) ProtoMessage() {} +func (*PatternFlowGtpv2Spare1_Choice) ProtoMessage() {} -func (x *PatternFlowPppControl_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2Spare1_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1085] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -94113,19 +96478,19 @@ func (x *PatternFlowPppControl_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPppControl_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPppControl_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{727, 0} +// Deprecated: Use PatternFlowGtpv2Spare1_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Spare1_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{651, 0} } -type PatternFlowPppProtocolType_Choice struct { +type PatternFlowGtpv2MessageType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPppProtocolType_Choice) Reset() { - *x = PatternFlowPppProtocolType_Choice{} +func (x *PatternFlowGtpv2MessageType_Choice) Reset() { + *x = PatternFlowGtpv2MessageType_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1086] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -94133,13 +96498,13 @@ func (x *PatternFlowPppProtocolType_Choice) Reset() { } } -func (x *PatternFlowPppProtocolType_Choice) String() string { +func (x *PatternFlowGtpv2MessageType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPppProtocolType_Choice) ProtoMessage() {} +func (*PatternFlowGtpv2MessageType_Choice) ProtoMessage() {} -func (x *PatternFlowPppProtocolType_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2MessageType_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1086] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -94151,19 +96516,19 @@ func (x *PatternFlowPppProtocolType_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPppProtocolType_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowPppProtocolType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{730, 0} +// Deprecated: Use PatternFlowGtpv2MessageType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2MessageType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{654, 0} } -type PatternFlowIgmpv1Version_Choice struct { +type PatternFlowGtpv2MessageLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIgmpv1Version_Choice) Reset() { - *x = PatternFlowIgmpv1Version_Choice{} +func (x *PatternFlowGtpv2MessageLength_Choice) Reset() { + *x = PatternFlowGtpv2MessageLength_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1087] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -94171,13 +96536,13 @@ func (x *PatternFlowIgmpv1Version_Choice) Reset() { } } -func (x *PatternFlowIgmpv1Version_Choice) String() string { +func (x *PatternFlowGtpv2MessageLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1Version_Choice) ProtoMessage() {} +func (*PatternFlowGtpv2MessageLength_Choice) ProtoMessage() {} -func (x *PatternFlowIgmpv1Version_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2MessageLength_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1087] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -94189,19 +96554,19 @@ func (x *PatternFlowIgmpv1Version_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1Version_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1Version_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{733, 0} +// Deprecated: Use PatternFlowGtpv2MessageLength_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2MessageLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{657, 0} } -type PatternFlowIgmpv1Type_Choice struct { +type PatternFlowGtpv2Teid_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIgmpv1Type_Choice) Reset() { - *x = PatternFlowIgmpv1Type_Choice{} +func (x *PatternFlowGtpv2Teid_Choice) Reset() { + *x = PatternFlowGtpv2Teid_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1088] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -94209,13 +96574,13 @@ func (x *PatternFlowIgmpv1Type_Choice) Reset() { } } -func (x *PatternFlowIgmpv1Type_Choice) String() string { +func (x *PatternFlowGtpv2Teid_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1Type_Choice) ProtoMessage() {} +func (*PatternFlowGtpv2Teid_Choice) ProtoMessage() {} -func (x *PatternFlowIgmpv1Type_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2Teid_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1088] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -94227,19 +96592,19 @@ func (x *PatternFlowIgmpv1Type_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1Type_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1Type_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{736, 0} +// Deprecated: Use PatternFlowGtpv2Teid_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Teid_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{660, 0} } -type PatternFlowIgmpv1Unused_Choice struct { +type PatternFlowGtpv2SequenceNumber_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIgmpv1Unused_Choice) Reset() { - *x = PatternFlowIgmpv1Unused_Choice{} +func (x *PatternFlowGtpv2SequenceNumber_Choice) Reset() { + *x = PatternFlowGtpv2SequenceNumber_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1089] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -94247,13 +96612,13 @@ func (x *PatternFlowIgmpv1Unused_Choice) Reset() { } } -func (x *PatternFlowIgmpv1Unused_Choice) String() string { +func (x *PatternFlowGtpv2SequenceNumber_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1Unused_Choice) ProtoMessage() {} +func (*PatternFlowGtpv2SequenceNumber_Choice) ProtoMessage() {} -func (x *PatternFlowIgmpv1Unused_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2SequenceNumber_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1089] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -94265,19 +96630,19 @@ func (x *PatternFlowIgmpv1Unused_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1Unused_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1Unused_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{739, 0} +// Deprecated: Use PatternFlowGtpv2SequenceNumber_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2SequenceNumber_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{663, 0} } -type PatternFlowIgmpv1Checksum_Choice struct { +type PatternFlowGtpv2Spare2_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIgmpv1Checksum_Choice) Reset() { - *x = PatternFlowIgmpv1Checksum_Choice{} +func (x *PatternFlowGtpv2Spare2_Choice) Reset() { + *x = PatternFlowGtpv2Spare2_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1090] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -94285,13 +96650,13 @@ func (x *PatternFlowIgmpv1Checksum_Choice) Reset() { } } -func (x *PatternFlowIgmpv1Checksum_Choice) String() string { +func (x *PatternFlowGtpv2Spare2_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1Checksum_Choice) ProtoMessage() {} +func (*PatternFlowGtpv2Spare2_Choice) ProtoMessage() {} -func (x *PatternFlowIgmpv1Checksum_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowGtpv2Spare2_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1090] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -94303,19 +96668,19 @@ func (x *PatternFlowIgmpv1Checksum_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1Checksum_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1Checksum_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{740, 0} +// Deprecated: Use PatternFlowGtpv2Spare2_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Spare2_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{666, 0} } -type PatternFlowIgmpv1Checksum_Generated struct { +type PatternFlowArpHardwareType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIgmpv1Checksum_Generated) Reset() { - *x = PatternFlowIgmpv1Checksum_Generated{} +func (x *PatternFlowArpHardwareType_Choice) Reset() { + *x = PatternFlowArpHardwareType_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1091] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -94323,13 +96688,13 @@ func (x *PatternFlowIgmpv1Checksum_Generated) Reset() { } } -func (x *PatternFlowIgmpv1Checksum_Generated) String() string { +func (x *PatternFlowArpHardwareType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1Checksum_Generated) ProtoMessage() {} +func (*PatternFlowArpHardwareType_Choice) ProtoMessage() {} -func (x *PatternFlowIgmpv1Checksum_Generated) ProtoReflect() protoreflect.Message { +func (x *PatternFlowArpHardwareType_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1091] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -94341,19 +96706,19 @@ func (x *PatternFlowIgmpv1Checksum_Generated) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1Checksum_Generated.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1Checksum_Generated) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{740, 1} +// Deprecated: Use PatternFlowArpHardwareType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowArpHardwareType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{669, 0} } -type PatternFlowIgmpv1GroupAddress_Choice struct { +type PatternFlowArpProtocolType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIgmpv1GroupAddress_Choice) Reset() { - *x = PatternFlowIgmpv1GroupAddress_Choice{} +func (x *PatternFlowArpProtocolType_Choice) Reset() { + *x = PatternFlowArpProtocolType_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1092] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -94361,13 +96726,13 @@ func (x *PatternFlowIgmpv1GroupAddress_Choice) Reset() { } } -func (x *PatternFlowIgmpv1GroupAddress_Choice) String() string { +func (x *PatternFlowArpProtocolType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1GroupAddress_Choice) ProtoMessage() {} +func (*PatternFlowArpProtocolType_Choice) ProtoMessage() {} -func (x *PatternFlowIgmpv1GroupAddress_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowArpProtocolType_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1092] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -94379,19 +96744,19 @@ func (x *PatternFlowIgmpv1GroupAddress_Choice) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1GroupAddress_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1GroupAddress_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{743, 0} +// Deprecated: Use PatternFlowArpProtocolType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowArpProtocolType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{672, 0} } -type PatternFlowMplsLabel_Choice struct { +type PatternFlowArpHardwareLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowMplsLabel_Choice) Reset() { - *x = PatternFlowMplsLabel_Choice{} +func (x *PatternFlowArpHardwareLength_Choice) Reset() { + *x = PatternFlowArpHardwareLength_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1093] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -94399,13 +96764,13 @@ func (x *PatternFlowMplsLabel_Choice) Reset() { } } -func (x *PatternFlowMplsLabel_Choice) String() string { +func (x *PatternFlowArpHardwareLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsLabel_Choice) ProtoMessage() {} +func (*PatternFlowArpHardwareLength_Choice) ProtoMessage() {} -func (x *PatternFlowMplsLabel_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowArpHardwareLength_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1093] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -94417,19 +96782,19 @@ func (x *PatternFlowMplsLabel_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsLabel_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsLabel_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{746, 0} +// Deprecated: Use PatternFlowArpHardwareLength_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowArpHardwareLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{675, 0} } -type PatternFlowMplsTrafficClass_Choice struct { +type PatternFlowArpProtocolLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowMplsTrafficClass_Choice) Reset() { - *x = PatternFlowMplsTrafficClass_Choice{} +func (x *PatternFlowArpProtocolLength_Choice) Reset() { + *x = PatternFlowArpProtocolLength_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1094] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -94437,13 +96802,13 @@ func (x *PatternFlowMplsTrafficClass_Choice) Reset() { } } -func (x *PatternFlowMplsTrafficClass_Choice) String() string { +func (x *PatternFlowArpProtocolLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsTrafficClass_Choice) ProtoMessage() {} +func (*PatternFlowArpProtocolLength_Choice) ProtoMessage() {} -func (x *PatternFlowMplsTrafficClass_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowArpProtocolLength_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1094] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -94455,19 +96820,19 @@ func (x *PatternFlowMplsTrafficClass_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsTrafficClass_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsTrafficClass_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{749, 0} +// Deprecated: Use PatternFlowArpProtocolLength_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowArpProtocolLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{678, 0} } -type PatternFlowMplsBottomOfStack_Choice struct { +type PatternFlowArpOperation_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowMplsBottomOfStack_Choice) Reset() { - *x = PatternFlowMplsBottomOfStack_Choice{} +func (x *PatternFlowArpOperation_Choice) Reset() { + *x = PatternFlowArpOperation_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1095] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -94475,13 +96840,13 @@ func (x *PatternFlowMplsBottomOfStack_Choice) Reset() { } } -func (x *PatternFlowMplsBottomOfStack_Choice) String() string { +func (x *PatternFlowArpOperation_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsBottomOfStack_Choice) ProtoMessage() {} +func (*PatternFlowArpOperation_Choice) ProtoMessage() {} -func (x *PatternFlowMplsBottomOfStack_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowArpOperation_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1095] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -94493,19 +96858,19 @@ func (x *PatternFlowMplsBottomOfStack_Choice) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsBottomOfStack_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsBottomOfStack_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{752, 0} +// Deprecated: Use PatternFlowArpOperation_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowArpOperation_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{681, 0} } -type PatternFlowMplsTimeToLive_Choice struct { +type PatternFlowArpSenderHardwareAddr_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowMplsTimeToLive_Choice) Reset() { - *x = PatternFlowMplsTimeToLive_Choice{} +func (x *PatternFlowArpSenderHardwareAddr_Choice) Reset() { + *x = PatternFlowArpSenderHardwareAddr_Choice{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[1096] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -94513,13 +96878,13 @@ func (x *PatternFlowMplsTimeToLive_Choice) Reset() { } } -func (x *PatternFlowMplsTimeToLive_Choice) String() string { +func (x *PatternFlowArpSenderHardwareAddr_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsTimeToLive_Choice) ProtoMessage() {} +func (*PatternFlowArpSenderHardwareAddr_Choice) ProtoMessage() {} -func (x *PatternFlowMplsTimeToLive_Choice) ProtoReflect() protoreflect.Message { +func (x *PatternFlowArpSenderHardwareAddr_Choice) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[1096] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -94531,245 +96896,2031 @@ func (x *PatternFlowMplsTimeToLive_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsTimeToLive_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsTimeToLive_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{755, 0} +// Deprecated: Use PatternFlowArpSenderHardwareAddr_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowArpSenderHardwareAddr_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{684, 0} } -var File_otg_proto protoreflect.FileDescriptor +type PatternFlowArpSenderProtocolAddr_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} -var file_otg_proto_rawDesc = []byte{ - 0x0a, 0x09, 0x6f, 0x74, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x03, 0x6f, 0x74, 0x67, - 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, - 0xcf, 0x02, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1f, 0x0a, 0x05, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x6f, 0x72, 0x74, 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x04, 0x6c, - 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x4c, 0x61, 0x67, 0x52, 0x04, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x23, 0x0a, 0x06, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x31, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x52, 0x06, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x12, 0x28, - 0x0a, 0x08, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x08, - 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, - 0x1f, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, - 0x12, 0x22, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x12, 0x1d, 0x0a, 0x04, 0x6c, 0x6c, 0x64, 0x70, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x09, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x52, 0x04, 0x6c, 0x6c, 0x64, - 0x70, 0x22, 0x85, 0x01, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x12, 0x33, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0b, 0x70, 0x6f, 0x72, - 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3f, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x56, 0x0a, 0x04, 0x50, 0x6f, 0x72, - 0x74, 0x12, 0x1f, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, - 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, - 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0x5b, 0x0a, 0x0b, 0x50, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x12, 0x34, 0x0a, 0x13, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, - 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, - 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x65, 0x6d, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa9, - 0x01, 0x0a, 0x03, 0x4c, 0x61, 0x67, 0x12, 0x22, 0x0a, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x50, - 0x6f, 0x72, 0x74, 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x2c, 0x0a, 0x08, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x08, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, - 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x6d, - 0x69, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, - 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x94, 0x01, 0x0a, 0x07, 0x4c, - 0x61, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x70, 0x6f, 0x72, - 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, - 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x61, 0x63, 0x70, 0x52, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x12, 0x33, - 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x74, 0x68, - 0x65, 0x72, 0x6e, 0x65, 0x74, 0x42, 0x61, 0x73, 0x65, 0x52, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, - 0x6e, 0x65, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0xe6, 0x01, 0x0a, 0x0b, 0x4c, 0x61, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x12, 0x39, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x04, - 0x6c, 0x61, 0x63, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x4c, 0x61, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, - 0x52, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x12, 0x2e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x1a, 0x37, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x2d, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x61, 0x63, - 0x70, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x10, 0x02, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x3a, 0x0a, 0x11, 0x4c, 0x61, - 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x12, - 0x1a, 0x0a, 0x06, 0x6c, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x6c, 0x61, 0x67, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x22, 0xd5, 0x01, 0x0a, 0x0f, 0x4c, 0x61, 0x67, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x12, 0x2b, 0x0a, 0x0f, 0x61, 0x63, - 0x74, 0x6f, 0x72, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x53, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x15, 0x61, 0x63, 0x74, 0x6f, 0x72, - 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x13, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x53, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, - 0x12, 0x20, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x08, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x4b, 0x65, 0x79, 0x88, - 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x73, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x61, 0x63, 0x74, 0x6f, 0x72, - 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x22, 0xf1, - 0x03, 0x0a, 0x0b, 0x4c, 0x61, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x61, 0x63, 0x70, 0x12, 0x2f, - 0x0a, 0x11, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x63, 0x74, - 0x6f, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, - 0x33, 0x0a, 0x13, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x11, - 0x61, 0x63, 0x74, 0x6f, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, - 0x79, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0e, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, - 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x61, 0x63, 0x70, 0x2e, 0x41, - 0x63, 0x74, 0x6f, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x02, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, - 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x1d, 0x6c, 0x61, 0x63, 0x70, 0x64, 0x75, 0x5f, - 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x1a, - 0x6c, 0x61, 0x63, 0x70, 0x64, 0x75, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x54, 0x69, - 0x6d, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, - 0x0e, 0x6c, 0x61, 0x63, 0x70, 0x64, 0x75, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x0d, 0x6c, 0x61, 0x63, 0x70, 0x64, 0x75, 0x54, - 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x41, 0x0a, 0x0d, 0x41, 0x63, 0x74, - 0x6f, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x22, 0x30, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x10, 0x01, - 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x02, 0x42, 0x14, 0x0a, 0x12, - 0x5f, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, - 0x74, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, - 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x42, 0x20, 0x0a, - 0x1e, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x64, 0x75, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, - 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, - 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x64, 0x75, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, - 0x75, 0x74, 0x22, 0x9b, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x74, 0x68, - 0x65, 0x72, 0x6e, 0x65, 0x74, 0x42, 0x61, 0x73, 0x65, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x61, 0x63, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x61, 0x63, 0x88, 0x01, 0x01, - 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x03, 0x6d, 0x74, 0x75, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x05, 0x76, 0x6c, 0x61, 0x6e, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x52, 0x05, 0x76, 0x6c, 0x61, 0x6e, 0x73, 0x12, 0x17, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x61, 0x63, 0x42, - 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x74, 0x75, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x22, 0xc0, 0x02, 0x0a, 0x0e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, - 0x6e, 0x65, 0x74, 0x12, 0x37, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x74, - 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x0e, - 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x49, 0x70, 0x76, 0x34, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x52, 0x0d, 0x69, - 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x15, 0x0a, 0x03, - 0x6d, 0x61, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x61, 0x63, - 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x05, 0x76, 0x6c, - 0x61, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x52, 0x05, 0x76, 0x6c, 0x61, 0x6e, - 0x73, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, - 0x61, 0x63, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x74, 0x75, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x22, 0xc1, 0x02, 0x0a, 0x12, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, - 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, - 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x01, 0x52, 0x08, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1e, - 0x0a, 0x08, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x02, 0x52, 0x07, 0x6c, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, - 0x0a, 0x0a, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x03, 0x52, 0x09, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x88, - 0x01, 0x01, 0x1a, 0x4e, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x44, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, - 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x76, 0x78, 0x6c, - 0x61, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x8d, 0x02, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x12, 0x32, 0x0a, 0x04, 0x74, 0x70, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x2e, 0x54, 0x70, 0x69, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x04, 0x74, 0x70, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, - 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x13, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x04, 0x54, 0x70, 0x69, - 0x64, 0x22, 0x4e, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x78, 0x38, - 0x31, 0x30, 0x30, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x78, 0x38, 0x38, 0x41, 0x38, 0x10, 0x02, - 0x12, 0x09, 0x0a, 0x05, 0x78, 0x39, 0x31, 0x30, 0x30, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x78, - 0x39, 0x32, 0x30, 0x30, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x78, 0x39, 0x33, 0x30, 0x30, 0x10, - 0x05, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, - 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xe8, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x49, 0x70, 0x76, 0x34, 0x12, 0x1d, 0x0a, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, - 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x0b, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, - 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x34, 0x47, 0x61, 0x74, 0x65, 0x77, - 0x61, 0x79, 0x4d, 0x41, 0x43, 0x52, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x61, - 0x63, 0x12, 0x1d, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, - 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, - 0x61, 0x79, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, - 0x34, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x1e, 0x0a, 0x08, 0x65, 0x74, 0x68, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x65, - 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x74, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, - 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x22, 0xe4, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, - 0x76, 0x34, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x41, 0x43, 0x12, 0x42, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x34, 0x47, 0x61, 0x74, - 0x65, 0x77, 0x61, 0x79, 0x4d, 0x41, 0x43, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, - 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x1a, 0x36, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2c, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, +func (x *PatternFlowArpSenderProtocolAddr_Choice) Reset() { + *x = PatternFlowArpSenderProtocolAddr_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1097] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowArpSenderProtocolAddr_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowArpSenderProtocolAddr_Choice) ProtoMessage() {} + +func (x *PatternFlowArpSenderProtocolAddr_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1097] + 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 PatternFlowArpSenderProtocolAddr_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowArpSenderProtocolAddr_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{687, 0} +} + +type PatternFlowArpTargetHardwareAddr_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowArpTargetHardwareAddr_Choice) Reset() { + *x = PatternFlowArpTargetHardwareAddr_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1098] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowArpTargetHardwareAddr_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowArpTargetHardwareAddr_Choice) ProtoMessage() {} + +func (x *PatternFlowArpTargetHardwareAddr_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1098] + 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 PatternFlowArpTargetHardwareAddr_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowArpTargetHardwareAddr_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{690, 0} +} + +type PatternFlowArpTargetProtocolAddr_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowArpTargetProtocolAddr_Choice) Reset() { + *x = PatternFlowArpTargetProtocolAddr_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1099] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowArpTargetProtocolAddr_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowArpTargetProtocolAddr_Choice) ProtoMessage() {} + +func (x *PatternFlowArpTargetProtocolAddr_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1099] + 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 PatternFlowArpTargetProtocolAddr_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowArpTargetProtocolAddr_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{693, 0} +} + +type PatternFlowIcmpEchoType_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpEchoType_Choice) Reset() { + *x = PatternFlowIcmpEchoType_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1100] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpEchoType_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpEchoType_Choice) ProtoMessage() {} + +func (x *PatternFlowIcmpEchoType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1100] + 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 PatternFlowIcmpEchoType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{696, 0} +} + +type PatternFlowIcmpEchoCode_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpEchoCode_Choice) Reset() { + *x = PatternFlowIcmpEchoCode_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1101] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpEchoCode_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpEchoCode_Choice) ProtoMessage() {} + +func (x *PatternFlowIcmpEchoCode_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1101] + 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 PatternFlowIcmpEchoCode_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoCode_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{699, 0} +} + +type PatternFlowIcmpEchoChecksum_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpEchoChecksum_Choice) Reset() { + *x = PatternFlowIcmpEchoChecksum_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1102] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpEchoChecksum_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpEchoChecksum_Choice) ProtoMessage() {} + +func (x *PatternFlowIcmpEchoChecksum_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1102] + 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 PatternFlowIcmpEchoChecksum_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoChecksum_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{700, 0} +} + +type PatternFlowIcmpEchoChecksum_Generated struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpEchoChecksum_Generated) Reset() { + *x = PatternFlowIcmpEchoChecksum_Generated{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1103] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpEchoChecksum_Generated) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpEchoChecksum_Generated) ProtoMessage() {} + +func (x *PatternFlowIcmpEchoChecksum_Generated) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1103] + 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 PatternFlowIcmpEchoChecksum_Generated.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoChecksum_Generated) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{700, 1} +} + +type PatternFlowIcmpEchoIdentifier_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpEchoIdentifier_Choice) Reset() { + *x = PatternFlowIcmpEchoIdentifier_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1104] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpEchoIdentifier_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpEchoIdentifier_Choice) ProtoMessage() {} + +func (x *PatternFlowIcmpEchoIdentifier_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1104] + 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 PatternFlowIcmpEchoIdentifier_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoIdentifier_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{703, 0} +} + +type PatternFlowIcmpEchoSequenceNumber_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpEchoSequenceNumber_Choice) Reset() { + *x = PatternFlowIcmpEchoSequenceNumber_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1105] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpEchoSequenceNumber_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpEchoSequenceNumber_Choice) ProtoMessage() {} + +func (x *PatternFlowIcmpEchoSequenceNumber_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1105] + 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 PatternFlowIcmpEchoSequenceNumber_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoSequenceNumber_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{706, 0} +} + +type PatternFlowIcmpCommonChecksum_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpCommonChecksum_Choice) Reset() { + *x = PatternFlowIcmpCommonChecksum_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1106] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpCommonChecksum_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpCommonChecksum_Choice) ProtoMessage() {} + +func (x *PatternFlowIcmpCommonChecksum_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1106] + 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 PatternFlowIcmpCommonChecksum_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpCommonChecksum_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{707, 0} +} + +type PatternFlowIcmpCommonChecksum_Generated struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpCommonChecksum_Generated) Reset() { + *x = PatternFlowIcmpCommonChecksum_Generated{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1107] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpCommonChecksum_Generated) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpCommonChecksum_Generated) ProtoMessage() {} + +func (x *PatternFlowIcmpCommonChecksum_Generated) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1107] + 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 PatternFlowIcmpCommonChecksum_Generated.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpCommonChecksum_Generated) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{707, 1} +} + +type PatternFlowIcmpNextFieldsIdentifier_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpNextFieldsIdentifier_Choice) Reset() { + *x = PatternFlowIcmpNextFieldsIdentifier_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1108] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpNextFieldsIdentifier_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpNextFieldsIdentifier_Choice) ProtoMessage() {} + +func (x *PatternFlowIcmpNextFieldsIdentifier_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1108] + 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 PatternFlowIcmpNextFieldsIdentifier_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpNextFieldsIdentifier_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{710, 0} +} + +type PatternFlowIcmpNextFieldsSequenceNumber_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpNextFieldsSequenceNumber_Choice) Reset() { + *x = PatternFlowIcmpNextFieldsSequenceNumber_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1109] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpNextFieldsSequenceNumber_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpNextFieldsSequenceNumber_Choice) ProtoMessage() {} + +func (x *PatternFlowIcmpNextFieldsSequenceNumber_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1109] + 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 PatternFlowIcmpNextFieldsSequenceNumber_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpNextFieldsSequenceNumber_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{713, 0} +} + +type PatternFlowIcmpv6EchoType_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpv6EchoType_Choice) Reset() { + *x = PatternFlowIcmpv6EchoType_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1110] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpv6EchoType_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpv6EchoType_Choice) ProtoMessage() {} + +func (x *PatternFlowIcmpv6EchoType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1110] + 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 PatternFlowIcmpv6EchoType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{716, 0} +} + +type PatternFlowIcmpv6EchoCode_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpv6EchoCode_Choice) Reset() { + *x = PatternFlowIcmpv6EchoCode_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1111] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpv6EchoCode_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpv6EchoCode_Choice) ProtoMessage() {} + +func (x *PatternFlowIcmpv6EchoCode_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1111] + 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 PatternFlowIcmpv6EchoCode_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoCode_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{719, 0} +} + +type PatternFlowIcmpv6EchoIdentifier_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpv6EchoIdentifier_Choice) Reset() { + *x = PatternFlowIcmpv6EchoIdentifier_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1112] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpv6EchoIdentifier_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpv6EchoIdentifier_Choice) ProtoMessage() {} + +func (x *PatternFlowIcmpv6EchoIdentifier_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1112] + 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 PatternFlowIcmpv6EchoIdentifier_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoIdentifier_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{722, 0} +} + +type PatternFlowIcmpv6EchoSequenceNumber_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpv6EchoSequenceNumber_Choice) Reset() { + *x = PatternFlowIcmpv6EchoSequenceNumber_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1113] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpv6EchoSequenceNumber_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpv6EchoSequenceNumber_Choice) ProtoMessage() {} + +func (x *PatternFlowIcmpv6EchoSequenceNumber_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1113] + 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 PatternFlowIcmpv6EchoSequenceNumber_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoSequenceNumber_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{725, 0} +} + +type PatternFlowIcmpv6EchoChecksum_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpv6EchoChecksum_Choice) Reset() { + *x = PatternFlowIcmpv6EchoChecksum_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1114] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpv6EchoChecksum_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpv6EchoChecksum_Choice) ProtoMessage() {} + +func (x *PatternFlowIcmpv6EchoChecksum_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1114] + 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 PatternFlowIcmpv6EchoChecksum_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoChecksum_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{726, 0} +} + +type PatternFlowIcmpv6EchoChecksum_Generated struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpv6EchoChecksum_Generated) Reset() { + *x = PatternFlowIcmpv6EchoChecksum_Generated{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1115] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpv6EchoChecksum_Generated) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpv6EchoChecksum_Generated) ProtoMessage() {} + +func (x *PatternFlowIcmpv6EchoChecksum_Generated) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1115] + 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 PatternFlowIcmpv6EchoChecksum_Generated.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoChecksum_Generated) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{726, 1} +} + +type PatternFlowIcmpv6CommonChecksum_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpv6CommonChecksum_Choice) Reset() { + *x = PatternFlowIcmpv6CommonChecksum_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1116] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpv6CommonChecksum_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpv6CommonChecksum_Choice) ProtoMessage() {} + +func (x *PatternFlowIcmpv6CommonChecksum_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1116] + 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 PatternFlowIcmpv6CommonChecksum_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6CommonChecksum_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{727, 0} +} + +type PatternFlowIcmpv6CommonChecksum_Generated struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIcmpv6CommonChecksum_Generated) Reset() { + *x = PatternFlowIcmpv6CommonChecksum_Generated{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1117] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpv6CommonChecksum_Generated) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpv6CommonChecksum_Generated) ProtoMessage() {} + +func (x *PatternFlowIcmpv6CommonChecksum_Generated) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1117] + 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 PatternFlowIcmpv6CommonChecksum_Generated.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6CommonChecksum_Generated) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{727, 1} +} + +type PatternFlowPppAddress_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowPppAddress_Choice) Reset() { + *x = PatternFlowPppAddress_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1118] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowPppAddress_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowPppAddress_Choice) ProtoMessage() {} + +func (x *PatternFlowPppAddress_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1118] + 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 PatternFlowPppAddress_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPppAddress_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{730, 0} +} + +type PatternFlowPppControl_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowPppControl_Choice) Reset() { + *x = PatternFlowPppControl_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1119] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowPppControl_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowPppControl_Choice) ProtoMessage() {} + +func (x *PatternFlowPppControl_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1119] + 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 PatternFlowPppControl_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPppControl_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{733, 0} +} + +type PatternFlowPppProtocolType_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowPppProtocolType_Choice) Reset() { + *x = PatternFlowPppProtocolType_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1120] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowPppProtocolType_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowPppProtocolType_Choice) ProtoMessage() {} + +func (x *PatternFlowPppProtocolType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1120] + 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 PatternFlowPppProtocolType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPppProtocolType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{736, 0} +} + +type PatternFlowIgmpv1Version_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIgmpv1Version_Choice) Reset() { + *x = PatternFlowIgmpv1Version_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1121] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIgmpv1Version_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIgmpv1Version_Choice) ProtoMessage() {} + +func (x *PatternFlowIgmpv1Version_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1121] + 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 PatternFlowIgmpv1Version_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1Version_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{739, 0} +} + +type PatternFlowIgmpv1Type_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIgmpv1Type_Choice) Reset() { + *x = PatternFlowIgmpv1Type_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1122] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIgmpv1Type_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIgmpv1Type_Choice) ProtoMessage() {} + +func (x *PatternFlowIgmpv1Type_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1122] + 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 PatternFlowIgmpv1Type_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1Type_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{742, 0} +} + +type PatternFlowIgmpv1Unused_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIgmpv1Unused_Choice) Reset() { + *x = PatternFlowIgmpv1Unused_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1123] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIgmpv1Unused_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIgmpv1Unused_Choice) ProtoMessage() {} + +func (x *PatternFlowIgmpv1Unused_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1123] + 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 PatternFlowIgmpv1Unused_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1Unused_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{745, 0} +} + +type PatternFlowIgmpv1Checksum_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIgmpv1Checksum_Choice) Reset() { + *x = PatternFlowIgmpv1Checksum_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1124] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIgmpv1Checksum_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIgmpv1Checksum_Choice) ProtoMessage() {} + +func (x *PatternFlowIgmpv1Checksum_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1124] + 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 PatternFlowIgmpv1Checksum_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1Checksum_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{746, 0} +} + +type PatternFlowIgmpv1Checksum_Generated struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIgmpv1Checksum_Generated) Reset() { + *x = PatternFlowIgmpv1Checksum_Generated{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1125] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIgmpv1Checksum_Generated) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIgmpv1Checksum_Generated) ProtoMessage() {} + +func (x *PatternFlowIgmpv1Checksum_Generated) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1125] + 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 PatternFlowIgmpv1Checksum_Generated.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1Checksum_Generated) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{746, 1} +} + +type PatternFlowIgmpv1GroupAddress_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowIgmpv1GroupAddress_Choice) Reset() { + *x = PatternFlowIgmpv1GroupAddress_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1126] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIgmpv1GroupAddress_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIgmpv1GroupAddress_Choice) ProtoMessage() {} + +func (x *PatternFlowIgmpv1GroupAddress_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1126] + 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 PatternFlowIgmpv1GroupAddress_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1GroupAddress_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{749, 0} +} + +type PatternFlowMplsLabel_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowMplsLabel_Choice) Reset() { + *x = PatternFlowMplsLabel_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1127] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowMplsLabel_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowMplsLabel_Choice) ProtoMessage() {} + +func (x *PatternFlowMplsLabel_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1127] + 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 PatternFlowMplsLabel_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsLabel_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{752, 0} +} + +type PatternFlowMplsTrafficClass_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowMplsTrafficClass_Choice) Reset() { + *x = PatternFlowMplsTrafficClass_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1128] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowMplsTrafficClass_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowMplsTrafficClass_Choice) ProtoMessage() {} + +func (x *PatternFlowMplsTrafficClass_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1128] + 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 PatternFlowMplsTrafficClass_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsTrafficClass_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{755, 0} +} + +type PatternFlowMplsBottomOfStack_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowMplsBottomOfStack_Choice) Reset() { + *x = PatternFlowMplsBottomOfStack_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1129] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowMplsBottomOfStack_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowMplsBottomOfStack_Choice) ProtoMessage() {} + +func (x *PatternFlowMplsBottomOfStack_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1129] + 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 PatternFlowMplsBottomOfStack_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsBottomOfStack_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{758, 0} +} + +type PatternFlowMplsTimeToLive_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowMplsTimeToLive_Choice) Reset() { + *x = PatternFlowMplsTimeToLive_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1130] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowMplsTimeToLive_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowMplsTimeToLive_Choice) ProtoMessage() {} + +func (x *PatternFlowMplsTimeToLive_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1130] + 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 PatternFlowMplsTimeToLive_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsTimeToLive_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{761, 0} +} + +type PatternFlowSnmpv2CVersion_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowSnmpv2CVersion_Choice) Reset() { + *x = PatternFlowSnmpv2CVersion_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1131] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowSnmpv2CVersion_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowSnmpv2CVersion_Choice) ProtoMessage() {} + +func (x *PatternFlowSnmpv2CVersion_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1131] + 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 PatternFlowSnmpv2CVersion_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CVersion_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{763, 0} +} + +type PatternFlowSnmpv2CPDURequestId_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowSnmpv2CPDURequestId_Choice) Reset() { + *x = PatternFlowSnmpv2CPDURequestId_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1132] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowSnmpv2CPDURequestId_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowSnmpv2CPDURequestId_Choice) ProtoMessage() {} + +func (x *PatternFlowSnmpv2CPDURequestId_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1132] + 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 PatternFlowSnmpv2CPDURequestId_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CPDURequestId_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{765, 0} +} + +type PatternFlowSnmpv2CPDUErrorIndex_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowSnmpv2CPDUErrorIndex_Choice) Reset() { + *x = PatternFlowSnmpv2CPDUErrorIndex_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1133] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowSnmpv2CPDUErrorIndex_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowSnmpv2CPDUErrorIndex_Choice) ProtoMessage() {} + +func (x *PatternFlowSnmpv2CPDUErrorIndex_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1133] + 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 PatternFlowSnmpv2CPDUErrorIndex_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CPDUErrorIndex_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{767, 0} +} + +type PatternFlowSnmpv2CBulkPDURequestId_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowSnmpv2CBulkPDURequestId_Choice) Reset() { + *x = PatternFlowSnmpv2CBulkPDURequestId_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1134] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowSnmpv2CBulkPDURequestId_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowSnmpv2CBulkPDURequestId_Choice) ProtoMessage() {} + +func (x *PatternFlowSnmpv2CBulkPDURequestId_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1134] + 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 PatternFlowSnmpv2CBulkPDURequestId_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CBulkPDURequestId_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{769, 0} +} + +type PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice) Reset() { + *x = PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1135] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice) ProtoMessage() {} + +func (x *PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1135] + 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 PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{770, 0} +} + +type PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice) Reset() { + *x = PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1136] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice) ProtoMessage() {} + +func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1136] + 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 PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{772, 0} +} + +type PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice) Reset() { + *x = PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1137] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice) ProtoMessage() {} + +func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1137] + 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 PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{774, 0} +} + +type PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice) Reset() { + *x = PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1138] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice) ProtoMessage() {} + +func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1138] + 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 PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{776, 0} +} + +type PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice) Reset() { + *x = PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1139] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice) ProtoMessage() {} + +func (x *PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1139] + 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 PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{778, 0} +} + +type PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice) Reset() { + *x = PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1140] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice) ProtoMessage() {} + +func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1140] + 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 PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{780, 0} +} + +type PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice) Reset() { + *x = PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1141] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice) ProtoMessage() {} + +func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1141] + 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 PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{782, 0} +} + +type PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice) Reset() { + *x = PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1142] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice) ProtoMessage() {} + +func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1142] + 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 PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{784, 0} +} + +type PatternFlowSnmpv2CCommonRequestId_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowSnmpv2CCommonRequestId_Choice) Reset() { + *x = PatternFlowSnmpv2CCommonRequestId_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1143] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowSnmpv2CCommonRequestId_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowSnmpv2CCommonRequestId_Choice) ProtoMessage() {} + +func (x *PatternFlowSnmpv2CCommonRequestId_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1143] + 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 PatternFlowSnmpv2CCommonRequestId_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CCommonRequestId_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{786, 0} +} + +var File_otg_proto protoreflect.FileDescriptor + +var file_otg_proto_rawDesc = []byte{ + 0x0a, 0x09, 0x6f, 0x74, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x03, 0x6f, 0x74, 0x67, + 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, + 0xcf, 0x02, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1f, 0x0a, 0x05, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x6f, 0x72, 0x74, 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x04, 0x6c, + 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x4c, 0x61, 0x67, 0x52, 0x04, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x23, 0x0a, 0x06, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x31, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x52, 0x06, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x12, 0x28, + 0x0a, 0x08, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x08, + 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x07, 0x64, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x07, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, + 0x1f, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, + 0x12, 0x22, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x1d, 0x0a, 0x04, 0x6c, 0x6c, 0x64, 0x70, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x09, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x52, 0x04, 0x6c, 0x6c, 0x64, + 0x70, 0x22, 0x85, 0x01, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x33, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0b, 0x70, 0x6f, 0x72, + 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3f, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x56, 0x0a, 0x04, 0x50, 0x6f, 0x72, + 0x74, 0x12, 0x1f, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0x5b, 0x0a, 0x0b, 0x50, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x34, 0x0a, 0x13, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, + 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, + 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x65, 0x6d, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa9, + 0x01, 0x0a, 0x03, 0x4c, 0x61, 0x67, 0x12, 0x22, 0x0a, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x50, + 0x6f, 0x72, 0x74, 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x2c, 0x0a, 0x08, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x08, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, + 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x6d, + 0x69, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, + 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x94, 0x01, 0x0a, 0x07, 0x4c, + 0x61, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x70, 0x6f, 0x72, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, + 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x61, 0x63, 0x70, 0x52, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x12, 0x33, + 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x42, 0x61, 0x73, 0x65, 0x52, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0xe6, 0x01, 0x0a, 0x0b, 0x4c, 0x61, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x12, 0x39, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x04, + 0x6c, 0x61, 0x63, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x4c, 0x61, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, + 0x52, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x12, 0x2e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x1a, 0x37, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x2d, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x61, 0x63, + 0x70, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x10, 0x02, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x3a, 0x0a, 0x11, 0x4c, 0x61, + 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x12, + 0x1a, 0x0a, 0x06, 0x6c, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x05, 0x6c, 0x61, 0x67, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x22, 0xd5, 0x01, 0x0a, 0x0f, 0x4c, 0x61, 0x67, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x12, 0x2b, 0x0a, 0x0f, 0x61, 0x63, + 0x74, 0x6f, 0x72, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x53, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x15, 0x61, 0x63, 0x74, 0x6f, 0x72, + 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x13, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x53, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, + 0x12, 0x20, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x08, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x4b, 0x65, 0x79, 0x88, + 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x73, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x61, 0x63, 0x74, 0x6f, 0x72, + 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x22, 0xf1, + 0x03, 0x0a, 0x0b, 0x4c, 0x61, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x61, 0x63, 0x70, 0x12, 0x2f, + 0x0a, 0x11, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x63, 0x74, + 0x6f, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, + 0x33, 0x0a, 0x13, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x11, + 0x61, 0x63, 0x74, 0x6f, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0e, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x61, 0x63, 0x70, 0x2e, 0x41, + 0x63, 0x74, 0x6f, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x02, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x1d, 0x6c, 0x61, 0x63, 0x70, 0x64, 0x75, 0x5f, + 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x1a, + 0x6c, 0x61, 0x63, 0x70, 0x64, 0x75, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x54, 0x69, + 0x6d, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, + 0x0e, 0x6c, 0x61, 0x63, 0x70, 0x64, 0x75, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x0d, 0x6c, 0x61, 0x63, 0x70, 0x64, 0x75, 0x54, + 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x41, 0x0a, 0x0d, 0x41, 0x63, 0x74, + 0x6f, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x22, 0x30, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x10, 0x01, + 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x02, 0x42, 0x14, 0x0a, 0x12, + 0x5f, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, + 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x42, 0x20, 0x0a, + 0x1e, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x64, 0x75, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, + 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x64, 0x75, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, + 0x75, 0x74, 0x22, 0x9b, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x42, 0x61, 0x73, 0x65, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x61, 0x63, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x61, 0x63, 0x88, 0x01, 0x01, + 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x03, 0x6d, 0x74, 0x75, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x05, 0x76, 0x6c, 0x61, 0x6e, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x52, 0x05, 0x76, 0x6c, 0x61, 0x6e, 0x73, 0x12, 0x17, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x61, 0x63, 0x42, + 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x74, 0x75, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0xc0, 0x02, 0x0a, 0x0e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x12, 0x37, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x74, + 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x0e, + 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x49, 0x70, 0x76, 0x34, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x52, 0x0d, 0x69, + 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x15, 0x0a, 0x03, + 0x6d, 0x61, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x61, 0x63, + 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x05, 0x76, 0x6c, + 0x61, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x52, 0x05, 0x76, 0x6c, 0x61, 0x6e, + 0x73, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, + 0x61, 0x63, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x74, 0x75, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x22, 0xc1, 0x02, 0x0a, 0x12, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x08, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1e, + 0x0a, 0x08, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x02, 0x52, 0x07, 0x6c, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, + 0x0a, 0x0a, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x03, 0x52, 0x09, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x88, + 0x01, 0x01, 0x1a, 0x4e, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x44, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, + 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x76, 0x78, 0x6c, + 0x61, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x8d, 0x02, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x12, 0x32, 0x0a, 0x04, 0x74, 0x70, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x2e, 0x54, 0x70, 0x69, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x04, 0x74, 0x70, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, + 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x13, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x04, 0x54, 0x70, 0x69, + 0x64, 0x22, 0x4e, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x78, 0x38, + 0x31, 0x30, 0x30, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x78, 0x38, 0x38, 0x41, 0x38, 0x10, 0x02, + 0x12, 0x09, 0x0a, 0x05, 0x78, 0x39, 0x31, 0x30, 0x30, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x78, + 0x39, 0x32, 0x30, 0x30, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x78, 0x39, 0x33, 0x30, 0x30, 0x10, + 0x05, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, + 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xe8, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x49, 0x70, 0x76, 0x34, 0x12, 0x1d, 0x0a, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, + 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x0b, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, + 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x34, 0x47, 0x61, 0x74, 0x65, 0x77, + 0x61, 0x79, 0x4d, 0x41, 0x43, 0x52, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x61, + 0x63, 0x12, 0x1d, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, + 0x61, 0x79, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, + 0x34, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x1e, 0x0a, 0x08, 0x65, 0x74, 0x68, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x65, + 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, + 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x74, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x22, 0xe4, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, + 0x76, 0x34, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x41, 0x43, 0x12, 0x42, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x34, 0x47, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x4d, 0x41, 0x43, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, + 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x1a, 0x36, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2c, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, @@ -98053,4015 +102204,177 @@ var file_otg_proto_rawDesc = []byte{ 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x0a, 0x73, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x45, 0x72, 0x6f, 0x53, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x1a, 0x65, - 0x0a, 0x11, 0x50, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, - 0x72, 0x49, 0x70, 0x22, 0x50, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, - 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x10, 0x01, 0x12, 0x11, - 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6c, 0x6f, 0x6f, 0x73, 0x65, 0x10, - 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x73, 0x74, 0x72, - 0x69, 0x63, 0x74, 0x10, 0x03, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, - 0x64, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x70, 0x42, 0x10, 0x0a, - 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0xc0, 0x03, 0x0a, 0x10, 0x52, 0x73, 0x76, 0x70, 0x45, 0x72, 0x6f, 0x53, 0x75, 0x62, 0x6f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x45, 0x72, 0x6f, - 0x53, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, - 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x08, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, - 0x01, 0x01, 0x12, 0x42, 0x0a, 0x08, 0x68, 0x6f, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x45, - 0x72, 0x6f, 0x53, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x48, 0x6f, 0x70, 0x54, - 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x04, 0x52, 0x07, 0x68, 0x6f, 0x70, 0x54, - 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x38, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x30, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, - 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x02, - 0x1a, 0x39, 0x0a, 0x07, 0x48, 0x6f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2e, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x10, 0x01, - 0x12, 0x09, 0x0a, 0x05, 0x6c, 0x6f, 0x6f, 0x73, 0x65, 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x22, 0xcc, 0x02, 0x0a, 0x04, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x22, 0x0a, 0x05, 0x74, - 0x78, 0x5f, 0x72, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x78, 0x52, 0x78, 0x52, 0x04, 0x74, 0x78, 0x52, 0x78, 0x12, - 0x27, 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x52, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x34, 0x0a, 0x0d, 0x65, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x52, 0x0c, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x21, - 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x04, 0x73, 0x69, 0x7a, - 0x65, 0x12, 0x21, 0x0a, 0x04, 0x72, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x61, 0x74, 0x65, 0x52, 0x04, - 0x72, 0x61, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, - 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, - 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0xd2, 0x01, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x78, 0x52, 0x78, 0x12, 0x36, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x78, 0x52, 0x78, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x6f, 0x72, 0x74, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x27, 0x0a, 0x06, 0x64, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x1a, 0x37, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2d, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x01, 0x12, - 0x0a, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x79, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x6f, - 0x72, 0x74, 0x12, 0x1c, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x74, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x01, 0x52, 0x06, 0x72, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x08, 0x72, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x07, 0x72, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x78, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x78, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0xba, 0x01, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, - 0x12, 0x32, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x2e, - 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x6d, 0x6f, 0x64, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x74, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, - 0x19, 0x0a, 0x08, 0x72, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x07, 0x72, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0x39, 0x0a, 0x04, 0x4d, 0x6f, - 0x64, 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x6d, - 0x65, 0x73, 0x68, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x5f, 0x74, 0x6f, 0x5f, - 0x6f, 0x6e, 0x65, 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0xa1, - 0x08, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x38, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, - 0x6f, 0x77, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x12, 0x2d, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, - 0x65, 0x72, 0x6e, 0x65, 0x74, 0x52, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x12, - 0x21, 0x0a, 0x04, 0x76, 0x6c, 0x61, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x52, 0x04, 0x76, 0x6c, - 0x61, 0x6e, 0x12, 0x24, 0x0a, 0x05, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, - 0x6e, 0x52, 0x05, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x12, 0x21, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x12, 0x21, 0x0a, 0x04, 0x69, - 0x70, 0x76, 0x36, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x12, 0x2d, - 0x0a, 0x08, 0x70, 0x66, 0x63, 0x70, 0x61, 0x75, 0x73, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x52, 0x08, 0x70, 0x66, 0x63, 0x70, 0x61, 0x75, 0x73, 0x65, 0x12, 0x3c, 0x0a, - 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x70, 0x61, 0x75, 0x73, 0x65, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x52, 0x0d, 0x65, 0x74, - 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x70, 0x61, 0x75, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x03, 0x74, - 0x63, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, - 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x52, 0x03, 0x74, 0x63, 0x70, 0x12, 0x1e, 0x0a, 0x03, 0x75, - 0x64, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, - 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x52, 0x03, 0x75, 0x64, 0x70, 0x12, 0x1e, 0x0a, 0x03, 0x67, - 0x72, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x03, 0x67, 0x72, 0x65, 0x12, 0x24, 0x0a, 0x05, 0x67, - 0x74, 0x70, 0x76, 0x31, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x05, 0x67, 0x74, 0x70, 0x76, - 0x31, 0x12, 0x24, 0x0a, 0x05, 0x67, 0x74, 0x70, 0x76, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, - 0x52, 0x05, 0x67, 0x74, 0x70, 0x76, 0x32, 0x12, 0x1e, 0x0a, 0x03, 0x61, 0x72, 0x70, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x41, - 0x72, 0x70, 0x52, 0x03, 0x61, 0x72, 0x70, 0x12, 0x21, 0x0a, 0x04, 0x69, 0x63, 0x6d, 0x70, 0x18, - 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x63, 0x6d, 0x70, 0x52, 0x04, 0x69, 0x63, 0x6d, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x69, 0x63, - 0x6d, 0x70, 0x76, 0x36, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x52, 0x06, 0x69, 0x63, 0x6d, - 0x70, 0x76, 0x36, 0x12, 0x1e, 0x0a, 0x03, 0x70, 0x70, 0x70, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x52, 0x03, - 0x70, 0x70, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x69, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x18, 0x13, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, - 0x6d, 0x70, 0x76, 0x31, 0x52, 0x06, 0x69, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x12, 0x21, 0x0a, 0x04, - 0x6d, 0x70, 0x6c, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x52, 0x04, 0x6d, 0x70, 0x6c, 0x73, 0x1a, - 0xf5, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xea, 0x01, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x01, - 0x12, 0x0c, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x10, 0x02, 0x12, 0x08, - 0x0a, 0x04, 0x76, 0x6c, 0x61, 0x6e, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x78, 0x6c, 0x61, - 0x6e, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x05, 0x12, 0x08, 0x0a, - 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x66, 0x63, 0x70, 0x61, - 0x75, 0x73, 0x65, 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x70, 0x61, 0x75, 0x73, 0x65, 0x10, 0x08, 0x12, 0x07, 0x0a, 0x03, 0x74, 0x63, 0x70, 0x10, - 0x09, 0x12, 0x07, 0x0a, 0x03, 0x75, 0x64, 0x70, 0x10, 0x0a, 0x12, 0x07, 0x0a, 0x03, 0x67, 0x72, - 0x65, 0x10, 0x0b, 0x12, 0x09, 0x0a, 0x05, 0x67, 0x74, 0x70, 0x76, 0x31, 0x10, 0x0c, 0x12, 0x09, - 0x0a, 0x05, 0x67, 0x74, 0x70, 0x76, 0x32, 0x10, 0x0d, 0x12, 0x07, 0x0a, 0x03, 0x61, 0x72, 0x70, - 0x10, 0x0e, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x63, 0x6d, 0x70, 0x10, 0x0f, 0x12, 0x0a, 0x0a, 0x06, - 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x10, 0x10, 0x12, 0x07, 0x0a, 0x03, 0x70, 0x70, 0x70, 0x10, - 0x11, 0x12, 0x0a, 0x0a, 0x06, 0x69, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x10, 0x12, 0x12, 0x08, 0x0a, - 0x04, 0x6d, 0x70, 0x6c, 0x73, 0x10, 0x13, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x6c, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x12, 0x19, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x22, 0x87, 0x01, 0x0a, 0x13, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xed, 0x01, 0x0a, 0x0c, 0x46, - 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x12, 0x2d, 0x0a, 0x03, 0x64, - 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, - 0x65, 0x74, 0x44, 0x73, 0x74, 0x52, 0x03, 0x64, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x03, 0x73, 0x72, - 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x53, 0x72, 0x63, 0x52, 0x03, 0x73, 0x72, 0x63, 0x12, 0x40, 0x0a, 0x0a, 0x65, 0x74, 0x68, - 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x09, 0x65, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3d, 0x0a, 0x09, 0x70, - 0x66, 0x63, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, - 0x52, 0x08, 0x70, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x22, 0xc5, 0x01, 0x0a, 0x08, 0x46, - 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x12, 0x38, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, - 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, - 0x79, 0x12, 0x29, 0x0a, 0x03, 0x63, 0x66, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x52, 0x03, 0x63, 0x66, 0x69, 0x12, 0x26, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, - 0x52, 0x02, 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x04, 0x74, 0x70, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x52, 0x04, 0x74, 0x70, - 0x69, 0x64, 0x22, 0xe5, 0x01, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, - 0x12, 0x30, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x05, 0x66, 0x6c, 0x61, - 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x64, 0x30, 0x52, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, - 0x12, 0x2a, 0x0a, 0x03, 0x76, 0x6e, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, - 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x52, 0x03, 0x76, 0x6e, 0x69, 0x12, 0x3c, 0x0a, 0x09, - 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x52, - 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x22, 0xb2, 0x07, 0x0a, 0x08, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x12, 0x35, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x45, - 0x0a, 0x0d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x0c, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x31, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, - 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x08, - 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, - 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4a, 0x0a, 0x0e, - 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x38, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x64, 0x12, 0x45, 0x0a, 0x0d, 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, - 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0c, 0x64, 0x6f, 0x6e, - 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x0e, 0x6d, 0x6f, 0x72, - 0x65, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x52, 0x0d, 0x6d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x0f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x52, 0x0e, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x12, 0x40, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, - 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, - 0x76, 0x65, 0x12, 0x38, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x4b, 0x0a, 0x0f, - 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x52, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x29, 0x0a, 0x03, 0x73, 0x72, 0x63, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x52, - 0x03, 0x73, 0x72, 0x63, 0x12, 0x29, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x52, 0x03, 0x64, 0x73, 0x74, 0x12, - 0x2e, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, - 0xd0, 0x01, 0x0a, 0x0f, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x32, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x06, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x1a, 0x3f, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x35, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x72, 0x5f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0xaa, 0x01, 0x0a, 0x15, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x32, 0x0a, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x12, 0x38, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, - 0x9a, 0x02, 0x0a, 0x19, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x50, 0x0a, - 0x0b, 0x63, 0x6f, 0x70, 0x69, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x70, 0x69, 0x65, 0x64, 0x46, - 0x6c, 0x61, 0x67, 0x52, 0x0a, 0x63, 0x6f, 0x70, 0x69, 0x65, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, - 0x53, 0x0a, 0x0c, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x4f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x0b, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x12, 0x56, 0x0a, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, - 0x70, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x0c, - 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xf2, 0x01, 0x0a, - 0x1b, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x49, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x36, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, - 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0x9a, 0x02, 0x0a, 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x3e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, - 0x79, 0x52, 0x61, 0x77, 0x52, 0x03, 0x72, 0x61, 0x77, 0x12, 0x22, 0x0a, 0x03, 0x74, 0x6f, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x03, 0x74, 0x6f, 0x73, 0x12, 0x25, 0x0a, - 0x04, 0x64, 0x73, 0x63, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x52, 0x04, - 0x64, 0x73, 0x63, 0x70, 0x1a, 0x3d, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x33, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x10, 0x01, - 0x12, 0x07, 0x0a, 0x03, 0x74, 0x6f, 0x73, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x73, 0x63, - 0x70, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x6c, - 0x0a, 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x12, 0x2d, - 0x0a, 0x03, 0x70, 0x68, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x52, 0x03, 0x70, 0x68, 0x62, 0x12, 0x2d, 0x0a, - 0x03, 0x65, 0x63, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x52, 0x03, 0x65, 0x63, 0x6e, 0x22, 0x81, 0x03, 0x0a, - 0x0b, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x12, 0x41, 0x0a, 0x0a, - 0x70, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, - 0x6e, 0x63, 0x65, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, - 0x32, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x52, 0x05, 0x64, 0x65, - 0x6c, 0x61, 0x79, 0x12, 0x41, 0x0a, 0x0a, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, - 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x52, 0x0a, 0x74, 0x68, 0x72, 0x6f, - 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x12, 0x44, 0x0a, 0x0b, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, - 0x0b, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x3b, 0x0a, 0x08, - 0x6d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x52, - 0x08, 0x6d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x12, 0x35, 0x0a, 0x06, 0x75, 0x6e, 0x75, - 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, - 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x52, 0x06, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, - 0x22, 0xe2, 0x03, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x12, 0x35, 0x0a, - 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x0c, 0x74, - 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x3c, 0x0a, 0x0a, 0x66, - 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x09, - 0x66, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x48, 0x0a, 0x0e, 0x70, 0x61, 0x79, - 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x12, 0x3f, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, - 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x12, 0x39, 0x0a, 0x09, 0x68, 0x6f, 0x70, 0x5f, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x08, 0x68, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, - 0x29, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x36, 0x53, 0x72, 0x63, 0x52, 0x03, 0x73, 0x72, 0x63, 0x12, 0x29, 0x0a, 0x03, 0x64, 0x73, - 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, - 0x52, 0x03, 0x64, 0x73, 0x74, 0x22, 0xa0, 0x07, 0x0a, 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, - 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, - 0x52, 0x03, 0x64, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x52, - 0x03, 0x73, 0x72, 0x63, 0x12, 0x40, 0x0a, 0x0a, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x65, 0x74, 0x68, - 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4d, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x5f, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, - 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x59, 0x0a, 0x13, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x11, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x12, 0x47, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, - 0x30, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x52, 0x0b, 0x70, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x12, 0x47, 0x0a, 0x0d, 0x70, 0x61, 0x75, - 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x31, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x31, 0x12, 0x47, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x5f, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x52, 0x0b, - 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x12, 0x47, 0x0a, 0x0d, 0x70, - 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x33, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x33, 0x12, 0x47, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x5f, 0x34, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, - 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, - 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x12, 0x47, 0x0a, - 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x35, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x12, 0x47, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x36, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x36, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x12, - 0x47, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x37, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x52, 0x0b, 0x70, 0x61, 0x75, - 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x22, 0xcd, 0x02, 0x0a, 0x11, 0x46, 0x6c, 0x6f, - 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x12, 0x32, - 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, - 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x52, 0x03, 0x64, - 0x73, 0x74, 0x12, 0x32, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, - 0x63, 0x52, 0x03, 0x73, 0x72, 0x63, 0x12, 0x45, 0x0a, 0x0a, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, - 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x09, 0x65, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x52, 0x0a, - 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, - 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, - 0x64, 0x65, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, - 0x65, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, - 0x6d, 0x65, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xa6, 0x06, 0x0a, 0x07, 0x46, 0x6c, 0x6f, - 0x77, 0x54, 0x63, 0x70, 0x12, 0x35, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, - 0x72, 0x74, 0x52, 0x07, 0x73, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x35, 0x0a, 0x08, 0x64, - 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x07, 0x64, 0x73, 0x74, 0x50, 0x6f, - 0x72, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x73, 0x65, 0x71, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x52, 0x06, - 0x73, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x5f, 0x6e, 0x75, - 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, - 0x75, 0x6d, 0x52, 0x06, 0x61, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x61, - 0x74, 0x61, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x52, 0x0a, - 0x64, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x2f, 0x0a, 0x06, 0x65, 0x63, - 0x6e, 0x5f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, - 0x63, 0x6e, 0x4e, 0x73, 0x52, 0x05, 0x65, 0x63, 0x6e, 0x4e, 0x73, 0x12, 0x32, 0x0a, 0x07, 0x65, - 0x63, 0x6e, 0x5f, 0x63, 0x77, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, - 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x52, 0x06, 0x65, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x12, - 0x35, 0x0a, 0x08, 0x65, 0x63, 0x6e, 0x5f, 0x65, 0x63, 0x68, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x52, 0x07, 0x65, - 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x12, 0x32, 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, 0x75, 0x72, - 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, - 0x72, 0x67, 0x52, 0x06, 0x63, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x12, 0x32, 0x0a, 0x07, 0x63, 0x74, - 0x6c, 0x5f, 0x61, 0x63, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, - 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x52, 0x06, 0x63, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x12, 0x32, - 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, 0x70, 0x73, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x52, 0x06, 0x63, 0x74, 0x6c, 0x50, - 0x73, 0x68, 0x12, 0x32, 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, 0x72, 0x73, 0x74, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x52, 0x06, - 0x63, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, 0x73, 0x79, - 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, - 0x79, 0x6e, 0x52, 0x06, 0x63, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x12, 0x32, 0x0a, 0x07, 0x63, 0x74, - 0x6c, 0x5f, 0x66, 0x69, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, - 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x52, 0x06, 0x63, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x12, 0x31, - 0x0a, 0x06, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x52, 0x06, 0x77, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x22, 0xe3, 0x01, 0x0a, 0x07, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x12, 0x35, 0x0a, - 0x08, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x07, 0x73, 0x72, 0x63, - 0x50, 0x6f, 0x72, 0x74, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, - 0x72, 0x74, 0x52, 0x07, 0x64, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x31, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x37, - 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x55, 0x64, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x52, 0x08, 0x63, - 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x22, 0xf8, 0x02, 0x0a, 0x07, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x72, 0x65, 0x12, 0x4d, 0x0a, 0x10, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x5f, - 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, - 0x74, 0x52, 0x0f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, - 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x64, 0x30, 0x52, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x12, 0x34, - 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x37, 0x0a, - 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x52, 0x08, 0x63, 0x68, - 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x3a, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x64, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x52, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x31, 0x22, 0xde, 0x06, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, - 0x12, 0x36, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, - 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x39, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x06, 0x65, - 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x05, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x31, - 0x0a, 0x06, 0x73, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x05, 0x73, 0x46, 0x6c, 0x61, - 0x67, 0x12, 0x34, 0x0a, 0x07, 0x70, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x52, - 0x06, 0x70, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x43, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, 0x0e, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x0d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x2d, 0x0a, 0x04, 0x74, 0x65, 0x69, 0x64, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, - 0x52, 0x04, 0x74, 0x65, 0x69, 0x64, 0x12, 0x49, 0x0a, 0x0e, 0x73, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x52, 0x0d, 0x73, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x12, 0x41, 0x0a, 0x0c, 0x6e, 0x5f, 0x70, 0x64, 0x75, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, - 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x0a, 0x6e, 0x50, 0x64, 0x75, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x69, 0x0a, 0x1a, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x65, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, - 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x17, 0x6e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x42, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x73, 0x22, 0x91, 0x02, 0x0a, 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x56, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, - 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x12, 0x40, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x73, 0x12, 0x63, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, - 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x52, 0x13, 0x6e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0xca, 0x04, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x32, 0x12, 0x36, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x52, 0x0a, - 0x11, 0x70, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x6c, - 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, - 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x52, - 0x10, 0x70, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, - 0x67, 0x12, 0x3a, 0x0a, 0x09, 0x74, 0x65, 0x69, 0x64, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, - 0x6c, 0x61, 0x67, 0x52, 0x08, 0x74, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x33, 0x0a, - 0x06, 0x73, 0x70, 0x61, 0x72, 0x65, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x52, 0x06, 0x73, 0x70, 0x61, 0x72, - 0x65, 0x31, 0x12, 0x43, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x52, 0x0d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x12, 0x2d, 0x0a, 0x04, 0x74, 0x65, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x52, 0x04, 0x74, 0x65, 0x69, - 0x64, 0x12, 0x4c, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, - 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, - 0x33, 0x0a, 0x06, 0x73, 0x70, 0x61, 0x72, 0x65, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x52, 0x06, 0x73, 0x70, - 0x61, 0x72, 0x65, 0x32, 0x22, 0xcd, 0x05, 0x0a, 0x07, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, - 0x12, 0x44, 0x0a, 0x0d, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, - 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, - 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, - 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x0f, - 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, - 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x0e, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, - 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4a, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x12, 0x3a, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x57, 0x0a, 0x14, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, - 0x61, 0x72, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, - 0x65, 0x41, 0x64, 0x64, 0x72, 0x52, 0x12, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, - 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, 0x57, 0x0a, 0x14, 0x73, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x52, 0x12, - 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, - 0x64, 0x72, 0x12, 0x57, 0x0a, 0x14, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x68, 0x61, 0x72, - 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, - 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x52, 0x12, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, - 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, 0x57, 0x0a, 0x14, 0x74, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, - 0x52, 0x12, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x41, 0x64, 0x64, 0x72, 0x22, 0xa1, 0x01, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, - 0x70, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x04, 0x65, 0x63, 0x68, - 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x52, 0x04, 0x65, 0x63, 0x68, 0x6f, - 0x1a, 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x65, 0x63, 0x68, 0x6f, 0x10, 0x01, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xc5, 0x02, 0x0a, 0x0c, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x12, 0x30, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, - 0x6f, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x63, - 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, - 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x3c, 0x0a, - 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, - 0x6d, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x42, 0x0a, 0x0a, 0x69, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, - 0x4f, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, - 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x22, 0xa7, 0x01, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x12, - 0x38, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x04, 0x65, 0x63, 0x68, - 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x52, 0x04, 0x65, 0x63, - 0x68, 0x6f, 0x1a, 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x65, 0x63, 0x68, 0x6f, 0x10, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xd1, 0x02, 0x0a, 0x0e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x12, 0x32, 0x0a, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, - 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x12, 0x32, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x52, - 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, - 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, - 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x0f, 0x73, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, - 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x0e, - 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3e, - 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x73, 0x75, 0x6d, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x22, 0xbb, - 0x01, 0x0a, 0x07, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x12, 0x34, 0x0a, 0x07, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x34, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x07, 0x63, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x44, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0xb0, 0x02, 0x0a, - 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x12, 0x37, 0x0a, 0x07, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, - 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x12, 0x34, 0x0a, 0x06, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, - 0x65, 0x64, 0x52, 0x06, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x08, 0x63, 0x68, - 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, - 0x6d, 0x70, 0x76, 0x31, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x52, 0x08, 0x63, 0x68, - 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x47, 0x0a, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, - 0x8f, 0x02, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x12, 0x2f, 0x0a, 0x05, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, - 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x45, 0x0a, - 0x0d, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, - 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x12, 0x49, 0x0a, 0x0f, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, - 0x66, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, - 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, - 0x52, 0x0d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x12, - 0x40, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, - 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, - 0x65, 0x22, 0xed, 0x02, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x36, + 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x45, 0x72, 0x6f, 0x53, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x1a, 0x65, + 0x0a, 0x11, 0x50, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, + 0x72, 0x49, 0x70, 0x22, 0x50, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, + 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x10, 0x01, 0x12, 0x11, + 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6c, 0x6f, 0x6f, 0x73, 0x65, 0x10, + 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x73, 0x74, 0x72, + 0x69, 0x63, 0x74, 0x10, 0x03, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, + 0x64, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x70, 0x42, 0x10, 0x0a, + 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, + 0xc0, 0x03, 0x0a, 0x10, 0x52, 0x73, 0x76, 0x70, 0x45, 0x72, 0x6f, 0x53, 0x75, 0x62, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x45, 0x72, 0x6f, + 0x53, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, + 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x08, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, + 0x01, 0x01, 0x12, 0x42, 0x0a, 0x08, 0x68, 0x6f, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x45, + 0x72, 0x6f, 0x53, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x48, 0x6f, 0x70, 0x54, + 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x04, 0x52, 0x07, 0x68, 0x6f, 0x70, 0x54, + 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x38, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x30, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, + 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x02, + 0x1a, 0x39, 0x0a, 0x07, 0x48, 0x6f, 0x70, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2e, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x10, 0x01, + 0x12, 0x09, 0x0a, 0x05, 0x6c, 0x6f, 0x6f, 0x73, 0x65, 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x22, 0xcc, 0x02, 0x0a, 0x04, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x22, 0x0a, 0x05, 0x74, + 0x78, 0x5f, 0x72, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x78, 0x52, 0x78, 0x52, 0x04, 0x74, 0x78, 0x52, 0x78, 0x12, + 0x27, 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x52, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x34, 0x0a, 0x0d, 0x65, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x52, 0x0c, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x21, + 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x04, 0x73, 0x69, 0x7a, + 0x65, 0x12, 0x21, 0x0a, 0x04, 0x72, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x61, 0x74, 0x65, 0x52, 0x04, + 0x72, 0x61, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, + 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, + 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0xd2, 0x01, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x78, 0x52, 0x78, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x2e, 0x43, 0x68, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x78, 0x52, 0x78, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x69, 0x78, 0x65, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x66, 0x69, 0x78, 0x65, 0x64, 0x88, 0x01, - 0x01, 0x12, 0x34, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, - 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, - 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, - 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x52, 0x06, 0x72, 0x61, - 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x3b, 0x0a, 0x0c, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x70, - 0x61, 0x69, 0x72, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, - 0x61, 0x69, 0x72, 0x73, 0x52, 0x0b, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, - 0x73, 0x1a, 0x59, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4f, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x66, 0x69, 0x78, 0x65, 0x64, 0x10, 0x01, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x77, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x10, 0x04, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x69, 0x78, 0x65, - 0x64, 0x22, 0x79, 0x0a, 0x11, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x15, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x03, 0x65, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, - 0x65, 0x6e, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x22, 0x4e, 0x0a, 0x0e, - 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x15, - 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x03, 0x6d, - 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, - 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x61, 0x78, 0x22, 0xa9, 0x03, 0x0a, - 0x13, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, - 0x61, 0x69, 0x72, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, - 0x69, 0x7a, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, 0x73, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x65, - 0x66, 0x69, 0x6e, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x50, 0x61, 0x69, 0x72, 0x73, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, - 0x6e, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, - 0x77, 0x53, 0x69, 0x7a, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, 0x73, - 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x1a, 0x3d, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x10, - 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, 0x1a, 0x6f, 0x0a, - 0x0a, 0x50, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x22, 0x61, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x6d, 0x69, 0x78, 0x10, 0x01, 0x12, 0x0e, - 0x0a, 0x0a, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x69, 0x6d, 0x69, 0x78, 0x10, 0x02, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x69, 0x6d, 0x69, 0x78, 0x10, 0x03, 0x12, 0x11, 0x0a, - 0x0d, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x6d, 0x69, 0x78, 0x10, 0x04, - 0x12, 0x0c, 0x0a, 0x08, 0x74, 0x63, 0x70, 0x5f, 0x69, 0x6d, 0x69, 0x78, 0x10, 0x05, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, - 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x22, 0x65, 0x0a, 0x19, 0x46, 0x6c, 0x6f, 0x77, - 0x53, 0x69, 0x7a, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, 0x73, 0x43, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, - 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x73, 0x69, 0x7a, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, - 0x88, 0x03, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x61, 0x74, 0x65, 0x12, 0x36, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x01, 0x52, 0x03, 0x70, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x62, - 0x70, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x03, 0x62, 0x70, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6b, 0x62, 0x70, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x03, 0x52, 0x04, 0x6b, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6d, - 0x62, 0x70, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x04, 0x6d, 0x62, 0x70, - 0x73, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x67, 0x62, 0x70, 0x73, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x05, 0x52, 0x04, 0x67, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, - 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x02, 0x48, 0x06, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x88, - 0x01, 0x01, 0x1a, 0x61, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x57, 0x0a, 0x04, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x6f, 0x72, 0x74, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x27, 0x0a, 0x06, 0x64, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x1a, 0x37, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2d, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x70, 0x70, 0x73, 0x10, 0x01, 0x12, 0x07, - 0x0a, 0x03, 0x62, 0x70, 0x73, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x6b, 0x62, 0x70, 0x73, 0x10, - 0x03, 0x12, 0x08, 0x0a, 0x04, 0x6d, 0x62, 0x70, 0x73, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x67, - 0x62, 0x70, 0x73, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, - 0x61, 0x67, 0x65, 0x10, 0x06, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x70, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x62, 0x70, 0x73, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6b, 0x62, 0x70, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x62, - 0x70, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, - 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x22, 0x8c, 0x03, 0x0a, 0x0c, 0x46, - 0x6c, 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x0d, 0x66, 0x69, 0x78, 0x65, 0x64, - 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x46, 0x69, 0x78, 0x65, 0x64, 0x50, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x0c, 0x66, 0x69, 0x78, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, - 0x65, 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x0d, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x63, - 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x46, 0x69, 0x78, 0x65, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, - 0x73, 0x52, 0x0c, 0x66, 0x69, 0x78, 0x65, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, - 0x24, 0x0a, 0x05, 0x62, 0x75, 0x72, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x42, 0x75, 0x72, 0x73, 0x74, 0x52, 0x05, - 0x62, 0x75, 0x72, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, - 0x6f, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x52, 0x0a, - 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x1a, 0x62, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x58, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, - 0x0d, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x10, 0x01, - 0x12, 0x11, 0x0a, 0x0d, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, - 0x73, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x62, 0x75, 0x72, 0x73, 0x74, 0x10, 0x03, 0x12, 0x0e, - 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x10, 0x04, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x55, 0x0a, 0x0e, 0x46, 0x6c, 0x6f, - 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x12, 0x15, 0x0a, 0x03, 0x67, - 0x61, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x03, 0x67, 0x61, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x24, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x61, - 0x79, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, 0x61, 0x70, - 0x22, 0xb6, 0x02, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x37, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x43, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x01, 0x12, + 0x0a, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x79, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x6f, + 0x72, 0x74, 0x12, 0x1c, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x74, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x01, 0x52, 0x06, 0x72, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x08, 0x72, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x07, 0x72, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x78, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x78, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0xba, 0x01, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, + 0x12, 0x32, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x2e, + 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x6d, 0x6f, 0x64, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x74, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, + 0x19, 0x0a, 0x08, 0x72, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x07, 0x72, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0x39, 0x0a, 0x04, 0x4d, 0x6f, + 0x64, 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x6d, + 0x65, 0x73, 0x68, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x5f, 0x74, 0x6f, 0x5f, + 0x6f, 0x6e, 0x65, 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0xda, + 0x08, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x38, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x02, 0x52, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, - 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0c, 0x6d, 0x69, 0x63, - 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x48, - 0x03, 0x52, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, - 0x01, 0x01, 0x1a, 0x4f, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x45, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x10, 0x01, - 0x12, 0x0f, 0x0a, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x10, - 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, - 0x73, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x61, 0x6e, - 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x69, 0x63, - 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0x82, 0x01, 0x0a, 0x10, 0x46, 0x6c, - 0x6f, 0x77, 0x46, 0x69, 0x78, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x1d, - 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, - 0x03, 0x67, 0x61, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x03, 0x67, 0x61, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x65, - 0x6c, 0x61, 0x79, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, 0x61, 0x70, 0x22, 0x82, - 0x01, 0x0a, 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x46, 0x69, 0x78, 0x65, 0x64, 0x53, 0x65, 0x63, 0x6f, - 0x6e, 0x64, 0x73, 0x12, 0x1d, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x67, 0x61, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x03, 0x67, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x05, 0x64, 0x65, 0x6c, - 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, - 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x42, - 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, - 0x67, 0x61, 0x70, 0x22, 0xc5, 0x01, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x42, 0x75, 0x72, 0x73, - 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x62, 0x75, 0x72, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x06, 0x62, 0x75, 0x72, 0x73, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1d, - 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, - 0x03, 0x67, 0x61, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x03, 0x67, 0x61, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x62, 0x75, - 0x72, 0x73, 0x74, 0x5f, 0x67, 0x61, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x42, 0x75, 0x72, 0x73, 0x74, 0x47, 0x61, 0x70, 0x52, 0x0d, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x42, 0x75, 0x72, 0x73, 0x74, 0x47, 0x61, 0x70, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x62, 0x75, 0x72, 0x73, 0x74, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x63, 0x6b, - 0x65, 0x74, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, 0x61, 0x70, 0x22, 0xd6, 0x02, 0x0a, 0x19, - 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x42, 0x75, 0x72, 0x73, 0x74, 0x47, 0x61, 0x70, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x42, 0x75, 0x72, 0x73, 0x74, 0x47, 0x61, 0x70, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x01, 0x48, 0x01, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, - 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x01, 0x48, 0x02, 0x52, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, - 0x73, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, - 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x48, 0x03, 0x52, 0x0c, 0x6d, 0x69, - 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x4f, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x45, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x6e, - 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, - 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x10, 0x03, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x79, - 0x74, 0x65, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, - 0x6e, 0x64, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, - 0x6f, 0x6e, 0x64, 0x73, 0x22, 0xc1, 0x02, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x01, 0x52, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x0b, 0x72, 0x78, - 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x78, 0x54, 0x78, 0x52, 0x61, - 0x74, 0x69, 0x6f, 0x52, 0x09, 0x72, 0x78, 0x54, 0x78, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x23, - 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x02, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, - 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4c, - 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x07, 0x6c, - 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x4d, 0x0a, 0x16, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, - 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, - 0x77, 0x50, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x61, 0x67, 0x73, 0x52, - 0x14, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x22, 0xc6, 0x01, 0x0a, 0x12, 0x46, 0x6c, 0x6f, - 0x77, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, - 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x04, - 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, - 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x04, 0x4d, 0x6f, 0x64, 0x65, - 0x22, 0x3b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x74, 0x6f, - 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, - 0x63, 0x75, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x02, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x6f, 0x64, - 0x65, 0x22, 0x3e, 0x0a, 0x12, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, - 0x6e, 0x65, 0x64, 0x54, 0x61, 0x67, 0x73, 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x78, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x72, 0x78, 0x4e, 0x61, - 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x78, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0xee, 0x01, 0x0a, 0x0d, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x78, 0x54, 0x78, 0x52, 0x61, - 0x74, 0x69, 0x6f, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x78, - 0x54, 0x78, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x34, 0x0a, 0x08, 0x72, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x78, 0x54, - 0x78, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x52, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x07, 0x72, - 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, - 0x01, 0x1a, 0x3a, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x30, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x72, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x22, 0x16, 0x0a, 0x14, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x78, 0x54, 0x78, 0x52, 0x61, - 0x74, 0x69, 0x6f, 0x52, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xf6, 0x01, 0x0a, 0x05, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x22, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x52, - 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x45, 0x0a, 0x11, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, - 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x78, 0x52, 0x61, - 0x74, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x52, 0x0f, 0x72, 0x78, 0x52, - 0x61, 0x74, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x5a, 0x0a, 0x18, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, - 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, - 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, - 0x52, 0x16, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, - 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x22, 0x6f, 0x0a, 0x14, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x78, 0x52, 0x61, - 0x74, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x1b, 0x0a, 0x06, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, - 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, 0x09, 0x74, - 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, - 0x68, 0x6f, 0x6c, 0x64, 0x22, 0x33, 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x6e, - 0x6b, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x45, 0x0a, 0x1b, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, - 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x22, 0x83, 0x02, 0x0a, 0x0c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x2f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, - 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0xa9, 0x01, 0x0a, 0x04, 0x54, - 0x79, 0x70, 0x65, 0x22, 0xa0, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, - 0x09, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, - 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x75, 0x70, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x10, 0x03, 0x12, 0x13, 0x0a, - 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, - 0x10, 0x04, 0x12, 0x20, 0x0a, 0x1c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, - 0x74, 0x65, 0x5f, 0x61, 0x62, 0x6f, 0x76, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, - 0x6c, 0x64, 0x10, 0x05, 0x12, 0x20, 0x0a, 0x1c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x78, 0x5f, - 0x72, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, - 0x68, 0x6f, 0x6c, 0x64, 0x10, 0x06, 0x22, 0x77, 0x0a, 0x11, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, - 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x06, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x06, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0c, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, - 0x63, 0x6b, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, - 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x55, 0x72, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x0f, - 0x0a, 0x0d, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x75, 0x72, 0x6c, 0x22, - 0xf7, 0x02, 0x0a, 0x04, 0x4c, 0x6c, 0x64, 0x70, 0x12, 0x33, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, - 0x0a, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, 0x61, 0x73, - 0x73, 0x69, 0x73, 0x49, 0x64, 0x52, 0x09, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, - 0x12, 0x28, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, - 0x49, 0x64, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x0b, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x0a, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x20, 0x0a, 0x09, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x68, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x16, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x15, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x6f, 0x6c, 0x64, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, - 0x69, 0x73, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xbb, 0x01, 0x0a, 0x0e, 0x4c, 0x6c, - 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, - 0x08, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x30, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x26, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x0d, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x10, 0x01, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xa0, 0x03, 0x0a, 0x0d, 0x4c, 0x6c, 0x64, 0x70, - 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x13, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, - 0x61, 0x73, 0x73, 0x69, 0x73, 0x4d, 0x61, 0x63, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x11, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x75, 0x62, 0x74, 0x79, - 0x70, 0x65, 0x12, 0x39, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x01, 0x52, 0x14, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, - 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x53, 0x75, 0x62, - 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x69, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x5f, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x6d, 0x61, - 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, - 0x65, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, 0x12, - 0x11, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, - 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x19, 0x0a, - 0x17, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0x9e, 0x03, 0x0a, 0x0a, 0x4c, - 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x01, 0x52, 0x11, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x75, - 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, - 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, - 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x52, 0x14, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, - 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x69, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x5f, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x17, - 0x0a, 0x13, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, - 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, - 0x65, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, - 0x74, 0x79, 0x70, 0x65, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0xe6, 0x01, 0x0a, 0x15, - 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x4d, 0x61, 0x63, 0x53, 0x75, - 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, - 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x4d, 0x61, 0x63, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, - 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, - 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x36, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x22, 0xf4, 0x01, 0x0a, 0x1c, 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, - 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, - 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, - 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x01, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x36, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, - 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, - 0x6f, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xd8, 0x01, 0x0a, 0x0e, - 0x4c, 0x6c, 0x64, 0x70, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3c, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, - 0x61, 0x6d, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x61, 0x75, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x61, 0x75, - 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x1a, 0x36, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb8, 0x01, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, - 0x12, 0x17, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, - 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x04, 0x6b, 0x69, 0x6e, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x72, - 0x72, 0x6f, 0x72, 0x2e, 0x4b, 0x69, 0x6e, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, - 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, - 0x1a, 0x3d, 0x0a, 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x22, 0x35, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, - 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x02, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6b, 0x69, 0x6e, - 0x64, 0x22, 0x25, 0x0a, 0x07, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, - 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, - 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x22, 0xab, 0x01, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x73, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x1a, 0x2c, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x22, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xb8, 0x01, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, 0x77, 0x73, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x4a, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x23, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x09, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x05, 0x66, 0x6c, - 0x6f, 0x77, 0x73, 0x1a, 0x3c, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4e, - 0x61, 0x6d, 0x65, 0x73, 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, - 0x04, 0x72, 0x61, 0x74, 0x65, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x10, - 0x02, 0x22, 0x9e, 0x02, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, - 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x04, 0x70, 0x6f, - 0x72, 0x74, 0x12, 0x2e, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x12, 0x2b, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, - 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x52, 0x07, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x1a, - 0x46, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x3c, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x74, 0x72, - 0x61, 0x66, 0x66, 0x69, 0x63, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0xe2, 0x01, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, - 0x12, 0x37, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x6c, 0x69, 0x6e, - 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x04, 0x6c, 0x69, 0x6e, - 0x6b, 0x12, 0x2f, 0x0a, 0x07, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, - 0x72, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x07, 0x63, 0x61, 0x70, 0x74, 0x75, - 0x72, 0x65, 0x1a, 0x38, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2e, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x10, 0x01, 0x12, - 0x0b, 0x0a, 0x07, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xcf, 0x01, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x0d, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x52, 0x0c, 0x66, 0x6c, 0x6f, 0x77, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x1a, 0x34, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x66, - 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x10, 0x01, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x84, 0x03, 0x0a, 0x0d, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x3b, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x6c, 0x6c, 0x52, 0x03, 0x61, 0x6c, - 0x6c, 0x12, 0x2d, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x12, 0x2a, 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x52, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x12, 0x27, 0x0a, 0x03, - 0x62, 0x67, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, - 0x52, 0x03, 0x62, 0x67, 0x70, 0x12, 0x2a, 0x0a, 0x04, 0x69, 0x73, 0x69, 0x73, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x73, 0x69, 0x73, 0x52, 0x04, 0x69, 0x73, 0x69, - 0x73, 0x1a, 0x52, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x48, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x10, 0x01, 0x12, 0x09, 0x0a, - 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, - 0x10, 0x03, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x67, 0x70, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x69, - 0x73, 0x69, 0x73, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0xa6, 0x01, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, - 0x6e, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, - 0x73, 0x12, 0x38, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, - 0x4c, 0x69, 0x6e, 0x6b, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x32, 0x0a, 0x05, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, - 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0xaf, 0x01, 0x0a, 0x10, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1d, - 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x3b, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x61, 0x70, 0x74, - 0x75, 0x72, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x35, 0x0a, 0x05, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x74, 0x6f, 0x70, 0x10, - 0x02, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0xd6, 0x01, 0x0a, 0x18, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x6c, 0x6f, 0x77, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x6c, - 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x4c, 0x0a, 0x05, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x43, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x74, 0x6f, - 0x70, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x70, 0x61, 0x75, 0x73, 0x65, 0x10, 0x03, 0x12, 0x0a, - 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x10, 0x04, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x10, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x6c, 0x6c, 0x12, 0x3b, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x6c, 0x6c, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x35, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, - 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x74, 0x6f, 0x70, 0x10, 0x02, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0xb2, 0x01, 0x0a, 0x12, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x88, 0x01, 0x01, 0x1a, 0x3d, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x34, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, - 0x77, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, - 0x10, 0x02, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x98, 0x02, 0x0a, - 0x11, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, - 0x63, 0x70, 0x12, 0x3f, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, - 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x44, 0x0a, 0x0c, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x52, - 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x1a, 0x3e, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x34, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x09, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x6d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xc3, 0x01, 0x0a, 0x16, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x41, 0x64, 0x6d, - 0x69, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x61, - 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, - 0x61, 0x63, 0x70, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x1a, - 0x32, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, - 0x6e, 0x10, 0x02, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0xcf, 0x01, - 0x0a, 0x1c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, - 0x61, 0x63, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x28, - 0x0a, 0x10, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, - 0x01, 0x1a, 0x32, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, - 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, - 0xbd, 0x01, 0x0a, 0x10, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x42, 0x67, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x50, 0x65, 0x65, 0x72, 0x73, 0x52, - 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x1a, 0x2c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x22, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x70, 0x65, 0x65, - 0x72, 0x73, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0xb6, 0x01, 0x0a, 0x15, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x42, 0x67, 0x70, 0x50, 0x65, 0x65, 0x72, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x65, 0x65, - 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, - 0x65, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x50, 0x65, - 0x65, 0x72, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x32, 0x0a, 0x05, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, - 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0xc8, 0x01, 0x0a, 0x11, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x73, 0x69, 0x73, 0x12, 0x3f, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x49, 0x73, 0x69, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x37, 0x0a, 0x07, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x73, 0x69, 0x73, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x52, - 0x07, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x2e, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x24, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x72, - 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0xc0, 0x01, 0x0a, 0x18, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x73, 0x69, 0x73, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, - 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x73, 0x69, 0x73, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, - 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x32, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, - 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0xb9, 0x01, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x08, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x1a, 0x2f, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x25, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x64, 0x0a, 0x15, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, - 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x77, - 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x2f, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x08, - 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc3, 0x01, 0x0a, 0x0e, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x08, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x1a, 0x2f, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x25, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x9d, - 0x02, 0x0a, 0x0e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x12, 0x3c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x2b, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x12, 0x2b, 0x0a, 0x04, - 0x69, 0x70, 0x76, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, - 0x70, 0x76, 0x36, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x12, 0x28, 0x0a, 0x03, 0x62, 0x67, 0x70, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x52, 0x03, - 0x62, 0x67, 0x70, 0x1a, 0x3e, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x34, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, - 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x67, - 0x70, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x8a, - 0x02, 0x0a, 0x16, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x33, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x52, 0x04, - 0x69, 0x70, 0x76, 0x34, 0x12, 0x33, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, - 0x70, 0x76, 0x36, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x1a, 0x35, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, - 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xbf, 0x01, 0x0a, 0x12, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, - 0x76, 0x34, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x52, - 0x04, 0x70, 0x69, 0x6e, 0x67, 0x1a, 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, - 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xd7, 0x01, - 0x0a, 0x1a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x12, 0x48, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x1a, - 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x58, 0x0a, 0x16, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, - 0x67, 0x12, 0x3e, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x73, 0x22, 0x73, 0x0a, 0x1d, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0b, - 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x22, 0x6b, 0x0a, 0x1e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x49, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x73, 0x22, 0x9b, 0x02, 0x0a, 0x26, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, - 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, - 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1a, - 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, - 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x06, 0x72, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x88, 0x01, 0x01, - 0x1a, 0x3c, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x73, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, - 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x02, 0x42, 0x0b, - 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x22, 0xbf, 0x01, 0x0a, 0x12, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, - 0x36, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x04, 0x70, 0x69, - 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, - 0x36, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x1a, 0x2b, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, - 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0xd7, 0x01, 0x0a, 0x1a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, - 0x76, 0x36, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, - 0x70, 0x76, 0x36, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x04, - 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x52, - 0x04, 0x70, 0x69, 0x6e, 0x67, 0x1a, 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, - 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x58, 0x0a, - 0x16, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, - 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x3e, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, - 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x22, 0x73, 0x0a, 0x1d, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, - 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, - 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, - 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, - 0x70, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x22, 0x6b, 0x0a, 0x1e, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x49, - 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, - 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, - 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x22, 0x9b, 0x02, 0x0a, 0x26, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, 0x63, 0x4e, 0x61, 0x6d, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, - 0x12, 0x54, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x37, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, - 0x36, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x06, 0x72, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x73, 0x75, 0x63, - 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, - 0x65, 0x64, 0x10, 0x02, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xe6, 0x02, 0x0a, 0x11, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x12, 0x3f, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x46, - 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x4e, 0x6f, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x69, 0x0a, 0x19, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, - 0x74, 0x65, 0x5f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, - 0x70, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, - 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x17, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, - 0x74, 0x65, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x1a, 0x52, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x48, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, - 0x74, 0x65, 0x5f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0xd8, 0x06, 0x0a, 0x1d, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, - 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x05, 0x63, 0x65, 0x61, 0x73, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x42, 0x67, 0x70, 0x43, 0x65, 0x61, 0x73, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, - 0x63, 0x65, 0x61, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x42, 0x67, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x12, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4c, 0x0a, 0x12, 0x6f, 0x70, 0x65, - 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x42, 0x67, 0x70, 0x4f, 0x70, 0x65, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x10, 0x6f, 0x70, 0x65, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x52, 0x0a, 0x14, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x42, 0x67, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4c, 0x0a, 0x12, 0x68, - 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, - 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x48, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x72, - 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x52, 0x10, 0x68, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, - 0x65, 0x72, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x12, 0x62, 0x0a, 0x1a, 0x66, 0x69, 0x6e, - 0x69, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, - 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x46, 0x69, 0x6e, - 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x45, - 0x72, 0x72, 0x6f, 0x72, 0x52, 0x17, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x31, 0x0a, - 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x43, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x1a, 0xbd, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xb2, 0x01, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x63, 0x65, 0x61, 0x73, 0x65, 0x10, 0x01, - 0x12, 0x18, 0x0a, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x6f, 0x70, - 0x65, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x04, 0x12, 0x16, 0x0a, 0x12, - 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, - 0x65, 0x64, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x5f, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x07, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x28, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, - 0x70, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, - 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x65, 0x65, 0x72, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x65, - 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, - 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x65, - 0x6c, 0x61, 0x79, 0x22, 0xef, 0x04, 0x0a, 0x0e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, 0x70, 0x6f, 0x72, - 0x74, 0x12, 0x2b, 0x0a, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x2e, - 0x0a, 0x05, 0x62, 0x67, 0x70, 0x76, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x05, 0x62, 0x67, 0x70, 0x76, 0x34, 0x12, 0x2e, - 0x0a, 0x05, 0x62, 0x67, 0x70, 0x76, 0x36, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x05, 0x62, 0x67, 0x70, 0x76, 0x36, 0x12, 0x2b, - 0x0a, 0x04, 0x69, 0x73, 0x69, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, 0x69, 0x73, 0x69, 0x73, 0x12, 0x28, 0x0a, 0x03, 0x6c, - 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, - 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x52, 0x03, 0x6c, 0x61, 0x67, 0x12, 0x2b, 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, 0x6c, 0x61, - 0x63, 0x70, 0x12, 0x2b, 0x0a, 0x04, 0x6c, 0x6c, 0x64, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, 0x6c, 0x6c, 0x64, 0x70, 0x12, - 0x2b, 0x0a, 0x04, 0x72, 0x73, 0x76, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, 0x72, 0x73, 0x76, 0x70, 0x1a, 0x7c, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x72, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x08, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x66, 0x6c, 0x6f, - 0x77, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x62, 0x67, 0x70, 0x76, 0x34, 0x10, 0x03, 0x12, 0x09, - 0x0a, 0x05, 0x62, 0x67, 0x70, 0x76, 0x36, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x73, 0x69, - 0x73, 0x10, 0x05, 0x12, 0x07, 0x0a, 0x03, 0x6c, 0x61, 0x67, 0x10, 0x06, 0x12, 0x08, 0x0a, 0x04, - 0x6c, 0x61, 0x63, 0x70, 0x10, 0x07, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x6c, 0x64, 0x70, 0x10, 0x08, - 0x12, 0x08, 0x0a, 0x04, 0x72, 0x73, 0x76, 0x70, 0x10, 0x09, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xfa, 0x05, 0x0a, 0x0f, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, - 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, - 0x0b, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x32, 0x0a, 0x0c, - 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x52, 0x0b, 0x66, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x12, 0x35, 0x0a, 0x0d, 0x62, 0x67, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0c, 0x62, 0x67, 0x70, 0x76, 0x34, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x35, 0x0a, 0x0d, 0x62, 0x67, 0x70, 0x76, 0x36, - 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x52, 0x0c, 0x62, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x32, - 0x0a, 0x0c, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, 0x69, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x12, 0x2f, 0x0a, 0x0b, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, - 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0a, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, 0x6c, 0x61, 0x63, 0x70, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x6c, 0x6c, 0x64, 0x70, 0x5f, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, - 0x6c, 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x72, - 0x73, 0x76, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x52, 0x0b, 0x72, 0x73, 0x76, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x1a, - 0xc5, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xba, 0x01, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x62, 0x67, 0x70, 0x76, - 0x34, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x62, - 0x67, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x04, 0x12, 0x10, - 0x0a, 0x0c, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x05, - 0x12, 0x0f, 0x0a, 0x0b, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, - 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 0x10, 0x07, 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x09, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0xe5, 0x02, 0x0a, 0x12, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x72, - 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, - 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, - 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, - 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, - 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xe2, 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, - 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xd2, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x0c, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x10, 0x01, 0x12, 0x0c, 0x0a, - 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x6c, - 0x69, 0x6e, 0x6b, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, - 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x06, - 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x07, 0x12, 0x0c, - 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, - 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x09, - 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, - 0x74, 0x65, 0x10, 0x0a, 0x12, 0x11, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, - 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x0b, 0x12, 0x11, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x0c, 0x22, 0x8b, 0x07, 0x0a, 0x0a, 0x50, - 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x04, - 0x6c, 0x69, 0x6e, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x07, 0x63, 0x61, 0x70, 0x74, 0x75, - 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x07, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, - 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, - 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, - 0x5f, 0x72, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x08, 0x66, 0x72, 0x61, - 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x5f, 0x74, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x07, 0x62, 0x79, - 0x74, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x5f, 0x72, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x07, 0x62, 0x79, - 0x74, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, - 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, - 0x48, 0x08, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, - 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x48, 0x09, 0x52, 0x0c, 0x66, - 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, - 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0a, 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, - 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0b, - 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x3e, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x0c, 0x52, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, - 0x1a, 0x31, 0x0a, 0x04, 0x4c, 0x69, 0x6e, 0x6b, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, - 0x6e, 0x10, 0x02, 0x1a, 0x3c, 0x0a, 0x07, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x22, 0x31, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x65, 0x64, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x10, - 0x02, 0x1a, 0x3d, 0x0a, 0x08, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x22, 0x31, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, - 0x64, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x10, 0x02, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x42, - 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, - 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, - 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, - 0x72, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, - 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x79, - 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x22, 0xdf, 0x02, 0x0a, 0x12, 0x46, 0x6c, 0x6f, - 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x1d, 0x0a, 0x0a, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, - 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x0e, 0x74, - 0x61, 0x67, 0x67, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x61, - 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x52, 0x0d, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x1a, 0x97, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x22, 0x87, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, - 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, - 0x73, 0x5f, 0x72, 0x78, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, - 0x74, 0x78, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, - 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, - 0x72, 0x61, 0x74, 0x65, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, - 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x07, 0x22, 0xa8, 0x03, 0x0a, 0x17, 0x46, - 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x07, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x69, 0x6e, 0x63, 0x6c, 0x75, - 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, - 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x13, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x88, 0x01, 0x01, 0x12, 0x50, - 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x12, 0x32, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x73, 0x1a, 0x88, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, - 0x61, 0x6d, 0x65, 0x73, 0x22, 0x79, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, - 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, - 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, - 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x66, - 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x06, 0x42, - 0x0a, 0x0a, 0x08, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, - 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0x4f, 0x0a, 0x13, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x94, 0x06, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1c, - 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x01, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, - 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, - 0x06, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x08, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x08, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, - 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, - 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, - 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x05, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, - 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x06, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, - 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x07, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, - 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x48, 0x08, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, - 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, - 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x02, 0x48, 0x09, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, 0x74, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x02, 0x48, 0x0a, 0x52, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, - 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0e, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x52, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, - 0x79, 0x12, 0x3c, 0x0a, 0x0e, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x52, 0x0d, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x1a, - 0x49, 0x0a, 0x08, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x22, 0x3d, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x10, - 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x70, 0x61, 0x75, 0x73, 0x65, 0x64, 0x10, 0x03, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x78, 0x42, - 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, - 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, - 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, - 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, - 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, - 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, - 0x72, 0x61, 0x74, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x22, 0xf6, 0x03, - 0x0a, 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x12, 0x26, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, - 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, - 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, - 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x01, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, - 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x02, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, - 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x03, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, - 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x48, 0x04, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, - 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, - 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x02, 0x48, 0x05, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, 0x74, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x02, 0x48, 0x06, 0x52, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, - 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x52, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, - 0x79, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, - 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, - 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, - 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x22, 0x60, 0x0a, 0x0d, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x2d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xd4, 0x01, 0x0a, 0x12, 0x46, 0x6c, 0x6f, - 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, - 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x15, 0x0a, 0x03, 0x68, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, - 0x52, 0x03, 0x68, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x73, 0x74, 0x72, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x03, 0x73, 0x74, 0x72, 0x88, 0x01, 0x01, 0x1a, - 0x33, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x68, 0x65, 0x78, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x73, - 0x74, 0x72, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, - 0x06, 0x0a, 0x04, 0x5f, 0x68, 0x65, 0x78, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x74, 0x72, 0x22, - 0xa2, 0x01, 0x0a, 0x0f, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x12, 0x31, 0x0a, 0x12, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x48, - 0x00, 0x52, 0x10, 0x66, 0x69, 0x72, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x01, 0x48, 0x01, 0x52, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x66, 0x69, 0x72, 0x73, - 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73, 0x42, 0x14, - 0x0a, 0x12, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x5f, 0x6e, 0x73, 0x22, 0xa8, 0x01, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4c, - 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x22, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x5f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x09, 0x6d, 0x69, - 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, - 0x52, 0x09, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x22, - 0x0a, 0x0a, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x01, 0x48, 0x02, 0x52, 0x09, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x4e, 0x73, 0x88, - 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6e, - 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6e, 0x73, - 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x73, 0x22, - 0x91, 0x04, 0x0a, 0x13, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x65, 0x65, 0x72, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x65, 0x65, - 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, - 0x61, 0x6d, 0x65, 0x73, 0x1a, 0x8c, 0x03, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, - 0x61, 0x6d, 0x65, 0x73, 0x22, 0xfc, 0x02, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, - 0x0a, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x10, - 0x01, 0x12, 0x16, 0x0a, 0x12, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, - 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x10, 0x03, - 0x12, 0x13, 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, - 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x12, - 0x1c, 0x0a, 0x18, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, - 0x77, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x06, 0x12, 0x10, 0x0a, - 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x07, 0x12, - 0x14, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x10, 0x08, 0x12, 0x0e, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x73, - 0x65, 0x6e, 0x74, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0a, 0x12, 0x13, 0x0a, 0x0f, 0x6b, 0x65, 0x65, - 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0b, 0x12, 0x17, - 0x0a, 0x13, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0c, 0x12, 0x16, 0x0a, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0d, 0x12, - 0x1a, 0x0a, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0e, 0x12, 0x0d, 0x0a, 0x09, 0x66, - 0x73, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x10, 0x0f, 0x12, 0x17, 0x0a, 0x13, 0x65, 0x6e, - 0x64, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x10, 0x10, 0x22, 0x80, 0x0b, 0x0a, 0x0b, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, - 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x73, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x10, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x46, 0x6c, 0x61, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, - 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, - 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x10, 0x72, 0x6f, 0x75, 0x74, - 0x65, 0x73, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, - 0x2c, 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x0e, 0x72, 0x6f, 0x75, 0x74, - 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, - 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, - 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x12, 0x72, - 0x6f, 0x75, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x53, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, - 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x16, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x57, - 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, - 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, - 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x0b, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, 0x08, 0x52, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, - 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x6f, - 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x09, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x2a, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0a, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x6e, 0x73, - 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x6b, - 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x0b, 0x52, 0x0e, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, - 0x65, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x13, 0x6b, 0x65, 0x65, - 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0c, 0x52, 0x12, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, - 0x69, 0x76, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, - 0x32, 0x0a, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0d, 0x52, 0x11, 0x6e, - 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0f, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x0e, 0x52, 0x15, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, - 0x40, 0x0a, 0x09, 0x66, 0x73, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x10, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x2e, 0x46, 0x73, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x0f, 0x52, 0x08, 0x66, 0x73, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x32, 0x0a, 0x13, 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x69, 0x62, 0x5f, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x48, 0x10, - 0x52, 0x10, 0x65, 0x6e, 0x64, 0x4f, 0x66, 0x52, 0x69, 0x62, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x39, 0x0a, 0x0c, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, - 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, - 0x1a, 0x76, 0x0a, 0x08, 0x46, 0x73, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x6a, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x64, 0x6c, 0x65, 0x10, 0x01, 0x12, - 0x0b, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, - 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x6e, - 0x73, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x65, 0x73, 0x74, 0x61, 0x62, - 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0x06, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, - 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x72, - 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, - 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, - 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x1b, 0x0a, - 0x19, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, - 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, - 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, - 0x11, 0x0a, 0x0f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, - 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x61, - 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x15, - 0x0a, 0x13, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x73, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x16, - 0x0a, 0x14, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x72, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x22, 0x91, 0x04, 0x0a, 0x13, 0x42, 0x67, 0x70, 0x76, 0x36, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, - 0x0a, 0x0a, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x09, 0x70, 0x65, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4c, 0x0a, - 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, - 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, - 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0x8c, 0x03, 0x0a, 0x0b, - 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xfc, 0x02, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x73, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x02, - 0x12, 0x15, 0x0a, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, - 0x74, 0x69, 0x73, 0x65, 0x64, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, - 0x73, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, - 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x64, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, - 0x73, 0x65, 0x6e, 0x74, 0x10, 0x07, 0x12, 0x14, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x08, 0x12, 0x0e, 0x0a, 0x0a, - 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, - 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0a, - 0x12, 0x13, 0x0a, 0x0f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, - 0x65, 0x6e, 0x74, 0x10, 0x0b, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, - 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0c, 0x12, 0x16, - 0x0a, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, - 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0d, 0x12, 0x1a, 0x0a, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, - 0x10, 0x0e, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x73, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x10, - 0x0f, 0x12, 0x17, 0x0a, 0x13, 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x69, 0x62, 0x5f, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x10, 0x22, 0x80, 0x0b, 0x0a, 0x0b, 0x42, - 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x53, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, - 0x52, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x31, 0x0a, 0x12, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, - 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, - 0x10, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x70, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x61, - 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x03, 0x52, 0x10, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, - 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, - 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x04, 0x52, 0x0e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, - 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x05, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, - 0x72, 0x61, 0x77, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x72, - 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, - 0x16, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x52, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x07, 0x52, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, 0x08, 0x52, 0x0f, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x09, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x53, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0a, - 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, - 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0b, 0x52, 0x0e, 0x6b, - 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x34, 0x0a, 0x13, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0c, 0x52, - 0x12, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x0d, 0x52, 0x11, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x16, 0x6e, 0x6f, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0e, 0x52, 0x15, 0x6e, 0x6f, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x09, 0x66, 0x73, 0x6d, 0x5f, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x46, 0x73, 0x6d, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x0f, 0x52, 0x08, 0x66, 0x73, 0x6d, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x13, 0x65, 0x6e, 0x64, 0x5f, - 0x6f, 0x66, 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, - 0x11, 0x20, 0x01, 0x28, 0x04, 0x48, 0x10, 0x52, 0x10, 0x65, 0x6e, 0x64, 0x4f, 0x66, 0x52, 0x69, - 0x62, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x39, 0x0a, 0x0c, - 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x29, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, - 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x76, 0x0a, 0x08, 0x46, 0x73, 0x6d, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x22, 0x6a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, - 0x69, 0x64, 0x6c, 0x65, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, - 0x74, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x03, 0x12, - 0x0c, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0f, 0x0a, - 0x0b, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x10, 0x05, 0x12, 0x0f, - 0x0a, 0x0b, 0x65, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0x06, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, - 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x72, 0x6f, 0x75, 0x74, - 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, - 0x73, 0x65, 0x6e, 0x74, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, - 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, - 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6f, 0x70, 0x65, 0x6e, - 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x73, - 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6b, 0x65, - 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x16, 0x0a, - 0x14, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x19, 0x0a, 0x17, - 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x73, 0x6d, 0x5f, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x66, - 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x22, 0xac, 0x06, - 0x0a, 0x12, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x6f, 0x75, 0x74, - 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, - 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, - 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xa5, 0x05, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, - 0x61, 0x6d, 0x65, 0x73, 0x22, 0x95, 0x05, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x12, - 0x0a, 0x0e, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, 0x70, - 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x64, 0x61, - 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x10, 0x03, 0x12, 0x1c, 0x0a, - 0x18, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, - 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x20, 0x0a, 0x1c, 0x6c, - 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, - 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x05, 0x12, 0x21, 0x0a, - 0x1d, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x06, - 0x12, 0x25, 0x0a, 0x21, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x07, 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x31, 0x5f, 0x70, 0x73, - 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x08, 0x12, 0x14, 0x0a, 0x10, 0x6c, 0x31, 0x5f, - 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x09, 0x12, - 0x10, 0x0a, 0x0c, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, - 0x0a, 0x12, 0x14, 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0b, 0x12, 0x0f, 0x0a, 0x0b, 0x6c, 0x31, 0x5f, 0x6c, 0x73, - 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0c, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x31, 0x5f, 0x6c, - 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0d, 0x12, 0x12, 0x0a, - 0x0e, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, 0x70, 0x10, - 0x0e, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, - 0x66, 0x6c, 0x61, 0x70, 0x10, 0x0f, 0x12, 0x14, 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x64, 0x61, 0x74, - 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x10, 0x10, 0x12, 0x1c, 0x0a, 0x18, - 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, - 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x11, 0x12, 0x20, 0x0a, 0x1c, 0x6c, 0x32, - 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, - 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x12, 0x12, 0x21, 0x0a, 0x1d, - 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x13, 0x12, - 0x25, 0x0a, 0x21, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x10, 0x14, 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, - 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x15, 0x12, 0x14, 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x70, - 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x16, 0x12, 0x10, - 0x0a, 0x0c, 0x6c, 0x32, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x17, - 0x12, 0x14, 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x10, 0x18, 0x12, 0x0f, 0x0a, 0x0b, 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, - 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x19, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x6c, 0x73, - 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x1a, 0x22, 0xcc, 0x0f, 0x0a, - 0x0a, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, - 0x6c, 0x31, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x55, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x2b, 0x0a, 0x0f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, - 0x61, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x0d, 0x6c, 0x31, 0x53, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x18, - 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, - 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, - 0x52, 0x15, 0x6c, 0x31, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x48, 0x65, 0x6c, - 0x6c, 0x6f, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x1c, 0x6c, 0x31, - 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, - 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x04, 0x52, 0x19, 0x6c, 0x31, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x48, - 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x44, 0x0a, 0x1d, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x18, 0x6c, 0x31, 0x50, 0x6f, 0x69, - 0x6e, 0x74, 0x54, 0x6f, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x53, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x21, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, - 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x06, 0x52, 0x1c, 0x6c, 0x31, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x6f, 0x50, 0x6f, - 0x69, 0x6e, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, - 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, - 0x52, 0x0e, 0x6c, 0x31, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x53, 0x69, 0x7a, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x6c, 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, - 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, 0x08, 0x52, 0x0a, 0x6c, 0x31, 0x50, - 0x73, 0x6e, 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x31, - 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x09, 0x52, 0x0e, 0x6c, 0x31, 0x50, 0x73, 0x6e, 0x70, 0x52, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x6c, 0x31, 0x5f, - 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x0a, 0x52, 0x0a, 0x6c, 0x31, 0x43, 0x73, 0x6e, 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0b, 0x52, 0x0e, 0x6c, 0x31, - 0x43, 0x73, 0x6e, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, - 0x23, 0x0a, 0x0b, 0x6c, 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x0c, 0x52, 0x09, 0x6c, 0x31, 0x4c, 0x73, 0x70, 0x53, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0d, 0x52, - 0x0d, 0x6c, 0x31, 0x4c, 0x73, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, - 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x5f, 0x75, 0x70, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x0e, 0x52, 0x0c, 0x6c, 0x32, 0x53, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x55, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, - 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x18, - 0x10, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0f, 0x52, 0x0d, 0x6c, 0x32, 0x53, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x18, 0x6c, 0x32, 0x5f, - 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, - 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x48, 0x10, 0x52, 0x15, 0x6c, - 0x32, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, - 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x1c, 0x6c, 0x32, 0x5f, 0x62, 0x72, - 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x04, 0x48, 0x11, 0x52, - 0x19, 0x6c, 0x32, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x48, 0x65, 0x6c, 0x6c, - 0x6f, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, - 0x1d, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x13, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x12, 0x52, 0x18, 0x6c, 0x32, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, - 0x6f, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x53, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x21, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, - 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x48, 0x13, - 0x52, 0x1c, 0x6c, 0x32, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x6f, 0x50, 0x6f, 0x69, 0x6e, 0x74, - 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, - 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, - 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x04, 0x48, 0x14, 0x52, 0x0e, 0x6c, - 0x32, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x25, 0x0a, 0x0c, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, - 0x18, 0x16, 0x20, 0x01, 0x28, 0x04, 0x48, 0x15, 0x52, 0x0a, 0x6c, 0x32, 0x50, 0x73, 0x6e, 0x70, - 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x70, 0x73, - 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x16, 0x52, 0x0e, 0x6c, 0x32, 0x50, 0x73, 0x6e, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x6c, 0x32, 0x5f, 0x63, 0x73, 0x6e, - 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x18, 0x20, 0x01, 0x28, 0x04, 0x48, 0x17, 0x52, 0x0a, - 0x6c, 0x32, 0x43, 0x73, 0x6e, 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, - 0x10, 0x6c, 0x32, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x04, 0x48, 0x18, 0x52, 0x0e, 0x6c, 0x32, 0x43, 0x73, 0x6e, - 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, - 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x19, 0x52, 0x09, 0x6c, 0x32, 0x4c, 0x73, 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x48, 0x1a, 0x52, 0x0d, 0x6c, 0x32, - 0x4c, 0x73, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x31, 0x5f, 0x73, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, 0x70, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, - 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x42, 0x1b, - 0x0a, 0x19, 0x5f, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, - 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, - 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, - 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x20, 0x0a, 0x1e, - 0x5f, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x24, - 0x0a, 0x22, 0x5f, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, - 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x31, - 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, - 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, - 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, - 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x31, 0x5f, 0x6c, 0x73, 0x70, - 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x31, 0x5f, 0x6c, 0x73, 0x70, - 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x32, - 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, 0x70, 0x42, 0x12, 0x0a, 0x10, - 0x5f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, - 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, - 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x1f, 0x0a, - 0x1d, 0x5f, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, - 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x20, - 0x0a, 0x1e, 0x5f, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, - 0x42, 0x24, 0x0a, 0x22, 0x5f, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, - 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x32, 0x5f, 0x64, 0x61, - 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, - 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, - 0x5f, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x32, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, - 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x32, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x72, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x32, 0x5f, 0x6c, - 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x32, 0x5f, 0x6c, - 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x22, 0xd4, 0x02, 0x0a, 0x11, - 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4a, - 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, - 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, - 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xd5, 0x01, 0x0a, 0x0b, 0x43, - 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xc5, 0x01, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x75, 0x70, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, - 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, - 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x5f, 0x74, 0x78, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, - 0x72, 0x78, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, - 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, - 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x08, 0x12, 0x11, 0x0a, 0x0d, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x09, 0x12, - 0x11, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, - 0x10, 0x0a, 0x22, 0xa9, 0x05, 0x0a, 0x09, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6f, 0x70, 0x65, - 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x4f, - 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, - 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, - 0x2b, 0x0a, 0x0f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5f, - 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0d, 0x6d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x55, 0x70, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, - 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x03, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, - 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x04, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, - 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x05, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, - 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x06, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, - 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, - 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x48, 0x07, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, - 0x65, 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, - 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x02, 0x48, 0x08, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x52, - 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, - 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x48, 0x09, 0x52, - 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x27, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0a, 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, - 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x37, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x72, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, - 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, - 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x75, 0x70, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, - 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, - 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x10, 0x0a, 0x0e, - 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x22, 0xdf, - 0x03, 0x0a, 0x12, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x67, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x12, 0x31, 0x0a, 0x15, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x12, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x1a, 0xab, 0x02, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x22, 0x9b, 0x02, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, - 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x72, 0x78, 0x10, - 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x73, 0x5f, 0x74, 0x78, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x72, - 0x78, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x61, 0x63, - 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, - 0x6f, 0x75, 0x74, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x61, 0x67, - 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x10, 0x07, 0x12, 0x0e, 0x0a, 0x0a, - 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, - 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x09, 0x12, 0x0d, - 0x0a, 0x09, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x10, 0x0a, 0x12, 0x0c, 0x0a, - 0x08, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x70, - 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x10, 0x0c, 0x12, 0x0f, 0x0a, 0x0b, 0x70, - 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x10, 0x0d, 0x12, 0x0c, 0x0a, 0x08, - 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x10, 0x0e, 0x12, 0x14, 0x0a, 0x10, 0x70, 0x61, - 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x10, 0x0f, - 0x22, 0xe4, 0x09, 0x0a, 0x0a, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, - 0x1e, 0x0a, 0x08, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x07, 0x6c, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x34, 0x0a, 0x14, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, - 0x11, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x70, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, - 0x52, 0x0d, 0x6c, 0x61, 0x63, 0x70, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x78, 0x88, - 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x0d, 0x6c, - 0x61, 0x63, 0x70, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, - 0x29, 0x0a, 0x0e, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x72, 0x78, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x0c, 0x6c, 0x61, 0x63, 0x70, 0x52, - 0x78, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x08, 0x61, 0x63, - 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x41, 0x63, - 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x05, 0x52, 0x08, 0x61, - 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x07, 0x74, 0x69, - 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x6f, 0x75, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x06, 0x52, 0x07, 0x74, 0x69, 0x6d, - 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x0f, 0x73, 0x79, 0x6e, 0x63, 0x68, - 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x07, 0x52, 0x0f, 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, - 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0c, - 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x08, 0x52, 0x0c, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x61, 0x62, - 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x69, 0x6e, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0c, 0x64, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x0a, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6e, 0x67, - 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0b, 0x52, 0x08, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x65, - 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x0c, 0x52, 0x07, 0x6f, 0x70, 0x65, 0x72, 0x4b, - 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, - 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0d, 0x52, 0x09, 0x70, 0x61, 0x72, - 0x74, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x70, 0x61, 0x72, - 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x0e, - 0x52, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, - 0x1e, 0x0a, 0x08, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x10, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x0f, 0x52, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, - 0x2d, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x6e, 0x75, 0x6d, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x10, 0x52, 0x0e, 0x70, 0x61, 0x72, - 0x74, 0x6e, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x4e, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, - 0x0a, 0x08, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x22, 0x30, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x01, 0x12, - 0x0b, 0x0a, 0x07, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x07, - 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x6c, - 0x6f, 0x6e, 0x67, 0x10, 0x02, 0x1a, 0x45, 0x0a, 0x0f, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x69, 0x6e, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x10, 0x01, 0x12, 0x0c, - 0x0a, 0x08, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x10, 0x02, 0x42, 0x0b, 0x0a, 0x09, - 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6c, 0x61, - 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, - 0x65, 0x74, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x5f, - 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6c, - 0x61, 0x63, 0x70, 0x5f, 0x72, 0x78, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x42, 0x0b, 0x0a, - 0x09, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x68, - 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x61, - 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, - 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x64, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x70, - 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x6e, - 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, - 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, - 0x75, 0x6d, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x70, - 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x22, 0x95, 0x02, 0x0a, 0x12, 0x4c, 0x6c, 0x64, 0x70, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, - 0x0a, 0x0a, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6c, 0x64, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, - 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, - 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, - 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0x92, 0x01, 0x0a, 0x0b, 0x43, - 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x82, 0x01, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, - 0x78, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, - 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x5f, 0x72, 0x78, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, - 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x74, - 0x6c, 0x76, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x10, 0x05, 0x12, 0x10, 0x0a, - 0x0c, 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x06, 0x22, - 0x80, 0x03, 0x0a, 0x0a, 0x4c, 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, - 0x73, 0x5f, 0x72, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x08, 0x66, 0x72, - 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, - 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x08, - 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x66, - 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x72, 0x78, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x0d, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x45, 0x72, - 0x72, 0x6f, 0x72, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, - 0x65, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x04, 0x52, 0x0d, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x64, 0x69, 0x73, - 0x63, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x0b, 0x74, 0x6c, - 0x76, 0x73, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, - 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x06, 0x52, 0x0b, 0x74, 0x6c, 0x76, 0x73, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, - 0x6e, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x66, 0x72, - 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, - 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, - 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, - 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, - 0x77, 0x6e, 0x22, 0xdc, 0x05, 0x0a, 0x12, 0x52, 0x73, 0x76, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, - 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, - 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, - 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xd5, 0x04, 0x0a, 0x0b, 0x43, 0x6f, - 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xc5, 0x04, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, - 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, - 0x65, 0x64, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, - 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x10, 0x02, 0x12, 0x16, 0x0a, - 0x12, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, - 0x5f, 0x75, 0x70, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x73, 0x70, 0x5f, 0x66, 0x6c, 0x61, - 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x61, 0x74, - 0x68, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, 0x73, - 0x5f, 0x72, 0x78, 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, 0x74, - 0x78, 0x10, 0x07, 0x12, 0x0c, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, 0x72, 0x78, 0x10, - 0x08, 0x12, 0x11, 0x0a, 0x0d, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, - 0x74, 0x78, 0x10, 0x09, 0x12, 0x11, 0x0a, 0x0d, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, - 0x72, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x0a, 0x12, 0x11, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x76, 0x5f, - 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x0b, 0x12, 0x11, 0x0a, 0x0d, 0x72, 0x65, - 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x0c, 0x12, 0x12, 0x0a, - 0x0e, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x10, - 0x0d, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, - 0x5f, 0x72, 0x78, 0x10, 0x0e, 0x12, 0x12, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x0f, 0x12, 0x12, 0x0a, 0x0e, 0x72, 0x65, 0x73, - 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x10, 0x12, 0x10, 0x0a, - 0x0c, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x74, 0x78, 0x10, 0x11, 0x12, - 0x10, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x72, 0x78, 0x10, - 0x12, 0x12, 0x0d, 0x0a, 0x09, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x13, - 0x12, 0x0d, 0x0a, 0x09, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x14, 0x12, - 0x0b, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x15, 0x12, 0x0b, 0x0a, 0x07, - 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x16, 0x12, 0x0c, 0x0a, 0x08, 0x6e, 0x61, 0x63, - 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x17, 0x12, 0x0c, 0x0a, 0x08, 0x6e, 0x61, 0x63, 0x6b, 0x73, - 0x5f, 0x72, 0x78, 0x10, 0x18, 0x12, 0x0f, 0x0a, 0x0b, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, - 0x68, 0x5f, 0x74, 0x78, 0x10, 0x19, 0x12, 0x0f, 0x0a, 0x0b, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, - 0x73, 0x68, 0x5f, 0x72, 0x78, 0x10, 0x1a, 0x12, 0x0d, 0x0a, 0x09, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x5f, 0x74, 0x78, 0x10, 0x1b, 0x12, 0x0d, 0x0a, 0x09, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x5f, 0x72, 0x78, 0x10, 0x1c, 0x12, 0x20, 0x0a, 0x1c, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, - 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x5f, 0x74, 0x78, 0x10, 0x1d, 0x12, 0x18, 0x0a, 0x14, 0x70, 0x61, 0x74, 0x68, 0x5f, - 0x72, 0x65, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x10, - 0x1e, 0x22, 0xff, 0x0d, 0x0a, 0x0a, 0x52, 0x73, 0x76, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x1b, 0x69, 0x6e, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x18, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x32, 0x70, 0x4c, 0x73, 0x70, 0x73, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, - 0x13, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, - 0x73, 0x5f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x10, 0x69, 0x6e, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x32, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x55, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x30, 0x0a, 0x12, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, - 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, - 0x0f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x32, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x55, 0x70, - 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x73, 0x70, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x0c, 0x6c, - 0x73, 0x70, 0x46, 0x6c, 0x61, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1e, - 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x05, 0x52, 0x07, 0x70, 0x61, 0x74, 0x68, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, - 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x06, 0x52, 0x07, 0x70, 0x61, 0x74, 0x68, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, - 0x0a, 0x08, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x07, 0x52, 0x07, 0x72, 0x65, 0x73, 0x76, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, - 0x0a, 0x08, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x08, 0x52, 0x07, 0x72, 0x65, 0x73, 0x76, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x27, - 0x0a, 0x0d, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x74, 0x68, 0x54, 0x65, 0x61, - 0x72, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x70, 0x61, 0x74, 0x68, 0x5f, - 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0a, - 0x52, 0x0b, 0x70, 0x61, 0x74, 0x68, 0x54, 0x65, 0x61, 0x72, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, - 0x12, 0x27, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, - 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0b, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x76, 0x54, - 0x65, 0x61, 0x72, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x72, 0x65, 0x73, - 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x0c, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x76, 0x54, 0x65, 0x61, 0x72, 0x73, 0x52, 0x78, 0x88, - 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x73, 0x5f, 0x74, 0x78, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0d, 0x52, 0x0c, 0x70, 0x61, - 0x74, 0x68, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, - 0x0e, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0e, 0x52, 0x0c, 0x70, 0x61, 0x74, 0x68, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x76, - 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x0f, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x54, 0x78, - 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x48, 0x10, 0x52, 0x0c, 0x72, - 0x65, 0x73, 0x76, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x25, - 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x74, 0x78, 0x18, 0x12, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x11, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x76, 0x43, 0x6f, 0x6e, 0x66, - 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, - 0x6e, 0x66, 0x5f, 0x72, 0x78, 0x18, 0x13, 0x20, 0x01, 0x28, 0x04, 0x48, 0x12, 0x52, 0x0a, 0x72, - 0x65, 0x73, 0x76, 0x43, 0x6f, 0x6e, 0x66, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, - 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x13, 0x52, 0x08, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, - 0x0a, 0x09, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x15, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x14, 0x52, 0x08, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, - 0x12, 0x1c, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x16, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x15, 0x52, 0x06, 0x61, 0x63, 0x6b, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1c, - 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x17, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x16, 0x52, 0x06, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, - 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x18, 0x20, 0x01, 0x28, 0x04, 0x48, 0x17, - 0x52, 0x07, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, - 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x19, 0x20, 0x01, 0x28, 0x04, 0x48, 0x18, - 0x52, 0x07, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, - 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x74, 0x78, 0x18, 0x1a, 0x20, 0x01, 0x28, - 0x04, 0x48, 0x19, 0x52, 0x0a, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x78, 0x88, - 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, - 0x78, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x48, 0x1a, 0x52, 0x0a, 0x73, 0x72, 0x65, 0x66, 0x72, - 0x65, 0x73, 0x68, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x5f, 0x74, 0x78, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x04, 0x48, 0x1b, 0x52, 0x08, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x78, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x04, 0x48, 0x1c, 0x52, - 0x08, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x1c, - 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x78, 0x18, 0x1e, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x1d, 0x52, 0x19, 0x70, 0x61, 0x74, 0x68, 0x52, 0x65, 0x65, 0x76, 0x61, 0x6c, - 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x78, 0x88, - 0x01, 0x01, 0x12, 0x36, 0x0a, 0x14, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x6f, 0x70, 0x74, - 0x69, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x1e, 0x52, 0x13, 0x70, 0x61, 0x74, 0x68, 0x52, 0x65, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, - 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, - 0x72, 0x65, 0x64, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, - 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x42, 0x15, 0x0a, 0x13, 0x5f, - 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, - 0x75, 0x70, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, - 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, 0x72, 0x78, 0x42, - 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, - 0x5f, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, - 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x10, 0x0a, 0x0e, 0x5f, - 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x10, 0x0a, - 0x0e, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x42, - 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, - 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x73, 0x5f, 0x74, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x65, 0x73, 0x76, - 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x72, - 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0f, 0x0a, - 0x0d, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x74, 0x78, 0x42, 0x0f, - 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x72, 0x78, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0a, 0x0a, 0x08, 0x5f, - 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x63, 0x6b, 0x73, - 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, - 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0e, 0x0a, - 0x0c, 0x5f, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x74, 0x78, 0x42, 0x0e, 0x0a, - 0x0c, 0x5f, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, 0x78, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x78, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x70, 0x61, - 0x74, 0x68, 0x5f, 0x72, 0x65, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x78, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x70, - 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x22, 0xea, 0x04, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, - 0x62, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x34, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x4e, - 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x12, 0x44, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, - 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, - 0x76, 0x36, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, - 0x0d, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x12, 0x3d, - 0x0a, 0x0c, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x52, 0x0b, 0x62, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x12, 0x36, 0x0a, - 0x09, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x73, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x69, 0x73, 0x69, - 0x73, 0x4c, 0x73, 0x70, 0x73, 0x12, 0x45, 0x0a, 0x0e, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x65, - 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, - 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0d, 0x6c, - 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x12, 0x36, 0x0a, 0x09, - 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x73, 0x76, 0x70, - 0x4c, 0x73, 0x70, 0x73, 0x1a, 0x8e, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x83, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x70, 0x76, - 0x34, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, 0x01, 0x12, 0x12, 0x0a, - 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, - 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, - 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6c, 0x73, 0x70, 0x73, - 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, - 0x62, 0x6f, 0x72, 0x73, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6c, - 0x73, 0x70, 0x73, 0x10, 0x06, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0xc2, 0x04, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x3c, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, - 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x34, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x12, - 0x3c, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4e, 0x65, - 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x36, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, - 0x69, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x12, 0x38, 0x0a, - 0x0c, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x04, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x62, 0x67, 0x70, 0x50, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x09, 0x69, 0x73, 0x69, 0x73, 0x5f, - 0x6c, 0x73, 0x70, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, - 0x69, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x73, 0x12, 0x3e, 0x0a, 0x0e, 0x6c, 0x6c, 0x64, 0x70, - 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, - 0x62, 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x6c, 0x6c, 0x64, 0x70, 0x4e, - 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x12, 0x2f, 0x0a, 0x09, 0x72, 0x73, 0x76, 0x70, - 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, - 0x08, 0x72, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x1a, 0x8e, 0x01, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x83, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x12, - 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, - 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, - 0x62, 0x6f, 0x72, 0x73, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x73, 0x69, 0x73, - 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x6c, 0x64, 0x70, 0x5f, - 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x72, - 0x73, 0x76, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x10, 0x06, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x41, 0x0a, 0x18, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, - 0x72, 0x73, 0x76, 0x34, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, - 0x6e, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xd1, 0x01, 0x0a, 0x10, 0x4e, 0x65, 0x69, - 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x34, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, - 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, - 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, - 0x31, 0x0a, 0x12, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x10, 0x6c, - 0x69, 0x6e, 0x6b, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, - 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x41, 0x0a, 0x18, - 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x36, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x74, 0x68, 0x65, - 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, - 0xd1, 0x01, 0x0a, 0x10, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x36, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x65, - 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, - 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x02, 0x52, 0x10, 0x6c, 0x69, 0x6e, 0x6b, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x65, 0x74, - 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, - 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x15, 0x0a, 0x13, - 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x22, 0x87, 0x03, 0x0a, 0x15, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, - 0x0e, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x67, 0x70, 0x50, 0x65, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x51, 0x0a, 0x14, 0x69, 0x70, 0x76, - 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, - 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x12, 0x69, 0x70, 0x76, 0x34, 0x55, 0x6e, - 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x51, 0x0a, 0x14, - 0x69, 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, - 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x12, 0x69, 0x70, 0x76, - 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x1a, - 0x4c, 0x0a, 0x0d, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, - 0x22, 0x3b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x69, 0x70, 0x76, - 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x69, - 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x02, 0x22, 0xba, 0x02, - 0x0a, 0x1a, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, - 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, - 0x0a, 0x07, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x06, 0x70, 0x61, 0x74, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x06, - 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x07, 0x0a, 0x03, 0x69, 0x67, 0x70, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x67, 0x70, 0x10, - 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, - 0x03, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x42, 0x0a, - 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x22, 0xba, 0x02, 0x0a, 0x1a, 0x42, - 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, - 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x12, 0x48, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, - 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, - 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, - 0x70, 0x61, 0x74, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x06, 0x4f, 0x72, 0x69, - 0x67, 0x69, 0x6e, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, - 0x69, 0x67, 0x70, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x67, 0x70, 0x10, 0x02, 0x12, 0x0e, - 0x0a, 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x03, 0x42, 0x10, - 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, - 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x22, 0xf5, 0x01, 0x0a, 0x10, 0x42, 0x67, 0x70, 0x50, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0d, - 0x62, 0x67, 0x70, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x62, 0x67, 0x70, 0x50, 0x65, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x15, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, - 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x52, 0x13, 0x69, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, - 0x74, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x12, 0x52, 0x0a, 0x15, 0x69, 0x70, 0x76, - 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, - 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x13, 0x69, 0x70, 0x76, 0x36, 0x55, 0x6e, - 0x69, 0x63, 0x61, 0x73, 0x74, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x42, 0x10, 0x0a, - 0x0e, 0x5f, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, - 0xd4, 0x05, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, - 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, - 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, - 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, - 0x47, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, - 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, - 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x06, 0x6f, - 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x68, - 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x06, 0x70, 0x61, 0x74, - 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, - 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, - 0x0b, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x27, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x65, - 0x78, 0x74, 0x48, 0x6f, 0x70, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, - 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, - 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, - 0x69, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, - 0x74, 0x68, 0x12, 0x2e, 0x0a, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x06, 0x52, 0x0f, - 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, - 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x16, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x45, 0x78, 0x69, - 0x74, 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x88, 0x01, - 0x01, 0x1a, 0x43, 0x0a, 0x06, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x22, 0x39, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x69, 0x67, 0x70, 0x10, 0x01, 0x12, 0x07, 0x0a, - 0x03, 0x65, 0x67, 0x70, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x65, 0x10, 0x03, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, - 0x69, 0x67, 0x69, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, - 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, - 0x6f, 0x70, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x78, 0x74, - 0x5f, 0x68, 0x6f, 0x70, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, - 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, - 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x22, 0xd4, 0x05, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x50, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, - 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, - 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, - 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x02, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, - 0x1c, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x03, 0x52, 0x06, 0x70, 0x61, 0x74, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, - 0x0d, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x65, 0x78, 0x74, - 0x48, 0x6f, 0x70, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, - 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, - 0x0b, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x39, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, - 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x07, 0x61, 0x73, - 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, - 0x68, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x2e, 0x0a, 0x10, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x06, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, - 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x16, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x45, 0x78, 0x69, 0x74, 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, - 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x06, 0x4f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x69, - 0x67, 0x70, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x67, 0x70, 0x10, 0x02, 0x12, 0x0e, 0x0a, - 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x03, 0x42, 0x0f, 0x0a, - 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, - 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, - 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x34, - 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, - 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x42, 0x13, 0x0a, 0x11, 0x5f, - 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, - 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x22, 0xca, 0x02, - 0x0a, 0x12, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, - 0x6e, 0x69, 0x74, 0x79, 0x12, 0x3a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, - 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x2e, 0x54, 0x79, 0x70, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, - 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x08, 0x61, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x8e, 0x01, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x85, 0x01, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x6d, 0x61, 0x6e, 0x75, 0x61, - 0x6c, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x0d, 0x0a, - 0x09, 0x6e, 0x6f, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, - 0x6e, 0x6f, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x10, 0x03, 0x12, - 0x17, 0x0a, 0x13, 0x6e, 0x6f, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x75, 0x62, - 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x6c, 0x6c, 0x67, 0x72, - 0x5f, 0x73, 0x74, 0x61, 0x6c, 0x65, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x6e, 0x6f, 0x5f, 0x6c, - 0x6c, 0x67, 0x72, 0x10, 0x06, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x61, 0x73, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x4a, 0x0a, 0x0f, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x37, 0x0a, - 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x41, - 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xdf, 0x01, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x41, - 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x79, 0x70, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, - 0x1a, 0x5d, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x55, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x71, 0x10, 0x01, 0x12, 0x0a, 0x0a, - 0x06, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x74, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x73, 0x5f, - 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x71, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, - 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x74, 0x10, 0x04, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x42, 0x0a, 0x14, 0x49, 0x73, 0x69, 0x73, - 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x73, 0x69, - 0x73, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x7a, 0x0a, 0x0d, - 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2d, 0x0a, - 0x10, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x69, 0x73, 0x69, 0x73, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x04, - 0x6c, 0x73, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x04, 0x6c, - 0x73, 0x70, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xf9, 0x03, 0x0a, 0x0c, 0x49, 0x73, 0x69, - 0x73, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x06, 0x6c, 0x73, 0x70, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x6c, 0x73, 0x70, - 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x08, 0x70, 0x64, 0x75, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, - 0x69, 0x73, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x64, 0x75, 0x54, 0x79, - 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x07, 0x70, 0x64, 0x75, 0x54, 0x79, - 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, - 0x6e, 0x67, 0x5f, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4c, 0x69, - 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x73, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x03, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x64, 0x75, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x09, 0x70, - 0x64, 0x75, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x05, 0x66, - 0x6c, 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x05, 0x66, - 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1c, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x06, 0x69, 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x24, 0x0a, 0x04, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x54, 0x6c, - 0x76, 0x73, 0x52, 0x04, 0x74, 0x6c, 0x76, 0x73, 0x1a, 0x3c, 0x0a, 0x07, 0x50, 0x64, 0x75, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, - 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x31, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x6c, 0x65, 0x76, - 0x65, 0x6c, 0x5f, 0x32, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x69, - 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x64, 0x75, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x15, - 0x0a, 0x13, 0x5f, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x69, 0x66, - 0x65, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x64, - 0x75, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x69, 0x73, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x22, 0xaa, 0x05, 0x0a, 0x0b, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, - 0x54, 0x6c, 0x76, 0x73, 0x12, 0x39, 0x0a, 0x0d, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, - 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, - 0x65, 0x52, 0x0c, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x54, 0x6c, 0x76, 0x73, 0x12, - 0x4f, 0x0a, 0x14, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x73, 0x52, 0x65, 0x61, - 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x12, 0x69, 0x73, - 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, - 0x12, 0x68, 0x0a, 0x1d, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x69, 0x73, 0x5f, - 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, 0x76, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, - 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x73, 0x52, - 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x1a, - 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x73, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x6e, 0x0a, 0x1f, 0x69, 0x70, - 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x61, 0x63, - 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x04, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, - 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, - 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x1c, 0x69, 0x70, - 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x6e, 0x0a, 0x1f, 0x69, 0x70, - 0x76, 0x34, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x61, 0x63, - 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, - 0x70, 0x49, 0x70, 0x76, 0x34, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, - 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x1c, 0x69, 0x70, - 0x76, 0x34, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x6e, 0x0a, 0x1f, 0x65, 0x78, - 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x72, 0x65, 0x61, 0x63, - 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x06, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, - 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x61, - 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x1c, 0x65, 0x78, - 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x55, 0x0a, 0x16, 0x69, 0x70, - 0x76, 0x36, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, - 0x74, 0x6c, 0x76, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x36, 0x52, 0x65, 0x61, 0x63, - 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x14, 0x69, 0x70, 0x76, - 0x36, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, - 0x73, 0x22, 0x3f, 0x0a, 0x0f, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x48, 0x6f, 0x73, 0x74, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, - 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0x89, 0x03, 0x0a, 0x0c, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x46, 0x6c, - 0x61, 0x67, 0x73, 0x12, 0x2e, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x72, 0x65, 0x70, 0x61, 0x69, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, - 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x61, 0x69, 0x72, - 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0d, 0x61, - 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, - 0x2e, 0x0a, 0x10, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x65, - 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0f, 0x61, 0x74, 0x74, - 0x61, 0x63, 0x68, 0x65, 0x64, 0x45, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x2a, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x6c, 0x61, - 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x0d, 0x61, 0x74, 0x74, 0x61, 0x63, - 0x68, 0x65, 0x64, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x61, - 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x0f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, - 0x64, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x6f, - 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, - 0x08, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, - 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x61, 0x69, - 0x72, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, - 0x64, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x74, - 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x13, 0x0a, 0x11, - 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x4e, - 0x0a, 0x18, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x73, 0x52, 0x65, 0x61, 0x63, 0x68, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x12, 0x32, 0x0a, 0x09, 0x6e, 0x65, - 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x6e, 0x65, 0x69, 0x67, 0x68, - 0x62, 0x6f, 0x72, 0x52, 0x09, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x22, 0x56, - 0x0a, 0x20, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, - 0x64, 0x49, 0x73, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, - 0x6c, 0x76, 0x12, 0x32, 0x0a, 0x09, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, - 0x4c, 0x73, 0x70, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x52, 0x09, 0x6e, 0x65, 0x69, - 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x22, 0x41, 0x0a, 0x0f, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, - 0x70, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x09, 0x73, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x22, 0x56, 0x0a, 0x22, 0x49, 0x73, 0x69, - 0x73, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, - 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x12, - 0x30, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, - 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, - 0x73, 0x22, 0x56, 0x0a, 0x22, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, - 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x12, 0x30, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, - 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x22, 0xa1, 0x04, 0x0a, 0x0f, 0x49, 0x73, - 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x26, 0x0a, - 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, - 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, - 0x62, 0x0a, 0x13, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x12, 0x72, 0x65, - 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0d, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, - 0x4a, 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, - 0x73, 0x70, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, - 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x04, 0x52, 0x0a, 0x6f, 0x72, - 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x3f, 0x0a, 0x12, 0x52, - 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, - 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x41, 0x0a, 0x0a, - 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, - 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x02, 0x42, - 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x0e, 0x0a, - 0x0c, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x5e, 0x0a, - 0x22, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, - 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x54, 0x6c, 0x76, 0x12, 0x38, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, - 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x56, 0x34, 0x50, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x52, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x22, 0xc6, 0x03, - 0x0a, 0x17, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, - 0x64, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, - 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, - 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x6a, 0x0a, 0x13, 0x72, 0x65, 0x64, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, - 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x56, 0x34, 0x50, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x12, 0x72, - 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x50, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x52, 0x10, 0x70, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x1a, - 0x3f, 0x0a, 0x12, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, - 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, - 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x16, - 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x4e, 0x0a, 0x1a, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, - 0x70, 0x49, 0x70, 0x76, 0x36, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x54, 0x6c, 0x76, 0x12, 0x30, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, - 0x73, 0x4c, 0x73, 0x70, 0x56, 0x36, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x08, 0x70, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x22, 0xd5, 0x04, 0x0a, 0x0f, 0x49, 0x73, 0x69, 0x73, 0x4c, - 0x73, 0x70, 0x56, 0x36, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, - 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x62, 0x0a, 0x13, 0x72, 0x65, 0x64, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, - 0x73, 0x4c, 0x73, 0x70, 0x56, 0x36, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x2e, 0x52, 0x65, 0x64, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x12, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, - 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, - 0x56, 0x36, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, - 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x04, 0x52, 0x0a, 0x6f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x11, 0x70, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, - 0x73, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x52, 0x10, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x73, 0x1a, 0x3f, 0x0a, 0x12, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, - 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x41, 0x0a, 0x0a, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, - 0x79, 0x70, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x65, 0x78, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x02, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, - 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0e, - 0x0a, 0x0c, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x8e, - 0x01, 0x0a, 0x17, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x06, 0x78, 0x5f, - 0x66, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x05, 0x78, 0x46, - 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x5f, 0x66, 0x6c, 0x61, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x05, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x88, - 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x02, 0x52, 0x05, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x78, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x5f, - 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x22, - 0x6a, 0x0a, 0x19, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, - 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x09, 0x6c, 0x6c, 0x64, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x6e, - 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, - 0x6f, 0x72, 0x49, 0x64, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x22, 0xd9, 0x0a, 0x0a, 0x12, - 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x6c, 0x6c, 0x64, 0x70, 0x4e, 0x61, 0x6d, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0a, 0x73, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x11, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x22, - 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x03, 0x52, 0x09, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x57, 0x0a, 0x0f, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, 0x69, 0x64, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x54, 0x79, - 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x04, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x73, 0x73, - 0x69, 0x73, 0x49, 0x64, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x6e, - 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x05, 0x52, 0x0a, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, 0x64, 0x88, 0x01, - 0x01, 0x12, 0x15, 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x06, - 0x52, 0x03, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, - 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, - 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x15, - 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x08, 0x52, 0x03, 0x74, - 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x09, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, - 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x0a, 0x52, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x54, 0x79, 0x70, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x64, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0b, 0x52, - 0x0f, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x0c, 0x52, 0x11, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x6d, 0x61, 0x6e, 0x61, 0x67, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0d, 0x52, 0x15, 0x6d, 0x61, 0x6e, 0x61, - 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x74, - 0x6c, 0x76, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x4c, 0x56, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x3c, - 0x0a, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x10, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, - 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, - 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x1a, 0xae, 0x01, 0x0a, - 0x0d, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x54, 0x79, 0x70, 0x65, 0x22, 0x9c, - 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x6f, 0x72, 0x74, - 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, - 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, - 0x02, 0x12, 0x15, 0x0a, 0x11, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6d, - 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x10, 0x05, 0x12, 0x09, 0x0a, - 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x69, 0x6e, 0x74, 0x65, - 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x10, 0x07, 0x1a, 0xaa, 0x01, - 0x0a, 0x0a, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x54, 0x79, 0x70, 0x65, 0x22, 0x9b, 0x01, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, - 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6e, 0x65, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x02, 0x12, - 0x14, 0x0a, 0x10, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74, - 0x5f, 0x69, 0x64, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x10, 0x07, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, - 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, - 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, 0x69, 0x64, 0x42, 0x12, - 0x0a, 0x10, 0x5f, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, - 0x69, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x61, 0x67, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, - 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, - 0x74, 0x6c, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x0f, - 0x0a, 0x0d, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, - 0x13, 0x0a, 0x11, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x1a, 0x0a, 0x18, 0x5f, - 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x9f, 0x01, 0x0a, 0x12, 0x4c, 0x6c, 0x64, 0x70, - 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x4c, 0x56, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x24, - 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6f, 0x75, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x01, 0x52, 0x03, 0x6f, 0x75, 0x69, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x6f, - 0x75, 0x69, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x02, 0x52, 0x0a, 0x6f, 0x75, 0x69, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, - 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6f, 0x75, 0x69, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x75, - 0x69, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0xb3, 0x03, 0x0a, 0x13, 0x4c, 0x6c, - 0x64, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x12, 0x5a, 0x0a, 0x0f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4e, - 0x61, 0x6d, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x0e, 0x63, 0x61, 0x70, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, - 0x12, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x11, 0x63, 0x61, 0x70, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x88, 0x01, - 0x01, 0x1a, 0xe0, 0x01, 0x0a, 0x0e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xcd, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0e, - 0x0a, 0x0a, 0x6d, 0x61, 0x63, 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x10, 0x01, 0x12, 0x16, - 0x0a, 0x12, 0x74, 0x77, 0x6f, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x72, - 0x65, 0x6c, 0x61, 0x79, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, - 0x65, 0x72, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x64, 0x6f, 0x63, 0x73, 0x69, 0x73, 0x5f, 0x63, - 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x10, 0x04, 0x12, 0x0a, 0x0a, - 0x06, 0x73, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x74, 0x65, 0x6c, - 0x65, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x10, 0x06, 0x12, 0x09, 0x0a, 0x05, 0x6f, 0x74, 0x68, 0x65, - 0x72, 0x10, 0x07, 0x12, 0x0a, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x10, 0x08, 0x12, - 0x0a, 0x0a, 0x06, 0x63, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x10, 0x09, 0x12, 0x10, 0x0a, 0x0c, 0x73, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x10, 0x0a, 0x12, 0x15, 0x0a, - 0x11, 0x77, 0x6c, 0x61, 0x6e, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x10, 0x0b, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x63, 0x61, 0x70, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, - 0x42, 0x0a, 0x14, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x72, 0x73, 0x76, 0x70, 0x5f, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x0f, 0x72, 0x73, 0x76, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x73, 0x22, 0x87, 0x01, 0x0a, 0x0d, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x73, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x10, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x72, 0x6f, - 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x0e, 0x72, 0x73, 0x76, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6c, 0x73, 0x70, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, - 0x76, 0x70, 0x49, 0x50, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, - 0x69, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x73, 0x76, - 0x70, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x96, 0x02, - 0x0a, 0x10, 0x52, 0x73, 0x76, 0x70, 0x49, 0x50, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x34, - 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x12, 0x64, - 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x03, 0x6c, 0x73, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x52, 0x03, 0x6c, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x04, 0x72, 0x72, 0x6f, - 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, - 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x52, 0x72, 0x6f, 0x52, 0x04, 0x72, 0x72, - 0x6f, 0x73, 0x12, 0x27, 0x0a, 0x04, 0x65, 0x72, 0x6f, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, - 0x76, 0x34, 0x45, 0x72, 0x6f, 0x52, 0x04, 0x65, 0x72, 0x6f, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x16, - 0x0a, 0x14, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x8c, 0x05, 0x0a, 0x0c, 0x52, 0x73, 0x76, 0x70, 0x4c, - 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, - 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x74, 0x75, - 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x6c, 0x73, 0x70, - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x6c, 0x73, 0x70, - 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0b, 0x73, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, - 0x08, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x03, 0x52, 0x07, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x49, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, - 0x09, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x04, 0x52, 0x08, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x4f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x50, 0x0a, 0x0e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, - 0x76, 0x70, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x05, 0x52, - 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x88, 0x01, - 0x01, 0x12, 0x54, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x72, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x4c, - 0x61, 0x73, 0x74, 0x46, 0x6c, 0x61, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x06, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x61, 0x70, 0x52, 0x65, - 0x61, 0x73, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x75, 0x70, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x06, 0x75, 0x70, 0x54, 0x69, - 0x6d, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x3a, 0x0a, 0x0d, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, - 0x02, 0x1a, 0x59, 0x0a, 0x0e, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x61, 0x70, 0x52, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x22, 0x47, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, - 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x70, - 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x70, 0x61, - 0x74, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x10, 0x03, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x73, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x5f, 0x69, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x6f, 0x75, - 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, - 0x61, 0x70, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x75, 0x70, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x7a, 0x0a, 0x0e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, - 0x49, 0x70, 0x76, 0x34, 0x52, 0x72, 0x6f, 0x12, 0x1d, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, - 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x11, - 0x0a, 0x0f, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x22, 0x85, 0x02, 0x0a, 0x0e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, - 0x34, 0x45, 0x72, 0x6f, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, - 0x01, 0x12, 0x15, 0x0a, 0x03, 0x61, 0x73, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x03, 0x61, 0x73, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, - 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x45, 0x72, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, - 0x1a, 0x6b, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x63, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x69, - 0x70, 0x76, 0x36, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x61, 0x73, 0x6e, 0x10, 0x03, 0x12, 0x08, - 0x0a, 0x04, 0x61, 0x73, 0x6e, 0x34, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x10, 0x05, 0x12, 0x18, 0x0a, 0x14, 0x75, 0x6e, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x65, - 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x10, 0x06, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x61, 0x73, 0x6e, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x40, 0x0a, 0x0e, 0x43, 0x61, 0x70, - 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, - 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x08, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x1d, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, - 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x1f, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0xf5, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, - 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x40, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, - 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, - 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc9, 0x03, 0x0a, 0x16, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, - 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, - 0x53, 0x72, 0x63, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x40, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x12, 0x40, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, - 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, - 0x65, 0x74, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, - 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, - 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x25, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, - 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x93, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, - 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, - 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, - 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, - 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, - 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, - 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x22, 0x90, 0x01, - 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, - 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0x98, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe2, 0x03, 0x0a, 0x1b, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, - 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x12, 0x49, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, - 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, - 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, - 0x51, 0x75, 0x65, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, - 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, - 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x94, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, - 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xce, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, - 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x87, 0x01, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, + 0x6f, 0x77, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x12, 0x2d, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x52, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x12, + 0x21, 0x0a, 0x04, 0x76, 0x6c, 0x61, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x52, 0x04, 0x76, 0x6c, + 0x61, 0x6e, 0x12, 0x24, 0x0a, 0x05, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, + 0x6e, 0x52, 0x05, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x12, 0x21, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x12, 0x21, 0x0a, 0x04, 0x69, + 0x70, 0x76, 0x36, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x12, 0x2d, + 0x0a, 0x08, 0x70, 0x66, 0x63, 0x70, 0x61, 0x75, 0x73, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x52, 0x08, 0x70, 0x66, 0x63, 0x70, 0x61, 0x75, 0x73, 0x65, 0x12, 0x3c, 0x0a, + 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x70, 0x61, 0x75, 0x73, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x45, + 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x52, 0x0d, 0x65, 0x74, + 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x70, 0x61, 0x75, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x03, 0x74, + 0x63, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, + 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x52, 0x03, 0x74, 0x63, 0x70, 0x12, 0x1e, 0x0a, 0x03, 0x75, + 0x64, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, + 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x52, 0x03, 0x75, 0x64, 0x70, 0x12, 0x1e, 0x0a, 0x03, 0x67, + 0x72, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x03, 0x67, 0x72, 0x65, 0x12, 0x24, 0x0a, 0x05, 0x67, + 0x74, 0x70, 0x76, 0x31, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x05, 0x67, 0x74, 0x70, 0x76, + 0x31, 0x12, 0x24, 0x0a, 0x05, 0x67, 0x74, 0x70, 0x76, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, + 0x52, 0x05, 0x67, 0x74, 0x70, 0x76, 0x32, 0x12, 0x1e, 0x0a, 0x03, 0x61, 0x72, 0x70, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x41, + 0x72, 0x70, 0x52, 0x03, 0x61, 0x72, 0x70, 0x12, 0x21, 0x0a, 0x04, 0x69, 0x63, 0x6d, 0x70, 0x18, + 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x63, 0x6d, 0x70, 0x52, 0x04, 0x69, 0x63, 0x6d, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x69, 0x63, + 0x6d, 0x70, 0x76, 0x36, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x52, 0x06, 0x69, 0x63, 0x6d, + 0x70, 0x76, 0x36, 0x12, 0x1e, 0x0a, 0x03, 0x70, 0x70, 0x70, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x52, 0x03, + 0x70, 0x70, 0x70, 0x12, 0x27, 0x0a, 0x06, 0x69, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x18, 0x13, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, + 0x6d, 0x70, 0x76, 0x31, 0x52, 0x06, 0x69, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x12, 0x21, 0x0a, 0x04, + 0x6d, 0x70, 0x6c, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x52, 0x04, 0x6d, 0x70, 0x6c, 0x73, 0x12, + 0x2a, 0x0a, 0x07, 0x73, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, + 0x32, 0x63, 0x52, 0x07, 0x73, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x1a, 0x82, 0x02, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xf7, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, + 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x76, 0x6c, + 0x61, 0x6e, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x10, 0x04, 0x12, + 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x05, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, + 0x36, 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x66, 0x63, 0x70, 0x61, 0x75, 0x73, 0x65, 0x10, + 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x70, 0x61, 0x75, + 0x73, 0x65, 0x10, 0x08, 0x12, 0x07, 0x0a, 0x03, 0x74, 0x63, 0x70, 0x10, 0x09, 0x12, 0x07, 0x0a, + 0x03, 0x75, 0x64, 0x70, 0x10, 0x0a, 0x12, 0x07, 0x0a, 0x03, 0x67, 0x72, 0x65, 0x10, 0x0b, 0x12, + 0x09, 0x0a, 0x05, 0x67, 0x74, 0x70, 0x76, 0x31, 0x10, 0x0c, 0x12, 0x09, 0x0a, 0x05, 0x67, 0x74, + 0x70, 0x76, 0x32, 0x10, 0x0d, 0x12, 0x07, 0x0a, 0x03, 0x61, 0x72, 0x70, 0x10, 0x0e, 0x12, 0x08, + 0x0a, 0x04, 0x69, 0x63, 0x6d, 0x70, 0x10, 0x0f, 0x12, 0x0a, 0x0a, 0x06, 0x69, 0x63, 0x6d, 0x70, + 0x76, 0x36, 0x10, 0x10, 0x12, 0x07, 0x0a, 0x03, 0x70, 0x70, 0x70, 0x10, 0x11, 0x12, 0x0a, 0x0a, + 0x06, 0x69, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x10, 0x12, 0x12, 0x08, 0x0a, 0x04, 0x6d, 0x70, 0x6c, + 0x73, 0x10, 0x13, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x10, 0x14, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x6c, 0x0a, 0x0a, 0x46, + 0x6c, 0x6f, 0x77, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x19, 0x0a, 0x05, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x22, 0x87, 0x01, 0x0a, 0x13, 0x46, 0x6c, + 0x6f, 0x77, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, @@ -102069,968 +102382,3942 @@ var file_otg_proto_rawDesc = []byte{ 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x22, 0xb5, 0x03, 0x0a, 0x12, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, - 0x43, 0x66, 0x69, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x3c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3c, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x86, 0x01, 0x0a, 0x18, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, - 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb0, 0x03, 0x0a, 0x11, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x3f, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, + 0x67, 0x74, 0x68, 0x22, 0xed, 0x01, 0x0a, 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x12, 0x2d, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x52, 0x03, + 0x64, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x52, 0x03, 0x73, + 0x72, 0x63, 0x12, 0x40, 0x0a, 0x0a, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x65, 0x74, 0x68, 0x65, 0x72, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x3d, 0x0a, 0x09, 0x70, 0x66, 0x63, 0x5f, 0x71, 0x75, 0x65, 0x75, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, + 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x08, 0x70, 0x66, 0x63, 0x51, 0x75, + 0x65, 0x75, 0x65, 0x22, 0xc5, 0x01, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, + 0x12, 0x38, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x63, 0x66, + 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, + 0x52, 0x03, 0x63, 0x66, 0x69, 0x12, 0x26, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2c, 0x0a, + 0x04, 0x74, 0x70, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, - 0x6e, 0x49, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x3b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3b, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, + 0x6e, 0x54, 0x70, 0x69, 0x64, 0x52, 0x04, 0x74, 0x70, 0x69, 0x64, 0x22, 0xe5, 0x01, 0x0a, 0x09, + 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x12, 0x30, 0x0a, 0x05, 0x66, 0x6c, 0x61, + 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, + 0x6c, 0x61, 0x67, 0x73, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x72, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, - 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x88, 0x01, 0x0a, 0x1a, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xba, 0x03, 0x0a, 0x13, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x12, 0x41, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, + 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x52, 0x09, + 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x12, 0x2a, 0x0a, 0x03, 0x76, 0x6e, 0x69, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, + 0x52, 0x03, 0x76, 0x6e, 0x69, 0x12, 0x3c, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x52, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x64, 0x31, 0x22, 0xb2, 0x07, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x12, 0x35, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x0d, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, - 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, - 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, - 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, - 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0x92, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc4, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, - 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, - 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, - 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, + 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x52, 0x0c, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x31, + 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, + 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x12, 0x42, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, + 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4a, 0x0a, 0x0e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x0e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x38, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x45, 0x0a, 0x0d, 0x64, + 0x6f, 0x6e, 0x74, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0c, 0x64, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x0e, 0x6d, 0x6f, 0x72, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x0d, 0x6d, + 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x0f, + 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x52, 0x0e, 0x66, 0x72, 0x61, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x40, 0x0a, 0x0c, 0x74, 0x69, 0x6d, + 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x52, + 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x12, 0x38, 0x0a, 0x08, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x4b, 0x0a, 0x0f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, + 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, - 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, + 0x75, 0x6d, 0x52, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, + 0x75, 0x6d, 0x12, 0x29, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x52, 0x03, 0x73, 0x72, 0x63, 0x12, 0x29, 0x0a, + 0x03, 0x64, 0x73, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x44, 0x73, 0x74, 0x52, 0x03, 0x64, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xd0, 0x01, 0x0a, 0x0f, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3d, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x06, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x1a, + 0x3f, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x35, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8e, 0x01, 0x0a, - 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, - 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x96, 0x01, - 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, - 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd8, 0x03, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x64, 0x30, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x64, 0x30, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, + 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x6c, 0x65, + 0x72, 0x74, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xaa, 0x01, 0x0a, 0x15, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x32, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x34, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9a, 0x02, 0x0a, 0x19, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x50, 0x0a, 0x0b, 0x63, 0x6f, 0x70, 0x69, 0x65, 0x64, + 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x34, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, + 0x70, 0x65, 0x43, 0x6f, 0x70, 0x69, 0x65, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x0a, 0x63, 0x6f, + 0x70, 0x69, 0x65, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x53, 0x0a, 0x0c, 0x6f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x54, 0x79, 0x70, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x52, 0x0b, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x56, 0x0a, + 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x0c, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xf2, 0x01, 0x0a, 0x1b, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x34, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x1a, 0x36, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0x88, 0x01, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, - 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, - 0x6e, 0x56, 0x6e, 0x69, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0xe6, 0x03, 0x0a, 0x13, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, - 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x12, 0x41, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, - 0x69, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, - 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, - 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, - 0x56, 0x6e, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, - 0x6e, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, - 0x56, 0x6e, 0x69, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x96, 0x01, 0x0a, 0x22, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0xd8, 0x03, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, - 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, - 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, - 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8b, 0x01, - 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, - 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, - 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x1f, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, - 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, - 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0xc9, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, + 0x01, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9a, 0x02, 0x0a, 0x10, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, + 0x3e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x31, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x52, 0x03, 0x72, + 0x61, 0x77, 0x12, 0x22, 0x0a, 0x03, 0x74, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, + 0x73, 0x52, 0x03, 0x74, 0x6f, 0x73, 0x12, 0x25, 0x0a, 0x04, 0x64, 0x73, 0x63, 0x70, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x52, 0x04, 0x64, 0x73, 0x63, 0x70, 0x1a, 0x3d, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x07, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x74, 0x6f, 0x73, + 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x73, 0x63, 0x70, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x6c, 0x0a, 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x12, 0x2d, 0x0a, 0x03, 0x70, 0x68, 0x62, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, + 0x62, 0x52, 0x03, 0x70, 0x68, 0x62, 0x12, 0x2d, 0x0a, 0x03, 0x65, 0x63, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, + 0x52, 0x03, 0x65, 0x63, 0x6e, 0x22, 0x81, 0x03, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x34, 0x54, 0x6f, 0x73, 0x12, 0x41, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, + 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, + 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0a, 0x70, 0x72, + 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x32, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, + 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, + 0x44, 0x65, 0x6c, 0x61, 0x79, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x41, 0x0a, 0x0a, + 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, + 0x70, 0x75, 0x74, 0x52, 0x0a, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x12, + 0x44, 0x0a, 0x0b, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, + 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, + 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, + 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x6f, 0x6e, 0x65, 0x74, 0x61, + 0x72, 0x79, 0x12, 0x35, 0x0a, 0x06, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, + 0x64, 0x52, 0x06, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x22, 0xe2, 0x03, 0x0a, 0x08, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x12, 0x35, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, + 0x0d, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, + 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x12, 0x3c, 0x0a, 0x0a, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, + 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x12, 0x48, 0x0a, 0x0e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, + 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x0d, 0x70, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x3f, 0x0a, 0x0b, + 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x39, 0x0a, + 0x09, 0x68, 0x6f, 0x70, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x08, + 0x68, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x29, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x52, 0x03, + 0x73, 0x72, 0x63, 0x12, 0x29, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x52, 0x03, 0x64, 0x73, 0x74, 0x22, 0xa0, + 0x07, 0x0a, 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x12, + 0x2d, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x52, 0x03, 0x64, 0x73, 0x74, 0x12, 0x2d, + 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x52, 0x03, 0x73, 0x72, 0x63, 0x12, 0x40, 0x0a, + 0x0a, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x65, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x4d, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x5f, 0x63, 0x6f, + 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, + 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x52, + 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x59, + 0x0a, 0x13, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x11, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x47, 0x0a, 0x0d, 0x70, 0x61, 0x75, + 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x30, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x30, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x30, 0x12, 0x47, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x5f, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x52, 0x0b, + 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x12, 0x47, 0x0a, 0x0d, 0x70, + 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x32, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x32, 0x12, 0x47, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x5f, 0x33, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, + 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x12, 0x47, 0x0a, + 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x34, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x12, 0x47, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x35, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x35, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x12, + 0x47, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x36, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x52, 0x0b, 0x70, 0x61, 0x75, + 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x12, 0x47, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, + 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x37, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x37, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x37, 0x22, 0xcd, 0x02, 0x0a, 0x11, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x52, 0x03, 0x64, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x03, 0x73, + 0x72, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x52, 0x03, 0x73, 0x72, 0x63, 0x12, + 0x45, 0x0a, 0x0a, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, + 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x65, 0x74, 0x68, + 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x52, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x5f, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x0d, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x04, 0x74, 0x69, 0x6d, + 0x65, 0x22, 0xa6, 0x06, 0x0a, 0x07, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x12, 0x35, 0x0a, + 0x08, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x07, 0x73, 0x72, 0x63, + 0x50, 0x6f, 0x72, 0x74, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, + 0x72, 0x74, 0x52, 0x07, 0x64, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x73, + 0x65, 0x71, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, + 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x52, 0x06, 0x73, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x12, + 0x32, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x52, 0x06, 0x61, 0x63, 0x6b, + 0x4e, 0x75, 0x6d, 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, + 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x12, 0x2f, 0x0a, 0x06, 0x65, 0x63, 0x6e, 0x5f, 0x6e, 0x73, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x52, 0x05, 0x65, + 0x63, 0x6e, 0x4e, 0x73, 0x12, 0x32, 0x0a, 0x07, 0x65, 0x63, 0x6e, 0x5f, 0x63, 0x77, 0x72, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, + 0x52, 0x06, 0x65, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x63, 0x6e, 0x5f, + 0x65, 0x63, 0x68, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, + 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x52, 0x07, 0x65, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x12, + 0x32, 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, 0x75, 0x72, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x52, 0x06, 0x63, 0x74, 0x6c, + 0x55, 0x72, 0x67, 0x12, 0x32, 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, 0x61, 0x63, 0x6b, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x52, + 0x06, 0x63, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x12, 0x32, 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, 0x70, + 0x73, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, + 0x50, 0x73, 0x68, 0x52, 0x06, 0x63, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x12, 0x32, 0x0a, 0x07, 0x63, + 0x74, 0x6c, 0x5f, 0x72, 0x73, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, + 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x52, 0x06, 0x63, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x12, + 0x32, 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, 0x73, 0x79, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x52, 0x06, 0x63, 0x74, 0x6c, + 0x53, 0x79, 0x6e, 0x12, 0x32, 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, 0x66, 0x69, 0x6e, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x52, + 0x06, 0x63, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x12, 0x31, 0x0a, 0x06, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x52, 0x06, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x22, 0xe3, 0x01, 0x0a, 0x07, 0x46, + 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x12, 0x35, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, + 0x50, 0x6f, 0x72, 0x74, 0x52, 0x07, 0x73, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x35, 0x0a, + 0x08, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x07, 0x64, 0x73, 0x74, + 0x50, 0x6f, 0x72, 0x74, 0x12, 0x31, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x37, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, + 0x73, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, + 0x22, 0xf8, 0x02, 0x0a, 0x07, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x12, 0x4d, 0x0a, 0x10, + 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x52, 0x0f, 0x63, 0x68, 0x65, 0x63, + 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x09, 0x72, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x52, 0x09, 0x72, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x12, 0x34, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, + 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x08, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x37, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, + 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, + 0x3a, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, + 0x52, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x22, 0xde, 0x06, 0x0a, 0x09, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x12, 0x36, 0x0a, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x46, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x39, 0x0a, 0x08, 0x72, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x06, 0x65, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, + 0x52, 0x05, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x5f, 0x66, 0x6c, 0x61, + 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, + 0x6c, 0x61, 0x67, 0x52, 0x05, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x34, 0x0a, 0x07, 0x70, 0x6e, + 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x06, 0x70, 0x6e, 0x46, 0x6c, 0x61, 0x67, + 0x12, 0x43, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x52, 0x0d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x12, 0x2d, 0x0a, 0x04, 0x74, 0x65, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x52, 0x04, 0x74, 0x65, 0x69, 0x64, 0x12, + 0x49, 0x0a, 0x0e, 0x73, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x0d, 0x73, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x41, 0x0a, 0x0c, 0x6e, 0x5f, + 0x70, 0x64, 0x75, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x52, 0x0a, 0x6e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x69, 0x0a, + 0x1a, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, + 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x17, 0x6e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x42, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x22, 0x91, 0x02, 0x0a, + 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x56, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x40, 0x0a, 0x08, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x73, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x63, 0x0a, 0x15, 0x6e, + 0x65, 0x78, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x13, 0x6e, 0x65, 0x78, + 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x22, 0xca, 0x04, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x12, 0x36, + 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x11, 0x70, 0x69, 0x67, 0x67, 0x79, 0x62, + 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, + 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x10, 0x70, 0x69, 0x67, 0x67, 0x79, 0x62, + 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x3a, 0x0a, 0x09, 0x74, 0x65, + 0x69, 0x64, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x08, 0x74, 0x65, + 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x70, 0x61, 0x72, 0x65, 0x31, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, + 0x72, 0x65, 0x31, 0x52, 0x06, 0x73, 0x70, 0x61, 0x72, 0x65, 0x31, 0x12, 0x43, 0x0a, 0x0c, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x49, 0x0a, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x0d, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x2d, 0x0a, 0x04, 0x74, + 0x65, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, + 0x54, 0x65, 0x69, 0x64, 0x52, 0x04, 0x74, 0x65, 0x69, 0x64, 0x12, 0x4c, 0x0a, 0x0f, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x70, 0x61, 0x72, + 0x65, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, + 0x70, 0x61, 0x72, 0x65, 0x32, 0x52, 0x06, 0x73, 0x70, 0x61, 0x72, 0x65, 0x32, 0x22, 0xcd, 0x05, + 0x0a, 0x07, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x12, 0x44, 0x0a, 0x0d, 0x68, 0x61, 0x72, + 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x0c, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x44, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, + 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x52, 0x0e, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x12, 0x4a, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x0e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x3a, 0x0a, + 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x57, 0x0a, 0x14, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x52, 0x12, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, + 0x64, 0x72, 0x12, 0x57, 0x0a, 0x14, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x52, 0x12, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x12, 0x57, 0x0a, 0x14, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, + 0x52, 0x12, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, + 0x41, 0x64, 0x64, 0x72, 0x12, 0x57, 0x0a, 0x14, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x52, 0x12, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x22, 0xa1, 0x01, + 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, + 0x01, 0x01, 0x12, 0x25, 0x0a, 0x04, 0x65, 0x63, 0x68, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, + 0x63, 0x68, 0x6f, 0x52, 0x04, 0x65, 0x63, 0x68, 0x6f, 0x1a, 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, + 0x65, 0x63, 0x68, 0x6f, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0xc5, 0x02, 0x0a, 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, + 0x68, 0x6f, 0x12, 0x30, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, + 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, + 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, + 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, + 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x42, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, + 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x0a, 0x69, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x4f, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xa7, 0x01, 0x0a, 0x0a, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x12, 0x38, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x27, 0x0a, 0x04, 0x65, 0x63, 0x68, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, + 0x36, 0x45, 0x63, 0x68, 0x6f, 0x52, 0x04, 0x65, 0x63, 0x68, 0x6f, 0x1a, 0x2b, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, + 0x0a, 0x04, 0x65, 0x63, 0x68, 0x6f, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0xd1, 0x02, 0x0a, 0x0e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, + 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x12, 0x32, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x32, 0x0a, 0x04, 0x63, 0x6f, + 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, + 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x44, + 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, + 0x73, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, + 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x52, 0x08, 0x63, + 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x22, 0xbb, 0x01, 0x0a, 0x07, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x70, 0x70, 0x12, 0x34, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x34, 0x0a, 0x07, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, + 0x44, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0xb0, 0x02, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, + 0x6d, 0x70, 0x76, 0x31, 0x12, 0x37, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, + 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x34, 0x0a, + 0x06, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x52, 0x06, 0x75, 0x6e, 0x75, + 0x73, 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, + 0x47, 0x0a, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x8f, 0x02, 0x0a, 0x08, 0x46, 0x6c, 0x6f, + 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x12, 0x2f, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, + 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x45, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, + 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, + 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, + 0x0c, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x49, 0x0a, + 0x0f, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, + 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x52, 0x0d, 0x62, 0x6f, 0x74, 0x74, 0x6f, + 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x40, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, + 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, - 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x90, 0x01, - 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0x98, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8e, 0x04, 0x0a, 0x1b, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x49, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, + 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x52, 0x0a, + 0x74, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x22, 0xa2, 0x01, 0x0a, 0x0b, 0x46, + 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x12, 0x38, 0x0a, 0x07, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, + 0x70, 0x76, 0x32, 0x63, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, + 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x75, + 0x6e, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, + 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x22, + 0xcb, 0x05, 0x0a, 0x0f, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, + 0x6d, 0x70, 0x76, 0x32, 0x63, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x34, 0x0a, 0x0b, 0x67, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, + 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x50, 0x44, 0x55, 0x52, 0x0a, 0x67, 0x65, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x10, 0x67, 0x65, 0x74, 0x5f, + 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, + 0x70, 0x76, 0x32, 0x63, 0x50, 0x44, 0x55, 0x52, 0x0e, 0x67, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x50, 0x44, 0x55, 0x52, 0x08, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x0b, 0x73, 0x65, 0x74, 0x5f, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x50, + 0x44, 0x55, 0x52, 0x0a, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, + 0x0a, 0x10, 0x67, 0x65, 0x74, 0x5f, 0x62, 0x75, 0x6c, 0x6b, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, + 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x42, 0x75, 0x6c, 0x6b, 0x50, 0x44, + 0x55, 0x52, 0x0e, 0x67, 0x65, 0x74, 0x42, 0x75, 0x6c, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x3a, 0x0a, 0x0e, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x50, 0x44, 0x55, 0x52, 0x0d, + 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, + 0x0b, 0x73, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x5f, 0x74, 0x72, 0x61, 0x70, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, + 0x70, 0x76, 0x32, 0x63, 0x50, 0x44, 0x55, 0x52, 0x0a, 0x73, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x54, + 0x72, 0x61, 0x70, 0x12, 0x2b, 0x0a, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, + 0x6d, 0x70, 0x76, 0x32, 0x63, 0x50, 0x44, 0x55, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x1a, 0xaf, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xa4, 0x01, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x67, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x67, 0x65, 0x74, 0x5f, 0x6e, 0x65, + 0x78, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x73, 0x65, + 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x67, + 0x65, 0x74, 0x5f, 0x62, 0x75, 0x6c, 0x6b, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x10, + 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, 0x73, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x5f, + 0x74, 0x72, 0x61, 0x70, 0x10, 0x07, 0x12, 0x0a, 0x0a, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x10, 0x08, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xc9, 0x05, + 0x0a, 0x0e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x50, 0x44, 0x55, + 0x12, 0x42, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x50, 0x44, 0x55, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x49, 0x64, 0x12, 0x4c, 0x0a, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x50, 0x44, 0x55, 0x2e, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x0b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, + 0x50, 0x44, 0x55, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x0a, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x4c, 0x0a, 0x11, 0x76, 0x61, 0x72, + 0x69, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, + 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x69, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, + 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x1a, 0xfe, 0x02, 0x0a, 0x0b, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xee, 0x02, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x6e, 0x6f, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x12, + 0x0b, 0x0a, 0x07, 0x74, 0x6f, 0x6f, 0x5f, 0x62, 0x69, 0x67, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, + 0x6e, 0x6f, 0x5f, 0x73, 0x75, 0x63, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x10, 0x03, 0x12, 0x0d, + 0x0a, 0x09, 0x62, 0x61, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x04, 0x12, 0x0d, 0x0a, + 0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, + 0x67, 0x65, 0x6e, 0x5f, 0x65, 0x72, 0x72, 0x10, 0x06, 0x12, 0x0d, 0x0a, 0x09, 0x6e, 0x6f, 0x5f, + 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x07, 0x12, 0x0e, 0x0a, 0x0a, 0x77, 0x72, 0x6f, 0x6e, + 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x77, 0x72, 0x6f, 0x6e, + 0x67, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x77, 0x72, + 0x6f, 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x10, 0x0a, 0x12, 0x0f, + 0x0a, 0x0b, 0x77, 0x72, 0x6f, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x0b, 0x12, + 0x0f, 0x0a, 0x0b, 0x6e, 0x6f, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x0c, + 0x12, 0x16, 0x0a, 0x12, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x0d, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x5f, 0x75, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, + 0x10, 0x0e, 0x12, 0x11, 0x0a, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x66, 0x61, 0x69, + 0x6c, 0x65, 0x64, 0x10, 0x0f, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x64, 0x6f, 0x5f, 0x66, 0x61, + 0x69, 0x6c, 0x65, 0x64, 0x10, 0x10, 0x12, 0x17, 0x0a, 0x13, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x11, 0x12, + 0x10, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x10, + 0x12, 0x12, 0x15, 0x0a, 0x11, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x10, 0x13, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xd2, 0x02, 0x0a, 0x12, 0x46, 0x6c, + 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x42, 0x75, 0x6c, 0x6b, 0x50, 0x44, 0x55, + 0x12, 0x46, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x42, 0x75, 0x6c, + 0x6b, 0x50, 0x44, 0x55, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x52, 0x09, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x4f, 0x0a, 0x0d, 0x6e, 0x6f, 0x6e, 0x5f, + 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x42, 0x75, 0x6c, 0x6b, 0x50, 0x44, 0x55, 0x4e, + 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x72, 0x73, 0x52, 0x0c, 0x6e, 0x6f, 0x6e, + 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x72, 0x73, 0x12, 0x55, 0x0a, 0x0f, 0x6d, 0x61, 0x78, + 0x5f, 0x72, 0x65, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x42, 0x75, 0x6c, 0x6b, 0x50, + 0x44, 0x55, 0x4d, 0x61, 0x78, 0x52, 0x65, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x4c, 0x0a, 0x11, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x69, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x56, 0x61, 0x72, + 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, + 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x22, 0xa0, + 0x01, 0x0a, 0x1a, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x56, 0x61, + 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x30, 0x0a, + 0x11, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x10, 0x6f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, + 0x3a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, + 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, + 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x22, 0xae, 0x09, 0x0a, 0x1f, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, + 0x63, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4d, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, + 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, + 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, + 0x70, 0x76, 0x32, 0x63, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x15, 0x6f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x63, 0x0a, 0x10, 0x69, 0x70, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x39, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, + 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x49, 0x70, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x69, 0x70, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x5c, 0x0a, 0x0d, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x56, 0x61, 0x72, 0x69, + 0x61, 0x62, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x62, 0x0a, 0x0f, 0x74, 0x69, + 0x6d, 0x65, 0x74, 0x69, 0x63, 0x6b, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x56, 0x61, 0x72, 0x69, + 0x61, 0x62, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x74, 0x69, 0x63, 0x6b, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, + 0x74, 0x69, 0x6d, 0x65, 0x74, 0x69, 0x63, 0x6b, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, + 0x0a, 0x0f, 0x61, 0x72, 0x62, 0x69, 0x74, 0x72, 0x61, 0x72, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x0e, 0x61, 0x72, 0x62, 0x69, 0x74, + 0x72, 0x61, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x66, 0x0a, 0x11, + 0x62, 0x69, 0x67, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, + 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x69, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x62, 0x69, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x75, 0x0a, 0x16, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, + 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x56, 0x61, 0x72, + 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x55, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x14, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x49, + 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0xf8, 0x01, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xed, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x0c, 0x0a, 0x08, 0x6e, 0x6f, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x01, 0x12, 0x11, + 0x0a, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, + 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x04, + 0x12, 0x14, 0x0a, 0x10, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x74, 0x69, 0x6d, + 0x65, 0x74, 0x69, 0x63, 0x6b, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x07, 0x12, 0x13, + 0x0a, 0x0f, 0x61, 0x72, 0x62, 0x69, 0x74, 0x72, 0x61, 0x72, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x08, 0x12, 0x15, 0x0a, 0x11, 0x62, 0x69, 0x67, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x09, 0x12, 0x1a, 0x0a, 0x16, 0x75, 0x6e, + 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x0a, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x12, + 0x0a, 0x10, 0x5f, 0x61, 0x72, 0x62, 0x69, 0x74, 0x72, 0x61, 0x72, 0x79, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0xed, 0x02, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x12, + 0x36, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x69, 0x78, 0x65, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x66, 0x69, 0x78, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x34, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, + 0x53, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, + 0x6f, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, + 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x52, 0x06, 0x72, + 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x3b, 0x0a, 0x0c, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, + 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x50, 0x61, 0x69, 0x72, 0x73, 0x52, 0x0b, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, + 0x72, 0x73, 0x1a, 0x59, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4f, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x66, 0x69, 0x78, 0x65, 0x64, 0x10, 0x01, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x77, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x73, 0x10, 0x04, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x69, 0x78, + 0x65, 0x64, 0x22, 0x79, 0x0a, 0x11, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x49, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x06, 0x0a, 0x04, + 0x5f, 0x65, 0x6e, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x22, 0x4e, 0x0a, + 0x0e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x12, + 0x15, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x03, + 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, + 0x04, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x61, 0x78, 0x22, 0xa9, 0x03, + 0x0a, 0x13, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, + 0x53, 0x69, 0x7a, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, 0x73, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, + 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x50, 0x61, 0x69, 0x72, 0x73, 0x2e, 0x50, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, + 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, + 0x69, 0x6e, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, + 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, + 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x1a, + 0x3d, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, + 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, 0x1a, 0x6f, + 0x0a, 0x0a, 0x50, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x22, 0x61, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x6d, 0x69, 0x78, 0x10, 0x01, 0x12, + 0x0e, 0x0a, 0x0a, 0x69, 0x70, 0x73, 0x65, 0x63, 0x5f, 0x69, 0x6d, 0x69, 0x78, 0x10, 0x02, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x69, 0x6d, 0x69, 0x78, 0x10, 0x03, 0x12, 0x11, + 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x6d, 0x69, 0x78, 0x10, + 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x74, 0x63, 0x70, 0x5f, 0x69, 0x6d, 0x69, 0x78, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, + 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x22, 0x65, 0x0a, 0x19, 0x46, 0x6c, 0x6f, + 0x77, 0x53, 0x69, 0x7a, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, 0x73, + 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, + 0x01, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x22, 0x88, 0x03, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x61, 0x74, 0x65, 0x12, 0x36, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x48, 0x01, 0x52, 0x03, 0x70, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, + 0x62, 0x70, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x03, 0x62, 0x70, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6b, 0x62, 0x70, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x03, 0x52, 0x04, 0x6b, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, + 0x6d, 0x62, 0x70, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x04, 0x6d, 0x62, + 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x67, 0x62, 0x70, 0x73, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x04, 0x67, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x23, + 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x02, 0x48, 0x06, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, + 0x88, 0x01, 0x01, 0x1a, 0x61, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x57, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x70, 0x70, 0x73, 0x10, 0x01, 0x12, + 0x07, 0x0a, 0x03, 0x62, 0x70, 0x73, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x6b, 0x62, 0x70, 0x73, + 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x6d, 0x62, 0x70, 0x73, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, + 0x67, 0x62, 0x70, 0x73, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, + 0x74, 0x61, 0x67, 0x65, 0x10, 0x06, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x70, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x62, 0x70, + 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6b, 0x62, 0x70, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, + 0x62, 0x70, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x42, 0x0d, 0x0a, 0x0b, + 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x22, 0x8c, 0x03, 0x0a, 0x0c, + 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x0d, 0x66, 0x69, 0x78, 0x65, + 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x46, 0x69, 0x78, 0x65, 0x64, 0x50, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x0c, 0x66, 0x69, 0x78, 0x65, 0x64, 0x50, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x0d, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x46, 0x69, 0x78, 0x65, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, + 0x64, 0x73, 0x52, 0x0c, 0x66, 0x69, 0x78, 0x65, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, + 0x12, 0x24, 0x0a, 0x05, 0x62, 0x75, 0x72, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x42, 0x75, 0x72, 0x73, 0x74, 0x52, + 0x05, 0x62, 0x75, 0x72, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, + 0x75, 0x6f, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x52, + 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x1a, 0x62, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x58, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, + 0x0a, 0x0d, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x10, + 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, + 0x64, 0x73, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x62, 0x75, 0x72, 0x73, 0x74, 0x10, 0x03, 0x12, + 0x0e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x10, 0x04, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x55, 0x0a, 0x0e, 0x46, 0x6c, + 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x12, 0x15, 0x0a, 0x03, + 0x67, 0x61, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x03, 0x67, 0x61, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, + 0x61, 0x79, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, 0x61, + 0x70, 0x22, 0xb6, 0x02, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, + 0x37, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, + 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x02, 0x52, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, + 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0c, 0x6d, 0x69, + 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, + 0x48, 0x03, 0x52, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, + 0x88, 0x01, 0x01, 0x1a, 0x4f, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x45, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x10, + 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, + 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, + 0x64, 0x73, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x61, + 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x69, + 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0x82, 0x01, 0x0a, 0x10, 0x46, + 0x6c, 0x6f, 0x77, 0x46, 0x69, 0x78, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, + 0x1d, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x15, + 0x0a, 0x03, 0x67, 0x61, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x03, 0x67, + 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, + 0x65, 0x6c, 0x61, 0x79, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x0a, 0x0a, 0x08, 0x5f, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, 0x61, 0x70, 0x22, + 0x82, 0x01, 0x0a, 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x46, 0x69, 0x78, 0x65, 0x64, 0x53, 0x65, 0x63, + 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x1d, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x67, 0x61, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x03, 0x67, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x05, 0x64, 0x65, + 0x6c, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x06, 0x0a, 0x04, + 0x5f, 0x67, 0x61, 0x70, 0x22, 0xc5, 0x01, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x42, 0x75, 0x72, + 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x62, 0x75, 0x72, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x62, 0x75, 0x72, 0x73, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x1d, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x15, + 0x0a, 0x03, 0x67, 0x61, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x03, 0x67, + 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x62, + 0x75, 0x72, 0x73, 0x74, 0x5f, 0x67, 0x61, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x42, 0x75, 0x72, 0x73, 0x74, 0x47, 0x61, 0x70, 0x52, 0x0d, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x42, 0x75, 0x72, 0x73, 0x74, 0x47, 0x61, 0x70, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x62, 0x75, 0x72, 0x73, 0x74, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, 0x61, 0x70, 0x22, 0xd6, 0x02, 0x0a, + 0x19, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x42, 0x75, 0x72, 0x73, 0x74, 0x47, 0x61, 0x70, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x42, 0x75, 0x72, 0x73, 0x74, 0x47, 0x61, 0x70, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x01, 0x48, 0x01, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x25, + 0x0a, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x01, 0x48, 0x02, 0x52, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, + 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x48, 0x03, 0x52, 0x0c, 0x6d, + 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x4f, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x45, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x09, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, + 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x10, 0x02, 0x12, 0x10, 0x0a, + 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x10, 0x03, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, + 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0xc1, 0x02, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x01, 0x52, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x0b, 0x72, + 0x78, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x78, 0x54, 0x78, 0x52, + 0x61, 0x74, 0x69, 0x6f, 0x52, 0x09, 0x72, 0x78, 0x54, 0x78, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, + 0x23, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, + 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x07, + 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x4d, 0x0a, 0x16, 0x70, 0x72, 0x65, 0x64, 0x65, + 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, + 0x6f, 0x77, 0x50, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x54, 0x61, 0x67, 0x73, + 0x52, 0x14, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x22, 0xc6, 0x01, 0x0a, 0x12, 0x46, 0x6c, + 0x6f, 0x77, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, + 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, + 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x04, 0x4d, 0x6f, 0x64, + 0x65, 0x22, 0x3b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x74, + 0x6f, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x10, 0x01, 0x12, 0x0f, 0x0a, + 0x0b, 0x63, 0x75, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x02, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x22, 0x3e, 0x0a, 0x12, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x72, 0x65, 0x64, 0x65, 0x66, + 0x69, 0x6e, 0x65, 0x64, 0x54, 0x61, 0x67, 0x73, 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x78, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x72, 0x78, 0x4e, + 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x78, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0xee, 0x01, 0x0a, 0x0d, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x78, 0x54, 0x78, 0x52, + 0x61, 0x74, 0x69, 0x6f, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, + 0x78, 0x54, 0x78, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x34, 0x0a, 0x08, 0x72, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x78, + 0x54, 0x78, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x52, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x07, + 0x72, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x1a, 0x3a, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x30, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x72, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x16, 0x0a, 0x14, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x78, 0x54, 0x78, 0x52, + 0x61, 0x74, 0x69, 0x6f, 0x52, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xf6, 0x01, 0x0a, 0x05, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x22, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x6e, 0x6b, + 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x45, 0x0a, 0x11, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, + 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x78, 0x52, + 0x61, 0x74, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x52, 0x0f, 0x72, 0x78, + 0x52, 0x61, 0x74, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x5a, 0x0a, + 0x18, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, + 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, + 0x77, 0x52, 0x16, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, + 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x22, 0x6f, 0x0a, 0x14, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x78, 0x52, + 0x61, 0x74, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x1b, 0x0a, 0x06, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x74, 0x68, 0x72, + 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, 0x09, + 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x68, 0x72, 0x65, + 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x22, 0x33, 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, + 0x6e, 0x6b, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x45, 0x0a, 0x1b, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, + 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x22, 0x83, 0x02, 0x0a, 0x0c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, + 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0xa9, 0x01, 0x0a, 0x04, + 0x54, 0x79, 0x70, 0x65, 0x22, 0xa0, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, + 0x0a, 0x09, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x01, 0x12, 0x0b, 0x0a, + 0x07, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x75, 0x70, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x10, 0x03, 0x12, 0x13, + 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, + 0x65, 0x10, 0x04, 0x12, 0x20, 0x0a, 0x1c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x78, 0x5f, 0x72, + 0x61, 0x74, 0x65, 0x5f, 0x61, 0x62, 0x6f, 0x76, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x10, 0x05, 0x12, 0x20, 0x0a, 0x1c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x78, + 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x68, 0x72, 0x65, + 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x10, 0x06, 0x22, 0x77, 0x0a, 0x11, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x06, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, + 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0c, 0x63, 0x61, 0x6c, 0x6c, 0x62, + 0x61, 0x63, 0x6b, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x0b, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x55, 0x72, 0x6c, 0x88, 0x01, 0x01, 0x42, + 0x0f, 0x0a, 0x0d, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x75, 0x72, 0x6c, + 0x22, 0xf7, 0x02, 0x0a, 0x04, 0x4c, 0x6c, 0x64, 0x70, 0x12, 0x33, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, + 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, 0x61, + 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x52, 0x09, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, + 0x64, 0x12, 0x28, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, + 0x74, 0x49, 0x64, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x0b, 0x73, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x53, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x0a, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x20, 0x0a, 0x09, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x68, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x16, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x15, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, + 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x6f, 0x6c, + 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, + 0x74, 0x69, 0x73, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, + 0x6c, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xbb, 0x01, 0x0a, 0x0e, 0x4c, + 0x6c, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x70, + 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, + 0x52, 0x08, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x30, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x26, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x0d, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x10, 0x01, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xa0, 0x03, 0x0a, 0x0d, 0x4c, 0x6c, 0x64, + 0x70, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x13, 0x6d, 0x61, 0x63, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, + 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x4d, 0x61, 0x63, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x11, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x75, 0x62, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x39, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x14, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, + 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x53, 0x75, + 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x69, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x5f, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x6d, + 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, + 0x70, 0x65, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, + 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, + 0x12, 0x11, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, + 0x65, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x19, + 0x0a, 0x17, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0x9e, 0x03, 0x0a, 0x0a, + 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x01, 0x52, 0x11, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, + 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x16, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x52, 0x14, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x74, 0x79, + 0x70, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0c, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x69, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x5f, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x17, 0x0a, 0x13, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, + 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, + 0x70, 0x65, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, + 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0xe6, 0x01, 0x0a, + 0x15, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x4d, 0x61, 0x63, 0x53, + 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, + 0x70, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x4d, 0x61, 0x63, 0x53, 0x75, 0x62, 0x54, 0x79, + 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x61, + 0x75, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x61, 0x75, 0x74, + 0x6f, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, + 0x36, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xf4, 0x01, 0x0a, 0x1c, 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, + 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, + 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, + 0x70, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x36, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, + 0x6f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, + 0x74, 0x6f, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xd8, 0x01, 0x0a, + 0x0e, 0x4c, 0x6c, 0x64, 0x70, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x3c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x4e, 0x61, 0x6d, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x61, + 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x1a, 0x36, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x09, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb8, 0x01, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x12, 0x17, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x00, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x04, 0x6b, 0x69, + 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x4b, 0x69, 0x6e, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, + 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x73, 0x1a, 0x3d, 0x0a, 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x22, 0x35, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x02, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6b, 0x69, + 0x6e, 0x64, 0x22, 0x25, 0x0a, 0x07, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, + 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x22, 0xab, 0x01, 0x0a, 0x0c, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, - 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, - 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, + 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x1a, 0x2c, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x22, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x09, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xb8, 0x01, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, 0x77, + 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x4a, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, + 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4e, 0x61, + 0x6d, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x05, 0x66, + 0x6c, 0x6f, 0x77, 0x73, 0x1a, 0x3c, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, + 0x0a, 0x04, 0x72, 0x61, 0x74, 0x65, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, + 0x10, 0x02, 0x22, 0x9e, 0x02, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x22, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x04, 0x70, + 0x6f, 0x72, 0x74, 0x12, 0x2e, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x12, 0x2b, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x52, 0x07, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, + 0x1a, 0x46, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x3c, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x01, 0x12, 0x0c, 0x0a, + 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x74, + 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0xe2, 0x01, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, + 0x74, 0x12, 0x37, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, + 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x6c, 0x69, + 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x04, 0x6c, 0x69, + 0x6e, 0x6b, 0x12, 0x2f, 0x0a, 0x07, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, + 0x6f, 0x72, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x07, 0x63, 0x61, 0x70, 0x74, + 0x75, 0x72, 0x65, 0x1a, 0x38, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2e, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x10, 0x01, + 0x12, 0x0b, 0x0a, 0x07, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xcf, 0x01, 0x0a, 0x0c, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x0d, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x46, + 0x6c, 0x6f, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x52, 0x0c, 0x66, 0x6c, 0x6f, + 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x1a, 0x34, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, + 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x10, 0x01, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x84, 0x03, 0x0a, 0x0d, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x3b, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x03, 0x61, 0x6c, 0x6c, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x6c, 0x6c, 0x52, 0x03, 0x61, + 0x6c, 0x6c, 0x12, 0x2d, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x12, 0x2a, 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x52, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x12, 0x27, 0x0a, + 0x03, 0x62, 0x67, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, + 0x70, 0x52, 0x03, 0x62, 0x67, 0x70, 0x12, 0x2a, 0x0a, 0x04, 0x69, 0x73, 0x69, 0x73, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x73, 0x69, 0x73, 0x52, 0x04, 0x69, 0x73, + 0x69, 0x73, 0x1a, 0x52, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x48, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x10, 0x01, 0x12, 0x09, + 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x61, 0x63, + 0x70, 0x10, 0x03, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x67, 0x70, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, + 0x69, 0x73, 0x69, 0x73, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0xa6, 0x01, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x4c, + 0x69, 0x6e, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x12, 0x38, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, + 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x32, 0x0a, 0x05, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, + 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0xaf, 0x01, 0x0a, 0x10, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x12, + 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x3b, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x61, 0x70, + 0x74, 0x75, 0x72, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x35, 0x0a, 0x05, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x74, 0x6f, 0x70, + 0x10, 0x02, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0xd6, 0x01, 0x0a, + 0x18, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x46, 0x6c, 0x6f, + 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x6c, 0x6f, + 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, + 0x6c, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x4c, 0x0a, + 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x43, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, - 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, - 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x22, 0x8f, 0x01, 0x0a, - 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x97, - 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x89, 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, - 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, - 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, - 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, + 0x09, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x74, + 0x6f, 0x70, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x70, 0x61, 0x75, 0x73, 0x65, 0x10, 0x03, 0x12, + 0x0a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x10, 0x04, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x10, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x6c, 0x6c, 0x12, 0x3b, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x6c, 0x6c, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x35, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x74, 0x6f, 0x70, 0x10, 0x02, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0xb2, 0x01, 0x0a, 0x12, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x88, 0x01, 0x01, 0x1a, 0x3d, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x34, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, + 0x61, 0x77, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, + 0x65, 0x10, 0x02, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x98, 0x02, + 0x0a, 0x11, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, + 0x61, 0x63, 0x70, 0x12, 0x3f, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x41, 0x64, 0x6d, 0x69, 0x6e, + 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x44, 0x0a, 0x0c, 0x6d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x73, + 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x1a, 0x3e, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x34, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x6d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x10, 0x02, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xc3, 0x01, 0x0a, 0x16, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x41, 0x64, + 0x6d, 0x69, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6c, + 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x41, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x4c, 0x61, 0x63, 0x70, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, + 0x1a, 0x32, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, + 0x77, 0x6e, 0x10, 0x02, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0xcf, + 0x01, 0x0a, 0x1c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, + 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x61, 0x67, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, + 0x01, 0x01, 0x1a, 0x32, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, + 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x22, 0xbd, 0x01, 0x0a, 0x10, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x50, 0x65, 0x65, 0x72, 0x73, + 0x52, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x1a, 0x2c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x22, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x70, 0x65, + 0x65, 0x72, 0x73, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0xb6, 0x01, 0x0a, 0x15, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x50, 0x65, 0x65, 0x72, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x65, + 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, + 0x70, 0x65, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x50, + 0x65, 0x65, 0x72, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x32, 0x0a, 0x05, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, + 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0xc8, 0x01, 0x0a, 0x11, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x73, 0x69, 0x73, 0x12, + 0x3f, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x49, 0x73, 0x69, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x37, 0x0a, 0x07, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x73, 0x69, 0x73, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, + 0x52, 0x07, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x2e, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x24, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0xc0, 0x01, 0x0a, 0x18, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x73, 0x69, 0x73, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, + 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x73, 0x69, 0x73, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x32, 0x0a, 0x05, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, + 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0xb9, 0x01, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x08, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x1a, 0x2f, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x25, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x64, 0x0a, 0x15, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, + 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x2f, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, + 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc3, 0x01, 0x0a, 0x0e, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x08, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x1a, 0x2f, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x25, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x9d, 0x02, 0x0a, 0x0e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x12, 0x3c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x2b, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x12, 0x2b, 0x0a, + 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x49, 0x70, 0x76, 0x36, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x12, 0x28, 0x0a, 0x03, 0x62, 0x67, + 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x52, + 0x03, 0x62, 0x67, 0x70, 0x1a, 0x3e, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x34, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, - 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x61, 0x75, 0x74, 0x6f, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9a, 0x01, 0x0a, 0x26, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xec, 0x03, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, + 0x01, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x62, + 0x67, 0x70, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x8a, 0x02, 0x0a, 0x16, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x33, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x52, + 0x04, 0x69, 0x70, 0x76, 0x34, 0x12, 0x33, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x49, 0x70, 0x76, 0x36, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x1a, 0x35, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, + 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, + 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xbf, 0x01, 0x0a, + 0x12, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, + 0x70, 0x76, 0x34, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xce, 0x03, 0x0a, 0x17, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, - 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, + 0x52, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x1a, 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x69, 0x6e, + 0x67, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xd7, + 0x01, 0x0a, 0x1a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x12, 0x48, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x04, 0x70, 0x69, 0x6e, 0x67, + 0x1a, 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x58, 0x0a, 0x16, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, + 0x6e, 0x67, 0x12, 0x3e, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, + 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x73, 0x22, 0x73, 0x0a, 0x1d, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x22, 0x6b, 0x0a, 0x1e, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x49, 0x0a, 0x09, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, + 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x73, 0x22, 0x9b, 0x02, 0x0a, 0x26, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, + 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1a, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x06, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x88, 0x01, + 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x32, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x73, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, + 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x02, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x22, 0xbf, 0x01, 0x0a, 0x12, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, + 0x76, 0x36, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x04, 0x70, + 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, + 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x1a, 0x2b, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x08, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0xd7, 0x01, 0x0a, 0x1a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, + 0x70, 0x76, 0x36, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x49, 0x70, 0x76, 0x36, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, + 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, + 0x52, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x1a, 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x69, 0x6e, + 0x67, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x58, + 0x0a, 0x16, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x3e, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, + 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x22, 0x73, 0x0a, 0x1d, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, + 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x63, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x73, + 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x64, 0x73, 0x74, + 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x64, 0x73, 0x74, + 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x22, 0x6b, 0x0a, + 0x1e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x12, + 0x49, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, + 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, + 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x22, 0x9b, 0x02, 0x0a, 0x26, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, 0x63, 0x4e, 0x61, + 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x54, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x37, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, + 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x06, 0x72, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x73, 0x75, + 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x66, 0x61, 0x69, + 0x6c, 0x65, 0x64, 0x10, 0x02, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xe6, 0x02, 0x0a, 0x11, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x12, 0x3f, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x46, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x4e, 0x6f, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x69, 0x0a, 0x19, 0x69, 0x6e, 0x69, 0x74, 0x69, + 0x61, 0x74, 0x65, 0x5f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, + 0x67, 0x70, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, + 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x17, 0x69, 0x6e, 0x69, 0x74, 0x69, + 0x61, 0x74, 0x65, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x1a, 0x52, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x48, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x69, 0x6e, 0x69, 0x74, 0x69, + 0x61, 0x74, 0x65, 0x5f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0xd8, 0x06, 0x0a, 0x1d, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, + 0x70, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x05, 0x63, 0x65, 0x61, 0x73, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x42, 0x67, 0x70, 0x43, 0x65, 0x61, 0x73, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, + 0x05, 0x63, 0x65, 0x61, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x42, 0x67, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x12, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4c, 0x0a, 0x12, 0x6f, 0x70, + 0x65, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x4f, 0x70, 0x65, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x10, 0x6f, 0x70, 0x65, 0x6e, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x52, 0x0a, 0x14, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4c, 0x0a, 0x12, + 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, + 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x48, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x72, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x52, 0x10, 0x68, 0x6f, 0x6c, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x72, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x12, 0x62, 0x0a, 0x1a, 0x66, 0x69, + 0x6e, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x63, 0x68, 0x69, + 0x6e, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x46, 0x69, + 0x6e, 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x17, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x31, + 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x43, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x1a, 0xbd, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xb2, 0x01, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x63, 0x65, 0x61, 0x73, 0x65, 0x10, + 0x01, 0x12, 0x18, 0x0a, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x68, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x6f, + 0x70, 0x65, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x04, 0x12, 0x16, 0x0a, + 0x12, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x5f, 0x65, 0x78, 0x70, 0x69, + 0x72, 0x65, 0x64, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, + 0x07, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x85, 0x01, 0x0a, + 0x28, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, + 0x67, 0x70, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, + 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x65, 0x65, + 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, + 0x65, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x88, + 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, + 0x65, 0x6c, 0x61, 0x79, 0x22, 0xef, 0x04, 0x0a, 0x0e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, 0x70, 0x6f, + 0x72, 0x74, 0x12, 0x2b, 0x0a, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x12, + 0x2e, 0x0a, 0x05, 0x62, 0x67, 0x70, 0x76, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x05, 0x62, 0x67, 0x70, 0x76, 0x34, 0x12, + 0x2e, 0x0a, 0x05, 0x62, 0x67, 0x70, 0x76, 0x36, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x05, 0x62, 0x67, 0x70, 0x76, 0x36, 0x12, + 0x2b, 0x0a, 0x04, 0x69, 0x73, 0x69, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, 0x69, 0x73, 0x69, 0x73, 0x12, 0x28, 0x0a, 0x03, + 0x6c, 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x52, 0x03, 0x6c, 0x61, 0x67, 0x12, 0x2b, 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, 0x6c, + 0x61, 0x63, 0x70, 0x12, 0x2b, 0x0a, 0x04, 0x6c, 0x6c, 0x64, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, 0x6c, 0x6c, 0x64, 0x70, + 0x12, 0x2b, 0x0a, 0x04, 0x72, 0x73, 0x76, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, 0x72, 0x73, 0x76, 0x70, 0x1a, 0x7c, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x72, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x08, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x66, 0x6c, + 0x6f, 0x77, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x62, 0x67, 0x70, 0x76, 0x34, 0x10, 0x03, 0x12, + 0x09, 0x0a, 0x05, 0x62, 0x67, 0x70, 0x76, 0x36, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x73, + 0x69, 0x73, 0x10, 0x05, 0x12, 0x07, 0x0a, 0x03, 0x6c, 0x61, 0x67, 0x10, 0x06, 0x12, 0x08, 0x0a, + 0x04, 0x6c, 0x61, 0x63, 0x70, 0x10, 0x07, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x6c, 0x64, 0x70, 0x10, + 0x08, 0x12, 0x08, 0x0a, 0x04, 0x72, 0x73, 0x76, 0x70, 0x10, 0x09, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xfa, 0x05, 0x0a, 0x0f, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x0c, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x52, 0x0b, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x32, 0x0a, + 0x0c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, 0x66, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x12, 0x35, 0x0a, 0x0d, 0x62, 0x67, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0c, 0x62, 0x67, 0x70, 0x76, + 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x35, 0x0a, 0x0d, 0x62, 0x67, 0x70, 0x76, + 0x36, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x52, 0x0c, 0x62, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, + 0x32, 0x0a, 0x0c, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, 0x69, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x12, 0x2f, 0x0a, 0x0b, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, + 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0a, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, 0x6c, 0x61, 0x63, + 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x6c, 0x6c, 0x64, 0x70, + 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, + 0x0b, 0x6c, 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x32, 0x0a, 0x0c, + 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0a, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x52, 0x0b, 0x72, 0x73, 0x76, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x1a, 0xc5, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xba, 0x01, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x62, 0x67, 0x70, + 0x76, 0x34, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, + 0x62, 0x67, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x04, 0x12, + 0x10, 0x0a, 0x0c, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, + 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x10, 0x07, 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x09, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0xe5, 0x02, 0x0a, 0x12, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, + 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, + 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, + 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, + 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, + 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xe2, 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, + 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xd2, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x0c, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x10, 0x01, 0x12, 0x0c, + 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, + 0x6c, 0x69, 0x6e, 0x6b, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, + 0x65, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, + 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, + 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x07, 0x12, + 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x08, 0x12, 0x12, 0x0a, + 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, + 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, + 0x61, 0x74, 0x65, 0x10, 0x0a, 0x12, 0x11, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, + 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x0b, 0x12, 0x11, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x0c, 0x22, 0x8b, 0x07, 0x0a, 0x0a, + 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, + 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x07, 0x63, 0x61, 0x70, 0x74, + 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, + 0x72, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x07, 0x63, 0x61, 0x70, 0x74, 0x75, + 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, + 0x74, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, + 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, + 0x73, 0x5f, 0x72, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x08, 0x66, 0x72, + 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x07, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x07, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, + 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x02, 0x48, 0x08, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, + 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x48, 0x09, 0x52, 0x0c, + 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x27, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0a, 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, + 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, 0x48, + 0x0b, 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x3e, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x0c, 0x52, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x88, 0x01, + 0x01, 0x1a, 0x31, 0x0a, 0x04, 0x4c, 0x69, 0x6e, 0x6b, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x90, 0x01, 0x0a, - 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x98, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, + 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, + 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x3c, 0x0a, 0x07, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x22, + 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, + 0x10, 0x02, 0x1a, 0x3d, 0x0a, 0x08, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x22, 0x31, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x65, 0x64, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x10, + 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, + 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, + 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, + 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, + 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x22, 0xdf, 0x02, 0x0a, 0x12, 0x46, 0x6c, + 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, + 0x4b, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x0e, + 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x52, 0x0d, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x1a, 0x97, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x22, 0x87, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, + 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, + 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x5f, 0x74, 0x78, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, + 0x78, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, + 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, + 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x07, 0x22, 0xa8, 0x03, 0x0a, 0x17, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x07, 0x69, 0x6e, 0x63, 0x6c, 0x75, + 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x69, 0x6e, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x13, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x50, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, + 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x12, 0x32, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x88, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x79, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, + 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x01, 0x12, 0x0d, 0x0a, + 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, + 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, + 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x06, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x42, 0x18, 0x0a, 0x16, + 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0x4f, 0x0a, 0x13, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x17, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x94, 0x06, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1c, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, + 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, + 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x08, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x08, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, + 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, + 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, + 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x05, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x06, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x07, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, + 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x48, 0x08, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, + 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, + 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x02, 0x48, 0x09, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, + 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x02, 0x48, 0x0a, 0x52, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x34, + 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x52, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, + 0x63, 0x79, 0x12, 0x3c, 0x0a, 0x0e, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x52, 0x0d, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x1a, 0x49, 0x0a, 0x08, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x22, 0x3d, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, + 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x70, 0x61, 0x75, 0x73, 0x65, 0x64, 0x10, 0x03, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x78, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, + 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, + 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, + 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, + 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, + 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x22, 0xf6, + 0x03, 0x0a, 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x12, 0x26, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x20, 0x0a, 0x09, 0x66, + 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, + 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, + 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x01, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x02, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x03, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x48, 0x04, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, + 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, + 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x02, 0x48, 0x05, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, + 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x02, 0x48, 0x06, 0x52, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x34, + 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x52, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, + 0x63, 0x79, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, + 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, + 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, + 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x22, 0x60, 0x0a, 0x0d, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe2, 0x03, 0x0a, 0x1b, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, - 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, - 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x01, 0x12, 0x2d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xd4, 0x01, 0x0a, 0x12, 0x46, 0x6c, + 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x68, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x03, 0x68, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x73, 0x74, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x03, 0x73, 0x74, 0x72, 0x88, 0x01, 0x01, + 0x1a, 0x33, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x68, 0x65, 0x78, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, + 0x73, 0x74, 0x72, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x68, 0x65, 0x78, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x74, 0x72, + 0x22, 0xa2, 0x01, 0x0a, 0x0f, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x12, 0x31, 0x0a, 0x12, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, + 0x48, 0x00, 0x52, 0x10, 0x66, 0x69, 0x72, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x61, 0x73, 0x74, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x01, 0x48, 0x01, 0x52, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x66, 0x69, 0x72, + 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73, 0x42, + 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x5f, 0x6e, 0x73, 0x22, 0xa8, 0x01, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x22, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x5f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x09, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, + 0x01, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x22, 0x0a, 0x0a, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x01, 0x48, 0x02, 0x52, 0x09, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x4e, 0x73, + 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, + 0x6e, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6e, + 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x73, + 0x22, 0x91, 0x04, 0x0a, 0x13, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x65, 0x65, 0x72, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x65, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, + 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x29, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, + 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0x8c, 0x03, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xfc, 0x02, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x11, 0x0a, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, + 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x10, + 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x64, 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, + 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x12, 0x1c, 0x0a, 0x18, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, + 0x61, 0x77, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x06, 0x12, 0x10, + 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x07, + 0x12, 0x14, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x64, 0x10, 0x08, 0x12, 0x0e, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, + 0x73, 0x65, 0x6e, 0x74, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0a, 0x12, 0x13, 0x0a, 0x0f, 0x6b, 0x65, + 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0b, 0x12, + 0x17, 0x0a, 0x13, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0c, 0x12, 0x16, 0x0a, 0x12, 0x6e, 0x6f, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0d, + 0x12, 0x1a, 0x0a, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0e, 0x12, 0x0d, 0x0a, 0x09, + 0x66, 0x73, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x10, 0x0f, 0x12, 0x17, 0x0a, 0x13, 0x65, + 0x6e, 0x64, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x10, 0x10, 0x22, 0x80, 0x0b, 0x0a, 0x0b, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, + 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x34, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0c, 0x73, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x73, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x10, 0x73, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, + 0x0a, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, + 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x10, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x73, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x2c, 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x0e, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, + 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, + 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x12, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x53, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, + 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x16, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, + 0x73, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x0b, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, 0x08, 0x52, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, + 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x09, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x2a, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0a, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x6e, + 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, + 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0b, 0x52, 0x0e, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, + 0x76, 0x65, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x13, 0x6b, 0x65, + 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0c, 0x52, 0x12, 0x6b, 0x65, 0x65, 0x70, 0x61, + 0x6c, 0x69, 0x76, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x32, 0x0a, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0d, 0x52, 0x11, + 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x0e, 0x52, 0x15, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x40, 0x0a, 0x09, 0x66, 0x73, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x46, 0x73, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x0f, 0x52, 0x08, 0x66, 0x73, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x32, 0x0a, 0x13, 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x69, 0x62, + 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x48, + 0x10, 0x52, 0x10, 0x65, 0x6e, 0x64, 0x4f, 0x66, 0x52, 0x69, 0x62, 0x52, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x39, 0x0a, 0x0c, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, + 0x02, 0x1a, 0x76, 0x0a, 0x08, 0x46, 0x73, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x6a, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x64, 0x6c, 0x65, 0x10, 0x01, + 0x12, 0x0b, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x10, 0x02, 0x12, 0x0a, 0x0a, + 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x6f, 0x70, 0x65, + 0x6e, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x6e, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x65, 0x73, 0x74, 0x61, + 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0x06, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, + 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, + 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x1b, + 0x0a, 0x19, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, + 0x77, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, + 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, + 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, + 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6b, 0x65, 0x65, 0x70, + 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, + 0x15, 0x0a, 0x13, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x73, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, + 0x16, 0x0a, 0x14, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x72, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x22, 0x91, 0x04, 0x0a, 0x13, 0x42, 0x67, 0x70, 0x76, + 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1d, 0x0a, 0x0a, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x65, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4c, + 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x36, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, + 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, + 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0x8c, 0x03, 0x0a, + 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xfc, 0x02, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x73, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x10, + 0x02, 0x12, 0x15, 0x0a, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, + 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x04, 0x12, 0x18, 0x0a, + 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, + 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, + 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x07, 0x12, 0x14, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x08, 0x12, 0x0e, 0x0a, + 0x0a, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x09, 0x12, 0x12, 0x0a, + 0x0e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, + 0x0a, 0x12, 0x13, 0x0a, 0x0f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, + 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0b, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, + 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0c, 0x12, + 0x16, 0x0a, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0d, 0x12, 0x1a, 0x0a, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x10, 0x0e, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x73, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x10, 0x0f, 0x12, 0x17, 0x0a, 0x13, 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x69, 0x62, + 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x10, 0x22, 0x80, 0x0b, 0x0a, 0x0b, + 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x01, 0x52, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, + 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, + 0x52, 0x10, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x70, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, + 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x03, 0x52, 0x10, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, + 0x69, 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x04, 0x52, 0x0e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, + 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, + 0x64, 0x72, 0x61, 0x77, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, + 0x52, 0x16, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, + 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x07, 0x52, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x53, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, 0x08, 0x52, + 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, + 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x09, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x48, + 0x0a, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, + 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0b, 0x52, 0x0e, + 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x34, 0x0a, 0x13, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0c, + 0x52, 0x12, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x0d, 0x52, 0x11, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x16, 0x6e, + 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0e, 0x52, 0x15, 0x6e, + 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x09, 0x66, 0x73, 0x6d, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x46, 0x73, 0x6d, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x0f, 0x52, 0x08, 0x66, 0x73, + 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x13, 0x65, 0x6e, 0x64, + 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x48, 0x10, 0x52, 0x10, 0x65, 0x6e, 0x64, 0x4f, 0x66, 0x52, + 0x69, 0x62, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x39, 0x0a, + 0x0c, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x29, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, + 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x76, 0x0a, 0x08, 0x46, 0x73, 0x6d, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x22, 0x6a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, + 0x04, 0x69, 0x64, 0x6c, 0x65, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x03, + 0x12, 0x0c, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0f, + 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x10, 0x05, 0x12, + 0x0f, 0x0a, 0x0b, 0x65, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0x06, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, + 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x17, 0x0a, 0x15, + 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, + 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, + 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, + 0x65, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6f, 0x70, 0x65, + 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, + 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6b, + 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x16, + 0x0a, 0x14, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x19, 0x0a, + 0x17, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x73, 0x6d, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x6f, + 0x66, 0x5f, 0x72, 0x69, 0x62, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x22, 0xac, + 0x06, 0x0a, 0x12, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, + 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, + 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xa5, 0x05, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x95, 0x05, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x12, 0x0a, 0x0e, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, + 0x70, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x10, 0x03, 0x12, 0x1c, + 0x0a, 0x18, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, + 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x20, 0x0a, 0x1c, + 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, + 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x05, 0x12, 0x21, + 0x0a, 0x1d, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, + 0x06, 0x12, 0x25, 0x0a, 0x21, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, + 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x07, 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x31, 0x5f, 0x70, + 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x08, 0x12, 0x14, 0x0a, 0x10, 0x6c, 0x31, + 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x09, + 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, + 0x10, 0x0a, 0x12, 0x14, 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0b, 0x12, 0x0f, 0x0a, 0x0b, 0x6c, 0x31, 0x5f, 0x6c, + 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0c, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x31, 0x5f, + 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0d, 0x12, 0x12, + 0x0a, 0x0e, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, 0x70, + 0x10, 0x0e, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x10, 0x0f, 0x12, 0x14, 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x10, 0x10, 0x12, 0x1c, 0x0a, + 0x18, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, + 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x11, 0x12, 0x20, 0x0a, 0x1c, 0x6c, + 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, + 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x12, 0x12, 0x21, 0x0a, + 0x1d, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x13, + 0x12, 0x25, 0x0a, 0x21, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x14, 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x32, 0x5f, 0x70, 0x73, + 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x15, 0x12, 0x14, 0x0a, 0x10, 0x6c, 0x32, 0x5f, + 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x16, 0x12, + 0x10, 0x0a, 0x0c, 0x6c, 0x32, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, + 0x17, 0x12, 0x14, 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x18, 0x12, 0x0f, 0x0a, 0x0b, 0x6c, 0x32, 0x5f, 0x6c, 0x73, + 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x19, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x6c, + 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x1a, 0x22, 0xcc, 0x0f, + 0x0a, 0x0a, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x0c, 0x6c, 0x31, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x55, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, + 0x6c, 0x61, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x0d, 0x6c, 0x31, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, + 0x18, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, + 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, + 0x03, 0x52, 0x15, 0x6c, 0x31, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x48, 0x65, + 0x6c, 0x6c, 0x6f, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x1c, 0x6c, + 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, + 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x04, 0x52, 0x19, 0x6c, 0x31, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, + 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x44, 0x0a, 0x1d, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, + 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x18, 0x6c, 0x31, 0x50, 0x6f, + 0x69, 0x6e, 0x74, 0x54, 0x6f, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, + 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x21, 0x6c, 0x31, 0x5f, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, + 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x04, 0x48, 0x06, 0x52, 0x1c, 0x6c, 0x31, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x6f, 0x50, + 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, + 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, + 0x07, 0x52, 0x0e, 0x6c, 0x31, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x53, 0x69, 0x7a, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x6c, 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, + 0x73, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, 0x08, 0x52, 0x0a, 0x6c, 0x31, + 0x50, 0x73, 0x6e, 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, + 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x09, 0x52, 0x0e, 0x6c, 0x31, 0x50, 0x73, 0x6e, 0x70, 0x52, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x6c, 0x31, + 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x0a, 0x52, 0x0a, 0x6c, 0x31, 0x43, 0x73, 0x6e, 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0b, 0x52, 0x0e, 0x6c, + 0x31, 0x43, 0x73, 0x6e, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x23, 0x0a, 0x0b, 0x6c, 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0c, 0x52, 0x09, 0x6c, 0x31, 0x4c, 0x73, 0x70, 0x53, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0d, + 0x52, 0x0d, 0x6c, 0x31, 0x4c, 0x73, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x5f, 0x75, 0x70, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x0e, 0x52, 0x0c, 0x6c, 0x32, + 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x55, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, + 0x0f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0f, 0x52, 0x0d, 0x6c, 0x32, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x18, 0x6c, 0x32, + 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, + 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x48, 0x10, 0x52, 0x15, + 0x6c, 0x32, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, + 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x1c, 0x6c, 0x32, 0x5f, 0x62, + 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x04, 0x48, 0x11, + 0x52, 0x19, 0x6c, 0x32, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x48, 0x65, 0x6c, + 0x6c, 0x6f, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x44, + 0x0a, 0x1d, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, + 0x13, 0x20, 0x01, 0x28, 0x04, 0x48, 0x12, 0x52, 0x18, 0x6c, 0x32, 0x50, 0x6f, 0x69, 0x6e, 0x74, + 0x54, 0x6f, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x53, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x21, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, + 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, 0x48, + 0x13, 0x52, 0x1c, 0x6c, 0x32, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x6f, 0x50, 0x6f, 0x69, 0x6e, + 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, + 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x04, 0x48, 0x14, 0x52, 0x0e, + 0x6c, 0x32, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, + 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x04, 0x48, 0x15, 0x52, 0x0a, 0x6c, 0x32, 0x50, 0x73, 0x6e, + 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x70, + 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, + 0x28, 0x04, 0x48, 0x16, 0x52, 0x0e, 0x6c, 0x32, 0x50, 0x73, 0x6e, 0x70, 0x52, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x6c, 0x32, 0x5f, 0x63, 0x73, + 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x18, 0x20, 0x01, 0x28, 0x04, 0x48, 0x17, 0x52, + 0x0a, 0x6c, 0x32, 0x43, 0x73, 0x6e, 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2d, + 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x04, 0x48, 0x18, 0x52, 0x0e, 0x6c, 0x32, 0x43, 0x73, + 0x6e, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, + 0x0b, 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x1a, 0x20, 0x01, + 0x28, 0x04, 0x48, 0x19, 0x52, 0x09, 0x6c, 0x32, 0x4c, 0x73, 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x48, 0x1a, 0x52, 0x0d, 0x6c, + 0x32, 0x4c, 0x73, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x31, 0x5f, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, 0x70, 0x42, 0x12, 0x0a, 0x10, 0x5f, + 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x42, + 0x1b, 0x0a, 0x19, 0x5f, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, + 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x1f, 0x0a, 0x1d, + 0x5f, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, + 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x20, 0x0a, + 0x1e, 0x5f, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, + 0x24, 0x0a, 0x22, 0x5f, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x31, 0x5f, 0x64, 0x61, 0x74, + 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, + 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, + 0x6c, 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, + 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x31, 0x5f, 0x6c, 0x73, + 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x31, 0x5f, 0x6c, 0x73, + 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6c, + 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, 0x70, 0x42, 0x12, 0x0a, + 0x10, 0x5f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, + 0x70, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, + 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x1f, + 0x0a, 0x1d, 0x5f, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, + 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, + 0x20, 0x0a, 0x1e, 0x5f, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, + 0x74, 0x42, 0x24, 0x0a, 0x22, 0x5f, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, + 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x32, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x0f, 0x0a, 0x0d, + 0x5f, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x13, 0x0a, + 0x11, 0x5f, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x32, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x73, + 0x65, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x32, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x32, 0x5f, + 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x32, 0x5f, + 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x22, 0xd4, 0x02, 0x0a, + 0x11, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, + 0x4a, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, + 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, + 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xd5, 0x01, 0x0a, 0x0b, + 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xc5, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, - 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, - 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0xe7, 0x03, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, - 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, - 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x75, 0x70, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x66, + 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, + 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x5f, 0x72, 0x78, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, + 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, + 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x08, 0x12, 0x11, 0x0a, + 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x09, + 0x12, 0x11, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, + 0x65, 0x10, 0x0a, 0x22, 0xa9, 0x05, 0x0a, 0x09, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6f, 0x70, + 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, + 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x01, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x2b, 0x0a, 0x0f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, + 0x5f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0d, 0x6d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x55, 0x70, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, + 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x03, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x04, 0x48, 0x04, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, + 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, + 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, + 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, + 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x48, 0x07, 0x52, 0x0c, 0x66, 0x72, 0x61, + 0x6d, 0x65, 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, + 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x02, 0x48, 0x08, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, + 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x48, 0x09, + 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x27, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, + 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0a, 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x37, 0x0a, 0x0a, 0x4f, 0x70, 0x65, + 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, + 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, + 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, + 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x75, 0x70, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, + 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, + 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x10, 0x0a, + 0x0e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x22, + 0xdf, 0x03, 0x0a, 0x12, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x67, 0x4e, 0x61, + 0x6d, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x15, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x12, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6f, 0x72, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, + 0x6d, 0x65, 0x73, 0x1a, 0xab, 0x02, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, + 0x6d, 0x65, 0x73, 0x22, 0x9b, 0x02, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x13, 0x0a, + 0x0f, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x72, 0x78, + 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x61, 0x63, 0x70, 0x5f, + 0x72, 0x78, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07, 0x74, 0x69, 0x6d, + 0x65, 0x6f, 0x75, 0x74, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, + 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x61, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x10, 0x07, 0x12, 0x0e, 0x0a, + 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x08, 0x12, 0x10, 0x0a, + 0x0c, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x09, 0x12, + 0x0d, 0x0a, 0x09, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x10, 0x0a, 0x12, 0x0c, + 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, + 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x10, 0x0c, 0x12, 0x0f, 0x0a, 0x0b, + 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x10, 0x0d, 0x12, 0x0c, 0x0a, + 0x08, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x10, 0x0e, 0x12, 0x14, 0x0a, 0x10, 0x70, + 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x10, + 0x0f, 0x22, 0xe4, 0x09, 0x0a, 0x0a, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x12, 0x1e, 0x0a, 0x08, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x6c, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x34, 0x0a, 0x14, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, + 0x52, 0x11, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x70, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, + 0x02, 0x52, 0x0d, 0x6c, 0x61, 0x63, 0x70, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x78, + 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x0d, + 0x6c, 0x61, 0x63, 0x70, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, + 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x72, 0x78, 0x5f, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x0c, 0x6c, 0x61, 0x63, 0x70, + 0x52, 0x78, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x08, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x41, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x05, 0x52, 0x08, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x07, 0x74, + 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x06, 0x52, 0x07, 0x74, 0x69, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x0f, 0x73, 0x79, 0x6e, 0x63, + 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x07, 0x52, 0x0f, 0x73, 0x79, 0x6e, 0x63, 0x68, + 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, + 0x0c, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x0c, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x09, 0x52, 0x0a, 0x63, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0c, 0x64, + 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x0a, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6e, + 0x67, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, + 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0b, 0x52, 0x08, 0x73, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x6b, + 0x65, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x0c, 0x52, 0x07, 0x6f, 0x70, 0x65, 0x72, + 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0d, 0x52, 0x09, 0x70, 0x61, + 0x72, 0x74, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x70, 0x61, + 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x0e, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, + 0x12, 0x1e, 0x0a, 0x08, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x0f, 0x52, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x75, 0x6d, 0x88, 0x01, 0x01, + 0x12, 0x2d, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x10, 0x52, 0x0e, 0x70, 0x61, + 0x72, 0x74, 0x6e, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x4e, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x1a, + 0x3c, 0x0a, 0x08, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x22, 0x30, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x01, + 0x12, 0x0b, 0x0a, 0x07, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x10, 0x02, 0x1a, 0x37, 0x0a, + 0x07, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x09, 0x0a, 0x05, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, + 0x6c, 0x6f, 0x6e, 0x67, 0x10, 0x02, 0x1a, 0x45, 0x0a, 0x0f, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, + 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x69, 0x6e, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x10, 0x01, 0x12, + 0x0c, 0x0a, 0x08, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x10, 0x02, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6c, + 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x70, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x61, 0x63, 0x70, + 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, + 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x72, 0x78, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x42, 0x0b, + 0x0a, 0x09, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x42, 0x0a, 0x0a, 0x08, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x79, 0x6e, 0x63, + 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, + 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x0d, 0x0a, 0x0b, + 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, + 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, + 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x61, 0x72, 0x74, + 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x6e, + 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x6e, 0x75, 0x6d, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x22, 0x95, 0x02, 0x0a, 0x12, 0x4c, 0x6c, 0x64, + 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1d, 0x0a, 0x0a, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6c, 0x64, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, + 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, + 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, + 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0x92, 0x01, 0x0a, 0x0b, + 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x82, 0x01, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, + 0x72, 0x78, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, + 0x78, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x5f, 0x72, 0x78, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, + 0x65, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, + 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x10, 0x05, 0x12, 0x10, + 0x0a, 0x0c, 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x06, + 0x22, 0x80, 0x03, 0x0a, 0x0a, 0x4c, 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, + 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, + 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x08, 0x66, + 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, + 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, + 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, + 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x72, 0x78, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x0d, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x66, 0x72, 0x61, + 0x6d, 0x65, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x04, 0x52, 0x0d, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x44, 0x69, 0x73, 0x63, 0x61, + 0x72, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x64, 0x69, + 0x73, 0x63, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x0b, 0x74, + 0x6c, 0x76, 0x73, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, + 0x0c, 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x0b, 0x74, 0x6c, 0x76, 0x73, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, + 0x77, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x66, + 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x72, 0x78, 0x42, 0x11, + 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, + 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, + 0x72, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, + 0x6f, 0x77, 0x6e, 0x22, 0xdc, 0x05, 0x0a, 0x12, 0x52, 0x73, 0x76, 0x70, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, + 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, + 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, + 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xd5, 0x04, 0x0a, 0x0b, 0x43, + 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xc5, 0x04, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, + 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, + 0x72, 0x65, 0x64, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x10, 0x02, 0x12, 0x16, + 0x0a, 0x12, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, + 0x73, 0x5f, 0x75, 0x70, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x73, 0x70, 0x5f, 0x66, 0x6c, + 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x61, + 0x74, 0x68, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, + 0x73, 0x5f, 0x72, 0x78, 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, + 0x74, 0x78, 0x10, 0x07, 0x12, 0x0c, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, 0x72, 0x78, + 0x10, 0x08, 0x12, 0x11, 0x0a, 0x0d, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, + 0x5f, 0x74, 0x78, 0x10, 0x09, 0x12, 0x11, 0x0a, 0x0d, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, + 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x0a, 0x12, 0x11, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x76, + 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x0b, 0x12, 0x11, 0x0a, 0x0d, 0x72, + 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x0c, 0x12, 0x12, + 0x0a, 0x0e, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, + 0x10, 0x0d, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x73, 0x5f, 0x72, 0x78, 0x10, 0x0e, 0x12, 0x12, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x0f, 0x12, 0x12, 0x0a, 0x0e, 0x72, 0x65, + 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x10, 0x12, 0x10, + 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x74, 0x78, 0x10, 0x11, + 0x12, 0x10, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x72, 0x78, + 0x10, 0x12, 0x12, 0x0d, 0x0a, 0x09, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x74, 0x78, 0x10, + 0x13, 0x12, 0x0d, 0x0a, 0x09, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x14, + 0x12, 0x0b, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x15, 0x12, 0x0b, 0x0a, + 0x07, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x16, 0x12, 0x0c, 0x0a, 0x08, 0x6e, 0x61, + 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x17, 0x12, 0x0c, 0x0a, 0x08, 0x6e, 0x61, 0x63, 0x6b, + 0x73, 0x5f, 0x72, 0x78, 0x10, 0x18, 0x12, 0x0f, 0x0a, 0x0b, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, + 0x73, 0x68, 0x5f, 0x74, 0x78, 0x10, 0x19, 0x12, 0x0f, 0x0a, 0x0b, 0x73, 0x72, 0x65, 0x66, 0x72, + 0x65, 0x73, 0x68, 0x5f, 0x72, 0x78, 0x10, 0x1a, 0x12, 0x0d, 0x0a, 0x09, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x5f, 0x74, 0x78, 0x10, 0x1b, 0x12, 0x0d, 0x0a, 0x09, 0x62, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x5f, 0x72, 0x78, 0x10, 0x1c, 0x12, 0x20, 0x0a, 0x1c, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, + 0x65, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x5f, 0x74, 0x78, 0x10, 0x1d, 0x12, 0x18, 0x0a, 0x14, 0x70, 0x61, 0x74, 0x68, + 0x5f, 0x72, 0x65, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x10, 0x1e, 0x22, 0xff, 0x0d, 0x0a, 0x0a, 0x52, 0x73, 0x76, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x1b, 0x69, 0x6e, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x18, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x32, 0x70, 0x4c, 0x73, 0x70, + 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x32, + 0x0a, 0x13, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, + 0x70, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x10, 0x69, + 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x32, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x55, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x30, 0x0a, 0x12, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, + 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, + 0x52, 0x0f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x32, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x55, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x73, 0x70, 0x5f, 0x66, 0x6c, 0x61, 0x70, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x0c, + 0x6c, 0x73, 0x70, 0x46, 0x6c, 0x61, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1e, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x05, 0x52, 0x07, 0x70, 0x61, 0x74, 0x68, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x1e, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x06, 0x52, 0x07, 0x70, 0x61, 0x74, 0x68, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x1e, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x07, 0x52, 0x07, 0x72, 0x65, 0x73, 0x76, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x1e, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x08, 0x52, 0x07, 0x72, 0x65, 0x73, 0x76, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x27, 0x0a, 0x0d, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x74, 0x68, 0x54, 0x65, + 0x61, 0x72, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x70, 0x61, 0x74, 0x68, + 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x48, + 0x0a, 0x52, 0x0b, 0x70, 0x61, 0x74, 0x68, 0x54, 0x65, 0x61, 0x72, 0x73, 0x52, 0x78, 0x88, 0x01, + 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, + 0x74, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0b, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x76, + 0x54, 0x65, 0x61, 0x72, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x72, 0x65, + 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x0c, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x76, 0x54, 0x65, 0x61, 0x72, 0x73, 0x52, 0x78, + 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0d, 0x52, 0x0c, 0x70, + 0x61, 0x74, 0x68, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, + 0x0a, 0x0e, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0e, 0x52, 0x0c, 0x70, 0x61, 0x74, 0x68, 0x45, 0x72, + 0x72, 0x6f, 0x72, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x72, 0x65, 0x73, + 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x10, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x0f, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x54, + 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x48, 0x10, 0x52, 0x0c, + 0x72, 0x65, 0x73, 0x76, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x25, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x74, 0x78, 0x18, + 0x12, 0x20, 0x01, 0x28, 0x04, 0x48, 0x11, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x76, 0x43, 0x6f, 0x6e, + 0x66, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x5f, 0x72, 0x78, 0x18, 0x13, 0x20, 0x01, 0x28, 0x04, 0x48, 0x12, 0x52, 0x0a, + 0x72, 0x65, 0x73, 0x76, 0x43, 0x6f, 0x6e, 0x66, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, + 0x09, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x14, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x13, 0x52, 0x08, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x20, 0x0a, 0x09, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x15, 0x20, 0x01, + 0x28, 0x04, 0x48, 0x14, 0x52, 0x08, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x52, 0x78, 0x88, 0x01, + 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x16, 0x20, 0x01, + 0x28, 0x04, 0x48, 0x15, 0x52, 0x06, 0x61, 0x63, 0x6b, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x1c, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x17, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x16, 0x52, 0x06, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, + 0x08, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x18, 0x20, 0x01, 0x28, 0x04, 0x48, + 0x17, 0x52, 0x07, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, + 0x08, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x19, 0x20, 0x01, 0x28, 0x04, 0x48, + 0x18, 0x52, 0x07, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, + 0x0b, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x74, 0x78, 0x18, 0x1a, 0x20, 0x01, + 0x28, 0x04, 0x48, 0x19, 0x52, 0x0a, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x78, + 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, + 0x72, 0x78, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x04, 0x48, 0x1a, 0x52, 0x0a, 0x73, 0x72, 0x65, 0x66, + 0x72, 0x65, 0x73, 0x68, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x78, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x04, 0x48, 0x1b, 0x52, 0x08, + 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x62, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x78, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x04, 0x48, 0x1c, + 0x52, 0x08, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, + 0x1c, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x78, 0x18, 0x1e, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x1d, 0x52, 0x19, 0x70, 0x61, 0x74, 0x68, 0x52, 0x65, 0x65, 0x76, 0x61, + 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x78, + 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x14, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x6f, 0x70, + 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x1e, 0x52, 0x13, 0x70, 0x61, 0x74, 0x68, 0x52, 0x65, 0x6f, 0x70, 0x74, 0x69, 0x6d, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x65, 0x64, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x42, 0x15, 0x0a, 0x13, + 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, + 0x5f, 0x75, 0x70, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x66, 0x6c, 0x61, 0x70, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x73, + 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, 0x72, 0x78, + 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, + 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x10, + 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, + 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x65, 0x73, + 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, + 0x72, 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0f, + 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x74, 0x78, 0x42, + 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x72, 0x78, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0a, 0x0a, 0x08, + 0x5f, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x63, 0x6b, + 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, + 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0e, + 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x74, 0x78, 0x42, 0x0e, + 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, 0x78, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x78, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x78, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x70, + 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x78, 0x42, 0x17, 0x0a, 0x15, 0x5f, + 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xea, 0x04, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x69, 0x67, + 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x34, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, + 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x12, 0x44, 0x0a, 0x0e, 0x69, 0x70, 0x76, + 0x36, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, + 0x73, 0x76, 0x36, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x52, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x12, + 0x3d, 0x0a, 0x0c, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x52, 0x0b, 0x62, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x12, 0x36, + 0x0a, 0x09, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x73, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x69, 0x73, + 0x69, 0x73, 0x4c, 0x73, 0x70, 0x73, 0x12, 0x45, 0x0a, 0x0e, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, + 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, + 0x72, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0d, + 0x6c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x12, 0x36, 0x0a, + 0x09, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x73, 0x76, + 0x70, 0x4c, 0x73, 0x70, 0x73, 0x1a, 0x8e, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x83, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x70, + 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, 0x01, 0x12, 0x12, + 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, + 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6c, 0x73, 0x70, + 0x73, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x65, 0x69, 0x67, + 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x72, 0x73, 0x76, 0x70, 0x5f, + 0x6c, 0x73, 0x70, 0x73, 0x10, 0x06, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0xc2, 0x04, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, + 0x62, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x34, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, + 0x12, 0x3c, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, + 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4e, + 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x36, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x0d, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x12, 0x38, + 0x0a, 0x0c, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x62, 0x67, 0x70, + 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x09, 0x69, 0x73, 0x69, 0x73, + 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x08, 0x69, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x73, 0x12, 0x3e, 0x0a, 0x0e, 0x6c, 0x6c, 0x64, + 0x70, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, + 0x68, 0x62, 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x6c, 0x6c, 0x64, 0x70, + 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x12, 0x2f, 0x0a, 0x09, 0x72, 0x73, 0x76, + 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x52, 0x08, 0x72, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x1a, 0x8e, 0x01, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x83, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9a, - 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xec, 0x03, 0x0a, 0x1d, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, - 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x4b, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, - 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, - 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x12, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, + 0x73, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x69, 0x67, + 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x62, 0x67, 0x70, 0x5f, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x73, 0x69, + 0x73, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x6c, 0x64, 0x70, + 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, + 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x10, 0x06, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x41, 0x0a, 0x18, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, + 0x6f, 0x72, 0x73, 0x76, 0x34, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x74, 0x68, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xd1, 0x01, 0x0a, 0x10, 0x4e, 0x65, + 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x34, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x28, + 0x0a, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, + 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x10, + 0x6c, 0x69, 0x6e, 0x6b, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x41, 0x0a, + 0x18, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x36, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x22, 0xd1, 0x01, 0x0a, 0x10, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x36, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, + 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, + 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x10, 0x6c, 0x69, 0x6e, 0x6b, 0x4c, 0x61, 0x79, 0x65, 0x72, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x65, + 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0f, 0x0a, 0x0d, + 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x15, 0x0a, + 0x13, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x22, 0x87, 0x03, 0x0a, 0x15, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, + 0x0a, 0x0e, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x67, 0x70, 0x50, 0x65, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0d, 0x70, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x51, 0x0a, 0x14, 0x69, 0x70, + 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, + 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x12, 0x69, 0x70, 0x76, 0x34, 0x55, + 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x51, 0x0a, + 0x14, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, + 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x12, 0x69, 0x70, + 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, + 0x1a, 0x4c, 0x0a, 0x0d, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x73, 0x22, 0x3b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x69, 0x70, + 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, + 0x69, 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x02, 0x22, 0xba, + 0x02, 0x0a, 0x1a, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, + 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, + 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, + 0x1c, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x06, 0x70, 0x61, 0x74, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, + 0x06, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, - 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, - 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, - 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x96, 0x01, 0x0a, 0x22, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, - 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd8, 0x03, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, - 0x76, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, - 0x76, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, - 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x12, 0x07, 0x0a, 0x03, 0x69, 0x67, 0x70, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x67, 0x70, + 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, + 0x10, 0x03, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x22, 0xba, 0x02, 0x0a, 0x1a, + 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, + 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x12, 0x48, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x01, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, + 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x06, 0x70, 0x61, 0x74, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x06, 0x4f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, + 0x03, 0x69, 0x67, 0x70, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x67, 0x70, 0x10, 0x02, 0x12, + 0x0e, 0x0a, 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x03, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x42, 0x0a, 0x0a, 0x08, + 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x22, 0xf5, 0x01, 0x0a, 0x10, 0x42, 0x67, 0x70, + 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, + 0x0d, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x62, 0x67, 0x70, 0x50, 0x65, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x15, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, + 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x13, 0x69, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, + 0x73, 0x74, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x12, 0x52, 0x0a, 0x15, 0x69, 0x70, + 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, + 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x13, 0x69, 0x70, 0x76, 0x36, 0x55, + 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x42, 0x10, + 0x0a, 0x0e, 0x5f, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0xd4, 0x05, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, + 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x26, + 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x12, 0x47, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x06, + 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x61, 0x74, + 0x68, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x06, 0x70, 0x61, + 0x74, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x5f, + 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, + 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x27, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, + 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, 0x4e, + 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x43, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, + 0x74, 0x69, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x52, 0x06, 0x61, 0x73, 0x50, + 0x61, 0x74, 0x68, 0x12, 0x2e, 0x0a, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x06, 0x52, + 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, + 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x16, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x45, 0x78, + 0x69, 0x74, 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x88, + 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x06, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, - 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x69, 0x67, 0x70, 0x10, 0x01, 0x12, 0x07, + 0x0a, 0x03, 0x65, 0x67, 0x70, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, + 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x03, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, + 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, + 0x68, 0x6f, 0x70, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x78, + 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, + 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, + 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x22, 0xd4, 0x05, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x50, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x69, + 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, + 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, + 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x03, 0x52, 0x06, 0x70, 0x61, 0x74, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x27, + 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x65, 0x78, + 0x74, 0x48, 0x6f, 0x70, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, + 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x39, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, + 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x07, 0x61, + 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, + 0x74, 0x68, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x2e, 0x0a, 0x10, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x06, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x6d, 0x75, + 0x6c, 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, + 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x16, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x45, 0x78, 0x69, 0x74, 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, + 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x06, 0x4f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, + 0x69, 0x67, 0x70, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x67, 0x70, 0x10, 0x02, 0x12, 0x0e, + 0x0a, 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x03, 0x42, 0x0f, + 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x42, 0x0a, 0x0a, 0x08, + 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, + 0x34, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, + 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x42, 0x13, 0x0a, 0x11, + 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x65, 0x78, 0x69, 0x74, + 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x22, 0xca, + 0x02, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x3a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x2e, 0x54, 0x79, 0x70, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x08, 0x61, 0x73, 0x43, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x8e, 0x01, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x85, + 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x6d, 0x61, 0x6e, 0x75, + 0x61, 0x6c, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x0d, + 0x0a, 0x09, 0x6e, 0x6f, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x02, 0x12, 0x11, 0x0a, + 0x0d, 0x6e, 0x6f, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x10, 0x03, + 0x12, 0x17, 0x0a, 0x13, 0x6e, 0x6f, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x75, + 0x62, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x6c, 0x6c, 0x67, + 0x72, 0x5f, 0x73, 0x74, 0x61, 0x6c, 0x65, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x6e, 0x6f, 0x5f, + 0x6c, 0x6c, 0x67, 0x72, 0x10, 0x06, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x4a, 0x0a, 0x0f, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x37, + 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, + 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x73, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xdf, 0x01, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, + 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x79, + 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x73, 0x1a, 0x5d, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x55, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x71, 0x10, 0x01, 0x12, 0x0a, + 0x0a, 0x06, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x74, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x73, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x71, 0x10, 0x03, 0x12, 0x11, 0x0a, + 0x0d, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x74, 0x10, 0x04, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x42, 0x0a, 0x14, 0x49, 0x73, 0x69, + 0x73, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x73, + 0x69, 0x73, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x7a, 0x0a, + 0x0d, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2d, + 0x0a, 0x10, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x69, 0x73, 0x69, 0x73, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, + 0x04, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x04, + 0x6c, 0x73, 0x70, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xf9, 0x03, 0x0a, 0x0c, 0x49, 0x73, + 0x69, 0x73, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x06, 0x6c, 0x73, + 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x6c, 0x73, + 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x08, 0x70, 0x64, 0x75, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, + 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x64, 0x75, 0x54, + 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x07, 0x70, 0x64, 0x75, 0x54, + 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, + 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4c, + 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x64, 0x75, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x09, + 0x70, 0x64, 0x75, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x05, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x05, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1c, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x06, 0x69, 0x73, 0x54, 0x79, 0x70, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x04, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x54, + 0x6c, 0x76, 0x73, 0x52, 0x04, 0x74, 0x6c, 0x76, 0x73, 0x1a, 0x3c, 0x0a, 0x07, 0x50, 0x64, 0x75, + 0x54, 0x79, 0x70, 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, + 0x07, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x31, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x6c, 0x65, + 0x76, 0x65, 0x6c, 0x5f, 0x32, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x73, 0x70, 0x5f, + 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x64, 0x75, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, + 0x15, 0x0a, 0x13, 0x5f, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x69, + 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, + 0x64, 0x75, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x69, 0x73, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xaa, 0x05, 0x0a, 0x0b, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, + 0x70, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x39, 0x0a, 0x0d, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, + 0x65, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, + 0x6d, 0x65, 0x52, 0x0c, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x54, 0x6c, 0x76, 0x73, + 0x12, 0x4f, 0x0a, 0x14, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x73, 0x52, 0x65, + 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x12, 0x69, + 0x73, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, + 0x73, 0x12, 0x68, 0x0a, 0x1d, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x69, 0x73, + 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, + 0x76, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, + 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x73, + 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, + 0x1a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x73, 0x52, 0x65, 0x61, 0x63, 0x68, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x6e, 0x0a, 0x1f, 0x69, + 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x61, + 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, + 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, + 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x1c, 0x69, + 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x6e, 0x0a, 0x1f, 0x69, + 0x70, 0x76, 0x34, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x61, + 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, + 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, + 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x1c, 0x69, + 0x70, 0x76, 0x34, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x6e, 0x0a, 0x1f, 0x65, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x72, 0x65, 0x61, + 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, + 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, + 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x1c, 0x65, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x61, 0x63, 0x68, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x55, 0x0a, 0x16, 0x69, + 0x70, 0x76, 0x36, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x36, 0x52, 0x65, 0x61, + 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x14, 0x69, 0x70, + 0x76, 0x36, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, + 0x76, 0x73, 0x22, 0x3f, 0x0a, 0x0f, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x48, 0x6f, 0x73, + 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, + 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x6e, + 0x61, 0x6d, 0x65, 0x22, 0x89, 0x03, 0x0a, 0x0c, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x46, + 0x6c, 0x61, 0x67, 0x73, 0x12, 0x2e, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x61, 0x69, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, + 0x52, 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x61, 0x69, + 0x72, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, + 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0d, + 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, + 0x12, 0x2e, 0x0a, 0x10, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x70, + 0x65, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0f, 0x61, 0x74, + 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x45, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x2a, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x6c, + 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x0d, 0x61, 0x74, 0x74, 0x61, + 0x63, 0x68, 0x65, 0x64, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, + 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x0f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, + 0x65, 0x64, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, + 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, + 0x52, 0x08, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, + 0x11, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x61, + 0x69, 0x72, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, + 0x65, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, + 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x13, 0x0a, + 0x11, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x22, + 0x4e, 0x0a, 0x18, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x73, 0x52, 0x65, 0x61, 0x63, + 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x12, 0x32, 0x0a, 0x09, 0x6e, + 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x6e, 0x65, 0x69, 0x67, + 0x68, 0x62, 0x6f, 0x72, 0x52, 0x09, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x22, + 0x56, 0x0a, 0x20, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x65, 0x64, 0x49, 0x73, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x54, 0x6c, 0x76, 0x12, 0x32, 0x0a, 0x09, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, + 0x73, 0x4c, 0x73, 0x70, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x52, 0x09, 0x6e, 0x65, + 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x22, 0x41, 0x0a, 0x0f, 0x49, 0x73, 0x69, 0x73, 0x4c, + 0x73, 0x70, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x09, 0x73, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x08, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x22, 0x56, 0x0a, 0x22, 0x49, 0x73, + 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, + 0x12, 0x30, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, + 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x65, 0x73, 0x22, 0x56, 0x0a, 0x22, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, + 0x34, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x12, 0x30, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x52, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x22, 0xa1, 0x04, 0x0a, 0x0f, 0x49, + 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x26, + 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x12, 0x62, 0x0a, 0x13, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x34, 0x50, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x12, 0x72, + 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0d, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, + 0x12, 0x4a, 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, + 0x4c, 0x73, 0x70, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x2e, 0x4f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x04, 0x52, 0x0a, 0x6f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x3f, 0x0a, 0x12, + 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, + 0x70, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, + 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x41, 0x0a, + 0x0a, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x02, + 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x0e, + 0x0a, 0x0c, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x5e, + 0x0a, 0x22, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, + 0x64, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x54, 0x6c, 0x76, 0x12, 0x38, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, + 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x56, 0x34, 0x50, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x52, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x22, 0xc6, + 0x03, 0x0a, 0x17, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x65, 0x64, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, + 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x6a, 0x0a, 0x13, 0x72, 0x65, 0x64, + 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, + 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x56, 0x34, 0x50, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x12, + 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, + 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, + 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x50, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x52, 0x10, + 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, + 0x1a, 0x3f, 0x0a, 0x12, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, + 0x02, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, + 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x4e, 0x0a, 0x1a, 0x49, 0x73, 0x69, 0x73, 0x4c, + 0x73, 0x70, 0x49, 0x70, 0x76, 0x36, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x54, 0x6c, 0x76, 0x12, 0x30, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, + 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x36, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x08, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x22, 0xd5, 0x04, 0x0a, 0x0f, 0x49, 0x73, 0x69, 0x73, + 0x4c, 0x73, 0x70, 0x56, 0x36, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x26, 0x0a, 0x0c, 0x69, + 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x62, 0x0a, 0x13, 0x72, 0x65, + 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, + 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x36, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x2e, 0x52, 0x65, + 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x12, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4a, + 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, + 0x70, 0x56, 0x36, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x04, 0x52, 0x0a, 0x6f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x11, 0x70, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, + 0x4c, 0x73, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x73, 0x52, 0x10, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x73, 0x1a, 0x3f, 0x0a, 0x12, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, + 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x41, 0x0a, 0x0a, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, + 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x65, + 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x02, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, + 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x64, 0x69, + 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, + 0x8e, 0x01, 0x0a, 0x17, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x06, 0x78, + 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x05, 0x78, + 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x5f, 0x66, 0x6c, 0x61, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x05, 0x72, 0x46, 0x6c, 0x61, 0x67, + 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x05, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x78, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, + 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, + 0x22, 0x6a, 0x0a, 0x19, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, + 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, + 0x0a, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x09, 0x6c, 0x6c, 0x64, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x13, + 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x6e, 0x65, 0x69, 0x67, 0x68, + 0x62, 0x6f, 0x72, 0x49, 0x64, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x22, 0xd9, 0x0a, 0x0a, + 0x12, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x6c, 0x6c, 0x64, 0x70, 0x4e, 0x61, + 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0a, 0x73, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x73, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x11, 0x73, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, + 0x22, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x09, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x0f, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, 0x69, + 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x54, + 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x04, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x73, + 0x73, 0x69, 0x73, 0x49, 0x64, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, + 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x05, 0x52, 0x0a, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x06, 0x52, 0x03, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x6c, 0x61, 0x73, + 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, + 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x15, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x08, 0x52, 0x03, + 0x74, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x09, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x0a, 0x52, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x54, 0x79, 0x70, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0b, + 0x52, 0x0f, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x0c, 0x52, 0x11, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0d, 0x52, 0x15, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, + 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, + 0x74, 0x6c, 0x76, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x4c, 0x56, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x6c, 0x76, 0x73, 0x12, + 0x3c, 0x0a, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, + 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, + 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x1a, 0xae, 0x01, + 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x54, 0x79, 0x70, 0x65, 0x22, + 0x9c, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x10, 0x01, 0x12, 0x13, 0x0a, + 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, 0x63, 0x6f, + 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x6d, 0x61, 0x63, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x10, 0x05, 0x12, 0x09, + 0x0a, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x10, 0x07, 0x1a, 0xaa, + 0x01, 0x0a, 0x0a, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x54, 0x79, 0x70, 0x65, 0x22, 0x9b, 0x01, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x02, + 0x12, 0x14, 0x0a, 0x10, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x69, 0x72, 0x63, 0x75, 0x69, + 0x74, 0x5f, 0x69, 0x64, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x10, 0x07, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, 0x69, 0x64, 0x42, + 0x12, 0x0a, 0x10, 0x5f, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, 0x69, 0x64, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, + 0x5f, 0x69, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x61, 0x67, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, + 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, + 0x74, 0x74, 0x6c, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, + 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x1a, 0x0a, 0x18, + 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x9f, 0x01, 0x0a, 0x12, 0x4c, 0x6c, 0x64, + 0x70, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x4c, 0x56, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x24, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, + 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6f, 0x75, 0x69, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x6f, 0x75, 0x69, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, + 0x6f, 0x75, 0x69, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x02, 0x52, 0x0a, 0x6f, 0x75, 0x69, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, + 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6f, 0x75, 0x69, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, + 0x75, 0x69, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0xb3, 0x03, 0x0a, 0x13, 0x4c, + 0x6c, 0x64, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x5a, 0x0a, 0x0f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x4e, 0x61, 0x6d, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x0e, 0x63, 0x61, 0x70, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, + 0x0a, 0x12, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x11, 0x63, 0x61, + 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x1a, 0xe0, 0x01, 0x0a, 0x0e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xcd, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x0e, 0x0a, 0x0a, 0x6d, 0x61, 0x63, 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x10, 0x01, 0x12, + 0x16, 0x0a, 0x12, 0x74, 0x77, 0x6f, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x5f, + 0x72, 0x65, 0x6c, 0x61, 0x79, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, + 0x74, 0x65, 0x72, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x64, 0x6f, 0x63, 0x73, 0x69, 0x73, 0x5f, + 0x63, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x10, 0x04, 0x12, 0x0a, + 0x0a, 0x06, 0x73, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x74, 0x65, + 0x6c, 0x65, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x10, 0x06, 0x12, 0x09, 0x0a, 0x05, 0x6f, 0x74, 0x68, + 0x65, 0x72, 0x10, 0x07, 0x12, 0x0a, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x10, 0x08, + 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x10, 0x09, 0x12, 0x10, 0x0a, 0x0c, + 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x10, 0x0a, 0x12, 0x15, + 0x0a, 0x11, 0x77, 0x6c, 0x61, 0x6e, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x10, 0x0b, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x63, 0x61, + 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x22, 0x42, 0x0a, 0x14, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x72, 0x73, 0x76, 0x70, + 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x73, 0x76, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x73, 0x22, 0x87, 0x01, 0x0a, 0x0d, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, + 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x10, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x0e, 0x72, 0x73, 0x76, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6c, 0x73, + 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, + 0x73, 0x76, 0x70, 0x49, 0x50, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x08, 0x69, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x73, + 0x76, 0x70, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x96, + 0x02, 0x0a, 0x10, 0x52, 0x73, 0x76, 0x70, 0x49, 0x50, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x34, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x12, + 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x03, 0x6c, 0x73, 0x70, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x03, 0x6c, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x04, 0x72, 0x72, + 0x6f, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, + 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x52, 0x72, 0x6f, 0x52, 0x04, 0x72, + 0x72, 0x6f, 0x73, 0x12, 0x27, 0x0a, 0x04, 0x65, 0x72, 0x6f, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, + 0x70, 0x76, 0x34, 0x45, 0x72, 0x6f, 0x52, 0x04, 0x65, 0x72, 0x6f, 0x73, 0x42, 0x11, 0x0a, 0x0f, + 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, + 0x16, 0x0a, 0x14, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x8c, 0x05, 0x0a, 0x0c, 0x52, 0x73, 0x76, 0x70, + 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x74, 0x75, 0x6e, 0x6e, + 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x74, + 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x6c, 0x73, + 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x6c, 0x73, + 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0b, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1e, + 0x0a, 0x08, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x03, 0x52, 0x07, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x49, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x20, + 0x0a, 0x09, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x04, 0x52, 0x08, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x4f, 0x75, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x50, 0x0a, 0x0e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, + 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x05, + 0x52, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x54, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, + 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, + 0x4c, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x61, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x06, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x61, 0x70, 0x52, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x75, 0x70, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x06, 0x75, 0x70, 0x54, + 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x3a, 0x0a, 0x0d, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, + 0x10, 0x02, 0x1a, 0x59, 0x0a, 0x0e, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x61, 0x70, 0x52, 0x65, + 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x47, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, + 0x09, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, + 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x70, + 0x61, 0x74, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x10, 0x03, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x5f, 0x69, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x6f, + 0x75, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, + 0x6c, 0x61, 0x70, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x75, + 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x7a, 0x0a, 0x0e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, + 0x70, 0x49, 0x70, 0x76, 0x34, 0x52, 0x72, 0x6f, 0x12, 0x1d, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x22, 0x85, 0x02, 0x0a, 0x0e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, + 0x76, 0x34, 0x45, 0x72, 0x6f, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, + 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x61, 0x73, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x03, 0x61, 0x73, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, + 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x45, 0x72, 0x6f, 0x2e, 0x54, 0x79, 0x70, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, + 0x01, 0x1a, 0x6b, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x63, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, + 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x61, 0x73, 0x6e, 0x10, 0x03, 0x12, + 0x08, 0x0a, 0x04, 0x61, 0x73, 0x6e, 0x34, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x10, 0x05, 0x12, 0x18, 0x0a, 0x14, 0x75, 0x6e, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x10, 0x06, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x61, 0x73, + 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x40, 0x0a, 0x0e, 0x43, 0x61, + 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x08, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x8b, 0x01, 0x0a, + 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x1f, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x22, 0xf5, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x40, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, - 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x94, - 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfa, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, - 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, - 0x6f, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, - 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, - 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, - 0x74, 0x6f, 0x22, 0xfa, 0x02, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x54, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, - 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, - 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, - 0x87, 0x01, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x1b, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb5, 0x03, 0x0a, 0x12, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, - 0x72, 0x63, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, - 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, - 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, - 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, - 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x22, 0x87, 0x01, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8f, 0x01, - 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0xb5, 0x03, 0x0a, 0x12, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9f, 0x01, 0x0a, 0x31, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x70, 0x69, - 0x65, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xd2, 0x03, 0x0a, 0x2a, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, - 0x70, 0x69, 0x65, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x58, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x43, - 0x6f, 0x70, 0x69, 0x65, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x43, - 0x6f, 0x70, 0x69, 0x65, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x54, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x70, 0x69, 0x65, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, + 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc9, 0x03, 0x0a, + 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, + 0x74, 0x53, 0x72, 0x63, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x40, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, + 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, + 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x93, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, + 0x01, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, + 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, + 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, - 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa0, - 0x01, 0x0a, 0x32, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, - 0x79, 0x70, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, + 0x74, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, + 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x22, 0x90, + 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, + 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, @@ -103038,260 +106325,38 @@ var file_otg_proto_rawDesc = []byte{ 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0xd6, 0x03, 0x0a, 0x2b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x12, 0x59, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x3c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x55, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x55, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, - 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x56, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa1, 0x01, 0x0a, 0x33, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xda, - 0x03, 0x0a, 0x2c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, - 0x79, 0x70, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, - 0x5a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x3d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x56, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x38, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x56, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, - 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x56, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8f, 0x01, 0x0a, 0x21, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, - 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x97, 0x01, - 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xdd, 0x03, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, - 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x52, 0x61, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, - 0x68, 0x62, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc9, 0x03, 0x0a, 0x16, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, - 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, - 0x50, 0x68, 0x62, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x40, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x12, 0x40, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, - 0x62, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, - 0x63, 0x70, 0x50, 0x68, 0x62, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, - 0x63, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc9, 0x03, 0x0a, 0x16, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, - 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, - 0x45, 0x63, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x40, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, + 0x74, 0x22, 0x98, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, + 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe2, 0x03, 0x0a, + 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x12, 0x49, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, + 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, + 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x12, 0x40, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, - 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, - 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, - 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, - 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, - 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x25, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, - 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe7, 0x03, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, - 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, - 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, - 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, - 0x64, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x4d, + 0x74, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, + 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, + 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, @@ -103301,7 +106366,7 @@ var file_otg_proto_rawDesc = []byte{ 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x75, + 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, @@ -103310,7 +106375,7 @@ var file_otg_proto_rawDesc = []byte{ 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x65, 0x74, 0x72, + 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, @@ -103319,10 +106384,10 @@ var file_otg_proto_rawDesc = []byte{ 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xce, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, - 0x6c, 0x61, 0x79, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, @@ -103330,16 +106395,16 @@ var file_otg_proto_rawDesc = []byte{ 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x43, 0x6f, + 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, - 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, @@ -103347,48 +106412,229 @@ var file_otg_proto_rawDesc = []byte{ 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, - 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, - 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe7, 0x03, 0x0a, 0x1c, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, - 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, - 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x2e, 0x43, 0x68, 0x6f, + 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x87, 0x01, 0x0a, 0x19, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb5, 0x03, 0x0a, 0x12, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x12, 0x40, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, + 0x6e, 0x43, 0x66, 0x69, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x3c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3c, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, + 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x86, 0x01, 0x0a, + 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, + 0x49, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb0, 0x03, 0x0a, 0x11, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x3f, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, + 0x61, 0x6e, 0x49, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x3b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3b, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x88, 0x01, 0x0a, 0x1a, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, + 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xba, 0x03, 0x0a, 0x13, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x12, + 0x41, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, + 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, + 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, + 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x92, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc4, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, + 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, - 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, + 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, + 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, + 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8e, 0x01, + 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, + 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x96, + 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, + 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd8, 0x03, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x64, 0x30, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x64, 0x30, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, + 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, @@ -103397,107 +106643,204 @@ var file_otg_proto_rawDesc = []byte{ 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9a, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, - 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x22, 0xec, 0x03, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, - 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x75, 0x65, 0x22, 0x88, 0x01, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, + 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x90, 0x01, + 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, + 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x22, 0xe6, 0x03, 0x0a, 0x13, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x12, 0x41, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, + 0x6e, 0x69, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, + 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, + 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, + 0x6e, 0x56, 0x6e, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, + 0x56, 0x6e, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, + 0x6e, 0x56, 0x6e, 0x69, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x96, 0x01, 0x0a, 0x22, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0xd8, 0x03, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, + 0x31, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, + 0x31, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, + 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8b, + 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, + 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0xc9, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, - 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, - 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, - 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, - 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, - 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x97, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, - 0x74, 0x61, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0xdd, 0x03, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x12, 0x48, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, - 0x65, 0x74, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x90, + 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x98, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8e, 0x04, 0x0a, + 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x49, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, - 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, - 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, + 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, + 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, + 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, + 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x22, 0x8f, 0x01, + 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, @@ -103505,8 +106848,60 @@ var file_otg_proto_rawDesc = []byte{ 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x95, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, + 0x97, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x89, 0x04, 0x0a, 0x1a, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, + 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, + 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x44, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, + 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9a, 0x01, 0x0a, 0x26, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, @@ -103514,75 +106909,77 @@ var file_otg_proto_rawDesc = []byte{ 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd3, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, - 0x75, 0x73, 0x65, 0x64, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, - 0x73, 0x65, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x42, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, - 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, - 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, - 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8b, 0x01, - 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, - 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, - 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x1f, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, - 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, - 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0xc9, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xec, 0x03, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xce, 0x03, 0x0a, + 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, @@ -103592,7 +106989,7 @@ var file_otg_proto_rawDesc = []byte{ 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, + 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, @@ -103601,7 +106998,7 @@ var file_otg_proto_rawDesc = []byte{ 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x98, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, @@ -103610,11 +107007,11 @@ var file_otg_proto_rawDesc = []byte{ 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe2, 0x03, 0x0a, 0x1b, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, - 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x49, 0x0a, 0x06, 0x63, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, + 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x2e, 0x43, 0x68, + 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, @@ -103622,16 +107019,16 @@ var file_otg_proto_rawDesc = []byte{ 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, + 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x65, + 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, @@ -103640,56 +107037,361 @@ var file_otg_proto_rawDesc = []byte{ 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0x95, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd3, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x22, 0xe7, 0x03, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x42, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, - 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, + 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, + 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x9a, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xec, 0x03, 0x0a, + 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x4b, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x20, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, + 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x96, 0x01, 0x0a, + 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd8, 0x03, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, + 0x69, 0x76, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, + 0x69, 0x76, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, + 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, + 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x94, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfa, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, + 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, + 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, + 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, + 0x75, 0x74, 0x6f, 0x22, 0xfa, 0x02, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x54, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, + 0x64, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x22, 0x87, 0x01, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x1b, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, + 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb5, 0x03, 0x0a, + 0x12, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x53, 0x72, 0x63, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x34, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, + 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, + 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x87, 0x01, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8f, + 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x34, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x22, 0xb5, 0x03, 0x0a, 0x12, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, - 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x91, - 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, + 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9f, 0x01, 0x0a, 0x31, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x70, + 0x69, 0x65, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xd2, 0x03, 0x0a, 0x2a, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x43, + 0x6f, 0x70, 0x69, 0x65, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x58, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, + 0x43, 0x6f, 0x70, 0x69, 0x65, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, + 0x43, 0x6f, 0x70, 0x69, 0x65, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x54, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x36, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x70, 0x69, 0x65, 0x64, 0x46, 0x6c, 0x61, 0x67, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0xa0, 0x01, 0x0a, 0x32, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x54, 0x79, 0x70, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, @@ -103697,158 +107399,87 @@ var file_otg_proto_rawDesc = []byte{ 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x93, - 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, - 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, - 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, - 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, - 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, - 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, - 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x6e, 0x74, 0x22, 0xd6, 0x03, 0x0a, 0x2b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x12, 0x59, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x3c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x55, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x55, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, + 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x56, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x61, 0x75, 0x74, 0x6f, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x96, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x84, - 0x04, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, - 0x01, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, - 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xce, 0x03, 0x0a, 0x17, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, - 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, - 0x69, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, + 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa1, 0x01, 0x0a, 0x33, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0xda, 0x03, 0x0a, 0x2c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x54, 0x79, 0x70, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x5a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x3d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x56, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x56, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, + 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x87, 0x01, 0x0a, - 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, - 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, + 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8f, 0x01, 0x0a, + 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x97, + 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, @@ -103856,90 +107487,142 @@ var file_otg_proto_rawDesc = []byte{ 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb5, 0x03, 0x0a, 0x12, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x12, - 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xdd, 0x03, 0x0a, 0x1a, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x43, 0x6f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x41, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, - 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0x87, 0x01, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x1b, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, - 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, + 0x50, 0x68, 0x62, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, + 0x62, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb5, 0x03, 0x0a, - 0x12, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, - 0x44, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x36, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, - 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, - 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, - 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc9, 0x03, 0x0a, + 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, + 0x70, 0x50, 0x68, 0x62, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x40, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, + 0x68, 0x62, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, + 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, + 0x45, 0x63, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, + 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc9, 0x03, 0x0a, + 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, + 0x70, 0x45, 0x63, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x40, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, + 0x63, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, + 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, + 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, + 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, @@ -103947,46 +107630,48 @@ var file_otg_proto_rawDesc = []byte{ 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc9, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x44, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x40, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, - 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, - 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe7, 0x03, 0x0a, 0x1c, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, + 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, + 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, + 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x94, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, @@ -103994,129 +107679,128 @@ var file_otg_proto_rawDesc = []byte{ 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc9, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x53, 0x72, 0x63, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x40, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, - 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, - 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xce, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, + 0x65, 0x6c, 0x61, 0x79, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, + 0x61, 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, + 0x61, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, + 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, + 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, + 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x99, 0x01, + 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe7, 0x03, 0x0a, 0x1c, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, + 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, + 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, + 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe7, 0x03, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, - 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x95, - 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, - 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, - 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9d, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfb, 0x03, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x4e, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, - 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, - 0x64, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, - 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, - 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, - 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9a, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, + 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xec, 0x03, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, + 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, @@ -104124,9 +107808,57 @@ var file_otg_proto_rawDesc = []byte{ 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x22, 0x99, 0x01, 0x0a, 0x2b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x75, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, + 0x61, 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x97, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, + 0x65, 0x74, 0x61, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x22, 0xdd, 0x03, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x12, + 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, + 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, @@ -104134,193 +107866,37 @@ var file_otg_proto_rawDesc = []byte{ 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0xa1, 0x01, 0x0a, 0x2d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8f, 0x04, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x52, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x53, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, 0x01, 0x0a, - 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf1, 0x03, 0x0a, 0x1e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x12, 0x4c, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x30, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, - 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, - 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x93, - 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, - 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0xf1, 0x03, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x31, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, 0x01, 0x0a, - 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf1, 0x03, 0x0a, 0x1e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x12, 0x4c, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x32, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, - 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x4d, 0x65, 0x74, 0x72, + 0x22, 0x95, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd3, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, + 0x6e, 0x75, 0x73, 0x65, 0x64, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, + 0x75, 0x73, 0x65, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x42, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, + 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, + 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, @@ -104328,19 +107904,18 @@ var file_otg_proto_rawDesc = []byte{ 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x93, - 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, - 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x33, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8b, + 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, + 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, @@ -104348,402 +107923,1475 @@ var file_otg_proto_rawDesc = []byte{ 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0xf1, 0x03, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x33, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x74, 0x68, 0x22, 0xc9, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x43, 0x6f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x90, + 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x98, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe2, 0x03, 0x0a, + 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, + 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x49, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, + 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x95, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd3, 0x03, 0x0a, 0x18, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, + 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x12, 0x42, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, + 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, + 0x93, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x96, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, + 0x84, 0x04, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x47, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, + 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, + 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, + 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xce, 0x03, 0x0a, + 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, + 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, + 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, + 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, + 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x87, 0x01, + 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x36, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb5, 0x03, 0x0a, 0x12, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, + 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, + 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x41, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0x87, 0x01, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x1b, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, + 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xb5, 0x03, + 0x0a, 0x12, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x36, 0x44, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x36, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, + 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, + 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc9, 0x03, 0x0a, 0x16, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x44, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, + 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x40, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x40, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc9, 0x03, 0x0a, 0x16, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x53, 0x72, 0x63, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, + 0x63, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x40, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x40, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x25, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe7, 0x03, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, + 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, + 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9d, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfb, 0x03, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x4e, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, + 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, + 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, + 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x99, 0x01, 0x0a, 0x2b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0xa1, 0x01, 0x0a, 0x2d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8f, 0x04, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x52, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, + 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, + 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x53, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, + 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, 0x01, + 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf1, 0x03, 0x0a, 0x1e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x12, 0x4c, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x30, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, + 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x33, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0xf1, 0x03, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, 0x01, 0x0a, - 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf1, 0x03, 0x0a, 0x1e, 0x50, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, + 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, 0x01, + 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf1, 0x03, 0x0a, 0x1e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x12, 0x4c, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x32, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x12, 0x4c, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x34, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x73, 0x33, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, + 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0xf1, 0x03, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, - 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, - 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x93, - 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, - 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x35, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0xf1, 0x03, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x35, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x6c, 0x61, 0x73, 0x73, 0x33, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, + 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, 0x01, + 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf1, 0x03, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x35, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, 0x01, 0x0a, - 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf1, 0x03, 0x0a, 0x1e, 0x50, + 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x12, 0x4c, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x34, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x34, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x12, 0x4c, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x36, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x73, 0x35, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, + 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0xf1, 0x03, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, - 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, - 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x93, - 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, - 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x37, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0xf1, 0x03, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x37, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x6c, 0x61, 0x73, 0x73, 0x35, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, + 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, 0x01, + 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf1, 0x03, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x37, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x98, 0x01, 0x0a, 0x24, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe2, 0x03, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x44, 0x73, 0x74, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, - 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x98, 0x01, 0x0a, - 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, - 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe2, 0x03, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, - 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, - 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, - 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, - 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x96, 0x01, 0x0a, - 0x28, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, - 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x12, 0x4c, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x36, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x36, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, + 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x37, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9e, 0x01, 0x0a, 0x2a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x80, 0x04, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4f, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, - 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, + 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0xf1, 0x03, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x37, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x98, 0x01, 0x0a, 0x24, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe2, 0x03, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, + 0x73, 0x65, 0x44, 0x73, 0x74, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, + 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, + 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x98, 0x01, + 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe2, 0x03, 0x0a, 0x1b, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x50, 0x0a, 0x0b, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, - 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9a, 0x01, 0x0a, 0x2c, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, - 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, + 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, + 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x96, 0x01, + 0x0a, 0x28, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa2, 0x01, 0x0a, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9e, 0x01, 0x0a, 0x2a, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x80, 0x04, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4f, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, + 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4b, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x50, 0x0a, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, + 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9a, 0x01, 0x0a, 0x2c, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, + 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa2, 0x01, 0x0a, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, + 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x94, 0x04, 0x0a, + 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x53, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, + 0x64, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4f, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x4f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x54, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, + 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0xe7, 0x03, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, + 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, + 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8a, 0x01, + 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, + 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x1e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, + 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, + 0xc4, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, + 0x63, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x12, 0x3f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, + 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, + 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc4, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, + 0x72, 0x74, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x1d, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, + 0x71, 0x4e, 0x75, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, + 0xbf, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, + 0x4e, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, + 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x91, 0x01, + 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, + 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x22, 0xbf, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, + 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, + 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, @@ -104751,82 +109399,74 @@ var file_otg_proto_rawDesc = []byte{ 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x94, 0x04, 0x0a, 0x25, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, - 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, - 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x53, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, - 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd3, 0x03, 0x0a, 0x18, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, + 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, + 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, + 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0x88, 0x01, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, + 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, + 0x63, 0x6e, 0x4e, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, + 0xba, 0x03, 0x0a, 0x13, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, + 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4f, 0x0a, + 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4f, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, - 0x54, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, - 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0xe7, 0x03, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, @@ -104834,92 +109474,45 @@ var file_otg_proto_rawDesc = []byte{ 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8a, 0x01, 0x0a, - 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, - 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x1e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, - 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc4, - 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, - 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, - 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x3f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x12, 0x3f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, - 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc4, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, - 0x74, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, - 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, + 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x89, 0x01, 0x0a, + 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, + 0x63, 0x6e, 0x43, 0x77, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, + 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xbf, 0x03, 0x0a, + 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, + 0x63, 0x6e, 0x43, 0x77, 0x72, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, @@ -104927,64 +109520,18 @@ var file_otg_proto_rawDesc = []byte{ 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x89, - 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, - 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x1d, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, - 0x4e, 0x75, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xbf, - 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, - 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, - 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3e, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3e, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, - 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, - 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, - 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, - 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8a, + 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, + 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x1e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, + 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, @@ -104992,120 +109539,119 @@ var file_otg_proto_rawDesc = []byte{ 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x22, 0xbf, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, - 0x6b, 0x4e, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd3, 0x03, 0x0a, 0x18, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, - 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, - 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x22, 0xc4, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, + 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, - 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x0b, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, - 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0x88, 0x01, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, - 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, - 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x1c, + 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, + 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, + 0x68, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, - 0x6e, 0x4e, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xba, - 0x03, 0x0a, 0x13, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, - 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xbf, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, + 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, + 0x74, 0x6c, 0x55, 0x72, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, + 0x74, 0x6c, 0x55, 0x72, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, + 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, + 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xbf, 0x03, 0x0a, 0x14, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, + 0x63, 0x6b, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, + 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, + 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x0b, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, @@ -105114,8 +109660,8 @@ var file_otg_proto_rawDesc = []byte{ 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x1b, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, - 0x6e, 0x43, 0x77, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, + 0x6c, 0x50, 0x73, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, @@ -105123,7 +109669,7 @@ var file_otg_proto_rawDesc = []byte{ 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, @@ -105132,10 +109678,10 @@ var file_otg_proto_rawDesc = []byte{ 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xbf, 0x03, 0x0a, 0x14, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, - 0x6e, 0x43, 0x77, 0x72, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, + 0x6c, 0x50, 0x73, 0x68, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x2e, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, @@ -105143,15 +109689,15 @@ var file_otg_proto_rawDesc = []byte{ 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, @@ -105159,18 +109705,64 @@ var file_otg_proto_rawDesc = []byte{ 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8a, 0x01, - 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, - 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x1e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, - 0x45, 0x63, 0x68, 0x6f, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, + 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x89, 0x01, + 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, + 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x1d, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, + 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xbf, 0x03, + 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, + 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, + 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3e, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x1d, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, + 0x6c, 0x53, 0x79, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, @@ -105178,36 +109770,128 @@ var file_otg_proto_rawDesc = []byte{ 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0xc4, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, - 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0xbf, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, + 0x53, 0x79, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, + 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x91, 0x01, + 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, + 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x22, 0xbf, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, + 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x3f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, - 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, - 0x45, 0x63, 0x68, 0x6f, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x43, + 0x73, 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, + 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x91, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0xbf, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x42, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, + 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, @@ -105215,174 +109899,36 @@ var file_otg_proto_rawDesc = []byte{ 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xbf, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x12, - 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, - 0x6c, 0x55, 0x72, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, - 0x6c, 0x55, 0x72, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, - 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, - 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, - 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xbf, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, - 0x6b, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, - 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, - 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, - 0x50, 0x73, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xbf, 0x03, 0x0a, 0x14, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, - 0x50, 0x73, 0x68, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, - 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x89, 0x01, 0x0a, - 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, - 0x74, 0x6c, 0x52, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, - 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xbf, 0x03, 0x0a, - 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, - 0x74, 0x6c, 0x52, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, + 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc4, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, + 0x74, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, + 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, + 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, @@ -105390,64 +109936,18 @@ var file_otg_proto_rawDesc = []byte{ 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x89, - 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, - 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x1d, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, - 0x53, 0x79, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xbf, - 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, - 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, - 0x79, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3e, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3e, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, - 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, - 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, - 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, - 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8a, + 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, + 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x1e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, + 0x74, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, @@ -105455,26 +109955,145 @@ var file_otg_proto_rawDesc = []byte{ 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x22, 0xbf, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, - 0x6c, 0x46, 0x69, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, + 0x22, 0xc4, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, + 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, + 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, + 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, + 0x74, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xbf, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, + 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xe5, 0x02, 0x0a, 0x16, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, + 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x67, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, + 0x64, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, + 0x6f, 0x64, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, + 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9a, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, + 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0xec, 0x03, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, + 0x65, 0x73, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, + 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, + 0x65, 0x73, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, + 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, @@ -105483,54 +110102,8 @@ var file_otg_proto_rawDesc = []byte{ 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x91, - 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, - 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0xbf, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x42, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, - 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, - 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, + 0x75, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, @@ -105538,101 +110111,102 @@ var file_otg_proto_rawDesc = []byte{ 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0x92, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc4, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, - 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, - 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, - 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, - 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8a, 0x01, - 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, - 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x1e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, - 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0xc4, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, - 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, - 0x74, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x3f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, - 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, - 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x74, 0x22, 0x94, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xce, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x64, 0x30, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x30, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc4, 0x03, 0x0a, 0x15, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3f, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3f, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0x93, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, @@ -105640,99 +110214,97 @@ var file_otg_proto_rawDesc = []byte{ 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xbf, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, - 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc9, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, + 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0xe5, 0x02, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x44, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, + 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, + 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, 0x1a, 0x37, 0x0a, + 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, 0x01, 0x12, 0x07, 0x0a, + 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x20, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x64, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x22, 0xce, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x12, 0x45, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, + 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, - 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xe5, 0x02, 0x0a, 0x16, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x73, 0x75, 0x6d, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, - 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, - 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, - 0x64, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, - 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9a, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, - 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0xec, 0x03, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, - 0x73, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, - 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, - 0x73, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x4d, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, + 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, @@ -105742,7 +110314,7 @@ var file_otg_proto_rawDesc = []byte{ 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, @@ -105751,7 +110323,7 @@ var file_otg_proto_rawDesc = []byte{ 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x4d, 0x65, 0x74, 0x72, + 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, @@ -105760,27 +110332,27 @@ var file_otg_proto_rawDesc = []byte{ 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xce, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x64, 0x30, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, - 0x30, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, - 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, @@ -105788,17 +110360,67 @@ var file_otg_proto_rawDesc = []byte{ 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, + 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, + 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe7, 0x03, 0x0a, 0x1c, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, @@ -105806,144 +110428,28 @@ var file_otg_proto_rawDesc = []byte{ 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc4, 0x03, 0x0a, 0x15, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3f, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, - 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x93, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc9, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, - 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, - 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0xe5, 0x02, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x44, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, - 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, - 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, - 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x01, - 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x09, - 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, - 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x64, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0xce, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x12, 0x45, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, - 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, - 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x4d, 0x65, + 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd3, 0x03, 0x0a, 0x18, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x0b, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, @@ -105952,17 +110458,110 @@ var file_otg_proto_rawDesc = []byte{ 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x94, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, + 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x01, + 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0xc4, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x43, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, + 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, + 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, + 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc4, 0x03, 0x0a, 0x15, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x53, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, + 0x67, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3f, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3f, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0x93, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, @@ -105970,47 +110569,96 @@ var file_otg_proto_rawDesc = []byte{ 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xce, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, - 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, - 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, - 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x25, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc9, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, + 0x67, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, + 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x98, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x22, 0xe2, 0x03, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9a, 0x01, 0x0a, 0x26, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, @@ -106018,124 +110666,76 @@ var file_otg_proto_rawDesc = []byte{ 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe7, 0x03, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, - 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xec, 0x03, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0x95, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd3, 0x03, 0x0a, 0x18, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x42, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, - 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, - 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, - 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, - 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, - 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0xc4, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x43, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, + 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xbf, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x12, + 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x54, 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x54, 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, - 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, - 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, @@ -106143,17 +110743,18 @@ var file_otg_proto_rawDesc = []byte{ 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, - 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x4d, + 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, + 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9a, 0x01, + 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, @@ -106161,46 +110762,49 @@ var file_otg_proto_rawDesc = []byte{ 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc4, 0x03, 0x0a, 0x15, 0x50, + 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xec, 0x03, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, - 0x46, 0x6c, 0x61, 0x67, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x09, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3f, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, + 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x93, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, + 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x97, 0x01, 0x0a, 0x23, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, @@ -106208,37 +110812,39 @@ var file_otg_proto_rawDesc = []byte{ 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc9, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, - 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xdd, 0x03, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, + 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, @@ -106246,58 +110852,515 @@ var file_otg_proto_rawDesc = []byte{ 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x98, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0xe2, 0x03, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa4, 0x01, 0x0a, 0x30, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x9e, 0x04, 0x0a, 0x27, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x55, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, + 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x12, 0x51, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x51, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, + 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x56, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, + 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9b, 0x01, 0x0a, + 0x2d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa3, 0x01, 0x0a, 0x2f, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x22, 0x99, 0x04, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x54, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x50, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x55, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, + 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x94, 0x01, 0x0a, + 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x9c, 0x01, 0x0a, 0x28, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0xf6, 0x03, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4d, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4e, + 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9f, 0x01, 0x0a, 0x31, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, + 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa7, 0x01, + 0x0a, 0x33, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xad, 0x04, 0x0a, 0x2a, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x58, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x54, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x59, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xce, 0x03, + 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x95, + 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, + 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9d, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, + 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfb, 0x03, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, + 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x4e, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, + 0x61, 0x67, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, + 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, + 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, + 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, + 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, + 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd3, 0x03, 0x0a, + 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, + 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, + 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0x93, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc9, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, + 0x31, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, + 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x98, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x22, 0xe2, 0x03, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9a, 0x01, 0x0a, 0x26, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xec, 0x03, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, - 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9a, 0x01, 0x0a, 0x26, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, @@ -106305,126 +111368,27 @@ var file_otg_proto_rawDesc = []byte{ 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xec, 0x03, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0x91, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xbf, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x12, 0x42, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, - 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, - 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x31, 0x54, 0x65, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9a, 0x01, 0x0a, - 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xec, 0x03, 0x0a, 0x1d, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xbf, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x12, + 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, + 0x54, 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, + 0x54, 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4c, 0x0a, - 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, @@ -106432,18 +111396,68 @@ var file_otg_proto_rawDesc = []byte{ 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, - 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x97, 0x01, 0x0a, 0x23, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, - 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, + 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf1, 0x03, 0x0a, + 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, + 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, + 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x93, + 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, @@ -106451,343 +111465,272 @@ var file_otg_proto_rawDesc = []byte{ 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x22, 0xdd, 0x03, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, - 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, - 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0xa4, 0x01, 0x0a, 0x30, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x9e, 0x04, 0x0a, 0x27, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, - 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x55, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, - 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x51, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x12, 0x51, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, - 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x56, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6f, 0x74, + 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc9, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x12, + 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9b, 0x01, 0x0a, 0x2d, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa3, 0x01, 0x0a, 0x2f, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0x99, 0x04, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x54, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x50, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x55, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x94, 0x01, 0x0a, 0x26, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x43, + 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x9c, 0x01, 0x0a, 0x28, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, - 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, - 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0xf6, 0x03, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4d, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4e, 0x0a, - 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9f, 0x01, 0x0a, 0x31, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa7, 0x01, 0x0a, - 0x33, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xad, 0x04, 0x0a, 0x2a, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x58, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x54, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x54, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x59, - 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6e, 0x74, 0x22, 0x97, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xce, 0x03, 0x0a, - 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xdd, 0x03, 0x0a, + 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, + 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x48, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, + 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, + 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, + 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, + 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8f, 0x01, 0x0a, + 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x97, + 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, + 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xdd, 0x03, 0x0a, 0x1a, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, + 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, + 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, + 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, + 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe7, 0x03, 0x0a, 0x1c, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, + 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, + 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, + 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, + 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0xe7, 0x03, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, - 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x95, 0x01, - 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, - 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9d, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, - 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfb, 0x03, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, - 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, - 0x67, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, - 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, - 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, - 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, + 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, + 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8c, 0x01, 0x0a, + 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x20, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0xce, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x45, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, + 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, @@ -106795,17 +111738,18 @@ var file_otg_proto_rawDesc = []byte{ 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, + 0x6c, 0x75, 0x65, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, + 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9d, 0x01, 0x0a, 0x29, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, @@ -106813,534 +111757,51 @@ var file_otg_proto_rawDesc = []byte{ 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd3, 0x03, 0x0a, 0x18, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, - 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, - 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfb, 0x03, 0x0a, 0x20, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, + 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, + 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, - 0x64, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x93, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc9, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, - 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, - 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x98, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0xe2, 0x03, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, - 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9a, 0x01, 0x0a, 0x26, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xec, 0x03, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0x91, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xbf, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x12, 0x42, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, - 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, - 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x32, 0x54, 0x65, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, 0x01, - 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf1, 0x03, 0x0a, 0x1e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, - 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4c, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, - 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, - 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x93, 0x01, - 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x22, 0xc9, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x12, 0x44, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x0b, 0x6d, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, + 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, - 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, - 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, - 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, + 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, + 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0x97, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xdd, 0x03, 0x0a, 0x1a, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, - 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, - 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, - 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, - 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8f, 0x01, 0x0a, 0x21, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x97, 0x01, - 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xdd, 0x03, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, - 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, - 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, - 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, - 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, - 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x25, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, - 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe7, 0x03, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, - 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, - 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, - 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, - 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, - 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, - 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, - 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0xe7, 0x03, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, - 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x1e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x20, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x74, 0x22, 0x9d, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, @@ -107348,299 +111809,50 @@ var file_otg_proto_rawDesc = []byte{ 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0xce, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, - 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, - 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, - 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, - 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9d, 0x01, 0x0a, 0x29, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfb, 0x03, 0x0a, 0x20, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, - 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, - 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4a, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, - 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, - 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, - 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, + 0x68, 0x22, 0xfb, 0x03, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0x9d, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x22, 0xfb, 0x03, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x41, 0x64, 0x64, 0x72, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, - 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, - 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, - 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x95, - 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, - 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, - 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9d, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, - 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfb, 0x03, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, - 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, 0x4e, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, - 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, - 0x64, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, - 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, + 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, + 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, + 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, - 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, - 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, - 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, - 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9d, 0x01, 0x0a, - 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, - 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfb, 0x03, 0x0a, - 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, - 0x72, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, - 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x20, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, - 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x22, 0xce, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x45, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, - 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, - 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, - 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0x94, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, + 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9d, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, @@ -107648,71 +111860,101 @@ var file_otg_proto_rawDesc = []byte{ 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xce, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, - 0x6f, 0x64, 0x65, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, - 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, - 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, - 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xf4, 0x02, 0x0a, 0x1b, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfb, 0x03, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, 0x4e, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, + 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, + 0x64, 0x64, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, + 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, + 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, + 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, + 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, + 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9d, 0x01, + 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, + 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xfb, 0x03, + 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, + 0x64, 0x72, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4f, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x1e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, + 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, - 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, - 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, - 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, - 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9a, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, @@ -107720,115 +111962,108 @@ var file_otg_proto_rawDesc = []byte{ 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0xec, 0x03, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, - 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, + 0x68, 0x22, 0xce, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x45, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, - 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, - 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0x96, 0x01, 0x0a, 0x28, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9e, 0x01, 0x0a, 0x2a, 0x50, 0x61, + 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x94, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xce, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, + 0x43, 0x6f, 0x64, 0x65, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, + 0x64, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, + 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, + 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xf4, 0x02, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, - 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x80, 0x04, 0x0a, 0x21, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, - 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x4f, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, + 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, - 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x50, - 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, - 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xfa, 0x02, - 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, - 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, - 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x63, 0x6d, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x09, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x63, 0x6d, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, - 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, - 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, 0x1a, 0x37, 0x0a, - 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, 0x01, 0x12, 0x07, 0x0a, - 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x98, 0x01, 0x0a, 0x2a, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, - 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, + 0x64, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, @@ -107836,144 +112071,39 @@ var file_otg_proto_rawDesc = []byte{ 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa0, 0x01, 0x0a, 0x2c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8a, 0x04, 0x0a, 0x23, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, - 0x12, 0x51, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, - 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, - 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, - 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x52, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, - 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa4, 0x01, 0x0a, 0x30, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x9e, 0x04, 0x0a, 0x27, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, - 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, - 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x51, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x51, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, - 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x56, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, - 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, - 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8e, 0x01, 0x0a, - 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, - 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x96, 0x01, - 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, - 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd8, 0x03, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, - 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, - 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, - 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4d, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9a, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0xec, 0x03, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, + 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, + 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, @@ -107982,17 +112112,18 @@ var file_otg_proto_rawDesc = []byte{ 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x96, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, + 0x65, 0x22, 0x96, 0x01, 0x0a, 0x28, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9e, 0x01, 0x0a, 0x2a, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, + 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, @@ -108000,29 +112131,108 @@ var file_otg_proto_rawDesc = []byte{ 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd8, 0x03, 0x0a, 0x19, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, - 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, - 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x80, 0x04, 0x0a, 0x21, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, + 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x4f, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, - 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, + 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, - 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, - 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, + 0x50, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xfa, + 0x02, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, + 0x6d, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, + 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, + 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, + 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, 0x1a, 0x37, + 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, 0x01, 0x12, 0x07, + 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x98, 0x01, 0x0a, 0x2a, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, + 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa0, 0x01, 0x0a, 0x2c, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8a, 0x04, 0x0a, 0x23, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, + 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x12, 0x51, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, + 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, + 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x52, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, + 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, @@ -108030,18 +112240,19 @@ var file_otg_proto_rawDesc = []byte{ 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x94, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, - 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9c, 0x01, - 0x0a, 0x28, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, - 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa4, 0x01, 0x0a, 0x30, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, @@ -108049,224 +112260,81 @@ var file_otg_proto_rawDesc = []byte{ 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf6, 0x03, 0x0a, - 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, - 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, - 0x12, 0x4d, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x9e, 0x04, 0x0a, + 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, + 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, + 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, - 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, + 0x65, 0x73, 0x12, 0x51, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x51, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, + 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x56, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x98, 0x01, 0x0a, 0x2a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0xa0, 0x01, 0x0a, 0x2c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x22, 0x8a, 0x04, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, - 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, + 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8e, 0x01, + 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, + 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x96, + 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, + 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd8, 0x03, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, + 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, + 0x6f, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, - 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, - 0x52, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, - 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, - 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0xfa, 0x02, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, - 0x75, 0x6d, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x54, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, - 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, - 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, 0x01, - 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x80, 0x03, - 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, - 0x70, 0x76, 0x36, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, - 0x6d, 0x12, 0x4d, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x56, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, - 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, - 0x64, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x01, - 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0xc4, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x43, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, - 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc4, 0x03, 0x0a, 0x15, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3f, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3f, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, - 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, + 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, @@ -108275,144 +112343,150 @@ var file_otg_proto_rawDesc = []byte{ 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x97, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, - 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x89, - 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, - 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x48, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, - 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, - 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, - 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, - 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x96, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, + 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd8, 0x03, 0x0a, + 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, + 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, + 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, + 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, + 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x21, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0xd3, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x42, + 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x94, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, + 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9c, + 0x01, 0x0a, 0x28, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, + 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xf6, 0x03, + 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, + 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x12, 0x4d, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, + 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, - 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, - 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc4, 0x03, 0x0a, 0x15, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3f, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, - 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x4d, + 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x98, 0x01, 0x0a, 0x2a, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, + 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0xa0, 0x01, 0x0a, 0x2c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8a, 0x04, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, + 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, + 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, + 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x52, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, + 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, @@ -108421,88 +112495,257 @@ var file_otg_proto_rawDesc = []byte{ 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0x94, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xce, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, - 0x73, 0x65, 0x64, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, - 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, - 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, - 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, - 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xee, 0x02, 0x0a, 0x19, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x50, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, - 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, - 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x01, - 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x09, - 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, - 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x22, 0xfa, 0x02, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x73, 0x75, 0x6d, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x54, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, + 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, + 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x80, + 0x03, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, + 0x6d, 0x70, 0x76, 0x36, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, + 0x75, 0x6d, 0x12, 0x4d, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x56, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, + 0x6f, 0x64, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, + 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9a, - 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, - 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, + 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, + 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0xc4, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x43, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, + 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc4, 0x03, 0x0a, + 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3f, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x3f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x97, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, + 0x89, 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x48, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, + 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, + 0x6f, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x22, 0x8d, 0x01, 0x0a, 0x1f, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, + 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x21, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, + 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0xd3, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x42, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, + 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, @@ -108510,128 +112753,148 @@ var file_otg_proto_rawDesc = []byte{ 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xec, 0x03, 0x0a, 0x1d, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc4, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, - 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x4b, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x31, 0x54, 0x79, 0x70, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, + 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, + 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, - 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, + 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3f, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, - 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xeb, 0x03, 0x0a, 0x14, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, - 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, - 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, 0x66, - 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, - 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, - 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x98, 0x01, 0x0a, 0x24, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, - 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe2, 0x03, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, - 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, 0x66, - 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, - 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, + 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x94, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xce, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, + 0x75, 0x73, 0x65, 0x64, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, + 0x65, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, + 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, + 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xee, 0x02, 0x0a, 0x19, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x50, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, + 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, + 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, 0x1a, 0x37, 0x0a, + 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, 0x01, 0x12, 0x07, 0x0a, + 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x9a, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xec, 0x03, 0x0a, + 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, + 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x4b, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, - 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, + 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, @@ -108639,18 +112902,17 @@ var file_otg_proto_rawDesc = []byte{ 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x91, 0x01, 0x0a, 0x23, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, - 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x99, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, - 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, + 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x1b, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x91, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, @@ -108658,221 +112920,811 @@ var file_otg_proto_rawDesc = []byte{ 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x93, 0x04, 0x0a, 0x1c, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, - 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x4a, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, - 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x2e, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xeb, 0x03, 0x0a, 0x14, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, - 0x6f, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, - 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, - 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, - 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, - 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, - 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, - 0x6f, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x96, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, + 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x98, 0x01, 0x0a, + 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, + 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe2, 0x03, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, + 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, + 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, + 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, + 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, + 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x91, 0x01, 0x0a, + 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, + 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0x99, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, + 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x93, 0x04, 0x0a, + 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, + 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x4a, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, + 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, + 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, + 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, + 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x46, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, + 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, + 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, + 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, + 0x74, 0x6f, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd8, 0x03, 0x0a, 0x19, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, - 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x96, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, + 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xd8, 0x03, 0x0a, + 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, + 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, + 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, - 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, + 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8e, 0x03, 0x0a, 0x19, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, + 0x76, 0x32, 0x63, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, + 0x50, 0x44, 0x55, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0xa2, 0x03, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, + 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x50, 0x44, 0x55, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x49, 0x64, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x50, 0x44, 0x55, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x50, + 0x44, 0x55, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x48, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x50, 0x44, 0x55, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x49, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x94, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x50, 0x44, 0x55, 0x45, 0x72, + 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa6, 0x03, 0x0a, 0x1f, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, + 0x32, 0x63, 0x50, 0x44, 0x55, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, + 0x4d, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x50, 0x44, 0x55, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x12, 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x50, 0x44, 0x55, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x50, 0x44, 0x55, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x97, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x42, 0x75, 0x6c, 0x6b, 0x50, + 0x44, 0x55, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xb2, + 0x03, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, + 0x6d, 0x70, 0x76, 0x32, 0x63, 0x42, 0x75, 0x6c, 0x6b, 0x50, 0x44, 0x55, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x50, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x42, 0x75, + 0x6c, 0x6b, 0x50, 0x44, 0x55, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, + 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x42, 0x75, 0x6c, 0x6b, 0x50, 0x44, 0x55, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, + 0x70, 0x76, 0x32, 0x63, 0x42, 0x75, 0x6c, 0x6b, 0x50, 0x44, 0x55, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x49, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0xfe, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x42, 0x75, 0x6c, 0x6b, 0x50, 0x44, + 0x55, 0x4e, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x72, 0x73, 0x12, 0x53, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, + 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x42, 0x75, 0x6c, 0x6b, 0x50, 0x44, 0x55, 0x4e, 0x6f, 0x6e, + 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x72, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, - 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, - 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, - 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, - 0x4c, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb9, 0x01, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x10, 0x61, 0x70, 0x69, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, - 0x61, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, - 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x64, 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0a, 0x73, 0x64, 0x6b, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x61, 0x70, 0x70, 0x5f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0a, - 0x61, 0x70, 0x70, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, - 0x11, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x64, 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x22, 0x31, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x26, 0x0a, - 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x77, 0x61, - 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x2b, 0x0a, 0x07, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, - 0x12, 0x20, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x22, 0x37, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x4d, 0x0a, 0x13, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x36, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0x3b, 0x0a, 0x11, 0x53, 0x65, - 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x26, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x07, - 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x38, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x06, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x22, 0x3e, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, 0x77, 0x61, 0x72, - 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, - 0x67, 0x22, 0x50, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x0d, 0x63, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x22, 0x41, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x38, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x2e, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x42, 0x75, 0x6c, 0x6b, 0x50, + 0x44, 0x55, 0x4d, 0x61, 0x78, 0x52, 0x65, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0xc6, 0x03, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x42, 0x75, 0x6c, 0x6b, 0x50, 0x44, + 0x55, 0x4d, 0x61, 0x78, 0x52, 0x65, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x55, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x38, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x42, 0x75, 0x6c, 0x6b, 0x50, 0x44, 0x55, 0x4d, + 0x61, 0x78, 0x52, 0x65, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x51, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, + 0x6d, 0x70, 0x76, 0x32, 0x63, 0x42, 0x75, 0x6c, 0x6b, 0x50, 0x44, 0x55, 0x4d, 0x61, 0x78, 0x52, + 0x65, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x51, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x42, 0x75, 0x6c, 0x6b, 0x50, 0x44, 0x55, 0x4d, + 0x61, 0x78, 0x52, 0x65, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x1a, + 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa7, 0x01, 0x0a, + 0x39, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, + 0x76, 0x32, 0x63, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xf2, 0x03, 0x0a, 0x32, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x56, 0x61, 0x72, + 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x60, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x43, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, + 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x69, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, + 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x12, 0x5c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x56, 0x61, + 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x5c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x56, 0x61, 0x72, 0x69, + 0x61, 0x62, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x56, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa9, 0x01, 0x0a, 0x3b, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, + 0x32, 0x63, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xfa, 0x03, 0x0a, 0x34, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x56, 0x61, + 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x62, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x45, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, + 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x49, 0x70, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x5e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, + 0x76, 0x32, 0x63, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x5e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, + 0x76, 0x32, 0x63, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa7, 0x01, 0x0a, 0x39, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x56, 0x61, 0x72, 0x69, 0x61, + 0x62, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xf2, + 0x03, 0x0a, 0x32, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, + 0x6d, 0x70, 0x76, 0x32, 0x63, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x69, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x60, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x43, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x56, 0x61, + 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x5c, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, + 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x69, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x5c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, + 0x70, 0x76, 0x32, 0x63, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0xa9, 0x01, 0x0a, 0x3b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, + 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x74, 0x69, 0x63, 0x6b, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0xfa, 0x03, 0x0a, 0x34, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, + 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x69, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x74, 0x69, + 0x63, 0x6b, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x62, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x45, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, + 0x63, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x74, 0x69, 0x63, 0x6b, 0x73, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x5e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x56, 0x61, 0x72, 0x69, 0x61, + 0x62, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x74, 0x69, 0x63, 0x6b, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x5e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x56, 0x61, 0x72, 0x69, 0x61, + 0x62, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x74, 0x69, 0x63, 0x6b, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x1a, + 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xaa, 0x01, 0x0a, + 0x3c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, + 0x76, 0x32, 0x63, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x69, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xfe, 0x03, 0x0a, 0x35, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, + 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x69, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x63, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x46, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x56, 0x61, 0x72, 0x69, + 0x61, 0x62, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x42, 0x69, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x04, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x5f, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, + 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x69, 0x67, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x5f, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x41, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, + 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x69, 0x67, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x56, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xaf, 0x01, 0x0a, 0x41, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, + 0x63, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x55, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x49, 0x6e, 0x74, + 0x65, 0x67, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x04, 0x0a, + 0x3a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, + 0x76, 0x32, 0x63, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x55, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x49, + 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x68, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x4b, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, + 0x70, 0x76, 0x32, 0x63, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x55, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, + 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x64, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, + 0x70, 0x76, 0x32, 0x63, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x55, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, + 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x64, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x46, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, + 0x6c, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x55, 0x6e, + 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0x96, 0x01, 0x0a, 0x28, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xae, 0x03, 0x0a, 0x21, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, + 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, + 0x12, 0x4f, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, 0x70, 0x76, 0x32, 0x63, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x56, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb9, 0x01, 0x0a, 0x07, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x10, 0x61, 0x70, 0x69, 0x5f, 0x73, + 0x70, 0x65, 0x63, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x0e, 0x61, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x64, 0x6b, 0x5f, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0a, 0x73, + 0x64, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, + 0x61, 0x70, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x02, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, + 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x5f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x64, 0x6b, 0x5f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x70, 0x70, 0x5f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x31, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x12, 0x26, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, + 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x2b, 0x0a, 0x07, 0x46, 0x61, + 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x20, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x37, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x06, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x22, 0x4d, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, + 0x3b, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x57, 0x61, 0x72, 0x6e, + 0x69, 0x6e, 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x38, 0x0a, 0x11, + 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x23, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x3e, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x77, - 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x54, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x39, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x63, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6e, 0x0a, 0x18, - 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x17, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x15, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x51, 0x0a, 0x11, - 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x3c, 0x0a, 0x0f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, - 0x0e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, - 0x55, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x10, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4d, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0e, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x51, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0f, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x51, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x43, - 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, - 0x0f, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, - 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0e, 0x63, 0x61, 0x70, - 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3b, 0x0a, 0x12, 0x47, - 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x62, 0x79, - 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x3c, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, - 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x32, 0xdf, 0x04, 0x0a, 0x07, 0x4f, 0x70, 0x65, 0x6e, 0x61, - 0x70, 0x69, 0x12, 0x3a, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, - 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, - 0x0a, 0x09, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x16, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0c, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x4c, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, + 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x50, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, - 0x0a, 0x10, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x3d, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x16, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, - 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x15, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x47, 0x65, - 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x12, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, - 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x47, 0x65, 0x74, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, - 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0b, 0x5a, 0x09, 0x2e, 0x2f, 0x6f, 0x74, - 0x67, 0x3b, 0x6f, 0x74, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x12, 0x36, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x41, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x57, 0x61, 0x72, 0x6e, 0x69, + 0x6e, 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x54, 0x0a, 0x17, 0x53, + 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x6e, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, + 0x17, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x15, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x51, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x0f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x22, 0x55, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x10, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0f, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4d, 0x0a, 0x10, 0x47, + 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x39, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0d, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x51, 0x0a, 0x11, 0x47, 0x65, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x3c, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0e, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x51, 0x0a, + 0x11, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x0f, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x52, 0x0e, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x22, 0x3b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x3c, 0x0a, + 0x12, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x32, 0xdf, 0x04, 0x0a, 0x07, + 0x4f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x12, 0x3a, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x12, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, + 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x43, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x12, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, + 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, + 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x12, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, + 0x12, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x3d, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x12, 0x16, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x43, + 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, + 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0b, 0x5a, + 0x09, 0x2e, 0x2f, 0x6f, 0x74, 0x67, 0x3b, 0x6f, 0x74, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( @@ -108887,2789 +113739,2917 @@ func file_otg_proto_rawDescGZIP() []byte { return file_otg_proto_rawDescData } -var file_otg_proto_enumTypes = make([]protoimpl.EnumInfo, 322) -var file_otg_proto_msgTypes = make([]protoimpl.MessageInfo, 1097) +var file_otg_proto_enumTypes = make([]protoimpl.EnumInfo, 338) +var file_otg_proto_msgTypes = make([]protoimpl.MessageInfo, 1144) var file_otg_proto_goTypes = []interface{}{ - (LagProtocol_Choice_Enum)(0), // 0: otg.LagProtocol.Choice.Enum - (LagPortLacp_ActorActivity_Enum)(0), // 1: otg.LagPortLacp.ActorActivity.Enum - (EthernetConnection_Choice_Enum)(0), // 2: otg.EthernetConnection.Choice.Enum - (DeviceVlan_Tpid_Enum)(0), // 3: otg.DeviceVlan.Tpid.Enum - (DeviceIpv4GatewayMAC_Choice_Enum)(0), // 4: otg.DeviceIpv4GatewayMAC.Choice.Enum - (DeviceIpv6GatewayMAC_Choice_Enum)(0), // 5: otg.DeviceIpv6GatewayMAC.Choice.Enum - (Layer1_Speed_Enum)(0), // 6: otg.Layer1.Speed.Enum - (Layer1_Media_Enum)(0), // 7: otg.Layer1.Media.Enum - (Layer1FlowControl_Choice_Enum)(0), // 8: otg.Layer1FlowControl.Choice.Enum - (Capture_Format_Enum)(0), // 9: otg.Capture.Format.Enum - (CaptureFilter_Choice_Enum)(0), // 10: otg.CaptureFilter.Choice.Enum - (IsisInterface_NetworkType_Enum)(0), // 11: otg.IsisInterface.NetworkType.Enum - (IsisInterface_LevelType_Enum)(0), // 12: otg.IsisInterface.LevelType.Enum - (IsisInterfaceAuthentication_AuthType_Enum)(0), // 13: otg.IsisInterfaceAuthentication.AuthType.Enum - (IsisAuthenticationBase_AuthType_Enum)(0), // 14: otg.IsisAuthenticationBase.AuthType.Enum - (IsisV4RouteRange_OriginType_Enum)(0), // 15: otg.IsisV4RouteRange.OriginType.Enum - (IsisV4RouteRange_RedistributionType_Enum)(0), // 16: otg.IsisV4RouteRange.RedistributionType.Enum - (IsisV6RouteRange_OriginType_Enum)(0), // 17: otg.IsisV6RouteRange.OriginType.Enum - (IsisV6RouteRange_RedistributionType_Enum)(0), // 18: otg.IsisV6RouteRange.RedistributionType.Enum - (DeviceBgpMessageHeaderError_Subcode_Enum)(0), // 19: otg.DeviceBgpMessageHeaderError.Subcode.Enum - (DeviceBgpOpenMessageError_Subcode_Enum)(0), // 20: otg.DeviceBgpOpenMessageError.Subcode.Enum - (DeviceBgpUpdateMessageError_Subcode_Enum)(0), // 21: otg.DeviceBgpUpdateMessageError.Subcode.Enum - (DeviceBgpCeaseError_Subcode_Enum)(0), // 22: otg.DeviceBgpCeaseError.Subcode.Enum - (BgpV4Peer_AsType_Enum)(0), // 23: otg.BgpV4Peer.AsType.Enum - (BgpV4Peer_AsNumberWidth_Enum)(0), // 24: otg.BgpV4Peer.AsNumberWidth.Enum - (BgpV4EthernetSegment_ActiveMode_Enum)(0), // 25: otg.BgpV4EthernetSegment.ActiveMode.Enum - (BgpRouteAdvanced_Origin_Enum)(0), // 26: otg.BgpRouteAdvanced.Origin.Enum - (BgpCommunity_Type_Enum)(0), // 27: otg.BgpCommunity.Type.Enum - (BgpExtCommunity_Type_Enum)(0), // 28: otg.BgpExtCommunity.Type.Enum - (BgpExtCommunity_Subtype_Enum)(0), // 29: otg.BgpExtCommunity.Subtype.Enum - (BgpAsPath_AsSetMode_Enum)(0), // 30: otg.BgpAsPath.AsSetMode.Enum - (BgpAsPathSegment_Type_Enum)(0), // 31: otg.BgpAsPathSegment.Type.Enum - (BgpV4EvpnEvis_Choice_Enum)(0), // 32: otg.BgpV4EvpnEvis.Choice.Enum - (BgpV4EviVxlan_ReplicationType_Enum)(0), // 33: otg.BgpV4EviVxlan.ReplicationType.Enum - (BgpRouteDistinguisher_RdType_Enum)(0), // 34: otg.BgpRouteDistinguisher.RdType.Enum - (BgpRouteTarget_RtType_Enum)(0), // 35: otg.BgpRouteTarget.RtType.Enum - (BgpV4RouteRange_NextHopMode_Enum)(0), // 36: otg.BgpV4RouteRange.NextHopMode.Enum - (BgpV4RouteRange_NextHopAddressType_Enum)(0), // 37: otg.BgpV4RouteRange.NextHopAddressType.Enum - (BgpExtendedCommunity_Choice_Enum)(0), // 38: otg.BgpExtendedCommunity.Choice.Enum - (BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum)(0), // 39: otg.BgpExtendedCommunityTransitive2OctetAsType.Choice.Enum - (BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum)(0), // 40: otg.BgpExtendedCommunityTransitiveIpv4AddressType.Choice.Enum - (BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum)(0), // 41: otg.BgpExtendedCommunityTransitive4OctetAsType.Choice.Enum - (BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum)(0), // 42: otg.BgpExtendedCommunityTransitiveOpaqueType.Choice.Enum - (BgpExtendedCommunityTransitiveEvpnType_Choice_Enum)(0), // 43: otg.BgpExtendedCommunityTransitiveEvpnType.Choice.Enum - (BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum)(0), // 44: otg.BgpExtendedCommunityNonTransitive2OctetAsType.Choice.Enum - (BgpV6RouteRange_NextHopMode_Enum)(0), // 45: otg.BgpV6RouteRange.NextHopMode.Enum - (BgpV6RouteRange_NextHopAddressType_Enum)(0), // 46: otg.BgpV6RouteRange.NextHopAddressType.Enum - (BgpSrteV4Policy_NextHopMode_Enum)(0), // 47: otg.BgpSrteV4Policy.NextHopMode.Enum - (BgpSrteV4Policy_NextHopAddressType_Enum)(0), // 48: otg.BgpSrteV4Policy.NextHopAddressType.Enum - (BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum)(0), // 49: otg.BgpSrteRemoteEndpointSubTlv.AddressFamily.Enum - (BgpSrteBindingSubTlv_BindingSidType_Enum)(0), // 50: otg.BgpSrteBindingSubTlv.BindingSidType.Enum - (BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum)(0), // 51: otg.BgpSrteExplicitNullLabelPolicySubTlv.ExplicitNullLabelPolicy.Enum - (BgpSrteSegment_SegmentType_Enum)(0), // 52: otg.BgpSrteSegment.SegmentType.Enum - (BgpSrteV6Policy_NextHopMode_Enum)(0), // 53: otg.BgpSrteV6Policy.NextHopMode.Enum - (BgpSrteV6Policy_NextHopAddressType_Enum)(0), // 54: otg.BgpSrteV6Policy.NextHopAddressType.Enum - (BgpV6Peer_AsType_Enum)(0), // 55: otg.BgpV6Peer.AsType.Enum - (BgpV6Peer_AsNumberWidth_Enum)(0), // 56: otg.BgpV6Peer.AsNumberWidth.Enum - (BgpV6EthernetSegment_ActiveMode_Enum)(0), // 57: otg.BgpV6EthernetSegment.ActiveMode.Enum - (BgpV6EvpnEvis_Choice_Enum)(0), // 58: otg.BgpV6EvpnEvis.Choice.Enum - (BgpV6EviVxlan_ReplicationType_Enum)(0), // 59: otg.BgpV6EviVxlan.ReplicationType.Enum - (VxlanV4TunnelDestinationIPMode_Choice_Enum)(0), // 60: otg.VxlanV4TunnelDestinationIPMode.Choice.Enum - (VxlanV6TunnelDestinationIPMode_Choice_Enum)(0), // 61: otg.VxlanV6TunnelDestinationIPMode.Choice.Enum - (RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum)(0), // 62: otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ReservationStyle.Enum - (RsvpEro_PrependNeighborIp_Enum)(0), // 63: otg.RsvpEro.PrependNeighborIp.Enum - (RsvpEroSubobject_Type_Enum)(0), // 64: otg.RsvpEroSubobject.Type.Enum - (RsvpEroSubobject_HopType_Enum)(0), // 65: otg.RsvpEroSubobject.HopType.Enum - (FlowTxRx_Choice_Enum)(0), // 66: otg.FlowTxRx.Choice.Enum - (FlowRouter_Mode_Enum)(0), // 67: otg.FlowRouter.Mode.Enum - (FlowHeader_Choice_Enum)(0), // 68: otg.FlowHeader.Choice.Enum - (FlowIpv4Options_Choice_Enum)(0), // 69: otg.FlowIpv4Options.Choice.Enum - (FlowIpv4OptionsCustomLength_Choice_Enum)(0), // 70: otg.FlowIpv4OptionsCustomLength.Choice.Enum - (FlowIpv4Priority_Choice_Enum)(0), // 71: otg.FlowIpv4Priority.Choice.Enum - (FlowIcmp_Choice_Enum)(0), // 72: otg.FlowIcmp.Choice.Enum - (FlowIcmpv6_Choice_Enum)(0), // 73: otg.FlowIcmpv6.Choice.Enum - (FlowSize_Choice_Enum)(0), // 74: otg.FlowSize.Choice.Enum - (FlowSizeWeightPairs_Choice_Enum)(0), // 75: otg.FlowSizeWeightPairs.Choice.Enum - (FlowSizeWeightPairs_Predefined_Enum)(0), // 76: otg.FlowSizeWeightPairs.Predefined.Enum - (FlowRate_Choice_Enum)(0), // 77: otg.FlowRate.Choice.Enum - (FlowDuration_Choice_Enum)(0), // 78: otg.FlowDuration.Choice.Enum - (FlowDelay_Choice_Enum)(0), // 79: otg.FlowDelay.Choice.Enum - (FlowDurationInterBurstGap_Choice_Enum)(0), // 80: otg.FlowDurationInterBurstGap.Choice.Enum - (FlowLatencyMetrics_Mode_Enum)(0), // 81: otg.FlowLatencyMetrics.Mode.Enum - (FlowRxTxRatio_Choice_Enum)(0), // 82: otg.FlowRxTxRatio.Choice.Enum - (EventRequest_Type_Enum)(0), // 83: otg.EventRequest.Type.Enum - (LldpConnection_Choice_Enum)(0), // 84: otg.LldpConnection.Choice.Enum - (LldpChassisId_Choice_Enum)(0), // 85: otg.LldpChassisId.Choice.Enum - (LldpPortId_Choice_Enum)(0), // 86: otg.LldpPortId.Choice.Enum - (LldpChassisMacSubType_Choice_Enum)(0), // 87: otg.LldpChassisMacSubType.Choice.Enum - (LldpPortInterfaceNameSubType_Choice_Enum)(0), // 88: otg.LldpPortInterfaceNameSubType.Choice.Enum - (LldpSystemName_Choice_Enum)(0), // 89: otg.LldpSystemName.Choice.Enum - (Error_Kind_Enum)(0), // 90: otg.Error.Kind.Enum - (ConfigUpdate_Choice_Enum)(0), // 91: otg.ConfigUpdate.Choice.Enum - (FlowsUpdate_PropertyNames_Enum)(0), // 92: otg.FlowsUpdate.PropertyNames.Enum - (ControlState_Choice_Enum)(0), // 93: otg.ControlState.Choice.Enum - (StatePort_Choice_Enum)(0), // 94: otg.StatePort.Choice.Enum - (StateTraffic_Choice_Enum)(0), // 95: otg.StateTraffic.Choice.Enum - (StateProtocol_Choice_Enum)(0), // 96: otg.StateProtocol.Choice.Enum - (StatePortLink_State_Enum)(0), // 97: otg.StatePortLink.State.Enum - (StatePortCapture_State_Enum)(0), // 98: otg.StatePortCapture.State.Enum - (StateTrafficFlowTransmit_State_Enum)(0), // 99: otg.StateTrafficFlowTransmit.State.Enum - (StateProtocolAll_State_Enum)(0), // 100: otg.StateProtocolAll.State.Enum - (StateProtocolRoute_State_Enum)(0), // 101: otg.StateProtocolRoute.State.Enum - (StateProtocolLacp_Choice_Enum)(0), // 102: otg.StateProtocolLacp.Choice.Enum - (StateProtocolLacpAdmin_State_Enum)(0), // 103: otg.StateProtocolLacpAdmin.State.Enum - (StateProtocolLacpMemberPorts_State_Enum)(0), // 104: otg.StateProtocolLacpMemberPorts.State.Enum - (StateProtocolBgp_Choice_Enum)(0), // 105: otg.StateProtocolBgp.Choice.Enum - (StateProtocolBgpPeers_State_Enum)(0), // 106: otg.StateProtocolBgpPeers.State.Enum - (StateProtocolIsis_Choice_Enum)(0), // 107: otg.StateProtocolIsis.Choice.Enum - (StateProtocolIsisRouters_State_Enum)(0), // 108: otg.StateProtocolIsisRouters.State.Enum - (ControlAction_Choice_Enum)(0), // 109: otg.ControlAction.Choice.Enum - (ActionResponse_Choice_Enum)(0), // 110: otg.ActionResponse.Choice.Enum - (ActionProtocol_Choice_Enum)(0), // 111: otg.ActionProtocol.Choice.Enum - (ActionResponseProtocol_Choice_Enum)(0), // 112: otg.ActionResponseProtocol.Choice.Enum - (ActionProtocolIpv4_Choice_Enum)(0), // 113: otg.ActionProtocolIpv4.Choice.Enum - (ActionResponseProtocolIpv4_Choice_Enum)(0), // 114: otg.ActionResponseProtocolIpv4.Choice.Enum - (ActionResponseProtocolIpv4PingResponse_Result_Enum)(0), // 115: otg.ActionResponseProtocolIpv4PingResponse.Result.Enum - (ActionProtocolIpv6_Choice_Enum)(0), // 116: otg.ActionProtocolIpv6.Choice.Enum - (ActionResponseProtocolIpv6_Choice_Enum)(0), // 117: otg.ActionResponseProtocolIpv6.Choice.Enum - (ActionResponseProtocolIpv6PingResponse_Result_Enum)(0), // 118: otg.ActionResponseProtocolIpv6PingResponse.Result.Enum - (ActionProtocolBgp_Choice_Enum)(0), // 119: otg.ActionProtocolBgp.Choice.Enum - (ActionProtocolBgpNotification_Choice_Enum)(0), // 120: otg.ActionProtocolBgpNotification.Choice.Enum - (MetricsRequest_Choice_Enum)(0), // 121: otg.MetricsRequest.Choice.Enum - (MetricsResponse_Choice_Enum)(0), // 122: otg.MetricsResponse.Choice.Enum - (PortMetricsRequest_ColumnNames_Enum)(0), // 123: otg.PortMetricsRequest.ColumnNames.Enum - (PortMetric_Link_Enum)(0), // 124: otg.PortMetric.Link.Enum - (PortMetric_Capture_Enum)(0), // 125: otg.PortMetric.Capture.Enum - (PortMetric_Transmit_Enum)(0), // 126: otg.PortMetric.Transmit.Enum - (FlowMetricsRequest_MetricNames_Enum)(0), // 127: otg.FlowMetricsRequest.MetricNames.Enum - (FlowTaggedMetricsFilter_MetricNames_Enum)(0), // 128: otg.FlowTaggedMetricsFilter.MetricNames.Enum - (FlowMetric_Transmit_Enum)(0), // 129: otg.FlowMetric.Transmit.Enum - (FlowMetricTagValue_Choice_Enum)(0), // 130: otg.FlowMetricTagValue.Choice.Enum - (Bgpv4MetricsRequest_ColumnNames_Enum)(0), // 131: otg.Bgpv4MetricsRequest.ColumnNames.Enum - (Bgpv4Metric_SessionState_Enum)(0), // 132: otg.Bgpv4Metric.SessionState.Enum - (Bgpv4Metric_FsmState_Enum)(0), // 133: otg.Bgpv4Metric.FsmState.Enum - (Bgpv6MetricsRequest_ColumnNames_Enum)(0), // 134: otg.Bgpv6MetricsRequest.ColumnNames.Enum - (Bgpv6Metric_SessionState_Enum)(0), // 135: otg.Bgpv6Metric.SessionState.Enum - (Bgpv6Metric_FsmState_Enum)(0), // 136: otg.Bgpv6Metric.FsmState.Enum - (IsisMetricsRequest_ColumnNames_Enum)(0), // 137: otg.IsisMetricsRequest.ColumnNames.Enum - (LagMetricsRequest_ColumnNames_Enum)(0), // 138: otg.LagMetricsRequest.ColumnNames.Enum - (LagMetric_OperStatus_Enum)(0), // 139: otg.LagMetric.OperStatus.Enum - (LacpMetricsRequest_ColumnNames_Enum)(0), // 140: otg.LacpMetricsRequest.ColumnNames.Enum - (LacpMetric_Activity_Enum)(0), // 141: otg.LacpMetric.Activity.Enum - (LacpMetric_Timeout_Enum)(0), // 142: otg.LacpMetric.Timeout.Enum - (LacpMetric_Synchronization_Enum)(0), // 143: otg.LacpMetric.Synchronization.Enum - (LldpMetricsRequest_ColumnNames_Enum)(0), // 144: otg.LldpMetricsRequest.ColumnNames.Enum - (RsvpMetricsRequest_ColumnNames_Enum)(0), // 145: otg.RsvpMetricsRequest.ColumnNames.Enum - (StatesRequest_Choice_Enum)(0), // 146: otg.StatesRequest.Choice.Enum - (StatesResponse_Choice_Enum)(0), // 147: otg.StatesResponse.Choice.Enum - (BgpPrefixStateRequest_PrefixFilters_Enum)(0), // 148: otg.BgpPrefixStateRequest.PrefixFilters.Enum - (BgpPrefixIpv4UnicastFilter_Origin_Enum)(0), // 149: otg.BgpPrefixIpv4UnicastFilter.Origin.Enum - (BgpPrefixIpv6UnicastFilter_Origin_Enum)(0), // 150: otg.BgpPrefixIpv6UnicastFilter.Origin.Enum - (BgpPrefixIpv4UnicastState_Origin_Enum)(0), // 151: otg.BgpPrefixIpv4UnicastState.Origin.Enum - (BgpPrefixIpv6UnicastState_Origin_Enum)(0), // 152: otg.BgpPrefixIpv6UnicastState.Origin.Enum - (ResultBgpCommunity_Type_Enum)(0), // 153: otg.ResultBgpCommunity.Type.Enum - (ResultBgpAsPathSegment_Type_Enum)(0), // 154: otg.ResultBgpAsPathSegment.Type.Enum - (IsisLspState_PduType_Enum)(0), // 155: otg.IsisLspState.PduType.Enum - (IsisLspV4Prefix_RedistributionType_Enum)(0), // 156: otg.IsisLspV4Prefix.RedistributionType.Enum - (IsisLspV4Prefix_OriginType_Enum)(0), // 157: otg.IsisLspV4Prefix.OriginType.Enum - (IsisLspExtendedV4Prefix_RedistributionType_Enum)(0), // 158: otg.IsisLspExtendedV4Prefix.RedistributionType.Enum - (IsisLspV6Prefix_RedistributionType_Enum)(0), // 159: otg.IsisLspV6Prefix.RedistributionType.Enum - (IsisLspV6Prefix_OriginType_Enum)(0), // 160: otg.IsisLspV6Prefix.OriginType.Enum - (LldpNeighborsState_ChassisIdType_Enum)(0), // 161: otg.LldpNeighborsState.ChassisIdType.Enum - (LldpNeighborsState_PortIdType_Enum)(0), // 162: otg.LldpNeighborsState.PortIdType.Enum - (LldpCapabilityState_CapabilityName_Enum)(0), // 163: otg.LldpCapabilityState.CapabilityName.Enum - (RsvpLspState_SessionStatus_Enum)(0), // 164: otg.RsvpLspState.SessionStatus.Enum - (RsvpLspState_LastFlapReason_Enum)(0), // 165: otg.RsvpLspState.LastFlapReason.Enum - (RsvpLspIpv4Ero_Type_Enum)(0), // 166: otg.RsvpLspIpv4Ero.Type.Enum - (PatternFlowEthernetDst_Choice_Enum)(0), // 167: otg.PatternFlowEthernetDst.Choice.Enum - (PatternFlowEthernetSrc_Choice_Enum)(0), // 168: otg.PatternFlowEthernetSrc.Choice.Enum - (PatternFlowEthernetEtherType_Choice_Enum)(0), // 169: otg.PatternFlowEthernetEtherType.Choice.Enum - (PatternFlowEthernetPfcQueue_Choice_Enum)(0), // 170: otg.PatternFlowEthernetPfcQueue.Choice.Enum - (PatternFlowVlanPriority_Choice_Enum)(0), // 171: otg.PatternFlowVlanPriority.Choice.Enum - (PatternFlowVlanCfi_Choice_Enum)(0), // 172: otg.PatternFlowVlanCfi.Choice.Enum - (PatternFlowVlanId_Choice_Enum)(0), // 173: otg.PatternFlowVlanId.Choice.Enum - (PatternFlowVlanTpid_Choice_Enum)(0), // 174: otg.PatternFlowVlanTpid.Choice.Enum - (PatternFlowVxlanFlags_Choice_Enum)(0), // 175: otg.PatternFlowVxlanFlags.Choice.Enum - (PatternFlowVxlanReserved0_Choice_Enum)(0), // 176: otg.PatternFlowVxlanReserved0.Choice.Enum - (PatternFlowVxlanVni_Choice_Enum)(0), // 177: otg.PatternFlowVxlanVni.Choice.Enum - (PatternFlowVxlanReserved1_Choice_Enum)(0), // 178: otg.PatternFlowVxlanReserved1.Choice.Enum - (PatternFlowIpv4Version_Choice_Enum)(0), // 179: otg.PatternFlowIpv4Version.Choice.Enum - (PatternFlowIpv4HeaderLength_Choice_Enum)(0), // 180: otg.PatternFlowIpv4HeaderLength.Choice.Enum - (PatternFlowIpv4TotalLength_Choice_Enum)(0), // 181: otg.PatternFlowIpv4TotalLength.Choice.Enum - (PatternFlowIpv4Identification_Choice_Enum)(0), // 182: otg.PatternFlowIpv4Identification.Choice.Enum - (PatternFlowIpv4Reserved_Choice_Enum)(0), // 183: otg.PatternFlowIpv4Reserved.Choice.Enum - (PatternFlowIpv4DontFragment_Choice_Enum)(0), // 184: otg.PatternFlowIpv4DontFragment.Choice.Enum - (PatternFlowIpv4MoreFragments_Choice_Enum)(0), // 185: otg.PatternFlowIpv4MoreFragments.Choice.Enum - (PatternFlowIpv4FragmentOffset_Choice_Enum)(0), // 186: otg.PatternFlowIpv4FragmentOffset.Choice.Enum - (PatternFlowIpv4TimeToLive_Choice_Enum)(0), // 187: otg.PatternFlowIpv4TimeToLive.Choice.Enum - (PatternFlowIpv4Protocol_Choice_Enum)(0), // 188: otg.PatternFlowIpv4Protocol.Choice.Enum - (PatternFlowIpv4HeaderChecksum_Choice_Enum)(0), // 189: otg.PatternFlowIpv4HeaderChecksum.Choice.Enum - (PatternFlowIpv4HeaderChecksum_Generated_Enum)(0), // 190: otg.PatternFlowIpv4HeaderChecksum.Generated.Enum - (PatternFlowIpv4Src_Choice_Enum)(0), // 191: otg.PatternFlowIpv4Src.Choice.Enum - (PatternFlowIpv4Dst_Choice_Enum)(0), // 192: otg.PatternFlowIpv4Dst.Choice.Enum - (PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice_Enum)(0), // 193: otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag.Choice.Enum - (PatternFlowIpv4OptionsCustomTypeOptionClass_Choice_Enum)(0), // 194: otg.PatternFlowIpv4OptionsCustomTypeOptionClass.Choice.Enum - (PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice_Enum)(0), // 195: otg.PatternFlowIpv4OptionsCustomTypeOptionNumber.Choice.Enum - (PatternFlowIpv4PriorityRaw_Choice_Enum)(0), // 196: otg.PatternFlowIpv4PriorityRaw.Choice.Enum - (PatternFlowIpv4DscpPhb_Choice_Enum)(0), // 197: otg.PatternFlowIpv4DscpPhb.Choice.Enum - (PatternFlowIpv4DscpEcn_Choice_Enum)(0), // 198: otg.PatternFlowIpv4DscpEcn.Choice.Enum - (PatternFlowIpv4TosPrecedence_Choice_Enum)(0), // 199: otg.PatternFlowIpv4TosPrecedence.Choice.Enum - (PatternFlowIpv4TosDelay_Choice_Enum)(0), // 200: otg.PatternFlowIpv4TosDelay.Choice.Enum - (PatternFlowIpv4TosThroughput_Choice_Enum)(0), // 201: otg.PatternFlowIpv4TosThroughput.Choice.Enum - (PatternFlowIpv4TosReliability_Choice_Enum)(0), // 202: otg.PatternFlowIpv4TosReliability.Choice.Enum - (PatternFlowIpv4TosMonetary_Choice_Enum)(0), // 203: otg.PatternFlowIpv4TosMonetary.Choice.Enum - (PatternFlowIpv4TosUnused_Choice_Enum)(0), // 204: otg.PatternFlowIpv4TosUnused.Choice.Enum - (PatternFlowIpv6Version_Choice_Enum)(0), // 205: otg.PatternFlowIpv6Version.Choice.Enum - (PatternFlowIpv6TrafficClass_Choice_Enum)(0), // 206: otg.PatternFlowIpv6TrafficClass.Choice.Enum - (PatternFlowIpv6FlowLabel_Choice_Enum)(0), // 207: otg.PatternFlowIpv6FlowLabel.Choice.Enum - (PatternFlowIpv6PayloadLength_Choice_Enum)(0), // 208: otg.PatternFlowIpv6PayloadLength.Choice.Enum - (PatternFlowIpv6NextHeader_Choice_Enum)(0), // 209: otg.PatternFlowIpv6NextHeader.Choice.Enum - (PatternFlowIpv6HopLimit_Choice_Enum)(0), // 210: otg.PatternFlowIpv6HopLimit.Choice.Enum - (PatternFlowIpv6Src_Choice_Enum)(0), // 211: otg.PatternFlowIpv6Src.Choice.Enum - (PatternFlowIpv6Dst_Choice_Enum)(0), // 212: otg.PatternFlowIpv6Dst.Choice.Enum - (PatternFlowPfcPauseDst_Choice_Enum)(0), // 213: otg.PatternFlowPfcPauseDst.Choice.Enum - (PatternFlowPfcPauseSrc_Choice_Enum)(0), // 214: otg.PatternFlowPfcPauseSrc.Choice.Enum - (PatternFlowPfcPauseEtherType_Choice_Enum)(0), // 215: otg.PatternFlowPfcPauseEtherType.Choice.Enum - (PatternFlowPfcPauseControlOpCode_Choice_Enum)(0), // 216: otg.PatternFlowPfcPauseControlOpCode.Choice.Enum - (PatternFlowPfcPauseClassEnableVector_Choice_Enum)(0), // 217: otg.PatternFlowPfcPauseClassEnableVector.Choice.Enum - (PatternFlowPfcPausePauseClass0_Choice_Enum)(0), // 218: otg.PatternFlowPfcPausePauseClass0.Choice.Enum - (PatternFlowPfcPausePauseClass1_Choice_Enum)(0), // 219: otg.PatternFlowPfcPausePauseClass1.Choice.Enum - (PatternFlowPfcPausePauseClass2_Choice_Enum)(0), // 220: otg.PatternFlowPfcPausePauseClass2.Choice.Enum - (PatternFlowPfcPausePauseClass3_Choice_Enum)(0), // 221: otg.PatternFlowPfcPausePauseClass3.Choice.Enum - (PatternFlowPfcPausePauseClass4_Choice_Enum)(0), // 222: otg.PatternFlowPfcPausePauseClass4.Choice.Enum - (PatternFlowPfcPausePauseClass5_Choice_Enum)(0), // 223: otg.PatternFlowPfcPausePauseClass5.Choice.Enum - (PatternFlowPfcPausePauseClass6_Choice_Enum)(0), // 224: otg.PatternFlowPfcPausePauseClass6.Choice.Enum - (PatternFlowPfcPausePauseClass7_Choice_Enum)(0), // 225: otg.PatternFlowPfcPausePauseClass7.Choice.Enum - (PatternFlowEthernetPauseDst_Choice_Enum)(0), // 226: otg.PatternFlowEthernetPauseDst.Choice.Enum - (PatternFlowEthernetPauseSrc_Choice_Enum)(0), // 227: otg.PatternFlowEthernetPauseSrc.Choice.Enum - (PatternFlowEthernetPauseEtherType_Choice_Enum)(0), // 228: otg.PatternFlowEthernetPauseEtherType.Choice.Enum - (PatternFlowEthernetPauseControlOpCode_Choice_Enum)(0), // 229: otg.PatternFlowEthernetPauseControlOpCode.Choice.Enum - (PatternFlowEthernetPauseTime_Choice_Enum)(0), // 230: otg.PatternFlowEthernetPauseTime.Choice.Enum - (PatternFlowTcpSrcPort_Choice_Enum)(0), // 231: otg.PatternFlowTcpSrcPort.Choice.Enum - (PatternFlowTcpDstPort_Choice_Enum)(0), // 232: otg.PatternFlowTcpDstPort.Choice.Enum - (PatternFlowTcpSeqNum_Choice_Enum)(0), // 233: otg.PatternFlowTcpSeqNum.Choice.Enum - (PatternFlowTcpAckNum_Choice_Enum)(0), // 234: otg.PatternFlowTcpAckNum.Choice.Enum - (PatternFlowTcpDataOffset_Choice_Enum)(0), // 235: otg.PatternFlowTcpDataOffset.Choice.Enum - (PatternFlowTcpEcnNs_Choice_Enum)(0), // 236: otg.PatternFlowTcpEcnNs.Choice.Enum - (PatternFlowTcpEcnCwr_Choice_Enum)(0), // 237: otg.PatternFlowTcpEcnCwr.Choice.Enum - (PatternFlowTcpEcnEcho_Choice_Enum)(0), // 238: otg.PatternFlowTcpEcnEcho.Choice.Enum - (PatternFlowTcpCtlUrg_Choice_Enum)(0), // 239: otg.PatternFlowTcpCtlUrg.Choice.Enum - (PatternFlowTcpCtlAck_Choice_Enum)(0), // 240: otg.PatternFlowTcpCtlAck.Choice.Enum - (PatternFlowTcpCtlPsh_Choice_Enum)(0), // 241: otg.PatternFlowTcpCtlPsh.Choice.Enum - (PatternFlowTcpCtlRst_Choice_Enum)(0), // 242: otg.PatternFlowTcpCtlRst.Choice.Enum - (PatternFlowTcpCtlSyn_Choice_Enum)(0), // 243: otg.PatternFlowTcpCtlSyn.Choice.Enum - (PatternFlowTcpCtlFin_Choice_Enum)(0), // 244: otg.PatternFlowTcpCtlFin.Choice.Enum - (PatternFlowTcpWindow_Choice_Enum)(0), // 245: otg.PatternFlowTcpWindow.Choice.Enum - (PatternFlowUdpSrcPort_Choice_Enum)(0), // 246: otg.PatternFlowUdpSrcPort.Choice.Enum - (PatternFlowUdpDstPort_Choice_Enum)(0), // 247: otg.PatternFlowUdpDstPort.Choice.Enum - (PatternFlowUdpLength_Choice_Enum)(0), // 248: otg.PatternFlowUdpLength.Choice.Enum - (PatternFlowUdpChecksum_Choice_Enum)(0), // 249: otg.PatternFlowUdpChecksum.Choice.Enum - (PatternFlowUdpChecksum_Generated_Enum)(0), // 250: otg.PatternFlowUdpChecksum.Generated.Enum - (PatternFlowGreChecksumPresent_Choice_Enum)(0), // 251: otg.PatternFlowGreChecksumPresent.Choice.Enum - (PatternFlowGreReserved0_Choice_Enum)(0), // 252: otg.PatternFlowGreReserved0.Choice.Enum - (PatternFlowGreVersion_Choice_Enum)(0), // 253: otg.PatternFlowGreVersion.Choice.Enum - (PatternFlowGreProtocol_Choice_Enum)(0), // 254: otg.PatternFlowGreProtocol.Choice.Enum - (PatternFlowGreChecksum_Choice_Enum)(0), // 255: otg.PatternFlowGreChecksum.Choice.Enum - (PatternFlowGreChecksum_Generated_Enum)(0), // 256: otg.PatternFlowGreChecksum.Generated.Enum - (PatternFlowGreReserved1_Choice_Enum)(0), // 257: otg.PatternFlowGreReserved1.Choice.Enum - (PatternFlowGtpv1Version_Choice_Enum)(0), // 258: otg.PatternFlowGtpv1Version.Choice.Enum - (PatternFlowGtpv1ProtocolType_Choice_Enum)(0), // 259: otg.PatternFlowGtpv1ProtocolType.Choice.Enum - (PatternFlowGtpv1Reserved_Choice_Enum)(0), // 260: otg.PatternFlowGtpv1Reserved.Choice.Enum - (PatternFlowGtpv1EFlag_Choice_Enum)(0), // 261: otg.PatternFlowGtpv1EFlag.Choice.Enum - (PatternFlowGtpv1SFlag_Choice_Enum)(0), // 262: otg.PatternFlowGtpv1SFlag.Choice.Enum - (PatternFlowGtpv1PnFlag_Choice_Enum)(0), // 263: otg.PatternFlowGtpv1PnFlag.Choice.Enum - (PatternFlowGtpv1MessageType_Choice_Enum)(0), // 264: otg.PatternFlowGtpv1MessageType.Choice.Enum - (PatternFlowGtpv1MessageLength_Choice_Enum)(0), // 265: otg.PatternFlowGtpv1MessageLength.Choice.Enum - (PatternFlowGtpv1Teid_Choice_Enum)(0), // 266: otg.PatternFlowGtpv1Teid.Choice.Enum - (PatternFlowGtpv1SquenceNumber_Choice_Enum)(0), // 267: otg.PatternFlowGtpv1SquenceNumber.Choice.Enum - (PatternFlowGtpv1NPduNumber_Choice_Enum)(0), // 268: otg.PatternFlowGtpv1NPduNumber.Choice.Enum - (PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum)(0), // 269: otg.PatternFlowGtpv1NextExtensionHeaderType.Choice.Enum - (PatternFlowGtpExtensionExtensionLength_Choice_Enum)(0), // 270: otg.PatternFlowGtpExtensionExtensionLength.Choice.Enum - (PatternFlowGtpExtensionContents_Choice_Enum)(0), // 271: otg.PatternFlowGtpExtensionContents.Choice.Enum - (PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum)(0), // 272: otg.PatternFlowGtpExtensionNextExtensionHeader.Choice.Enum - (PatternFlowGtpv2Version_Choice_Enum)(0), // 273: otg.PatternFlowGtpv2Version.Choice.Enum - (PatternFlowGtpv2PiggybackingFlag_Choice_Enum)(0), // 274: otg.PatternFlowGtpv2PiggybackingFlag.Choice.Enum - (PatternFlowGtpv2TeidFlag_Choice_Enum)(0), // 275: otg.PatternFlowGtpv2TeidFlag.Choice.Enum - (PatternFlowGtpv2Spare1_Choice_Enum)(0), // 276: otg.PatternFlowGtpv2Spare1.Choice.Enum - (PatternFlowGtpv2MessageType_Choice_Enum)(0), // 277: otg.PatternFlowGtpv2MessageType.Choice.Enum - (PatternFlowGtpv2MessageLength_Choice_Enum)(0), // 278: otg.PatternFlowGtpv2MessageLength.Choice.Enum - (PatternFlowGtpv2Teid_Choice_Enum)(0), // 279: otg.PatternFlowGtpv2Teid.Choice.Enum - (PatternFlowGtpv2SequenceNumber_Choice_Enum)(0), // 280: otg.PatternFlowGtpv2SequenceNumber.Choice.Enum - (PatternFlowGtpv2Spare2_Choice_Enum)(0), // 281: otg.PatternFlowGtpv2Spare2.Choice.Enum - (PatternFlowArpHardwareType_Choice_Enum)(0), // 282: otg.PatternFlowArpHardwareType.Choice.Enum - (PatternFlowArpProtocolType_Choice_Enum)(0), // 283: otg.PatternFlowArpProtocolType.Choice.Enum - (PatternFlowArpHardwareLength_Choice_Enum)(0), // 284: otg.PatternFlowArpHardwareLength.Choice.Enum - (PatternFlowArpProtocolLength_Choice_Enum)(0), // 285: otg.PatternFlowArpProtocolLength.Choice.Enum - (PatternFlowArpOperation_Choice_Enum)(0), // 286: otg.PatternFlowArpOperation.Choice.Enum - (PatternFlowArpSenderHardwareAddr_Choice_Enum)(0), // 287: otg.PatternFlowArpSenderHardwareAddr.Choice.Enum - (PatternFlowArpSenderProtocolAddr_Choice_Enum)(0), // 288: otg.PatternFlowArpSenderProtocolAddr.Choice.Enum - (PatternFlowArpTargetHardwareAddr_Choice_Enum)(0), // 289: otg.PatternFlowArpTargetHardwareAddr.Choice.Enum - (PatternFlowArpTargetProtocolAddr_Choice_Enum)(0), // 290: otg.PatternFlowArpTargetProtocolAddr.Choice.Enum - (PatternFlowIcmpEchoType_Choice_Enum)(0), // 291: otg.PatternFlowIcmpEchoType.Choice.Enum - (PatternFlowIcmpEchoCode_Choice_Enum)(0), // 292: otg.PatternFlowIcmpEchoCode.Choice.Enum - (PatternFlowIcmpEchoChecksum_Choice_Enum)(0), // 293: otg.PatternFlowIcmpEchoChecksum.Choice.Enum - (PatternFlowIcmpEchoChecksum_Generated_Enum)(0), // 294: otg.PatternFlowIcmpEchoChecksum.Generated.Enum - (PatternFlowIcmpEchoIdentifier_Choice_Enum)(0), // 295: otg.PatternFlowIcmpEchoIdentifier.Choice.Enum - (PatternFlowIcmpEchoSequenceNumber_Choice_Enum)(0), // 296: otg.PatternFlowIcmpEchoSequenceNumber.Choice.Enum - (PatternFlowIcmpCommonChecksum_Choice_Enum)(0), // 297: otg.PatternFlowIcmpCommonChecksum.Choice.Enum - (PatternFlowIcmpCommonChecksum_Generated_Enum)(0), // 298: otg.PatternFlowIcmpCommonChecksum.Generated.Enum - (PatternFlowIcmpNextFieldsIdentifier_Choice_Enum)(0), // 299: otg.PatternFlowIcmpNextFieldsIdentifier.Choice.Enum - (PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum)(0), // 300: otg.PatternFlowIcmpNextFieldsSequenceNumber.Choice.Enum - (PatternFlowIcmpv6EchoType_Choice_Enum)(0), // 301: otg.PatternFlowIcmpv6EchoType.Choice.Enum - (PatternFlowIcmpv6EchoCode_Choice_Enum)(0), // 302: otg.PatternFlowIcmpv6EchoCode.Choice.Enum - (PatternFlowIcmpv6EchoIdentifier_Choice_Enum)(0), // 303: otg.PatternFlowIcmpv6EchoIdentifier.Choice.Enum - (PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum)(0), // 304: otg.PatternFlowIcmpv6EchoSequenceNumber.Choice.Enum - (PatternFlowIcmpv6EchoChecksum_Choice_Enum)(0), // 305: otg.PatternFlowIcmpv6EchoChecksum.Choice.Enum - (PatternFlowIcmpv6EchoChecksum_Generated_Enum)(0), // 306: otg.PatternFlowIcmpv6EchoChecksum.Generated.Enum - (PatternFlowIcmpv6CommonChecksum_Choice_Enum)(0), // 307: otg.PatternFlowIcmpv6CommonChecksum.Choice.Enum - (PatternFlowIcmpv6CommonChecksum_Generated_Enum)(0), // 308: otg.PatternFlowIcmpv6CommonChecksum.Generated.Enum - (PatternFlowPppAddress_Choice_Enum)(0), // 309: otg.PatternFlowPppAddress.Choice.Enum - (PatternFlowPppControl_Choice_Enum)(0), // 310: otg.PatternFlowPppControl.Choice.Enum - (PatternFlowPppProtocolType_Choice_Enum)(0), // 311: otg.PatternFlowPppProtocolType.Choice.Enum - (PatternFlowIgmpv1Version_Choice_Enum)(0), // 312: otg.PatternFlowIgmpv1Version.Choice.Enum - (PatternFlowIgmpv1Type_Choice_Enum)(0), // 313: otg.PatternFlowIgmpv1Type.Choice.Enum - (PatternFlowIgmpv1Unused_Choice_Enum)(0), // 314: otg.PatternFlowIgmpv1Unused.Choice.Enum - (PatternFlowIgmpv1Checksum_Choice_Enum)(0), // 315: otg.PatternFlowIgmpv1Checksum.Choice.Enum - (PatternFlowIgmpv1Checksum_Generated_Enum)(0), // 316: otg.PatternFlowIgmpv1Checksum.Generated.Enum - (PatternFlowIgmpv1GroupAddress_Choice_Enum)(0), // 317: otg.PatternFlowIgmpv1GroupAddress.Choice.Enum - (PatternFlowMplsLabel_Choice_Enum)(0), // 318: otg.PatternFlowMplsLabel.Choice.Enum - (PatternFlowMplsTrafficClass_Choice_Enum)(0), // 319: otg.PatternFlowMplsTrafficClass.Choice.Enum - (PatternFlowMplsBottomOfStack_Choice_Enum)(0), // 320: otg.PatternFlowMplsBottomOfStack.Choice.Enum - (PatternFlowMplsTimeToLive_Choice_Enum)(0), // 321: otg.PatternFlowMplsTimeToLive.Choice.Enum - (*Config)(nil), // 322: otg.Config - (*ConfigOptions)(nil), // 323: otg.ConfigOptions - (*Port)(nil), // 324: otg.Port - (*PortOptions)(nil), // 325: otg.PortOptions - (*Lag)(nil), // 326: otg.Lag - (*LagPort)(nil), // 327: otg.LagPort - (*LagProtocol)(nil), // 328: otg.LagProtocol - (*LagProtocolStatic)(nil), // 329: otg.LagProtocolStatic - (*LagProtocolLacp)(nil), // 330: otg.LagProtocolLacp - (*LagPortLacp)(nil), // 331: otg.LagPortLacp - (*DeviceEthernetBase)(nil), // 332: otg.DeviceEthernetBase - (*DeviceEthernet)(nil), // 333: otg.DeviceEthernet - (*EthernetConnection)(nil), // 334: otg.EthernetConnection - (*DeviceVlan)(nil), // 335: otg.DeviceVlan - (*DeviceIpv4)(nil), // 336: otg.DeviceIpv4 - (*DeviceIpv4Loopback)(nil), // 337: otg.DeviceIpv4Loopback - (*DeviceIpv4GatewayMAC)(nil), // 338: otg.DeviceIpv4GatewayMAC - (*DeviceIpv6)(nil), // 339: otg.DeviceIpv6 - (*DeviceIpv6Loopback)(nil), // 340: otg.DeviceIpv6Loopback - (*DeviceIpv6GatewayMAC)(nil), // 341: otg.DeviceIpv6GatewayMAC - (*Layer1)(nil), // 342: otg.Layer1 - (*Layer1AutoNegotiation)(nil), // 343: otg.Layer1AutoNegotiation - (*Layer1FlowControl)(nil), // 344: otg.Layer1FlowControl - (*Layer1Ieee8023X)(nil), // 345: otg.Layer1Ieee8023x - (*Layer1Ieee8021Qbb)(nil), // 346: otg.Layer1Ieee8021qbb - (*Capture)(nil), // 347: otg.Capture - (*CaptureFilter)(nil), // 348: otg.CaptureFilter - (*CaptureCustom)(nil), // 349: otg.CaptureCustom - (*CaptureField)(nil), // 350: otg.CaptureField - (*CaptureEthernet)(nil), // 351: otg.CaptureEthernet - (*CaptureVlan)(nil), // 352: otg.CaptureVlan - (*CaptureIpv4)(nil), // 353: otg.CaptureIpv4 - (*CaptureIpv6)(nil), // 354: otg.CaptureIpv6 - (*Device)(nil), // 355: otg.Device - (*ProtocolOptions)(nil), // 356: otg.ProtocolOptions - (*DeviceIsisRouter)(nil), // 357: otg.DeviceIsisRouter - (*DeviceIsisMultiInstance)(nil), // 358: otg.DeviceIsisMultiInstance - (*IsisInterface)(nil), // 359: otg.IsisInterface - (*IsisInterfaceLevel)(nil), // 360: otg.IsisInterfaceLevel - (*IsisMT)(nil), // 361: otg.IsisMT - (*LinkStateTE)(nil), // 362: otg.LinkStateTE - (*LinkStatepriorityBandwidths)(nil), // 363: otg.LinkStatepriorityBandwidths - (*IsisInterfaceAuthentication)(nil), // 364: otg.IsisInterfaceAuthentication - (*IsisInterfaceAdvanced)(nil), // 365: otg.IsisInterfaceAdvanced - (*IsisInterfaceLinkProtection)(nil), // 366: otg.IsisInterfaceLinkProtection - (*IsisBasic)(nil), // 367: otg.IsisBasic - (*IsisAdvanced)(nil), // 368: otg.IsisAdvanced - (*IsisAuthentication)(nil), // 369: otg.IsisAuthentication - (*IsisAuthenticationBase)(nil), // 370: otg.IsisAuthenticationBase - (*IsisV4RouteRange)(nil), // 371: otg.IsisV4RouteRange - (*V4RouteAddress)(nil), // 372: otg.V4RouteAddress - (*V6RouteAddress)(nil), // 373: otg.V6RouteAddress - (*MACRouteAddress)(nil), // 374: otg.MACRouteAddress - (*IsisV6RouteRange)(nil), // 375: otg.IsisV6RouteRange - (*DeviceBgpRouter)(nil), // 376: otg.DeviceBgpRouter - (*DeviceBgpMessageHeaderError)(nil), // 377: otg.DeviceBgpMessageHeaderError - (*DeviceBgpOpenMessageError)(nil), // 378: otg.DeviceBgpOpenMessageError - (*DeviceBgpUpdateMessageError)(nil), // 379: otg.DeviceBgpUpdateMessageError - (*DeviceBgpHoldTimerExpired)(nil), // 380: otg.DeviceBgpHoldTimerExpired - (*DeviceBgpFiniteStateMachineError)(nil), // 381: otg.DeviceBgpFiniteStateMachineError - (*DeviceBgpCeaseError)(nil), // 382: otg.DeviceBgpCeaseError - (*DeviceBgpCustomError)(nil), // 383: otg.DeviceBgpCustomError - (*BgpV4Peer)(nil), // 384: otg.BgpV4Peer - (*BgpV4Interface)(nil), // 385: otg.BgpV4Interface - (*BgpV4EthernetSegment)(nil), // 386: otg.BgpV4EthernetSegment - (*BgpEthernetSegmentDfElection)(nil), // 387: otg.BgpEthernetSegmentDfElection - (*BgpRouteAdvanced)(nil), // 388: otg.BgpRouteAdvanced - (*BgpCommunity)(nil), // 389: otg.BgpCommunity - (*BgpExtCommunity)(nil), // 390: otg.BgpExtCommunity - (*BgpAsPath)(nil), // 391: otg.BgpAsPath - (*BgpAsPathSegment)(nil), // 392: otg.BgpAsPathSegment - (*BgpV4EvpnEvis)(nil), // 393: otg.BgpV4EvpnEvis - (*BgpV4EviVxlan)(nil), // 394: otg.BgpV4EviVxlan - (*BgpV4EviVxlanBroadcastDomain)(nil), // 395: otg.BgpV4EviVxlanBroadcastDomain - (*BgpCMacIpRange)(nil), // 396: otg.BgpCMacIpRange - (*BgpRouteDistinguisher)(nil), // 397: otg.BgpRouteDistinguisher - (*BgpRouteTarget)(nil), // 398: otg.BgpRouteTarget - (*BgpAdvanced)(nil), // 399: otg.BgpAdvanced - (*BgpCapability)(nil), // 400: otg.BgpCapability - (*BgpLearnedInformationFilter)(nil), // 401: otg.BgpLearnedInformationFilter - (*BgpV4RouteRange)(nil), // 402: otg.BgpV4RouteRange - (*BgpAddPath)(nil), // 403: otg.BgpAddPath - (*BgpExtendedCommunity)(nil), // 404: otg.BgpExtendedCommunity - (*BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget)(nil), // 405: otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget - (*BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin)(nil), // 406: otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin - (*BgpExtendedCommunityTransitive2OctetAsType)(nil), // 407: otg.BgpExtendedCommunityTransitive2OctetAsType - (*BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin)(nil), // 408: otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin - (*BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget)(nil), // 409: otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget - (*BgpExtendedCommunityTransitiveIpv4AddressType)(nil), // 410: otg.BgpExtendedCommunityTransitiveIpv4AddressType - (*BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget)(nil), // 411: otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget - (*BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin)(nil), // 412: otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin - (*BgpExtendedCommunityTransitive4OctetAsType)(nil), // 413: otg.BgpExtendedCommunityTransitive4OctetAsType - (*BgpExtendedCommunityTransitiveOpaqueTypeColor)(nil), // 414: otg.BgpExtendedCommunityTransitiveOpaqueTypeColor - (*BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation)(nil), // 415: otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation - (*BgpExtendedCommunityTransitiveOpaqueType)(nil), // 416: otg.BgpExtendedCommunityTransitiveOpaqueType - (*BgpExtendedCommunityTransitiveEvpnTypeRouterMac)(nil), // 417: otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac - (*BgpExtendedCommunityTransitiveEvpnType)(nil), // 418: otg.BgpExtendedCommunityTransitiveEvpnType - (*BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth)(nil), // 419: otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth - (*BgpExtendedCommunityNonTransitive2OctetAsType)(nil), // 420: otg.BgpExtendedCommunityNonTransitive2OctetAsType - (*BgpExtendedCommunityCustomType)(nil), // 421: otg.BgpExtendedCommunityCustomType - (*BgpV6RouteRange)(nil), // 422: otg.BgpV6RouteRange - (*BgpSrteV4Policy)(nil), // 423: otg.BgpSrteV4Policy - (*BgpSrteV4TunnelTlv)(nil), // 424: otg.BgpSrteV4TunnelTlv - (*BgpSrteRemoteEndpointSubTlv)(nil), // 425: otg.BgpSrteRemoteEndpointSubTlv - (*BgpSrteColorSubTlv)(nil), // 426: otg.BgpSrteColorSubTlv - (*BgpSrteBindingSubTlv)(nil), // 427: otg.BgpSrteBindingSubTlv - (*BgpSrtePreferenceSubTlv)(nil), // 428: otg.BgpSrtePreferenceSubTlv - (*BgpSrtePolicyPrioritySubTlv)(nil), // 429: otg.BgpSrtePolicyPrioritySubTlv - (*BgpSrtePolicyNameSubTlv)(nil), // 430: otg.BgpSrtePolicyNameSubTlv - (*BgpSrteExplicitNullLabelPolicySubTlv)(nil), // 431: otg.BgpSrteExplicitNullLabelPolicySubTlv - (*BgpSrteSegmentList)(nil), // 432: otg.BgpSrteSegmentList - (*BgpSrteSegment)(nil), // 433: otg.BgpSrteSegment - (*BgpSrteSrMplsSid)(nil), // 434: otg.BgpSrteSrMplsSid - (*BgpSrteSRv6SIDEndpointBehaviorAndStructure)(nil), // 435: otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure - (*BgpSrteSegmentATypeSubTlv)(nil), // 436: otg.BgpSrteSegmentATypeSubTlv - (*BgpSrteSegmentBTypeSubTlv)(nil), // 437: otg.BgpSrteSegmentBTypeSubTlv - (*BgpSrteSegmentCTypeSubTlv)(nil), // 438: otg.BgpSrteSegmentCTypeSubTlv - (*BgpSrteSegmentDTypeSubTlv)(nil), // 439: otg.BgpSrteSegmentDTypeSubTlv - (*BgpSrteSegmentETypeSubTlv)(nil), // 440: otg.BgpSrteSegmentETypeSubTlv - (*BgpSrteSegmentFTypeSubTlv)(nil), // 441: otg.BgpSrteSegmentFTypeSubTlv - (*BgpSrteSegmentGTypeSubTlv)(nil), // 442: otg.BgpSrteSegmentGTypeSubTlv - (*BgpSrteSegmentHTypeSubTlv)(nil), // 443: otg.BgpSrteSegmentHTypeSubTlv - (*BgpSrteSegmentITypeSubTlv)(nil), // 444: otg.BgpSrteSegmentITypeSubTlv - (*BgpSrteSegmentJTypeSubTlv)(nil), // 445: otg.BgpSrteSegmentJTypeSubTlv - (*BgpSrteSegmentKTypeSubTlv)(nil), // 446: otg.BgpSrteSegmentKTypeSubTlv - (*BgpSrteV6Policy)(nil), // 447: otg.BgpSrteV6Policy - (*BgpSrteV6TunnelTlv)(nil), // 448: otg.BgpSrteV6TunnelTlv - (*BgpGracefulRestart)(nil), // 449: otg.BgpGracefulRestart - (*BgpV6Peer)(nil), // 450: otg.BgpV6Peer - (*BgpV6Interface)(nil), // 451: otg.BgpV6Interface - (*BgpV6SegmentRouting)(nil), // 452: otg.BgpV6SegmentRouting - (*BgpV6EthernetSegment)(nil), // 453: otg.BgpV6EthernetSegment - (*BgpV6EvpnEvis)(nil), // 454: otg.BgpV6EvpnEvis - (*BgpV6EviVxlan)(nil), // 455: otg.BgpV6EviVxlan - (*BgpV6EviVxlanBroadcastDomain)(nil), // 456: otg.BgpV6EviVxlanBroadcastDomain - (*DeviceVxlan)(nil), // 457: otg.DeviceVxlan - (*VxlanV4Tunnel)(nil), // 458: otg.VxlanV4Tunnel - (*VxlanV6Tunnel)(nil), // 459: otg.VxlanV6Tunnel - (*VxlanV4TunnelDestinationIPMode)(nil), // 460: otg.VxlanV4TunnelDestinationIPMode - (*VxlanV6TunnelDestinationIPMode)(nil), // 461: otg.VxlanV6TunnelDestinationIPMode - (*VxlanV4TunnelDestinationIPModeUnicast)(nil), // 462: otg.VxlanV4TunnelDestinationIPModeUnicast - (*VxlanV6TunnelDestinationIPModeUnicast)(nil), // 463: otg.VxlanV6TunnelDestinationIPModeUnicast - (*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache)(nil), // 464: otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - (*VxlanV4TunnelDestinationIPModeUnicastVtep)(nil), // 465: otg.VxlanV4TunnelDestinationIPModeUnicastVtep - (*VxlanV6TunnelDestinationIPModeUnicastVtep)(nil), // 466: otg.VxlanV6TunnelDestinationIPModeUnicastVtep - (*VxlanV4TunnelDestinationIPModeMulticast)(nil), // 467: otg.VxlanV4TunnelDestinationIPModeMulticast - (*VxlanV6TunnelDestinationIPModeMulticast)(nil), // 468: otg.VxlanV6TunnelDestinationIPModeMulticast - (*DeviceRsvp)(nil), // 469: otg.DeviceRsvp - (*RsvpIpv4Interface)(nil), // 470: otg.RsvpIpv4Interface - (*RsvpLspIpv4Interface)(nil), // 471: otg.RsvpLspIpv4Interface - (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp)(nil), // 472: otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp - (*RsvpLspIpv4InterfaceP2PIngressIpv4Lsp)(nil), // 473: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp - (*RsvpSessionAttribute)(nil), // 474: otg.RsvpSessionAttribute - (*RsvpResourceAffinities)(nil), // 475: otg.RsvpResourceAffinities - (*RsvpTspec)(nil), // 476: otg.RsvpTspec - (*RsvpFastReroute)(nil), // 477: otg.RsvpFastReroute - (*RsvpEro)(nil), // 478: otg.RsvpEro - (*RsvpEroSubobject)(nil), // 479: otg.RsvpEroSubobject - (*Flow)(nil), // 480: otg.Flow - (*FlowTxRx)(nil), // 481: otg.FlowTxRx - (*FlowPort)(nil), // 482: otg.FlowPort - (*FlowRouter)(nil), // 483: otg.FlowRouter - (*FlowHeader)(nil), // 484: otg.FlowHeader - (*FlowCustom)(nil), // 485: otg.FlowCustom - (*FlowCustomMetricTag)(nil), // 486: otg.FlowCustomMetricTag - (*FlowEthernet)(nil), // 487: otg.FlowEthernet - (*FlowVlan)(nil), // 488: otg.FlowVlan - (*FlowVxlan)(nil), // 489: otg.FlowVxlan - (*FlowIpv4)(nil), // 490: otg.FlowIpv4 - (*FlowIpv4Options)(nil), // 491: otg.FlowIpv4Options - (*FlowIpv4OptionsCustom)(nil), // 492: otg.FlowIpv4OptionsCustom - (*FlowIpv4OptionsCustomType)(nil), // 493: otg.FlowIpv4OptionsCustomType - (*FlowIpv4OptionsCustomLength)(nil), // 494: otg.FlowIpv4OptionsCustomLength - (*FlowIpv4Priority)(nil), // 495: otg.FlowIpv4Priority - (*FlowIpv4Dscp)(nil), // 496: otg.FlowIpv4Dscp - (*FlowIpv4Tos)(nil), // 497: otg.FlowIpv4Tos - (*FlowIpv6)(nil), // 498: otg.FlowIpv6 - (*FlowPfcPause)(nil), // 499: otg.FlowPfcPause - (*FlowEthernetPause)(nil), // 500: otg.FlowEthernetPause - (*FlowTcp)(nil), // 501: otg.FlowTcp - (*FlowUdp)(nil), // 502: otg.FlowUdp - (*FlowGre)(nil), // 503: otg.FlowGre - (*FlowGtpv1)(nil), // 504: otg.FlowGtpv1 - (*FlowGtpExtension)(nil), // 505: otg.FlowGtpExtension - (*FlowGtpv2)(nil), // 506: otg.FlowGtpv2 - (*FlowArp)(nil), // 507: otg.FlowArp - (*FlowIcmp)(nil), // 508: otg.FlowIcmp - (*FlowIcmpEcho)(nil), // 509: otg.FlowIcmpEcho - (*FlowIcmpv6)(nil), // 510: otg.FlowIcmpv6 - (*FlowIcmpv6Echo)(nil), // 511: otg.FlowIcmpv6Echo - (*FlowPpp)(nil), // 512: otg.FlowPpp - (*FlowIgmpv1)(nil), // 513: otg.FlowIgmpv1 - (*FlowMpls)(nil), // 514: otg.FlowMpls - (*FlowSize)(nil), // 515: otg.FlowSize - (*FlowSizeIncrement)(nil), // 516: otg.FlowSizeIncrement - (*FlowSizeRandom)(nil), // 517: otg.FlowSizeRandom - (*FlowSizeWeightPairs)(nil), // 518: otg.FlowSizeWeightPairs - (*FlowSizeWeightPairsCustom)(nil), // 519: otg.FlowSizeWeightPairsCustom - (*FlowRate)(nil), // 520: otg.FlowRate - (*FlowDuration)(nil), // 521: otg.FlowDuration - (*FlowContinuous)(nil), // 522: otg.FlowContinuous - (*FlowDelay)(nil), // 523: otg.FlowDelay - (*FlowFixedPackets)(nil), // 524: otg.FlowFixedPackets - (*FlowFixedSeconds)(nil), // 525: otg.FlowFixedSeconds - (*FlowBurst)(nil), // 526: otg.FlowBurst - (*FlowDurationInterBurstGap)(nil), // 527: otg.FlowDurationInterBurstGap - (*FlowMetrics)(nil), // 528: otg.FlowMetrics - (*FlowLatencyMetrics)(nil), // 529: otg.FlowLatencyMetrics - (*FlowPredefinedTags)(nil), // 530: otg.FlowPredefinedTags - (*FlowRxTxRatio)(nil), // 531: otg.FlowRxTxRatio - (*FlowRxTxRatioRxCount)(nil), // 532: otg.FlowRxTxRatioRxCount - (*Event)(nil), // 533: otg.Event - (*EventRxRateThreshold)(nil), // 534: otg.EventRxRateThreshold - (*EventLink)(nil), // 535: otg.EventLink - (*EventRouteAdvertiseWithdraw)(nil), // 536: otg.EventRouteAdvertiseWithdraw - (*EventRequest)(nil), // 537: otg.EventRequest - (*EventSubscription)(nil), // 538: otg.EventSubscription - (*Lldp)(nil), // 539: otg.Lldp - (*LldpConnection)(nil), // 540: otg.LldpConnection - (*LldpChassisId)(nil), // 541: otg.LldpChassisId - (*LldpPortId)(nil), // 542: otg.LldpPortId - (*LldpChassisMacSubType)(nil), // 543: otg.LldpChassisMacSubType - (*LldpPortInterfaceNameSubType)(nil), // 544: otg.LldpPortInterfaceNameSubType - (*LldpSystemName)(nil), // 545: otg.LldpSystemName - (*Error)(nil), // 546: otg.Error - (*Warning)(nil), // 547: otg.Warning - (*ConfigUpdate)(nil), // 548: otg.ConfigUpdate - (*FlowsUpdate)(nil), // 549: otg.FlowsUpdate - (*ControlState)(nil), // 550: otg.ControlState - (*StatePort)(nil), // 551: otg.StatePort - (*StateTraffic)(nil), // 552: otg.StateTraffic - (*StateProtocol)(nil), // 553: otg.StateProtocol - (*StatePortLink)(nil), // 554: otg.StatePortLink - (*StatePortCapture)(nil), // 555: otg.StatePortCapture - (*StateTrafficFlowTransmit)(nil), // 556: otg.StateTrafficFlowTransmit - (*StateProtocolAll)(nil), // 557: otg.StateProtocolAll - (*StateProtocolRoute)(nil), // 558: otg.StateProtocolRoute - (*StateProtocolLacp)(nil), // 559: otg.StateProtocolLacp - (*StateProtocolLacpAdmin)(nil), // 560: otg.StateProtocolLacpAdmin - (*StateProtocolLacpMemberPorts)(nil), // 561: otg.StateProtocolLacpMemberPorts - (*StateProtocolBgp)(nil), // 562: otg.StateProtocolBgp - (*StateProtocolBgpPeers)(nil), // 563: otg.StateProtocolBgpPeers - (*StateProtocolIsis)(nil), // 564: otg.StateProtocolIsis - (*StateProtocolIsisRouters)(nil), // 565: otg.StateProtocolIsisRouters - (*ControlAction)(nil), // 566: otg.ControlAction - (*ControlActionResponse)(nil), // 567: otg.ControlActionResponse - (*ActionResponse)(nil), // 568: otg.ActionResponse - (*ActionProtocol)(nil), // 569: otg.ActionProtocol - (*ActionResponseProtocol)(nil), // 570: otg.ActionResponseProtocol - (*ActionProtocolIpv4)(nil), // 571: otg.ActionProtocolIpv4 - (*ActionResponseProtocolIpv4)(nil), // 572: otg.ActionResponseProtocolIpv4 - (*ActionProtocolIpv4Ping)(nil), // 573: otg.ActionProtocolIpv4Ping - (*ActionProtocolIpv4PingRequest)(nil), // 574: otg.ActionProtocolIpv4PingRequest - (*ActionResponseProtocolIpv4Ping)(nil), // 575: otg.ActionResponseProtocolIpv4Ping - (*ActionResponseProtocolIpv4PingResponse)(nil), // 576: otg.ActionResponseProtocolIpv4PingResponse - (*ActionProtocolIpv6)(nil), // 577: otg.ActionProtocolIpv6 - (*ActionResponseProtocolIpv6)(nil), // 578: otg.ActionResponseProtocolIpv6 - (*ActionProtocolIpv6Ping)(nil), // 579: otg.ActionProtocolIpv6Ping - (*ActionProtocolIpv6PingRequest)(nil), // 580: otg.ActionProtocolIpv6PingRequest - (*ActionResponseProtocolIpv6Ping)(nil), // 581: otg.ActionResponseProtocolIpv6Ping - (*ActionResponseProtocolIpv6PingResponse)(nil), // 582: otg.ActionResponseProtocolIpv6PingResponse - (*ActionProtocolBgp)(nil), // 583: otg.ActionProtocolBgp - (*ActionProtocolBgpNotification)(nil), // 584: otg.ActionProtocolBgpNotification - (*ActionProtocolBgpInitiateGracefulRestart)(nil), // 585: otg.ActionProtocolBgpInitiateGracefulRestart - (*MetricsRequest)(nil), // 586: otg.MetricsRequest - (*MetricsResponse)(nil), // 587: otg.MetricsResponse - (*PortMetricsRequest)(nil), // 588: otg.PortMetricsRequest - (*PortMetric)(nil), // 589: otg.PortMetric - (*FlowMetricsRequest)(nil), // 590: otg.FlowMetricsRequest - (*FlowTaggedMetricsFilter)(nil), // 591: otg.FlowTaggedMetricsFilter - (*FlowMetricTagFilter)(nil), // 592: otg.FlowMetricTagFilter - (*FlowMetric)(nil), // 593: otg.FlowMetric - (*FlowTaggedMetric)(nil), // 594: otg.FlowTaggedMetric - (*FlowMetricTag)(nil), // 595: otg.FlowMetricTag - (*FlowMetricTagValue)(nil), // 596: otg.FlowMetricTagValue - (*MetricTimestamp)(nil), // 597: otg.MetricTimestamp - (*MetricLatency)(nil), // 598: otg.MetricLatency - (*Bgpv4MetricsRequest)(nil), // 599: otg.Bgpv4MetricsRequest - (*Bgpv4Metric)(nil), // 600: otg.Bgpv4Metric - (*Bgpv6MetricsRequest)(nil), // 601: otg.Bgpv6MetricsRequest - (*Bgpv6Metric)(nil), // 602: otg.Bgpv6Metric - (*IsisMetricsRequest)(nil), // 603: otg.IsisMetricsRequest - (*IsisMetric)(nil), // 604: otg.IsisMetric - (*LagMetricsRequest)(nil), // 605: otg.LagMetricsRequest - (*LagMetric)(nil), // 606: otg.LagMetric - (*LacpMetricsRequest)(nil), // 607: otg.LacpMetricsRequest - (*LacpMetric)(nil), // 608: otg.LacpMetric - (*LldpMetricsRequest)(nil), // 609: otg.LldpMetricsRequest - (*LldpMetric)(nil), // 610: otg.LldpMetric - (*RsvpMetricsRequest)(nil), // 611: otg.RsvpMetricsRequest - (*RsvpMetric)(nil), // 612: otg.RsvpMetric - (*StatesRequest)(nil), // 613: otg.StatesRequest - (*StatesResponse)(nil), // 614: otg.StatesResponse - (*Neighborsv4StatesRequest)(nil), // 615: otg.Neighborsv4StatesRequest - (*Neighborsv4State)(nil), // 616: otg.Neighborsv4State - (*Neighborsv6StatesRequest)(nil), // 617: otg.Neighborsv6StatesRequest - (*Neighborsv6State)(nil), // 618: otg.Neighborsv6State - (*BgpPrefixStateRequest)(nil), // 619: otg.BgpPrefixStateRequest - (*BgpPrefixIpv4UnicastFilter)(nil), // 620: otg.BgpPrefixIpv4UnicastFilter - (*BgpPrefixIpv6UnicastFilter)(nil), // 621: otg.BgpPrefixIpv6UnicastFilter - (*BgpPrefixesState)(nil), // 622: otg.BgpPrefixesState - (*BgpPrefixIpv4UnicastState)(nil), // 623: otg.BgpPrefixIpv4UnicastState - (*BgpPrefixIpv6UnicastState)(nil), // 624: otg.BgpPrefixIpv6UnicastState - (*ResultBgpCommunity)(nil), // 625: otg.ResultBgpCommunity - (*ResultBgpAsPath)(nil), // 626: otg.ResultBgpAsPath - (*ResultBgpAsPathSegment)(nil), // 627: otg.ResultBgpAsPathSegment - (*IsisLspsStateRequest)(nil), // 628: otg.IsisLspsStateRequest - (*IsisLspsState)(nil), // 629: otg.IsisLspsState - (*IsisLspState)(nil), // 630: otg.IsisLspState - (*IsisLspTlvs)(nil), // 631: otg.IsisLspTlvs - (*IsisLspHostname)(nil), // 632: otg.IsisLspHostname - (*IsisLspFlags)(nil), // 633: otg.IsisLspFlags - (*IsisLspIsReachabilityTlv)(nil), // 634: otg.IsisLspIsReachabilityTlv - (*IsisLspExtendedIsReachabilityTlv)(nil), // 635: otg.IsisLspExtendedIsReachabilityTlv - (*IsisLspneighbor)(nil), // 636: otg.IsisLspneighbor - (*IsisLspIpv4InternalReachabilityTlv)(nil), // 637: otg.IsisLspIpv4InternalReachabilityTlv - (*IsisLspIpv4ExternalReachabilityTlv)(nil), // 638: otg.IsisLspIpv4ExternalReachabilityTlv - (*IsisLspV4Prefix)(nil), // 639: otg.IsisLspV4Prefix - (*IsisLspExtendedIpv4ReachabilityTlv)(nil), // 640: otg.IsisLspExtendedIpv4ReachabilityTlv - (*IsisLspExtendedV4Prefix)(nil), // 641: otg.IsisLspExtendedV4Prefix - (*IsisLspIpv6ReachabilityTlv)(nil), // 642: otg.IsisLspIpv6ReachabilityTlv - (*IsisLspV6Prefix)(nil), // 643: otg.IsisLspV6Prefix - (*IsisLspPrefixAttributes)(nil), // 644: otg.IsisLspPrefixAttributes - (*LldpNeighborsStateRequest)(nil), // 645: otg.LldpNeighborsStateRequest - (*LldpNeighborsState)(nil), // 646: otg.LldpNeighborsState - (*LldpCustomTLVState)(nil), // 647: otg.LldpCustomTLVState - (*LldpCapabilityState)(nil), // 648: otg.LldpCapabilityState - (*RsvpLspsStateRequest)(nil), // 649: otg.RsvpLspsStateRequest - (*RsvpLspsState)(nil), // 650: otg.RsvpLspsState - (*RsvpIPv4LspState)(nil), // 651: otg.RsvpIPv4LspState - (*RsvpLspState)(nil), // 652: otg.RsvpLspState - (*RsvpLspIpv4Rro)(nil), // 653: otg.RsvpLspIpv4Rro - (*RsvpLspIpv4Ero)(nil), // 654: otg.RsvpLspIpv4Ero - (*CaptureRequest)(nil), // 655: otg.CaptureRequest - (*PatternFlowEthernetDstCounter)(nil), // 656: otg.PatternFlowEthernetDstCounter - (*PatternFlowEthernetDstMetricTag)(nil), // 657: otg.PatternFlowEthernetDstMetricTag - (*PatternFlowEthernetDst)(nil), // 658: otg.PatternFlowEthernetDst - (*PatternFlowEthernetSrcCounter)(nil), // 659: otg.PatternFlowEthernetSrcCounter - (*PatternFlowEthernetSrcMetricTag)(nil), // 660: otg.PatternFlowEthernetSrcMetricTag - (*PatternFlowEthernetSrc)(nil), // 661: otg.PatternFlowEthernetSrc - (*PatternFlowEthernetEtherTypeCounter)(nil), // 662: otg.PatternFlowEthernetEtherTypeCounter - (*PatternFlowEthernetEtherTypeMetricTag)(nil), // 663: otg.PatternFlowEthernetEtherTypeMetricTag - (*PatternFlowEthernetEtherType)(nil), // 664: otg.PatternFlowEthernetEtherType - (*PatternFlowEthernetPfcQueueCounter)(nil), // 665: otg.PatternFlowEthernetPfcQueueCounter - (*PatternFlowEthernetPfcQueueMetricTag)(nil), // 666: otg.PatternFlowEthernetPfcQueueMetricTag - (*PatternFlowEthernetPfcQueue)(nil), // 667: otg.PatternFlowEthernetPfcQueue - (*PatternFlowVlanPriorityCounter)(nil), // 668: otg.PatternFlowVlanPriorityCounter - (*PatternFlowVlanPriorityMetricTag)(nil), // 669: otg.PatternFlowVlanPriorityMetricTag - (*PatternFlowVlanPriority)(nil), // 670: otg.PatternFlowVlanPriority - (*PatternFlowVlanCfiCounter)(nil), // 671: otg.PatternFlowVlanCfiCounter - (*PatternFlowVlanCfiMetricTag)(nil), // 672: otg.PatternFlowVlanCfiMetricTag - (*PatternFlowVlanCfi)(nil), // 673: otg.PatternFlowVlanCfi - (*PatternFlowVlanIdCounter)(nil), // 674: otg.PatternFlowVlanIdCounter - (*PatternFlowVlanIdMetricTag)(nil), // 675: otg.PatternFlowVlanIdMetricTag - (*PatternFlowVlanId)(nil), // 676: otg.PatternFlowVlanId - (*PatternFlowVlanTpidCounter)(nil), // 677: otg.PatternFlowVlanTpidCounter - (*PatternFlowVlanTpidMetricTag)(nil), // 678: otg.PatternFlowVlanTpidMetricTag - (*PatternFlowVlanTpid)(nil), // 679: otg.PatternFlowVlanTpid - (*PatternFlowVxlanFlagsCounter)(nil), // 680: otg.PatternFlowVxlanFlagsCounter - (*PatternFlowVxlanFlagsMetricTag)(nil), // 681: otg.PatternFlowVxlanFlagsMetricTag - (*PatternFlowVxlanFlags)(nil), // 682: otg.PatternFlowVxlanFlags - (*PatternFlowVxlanReserved0Counter)(nil), // 683: otg.PatternFlowVxlanReserved0Counter - (*PatternFlowVxlanReserved0MetricTag)(nil), // 684: otg.PatternFlowVxlanReserved0MetricTag - (*PatternFlowVxlanReserved0)(nil), // 685: otg.PatternFlowVxlanReserved0 - (*PatternFlowVxlanVniCounter)(nil), // 686: otg.PatternFlowVxlanVniCounter - (*PatternFlowVxlanVniMetricTag)(nil), // 687: otg.PatternFlowVxlanVniMetricTag - (*PatternFlowVxlanVni)(nil), // 688: otg.PatternFlowVxlanVni - (*PatternFlowVxlanReserved1Counter)(nil), // 689: otg.PatternFlowVxlanReserved1Counter - (*PatternFlowVxlanReserved1MetricTag)(nil), // 690: otg.PatternFlowVxlanReserved1MetricTag - (*PatternFlowVxlanReserved1)(nil), // 691: otg.PatternFlowVxlanReserved1 - (*PatternFlowIpv4VersionCounter)(nil), // 692: otg.PatternFlowIpv4VersionCounter - (*PatternFlowIpv4VersionMetricTag)(nil), // 693: otg.PatternFlowIpv4VersionMetricTag - (*PatternFlowIpv4Version)(nil), // 694: otg.PatternFlowIpv4Version - (*PatternFlowIpv4HeaderLengthCounter)(nil), // 695: otg.PatternFlowIpv4HeaderLengthCounter - (*PatternFlowIpv4HeaderLengthMetricTag)(nil), // 696: otg.PatternFlowIpv4HeaderLengthMetricTag - (*PatternFlowIpv4HeaderLength)(nil), // 697: otg.PatternFlowIpv4HeaderLength - (*PatternFlowIpv4TotalLengthCounter)(nil), // 698: otg.PatternFlowIpv4TotalLengthCounter - (*PatternFlowIpv4TotalLengthMetricTag)(nil), // 699: otg.PatternFlowIpv4TotalLengthMetricTag - (*PatternFlowIpv4TotalLength)(nil), // 700: otg.PatternFlowIpv4TotalLength - (*PatternFlowIpv4IdentificationCounter)(nil), // 701: otg.PatternFlowIpv4IdentificationCounter - (*PatternFlowIpv4IdentificationMetricTag)(nil), // 702: otg.PatternFlowIpv4IdentificationMetricTag - (*PatternFlowIpv4Identification)(nil), // 703: otg.PatternFlowIpv4Identification - (*PatternFlowIpv4ReservedCounter)(nil), // 704: otg.PatternFlowIpv4ReservedCounter - (*PatternFlowIpv4ReservedMetricTag)(nil), // 705: otg.PatternFlowIpv4ReservedMetricTag - (*PatternFlowIpv4Reserved)(nil), // 706: otg.PatternFlowIpv4Reserved - (*PatternFlowIpv4DontFragmentCounter)(nil), // 707: otg.PatternFlowIpv4DontFragmentCounter - (*PatternFlowIpv4DontFragmentMetricTag)(nil), // 708: otg.PatternFlowIpv4DontFragmentMetricTag - (*PatternFlowIpv4DontFragment)(nil), // 709: otg.PatternFlowIpv4DontFragment - (*PatternFlowIpv4MoreFragmentsCounter)(nil), // 710: otg.PatternFlowIpv4MoreFragmentsCounter - (*PatternFlowIpv4MoreFragmentsMetricTag)(nil), // 711: otg.PatternFlowIpv4MoreFragmentsMetricTag - (*PatternFlowIpv4MoreFragments)(nil), // 712: otg.PatternFlowIpv4MoreFragments - (*PatternFlowIpv4FragmentOffsetCounter)(nil), // 713: otg.PatternFlowIpv4FragmentOffsetCounter - (*PatternFlowIpv4FragmentOffsetMetricTag)(nil), // 714: otg.PatternFlowIpv4FragmentOffsetMetricTag - (*PatternFlowIpv4FragmentOffset)(nil), // 715: otg.PatternFlowIpv4FragmentOffset - (*PatternFlowIpv4TimeToLiveCounter)(nil), // 716: otg.PatternFlowIpv4TimeToLiveCounter - (*PatternFlowIpv4TimeToLiveMetricTag)(nil), // 717: otg.PatternFlowIpv4TimeToLiveMetricTag - (*PatternFlowIpv4TimeToLive)(nil), // 718: otg.PatternFlowIpv4TimeToLive - (*PatternFlowIpv4ProtocolCounter)(nil), // 719: otg.PatternFlowIpv4ProtocolCounter - (*PatternFlowIpv4ProtocolMetricTag)(nil), // 720: otg.PatternFlowIpv4ProtocolMetricTag - (*PatternFlowIpv4Protocol)(nil), // 721: otg.PatternFlowIpv4Protocol - (*PatternFlowIpv4HeaderChecksum)(nil), // 722: otg.PatternFlowIpv4HeaderChecksum - (*PatternFlowIpv4SrcCounter)(nil), // 723: otg.PatternFlowIpv4SrcCounter - (*PatternFlowIpv4SrcMetricTag)(nil), // 724: otg.PatternFlowIpv4SrcMetricTag - (*PatternFlowIpv4Src)(nil), // 725: otg.PatternFlowIpv4Src - (*PatternFlowIpv4DstCounter)(nil), // 726: otg.PatternFlowIpv4DstCounter - (*PatternFlowIpv4DstMetricTag)(nil), // 727: otg.PatternFlowIpv4DstMetricTag - (*PatternFlowIpv4Dst)(nil), // 728: otg.PatternFlowIpv4Dst - (*PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter)(nil), // 729: otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter - (*PatternFlowIpv4OptionsCustomTypeCopiedFlag)(nil), // 730: otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag - (*PatternFlowIpv4OptionsCustomTypeOptionClassCounter)(nil), // 731: otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter - (*PatternFlowIpv4OptionsCustomTypeOptionClass)(nil), // 732: otg.PatternFlowIpv4OptionsCustomTypeOptionClass - (*PatternFlowIpv4OptionsCustomTypeOptionNumberCounter)(nil), // 733: otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter - (*PatternFlowIpv4OptionsCustomTypeOptionNumber)(nil), // 734: otg.PatternFlowIpv4OptionsCustomTypeOptionNumber - (*PatternFlowIpv4PriorityRawCounter)(nil), // 735: otg.PatternFlowIpv4PriorityRawCounter - (*PatternFlowIpv4PriorityRawMetricTag)(nil), // 736: otg.PatternFlowIpv4PriorityRawMetricTag - (*PatternFlowIpv4PriorityRaw)(nil), // 737: otg.PatternFlowIpv4PriorityRaw - (*PatternFlowIpv4DscpPhbCounter)(nil), // 738: otg.PatternFlowIpv4DscpPhbCounter - (*PatternFlowIpv4DscpPhbMetricTag)(nil), // 739: otg.PatternFlowIpv4DscpPhbMetricTag - (*PatternFlowIpv4DscpPhb)(nil), // 740: otg.PatternFlowIpv4DscpPhb - (*PatternFlowIpv4DscpEcnCounter)(nil), // 741: otg.PatternFlowIpv4DscpEcnCounter - (*PatternFlowIpv4DscpEcnMetricTag)(nil), // 742: otg.PatternFlowIpv4DscpEcnMetricTag - (*PatternFlowIpv4DscpEcn)(nil), // 743: otg.PatternFlowIpv4DscpEcn - (*PatternFlowIpv4TosPrecedenceCounter)(nil), // 744: otg.PatternFlowIpv4TosPrecedenceCounter - (*PatternFlowIpv4TosPrecedenceMetricTag)(nil), // 745: otg.PatternFlowIpv4TosPrecedenceMetricTag - (*PatternFlowIpv4TosPrecedence)(nil), // 746: otg.PatternFlowIpv4TosPrecedence - (*PatternFlowIpv4TosDelayCounter)(nil), // 747: otg.PatternFlowIpv4TosDelayCounter - (*PatternFlowIpv4TosDelayMetricTag)(nil), // 748: otg.PatternFlowIpv4TosDelayMetricTag - (*PatternFlowIpv4TosDelay)(nil), // 749: otg.PatternFlowIpv4TosDelay - (*PatternFlowIpv4TosThroughputCounter)(nil), // 750: otg.PatternFlowIpv4TosThroughputCounter - (*PatternFlowIpv4TosThroughputMetricTag)(nil), // 751: otg.PatternFlowIpv4TosThroughputMetricTag - (*PatternFlowIpv4TosThroughput)(nil), // 752: otg.PatternFlowIpv4TosThroughput - (*PatternFlowIpv4TosReliabilityCounter)(nil), // 753: otg.PatternFlowIpv4TosReliabilityCounter - (*PatternFlowIpv4TosReliabilityMetricTag)(nil), // 754: otg.PatternFlowIpv4TosReliabilityMetricTag - (*PatternFlowIpv4TosReliability)(nil), // 755: otg.PatternFlowIpv4TosReliability - (*PatternFlowIpv4TosMonetaryCounter)(nil), // 756: otg.PatternFlowIpv4TosMonetaryCounter - (*PatternFlowIpv4TosMonetaryMetricTag)(nil), // 757: otg.PatternFlowIpv4TosMonetaryMetricTag - (*PatternFlowIpv4TosMonetary)(nil), // 758: otg.PatternFlowIpv4TosMonetary - (*PatternFlowIpv4TosUnusedCounter)(nil), // 759: otg.PatternFlowIpv4TosUnusedCounter - (*PatternFlowIpv4TosUnusedMetricTag)(nil), // 760: otg.PatternFlowIpv4TosUnusedMetricTag - (*PatternFlowIpv4TosUnused)(nil), // 761: otg.PatternFlowIpv4TosUnused - (*PatternFlowIpv6VersionCounter)(nil), // 762: otg.PatternFlowIpv6VersionCounter - (*PatternFlowIpv6VersionMetricTag)(nil), // 763: otg.PatternFlowIpv6VersionMetricTag - (*PatternFlowIpv6Version)(nil), // 764: otg.PatternFlowIpv6Version - (*PatternFlowIpv6TrafficClassCounter)(nil), // 765: otg.PatternFlowIpv6TrafficClassCounter - (*PatternFlowIpv6TrafficClassMetricTag)(nil), // 766: otg.PatternFlowIpv6TrafficClassMetricTag - (*PatternFlowIpv6TrafficClass)(nil), // 767: otg.PatternFlowIpv6TrafficClass - (*PatternFlowIpv6FlowLabelCounter)(nil), // 768: otg.PatternFlowIpv6FlowLabelCounter - (*PatternFlowIpv6FlowLabelMetricTag)(nil), // 769: otg.PatternFlowIpv6FlowLabelMetricTag - (*PatternFlowIpv6FlowLabel)(nil), // 770: otg.PatternFlowIpv6FlowLabel - (*PatternFlowIpv6PayloadLengthCounter)(nil), // 771: otg.PatternFlowIpv6PayloadLengthCounter - (*PatternFlowIpv6PayloadLengthMetricTag)(nil), // 772: otg.PatternFlowIpv6PayloadLengthMetricTag - (*PatternFlowIpv6PayloadLength)(nil), // 773: otg.PatternFlowIpv6PayloadLength - (*PatternFlowIpv6NextHeaderCounter)(nil), // 774: otg.PatternFlowIpv6NextHeaderCounter - (*PatternFlowIpv6NextHeaderMetricTag)(nil), // 775: otg.PatternFlowIpv6NextHeaderMetricTag - (*PatternFlowIpv6NextHeader)(nil), // 776: otg.PatternFlowIpv6NextHeader - (*PatternFlowIpv6HopLimitCounter)(nil), // 777: otg.PatternFlowIpv6HopLimitCounter - (*PatternFlowIpv6HopLimitMetricTag)(nil), // 778: otg.PatternFlowIpv6HopLimitMetricTag - (*PatternFlowIpv6HopLimit)(nil), // 779: otg.PatternFlowIpv6HopLimit - (*PatternFlowIpv6SrcCounter)(nil), // 780: otg.PatternFlowIpv6SrcCounter - (*PatternFlowIpv6SrcMetricTag)(nil), // 781: otg.PatternFlowIpv6SrcMetricTag - (*PatternFlowIpv6Src)(nil), // 782: otg.PatternFlowIpv6Src - (*PatternFlowIpv6DstCounter)(nil), // 783: otg.PatternFlowIpv6DstCounter - (*PatternFlowIpv6DstMetricTag)(nil), // 784: otg.PatternFlowIpv6DstMetricTag - (*PatternFlowIpv6Dst)(nil), // 785: otg.PatternFlowIpv6Dst - (*PatternFlowPfcPauseDstCounter)(nil), // 786: otg.PatternFlowPfcPauseDstCounter - (*PatternFlowPfcPauseDstMetricTag)(nil), // 787: otg.PatternFlowPfcPauseDstMetricTag - (*PatternFlowPfcPauseDst)(nil), // 788: otg.PatternFlowPfcPauseDst - (*PatternFlowPfcPauseSrcCounter)(nil), // 789: otg.PatternFlowPfcPauseSrcCounter - (*PatternFlowPfcPauseSrcMetricTag)(nil), // 790: otg.PatternFlowPfcPauseSrcMetricTag - (*PatternFlowPfcPauseSrc)(nil), // 791: otg.PatternFlowPfcPauseSrc - (*PatternFlowPfcPauseEtherTypeCounter)(nil), // 792: otg.PatternFlowPfcPauseEtherTypeCounter - (*PatternFlowPfcPauseEtherTypeMetricTag)(nil), // 793: otg.PatternFlowPfcPauseEtherTypeMetricTag - (*PatternFlowPfcPauseEtherType)(nil), // 794: otg.PatternFlowPfcPauseEtherType - (*PatternFlowPfcPauseControlOpCodeCounter)(nil), // 795: otg.PatternFlowPfcPauseControlOpCodeCounter - (*PatternFlowPfcPauseControlOpCodeMetricTag)(nil), // 796: otg.PatternFlowPfcPauseControlOpCodeMetricTag - (*PatternFlowPfcPauseControlOpCode)(nil), // 797: otg.PatternFlowPfcPauseControlOpCode - (*PatternFlowPfcPauseClassEnableVectorCounter)(nil), // 798: otg.PatternFlowPfcPauseClassEnableVectorCounter - (*PatternFlowPfcPauseClassEnableVectorMetricTag)(nil), // 799: otg.PatternFlowPfcPauseClassEnableVectorMetricTag - (*PatternFlowPfcPauseClassEnableVector)(nil), // 800: otg.PatternFlowPfcPauseClassEnableVector - (*PatternFlowPfcPausePauseClass0Counter)(nil), // 801: otg.PatternFlowPfcPausePauseClass0Counter - (*PatternFlowPfcPausePauseClass0MetricTag)(nil), // 802: otg.PatternFlowPfcPausePauseClass0MetricTag - (*PatternFlowPfcPausePauseClass0)(nil), // 803: otg.PatternFlowPfcPausePauseClass0 - (*PatternFlowPfcPausePauseClass1Counter)(nil), // 804: otg.PatternFlowPfcPausePauseClass1Counter - (*PatternFlowPfcPausePauseClass1MetricTag)(nil), // 805: otg.PatternFlowPfcPausePauseClass1MetricTag - (*PatternFlowPfcPausePauseClass1)(nil), // 806: otg.PatternFlowPfcPausePauseClass1 - (*PatternFlowPfcPausePauseClass2Counter)(nil), // 807: otg.PatternFlowPfcPausePauseClass2Counter - (*PatternFlowPfcPausePauseClass2MetricTag)(nil), // 808: otg.PatternFlowPfcPausePauseClass2MetricTag - (*PatternFlowPfcPausePauseClass2)(nil), // 809: otg.PatternFlowPfcPausePauseClass2 - (*PatternFlowPfcPausePauseClass3Counter)(nil), // 810: otg.PatternFlowPfcPausePauseClass3Counter - (*PatternFlowPfcPausePauseClass3MetricTag)(nil), // 811: otg.PatternFlowPfcPausePauseClass3MetricTag - (*PatternFlowPfcPausePauseClass3)(nil), // 812: otg.PatternFlowPfcPausePauseClass3 - (*PatternFlowPfcPausePauseClass4Counter)(nil), // 813: otg.PatternFlowPfcPausePauseClass4Counter - (*PatternFlowPfcPausePauseClass4MetricTag)(nil), // 814: otg.PatternFlowPfcPausePauseClass4MetricTag - (*PatternFlowPfcPausePauseClass4)(nil), // 815: otg.PatternFlowPfcPausePauseClass4 - (*PatternFlowPfcPausePauseClass5Counter)(nil), // 816: otg.PatternFlowPfcPausePauseClass5Counter - (*PatternFlowPfcPausePauseClass5MetricTag)(nil), // 817: otg.PatternFlowPfcPausePauseClass5MetricTag - (*PatternFlowPfcPausePauseClass5)(nil), // 818: otg.PatternFlowPfcPausePauseClass5 - (*PatternFlowPfcPausePauseClass6Counter)(nil), // 819: otg.PatternFlowPfcPausePauseClass6Counter - (*PatternFlowPfcPausePauseClass6MetricTag)(nil), // 820: otg.PatternFlowPfcPausePauseClass6MetricTag - (*PatternFlowPfcPausePauseClass6)(nil), // 821: otg.PatternFlowPfcPausePauseClass6 - (*PatternFlowPfcPausePauseClass7Counter)(nil), // 822: otg.PatternFlowPfcPausePauseClass7Counter - (*PatternFlowPfcPausePauseClass7MetricTag)(nil), // 823: otg.PatternFlowPfcPausePauseClass7MetricTag - (*PatternFlowPfcPausePauseClass7)(nil), // 824: otg.PatternFlowPfcPausePauseClass7 - (*PatternFlowEthernetPauseDstCounter)(nil), // 825: otg.PatternFlowEthernetPauseDstCounter - (*PatternFlowEthernetPauseDstMetricTag)(nil), // 826: otg.PatternFlowEthernetPauseDstMetricTag - (*PatternFlowEthernetPauseDst)(nil), // 827: otg.PatternFlowEthernetPauseDst - (*PatternFlowEthernetPauseSrcCounter)(nil), // 828: otg.PatternFlowEthernetPauseSrcCounter - (*PatternFlowEthernetPauseSrcMetricTag)(nil), // 829: otg.PatternFlowEthernetPauseSrcMetricTag - (*PatternFlowEthernetPauseSrc)(nil), // 830: otg.PatternFlowEthernetPauseSrc - (*PatternFlowEthernetPauseEtherTypeCounter)(nil), // 831: otg.PatternFlowEthernetPauseEtherTypeCounter - (*PatternFlowEthernetPauseEtherTypeMetricTag)(nil), // 832: otg.PatternFlowEthernetPauseEtherTypeMetricTag - (*PatternFlowEthernetPauseEtherType)(nil), // 833: otg.PatternFlowEthernetPauseEtherType - (*PatternFlowEthernetPauseControlOpCodeCounter)(nil), // 834: otg.PatternFlowEthernetPauseControlOpCodeCounter - (*PatternFlowEthernetPauseControlOpCodeMetricTag)(nil), // 835: otg.PatternFlowEthernetPauseControlOpCodeMetricTag - (*PatternFlowEthernetPauseControlOpCode)(nil), // 836: otg.PatternFlowEthernetPauseControlOpCode - (*PatternFlowEthernetPauseTimeCounter)(nil), // 837: otg.PatternFlowEthernetPauseTimeCounter - (*PatternFlowEthernetPauseTimeMetricTag)(nil), // 838: otg.PatternFlowEthernetPauseTimeMetricTag - (*PatternFlowEthernetPauseTime)(nil), // 839: otg.PatternFlowEthernetPauseTime - (*PatternFlowTcpSrcPortCounter)(nil), // 840: otg.PatternFlowTcpSrcPortCounter - (*PatternFlowTcpSrcPortMetricTag)(nil), // 841: otg.PatternFlowTcpSrcPortMetricTag - (*PatternFlowTcpSrcPort)(nil), // 842: otg.PatternFlowTcpSrcPort - (*PatternFlowTcpDstPortCounter)(nil), // 843: otg.PatternFlowTcpDstPortCounter - (*PatternFlowTcpDstPortMetricTag)(nil), // 844: otg.PatternFlowTcpDstPortMetricTag - (*PatternFlowTcpDstPort)(nil), // 845: otg.PatternFlowTcpDstPort - (*PatternFlowTcpSeqNumCounter)(nil), // 846: otg.PatternFlowTcpSeqNumCounter - (*PatternFlowTcpSeqNumMetricTag)(nil), // 847: otg.PatternFlowTcpSeqNumMetricTag - (*PatternFlowTcpSeqNum)(nil), // 848: otg.PatternFlowTcpSeqNum - (*PatternFlowTcpAckNumCounter)(nil), // 849: otg.PatternFlowTcpAckNumCounter - (*PatternFlowTcpAckNumMetricTag)(nil), // 850: otg.PatternFlowTcpAckNumMetricTag - (*PatternFlowTcpAckNum)(nil), // 851: otg.PatternFlowTcpAckNum - (*PatternFlowTcpDataOffsetCounter)(nil), // 852: otg.PatternFlowTcpDataOffsetCounter - (*PatternFlowTcpDataOffsetMetricTag)(nil), // 853: otg.PatternFlowTcpDataOffsetMetricTag - (*PatternFlowTcpDataOffset)(nil), // 854: otg.PatternFlowTcpDataOffset - (*PatternFlowTcpEcnNsCounter)(nil), // 855: otg.PatternFlowTcpEcnNsCounter - (*PatternFlowTcpEcnNsMetricTag)(nil), // 856: otg.PatternFlowTcpEcnNsMetricTag - (*PatternFlowTcpEcnNs)(nil), // 857: otg.PatternFlowTcpEcnNs - (*PatternFlowTcpEcnCwrCounter)(nil), // 858: otg.PatternFlowTcpEcnCwrCounter - (*PatternFlowTcpEcnCwrMetricTag)(nil), // 859: otg.PatternFlowTcpEcnCwrMetricTag - (*PatternFlowTcpEcnCwr)(nil), // 860: otg.PatternFlowTcpEcnCwr - (*PatternFlowTcpEcnEchoCounter)(nil), // 861: otg.PatternFlowTcpEcnEchoCounter - (*PatternFlowTcpEcnEchoMetricTag)(nil), // 862: otg.PatternFlowTcpEcnEchoMetricTag - (*PatternFlowTcpEcnEcho)(nil), // 863: otg.PatternFlowTcpEcnEcho - (*PatternFlowTcpCtlUrgCounter)(nil), // 864: otg.PatternFlowTcpCtlUrgCounter - (*PatternFlowTcpCtlUrgMetricTag)(nil), // 865: otg.PatternFlowTcpCtlUrgMetricTag - (*PatternFlowTcpCtlUrg)(nil), // 866: otg.PatternFlowTcpCtlUrg - (*PatternFlowTcpCtlAckCounter)(nil), // 867: otg.PatternFlowTcpCtlAckCounter - (*PatternFlowTcpCtlAckMetricTag)(nil), // 868: otg.PatternFlowTcpCtlAckMetricTag - (*PatternFlowTcpCtlAck)(nil), // 869: otg.PatternFlowTcpCtlAck - (*PatternFlowTcpCtlPshCounter)(nil), // 870: otg.PatternFlowTcpCtlPshCounter - (*PatternFlowTcpCtlPshMetricTag)(nil), // 871: otg.PatternFlowTcpCtlPshMetricTag - (*PatternFlowTcpCtlPsh)(nil), // 872: otg.PatternFlowTcpCtlPsh - (*PatternFlowTcpCtlRstCounter)(nil), // 873: otg.PatternFlowTcpCtlRstCounter - (*PatternFlowTcpCtlRstMetricTag)(nil), // 874: otg.PatternFlowTcpCtlRstMetricTag - (*PatternFlowTcpCtlRst)(nil), // 875: otg.PatternFlowTcpCtlRst - (*PatternFlowTcpCtlSynCounter)(nil), // 876: otg.PatternFlowTcpCtlSynCounter - (*PatternFlowTcpCtlSynMetricTag)(nil), // 877: otg.PatternFlowTcpCtlSynMetricTag - (*PatternFlowTcpCtlSyn)(nil), // 878: otg.PatternFlowTcpCtlSyn - (*PatternFlowTcpCtlFinCounter)(nil), // 879: otg.PatternFlowTcpCtlFinCounter - (*PatternFlowTcpCtlFinMetricTag)(nil), // 880: otg.PatternFlowTcpCtlFinMetricTag - (*PatternFlowTcpCtlFin)(nil), // 881: otg.PatternFlowTcpCtlFin - (*PatternFlowTcpWindowCounter)(nil), // 882: otg.PatternFlowTcpWindowCounter - (*PatternFlowTcpWindowMetricTag)(nil), // 883: otg.PatternFlowTcpWindowMetricTag - (*PatternFlowTcpWindow)(nil), // 884: otg.PatternFlowTcpWindow - (*PatternFlowUdpSrcPortCounter)(nil), // 885: otg.PatternFlowUdpSrcPortCounter - (*PatternFlowUdpSrcPortMetricTag)(nil), // 886: otg.PatternFlowUdpSrcPortMetricTag - (*PatternFlowUdpSrcPort)(nil), // 887: otg.PatternFlowUdpSrcPort - (*PatternFlowUdpDstPortCounter)(nil), // 888: otg.PatternFlowUdpDstPortCounter - (*PatternFlowUdpDstPortMetricTag)(nil), // 889: otg.PatternFlowUdpDstPortMetricTag - (*PatternFlowUdpDstPort)(nil), // 890: otg.PatternFlowUdpDstPort - (*PatternFlowUdpLengthCounter)(nil), // 891: otg.PatternFlowUdpLengthCounter - (*PatternFlowUdpLengthMetricTag)(nil), // 892: otg.PatternFlowUdpLengthMetricTag - (*PatternFlowUdpLength)(nil), // 893: otg.PatternFlowUdpLength - (*PatternFlowUdpChecksum)(nil), // 894: otg.PatternFlowUdpChecksum - (*PatternFlowGreChecksumPresentCounter)(nil), // 895: otg.PatternFlowGreChecksumPresentCounter - (*PatternFlowGreChecksumPresentMetricTag)(nil), // 896: otg.PatternFlowGreChecksumPresentMetricTag - (*PatternFlowGreChecksumPresent)(nil), // 897: otg.PatternFlowGreChecksumPresent - (*PatternFlowGreReserved0Counter)(nil), // 898: otg.PatternFlowGreReserved0Counter - (*PatternFlowGreReserved0MetricTag)(nil), // 899: otg.PatternFlowGreReserved0MetricTag - (*PatternFlowGreReserved0)(nil), // 900: otg.PatternFlowGreReserved0 - (*PatternFlowGreVersionCounter)(nil), // 901: otg.PatternFlowGreVersionCounter - (*PatternFlowGreVersionMetricTag)(nil), // 902: otg.PatternFlowGreVersionMetricTag - (*PatternFlowGreVersion)(nil), // 903: otg.PatternFlowGreVersion - (*PatternFlowGreProtocolCounter)(nil), // 904: otg.PatternFlowGreProtocolCounter - (*PatternFlowGreProtocolMetricTag)(nil), // 905: otg.PatternFlowGreProtocolMetricTag - (*PatternFlowGreProtocol)(nil), // 906: otg.PatternFlowGreProtocol - (*PatternFlowGreChecksum)(nil), // 907: otg.PatternFlowGreChecksum - (*PatternFlowGreReserved1Counter)(nil), // 908: otg.PatternFlowGreReserved1Counter - (*PatternFlowGreReserved1MetricTag)(nil), // 909: otg.PatternFlowGreReserved1MetricTag - (*PatternFlowGreReserved1)(nil), // 910: otg.PatternFlowGreReserved1 - (*PatternFlowGtpv1VersionCounter)(nil), // 911: otg.PatternFlowGtpv1VersionCounter - (*PatternFlowGtpv1VersionMetricTag)(nil), // 912: otg.PatternFlowGtpv1VersionMetricTag - (*PatternFlowGtpv1Version)(nil), // 913: otg.PatternFlowGtpv1Version - (*PatternFlowGtpv1ProtocolTypeCounter)(nil), // 914: otg.PatternFlowGtpv1ProtocolTypeCounter - (*PatternFlowGtpv1ProtocolTypeMetricTag)(nil), // 915: otg.PatternFlowGtpv1ProtocolTypeMetricTag - (*PatternFlowGtpv1ProtocolType)(nil), // 916: otg.PatternFlowGtpv1ProtocolType - (*PatternFlowGtpv1ReservedCounter)(nil), // 917: otg.PatternFlowGtpv1ReservedCounter - (*PatternFlowGtpv1ReservedMetricTag)(nil), // 918: otg.PatternFlowGtpv1ReservedMetricTag - (*PatternFlowGtpv1Reserved)(nil), // 919: otg.PatternFlowGtpv1Reserved - (*PatternFlowGtpv1EFlagCounter)(nil), // 920: otg.PatternFlowGtpv1EFlagCounter - (*PatternFlowGtpv1EFlagMetricTag)(nil), // 921: otg.PatternFlowGtpv1EFlagMetricTag - (*PatternFlowGtpv1EFlag)(nil), // 922: otg.PatternFlowGtpv1EFlag - (*PatternFlowGtpv1SFlagCounter)(nil), // 923: otg.PatternFlowGtpv1SFlagCounter - (*PatternFlowGtpv1SFlagMetricTag)(nil), // 924: otg.PatternFlowGtpv1SFlagMetricTag - (*PatternFlowGtpv1SFlag)(nil), // 925: otg.PatternFlowGtpv1SFlag - (*PatternFlowGtpv1PnFlagCounter)(nil), // 926: otg.PatternFlowGtpv1PnFlagCounter - (*PatternFlowGtpv1PnFlagMetricTag)(nil), // 927: otg.PatternFlowGtpv1PnFlagMetricTag - (*PatternFlowGtpv1PnFlag)(nil), // 928: otg.PatternFlowGtpv1PnFlag - (*PatternFlowGtpv1MessageTypeCounter)(nil), // 929: otg.PatternFlowGtpv1MessageTypeCounter - (*PatternFlowGtpv1MessageTypeMetricTag)(nil), // 930: otg.PatternFlowGtpv1MessageTypeMetricTag - (*PatternFlowGtpv1MessageType)(nil), // 931: otg.PatternFlowGtpv1MessageType - (*PatternFlowGtpv1MessageLengthCounter)(nil), // 932: otg.PatternFlowGtpv1MessageLengthCounter - (*PatternFlowGtpv1MessageLengthMetricTag)(nil), // 933: otg.PatternFlowGtpv1MessageLengthMetricTag - (*PatternFlowGtpv1MessageLength)(nil), // 934: otg.PatternFlowGtpv1MessageLength - (*PatternFlowGtpv1TeidCounter)(nil), // 935: otg.PatternFlowGtpv1TeidCounter - (*PatternFlowGtpv1TeidMetricTag)(nil), // 936: otg.PatternFlowGtpv1TeidMetricTag - (*PatternFlowGtpv1Teid)(nil), // 937: otg.PatternFlowGtpv1Teid - (*PatternFlowGtpv1SquenceNumberCounter)(nil), // 938: otg.PatternFlowGtpv1SquenceNumberCounter - (*PatternFlowGtpv1SquenceNumberMetricTag)(nil), // 939: otg.PatternFlowGtpv1SquenceNumberMetricTag - (*PatternFlowGtpv1SquenceNumber)(nil), // 940: otg.PatternFlowGtpv1SquenceNumber - (*PatternFlowGtpv1NPduNumberCounter)(nil), // 941: otg.PatternFlowGtpv1NPduNumberCounter - (*PatternFlowGtpv1NPduNumberMetricTag)(nil), // 942: otg.PatternFlowGtpv1NPduNumberMetricTag - (*PatternFlowGtpv1NPduNumber)(nil), // 943: otg.PatternFlowGtpv1NPduNumber - (*PatternFlowGtpv1NextExtensionHeaderTypeCounter)(nil), // 944: otg.PatternFlowGtpv1NextExtensionHeaderTypeCounter - (*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag)(nil), // 945: otg.PatternFlowGtpv1NextExtensionHeaderTypeMetricTag - (*PatternFlowGtpv1NextExtensionHeaderType)(nil), // 946: otg.PatternFlowGtpv1NextExtensionHeaderType - (*PatternFlowGtpExtensionExtensionLengthCounter)(nil), // 947: otg.PatternFlowGtpExtensionExtensionLengthCounter - (*PatternFlowGtpExtensionExtensionLengthMetricTag)(nil), // 948: otg.PatternFlowGtpExtensionExtensionLengthMetricTag - (*PatternFlowGtpExtensionExtensionLength)(nil), // 949: otg.PatternFlowGtpExtensionExtensionLength - (*PatternFlowGtpExtensionContentsCounter)(nil), // 950: otg.PatternFlowGtpExtensionContentsCounter - (*PatternFlowGtpExtensionContentsMetricTag)(nil), // 951: otg.PatternFlowGtpExtensionContentsMetricTag - (*PatternFlowGtpExtensionContents)(nil), // 952: otg.PatternFlowGtpExtensionContents - (*PatternFlowGtpExtensionNextExtensionHeaderCounter)(nil), // 953: otg.PatternFlowGtpExtensionNextExtensionHeaderCounter - (*PatternFlowGtpExtensionNextExtensionHeaderMetricTag)(nil), // 954: otg.PatternFlowGtpExtensionNextExtensionHeaderMetricTag - (*PatternFlowGtpExtensionNextExtensionHeader)(nil), // 955: otg.PatternFlowGtpExtensionNextExtensionHeader - (*PatternFlowGtpv2VersionCounter)(nil), // 956: otg.PatternFlowGtpv2VersionCounter - (*PatternFlowGtpv2VersionMetricTag)(nil), // 957: otg.PatternFlowGtpv2VersionMetricTag - (*PatternFlowGtpv2Version)(nil), // 958: otg.PatternFlowGtpv2Version - (*PatternFlowGtpv2PiggybackingFlagCounter)(nil), // 959: otg.PatternFlowGtpv2PiggybackingFlagCounter - (*PatternFlowGtpv2PiggybackingFlagMetricTag)(nil), // 960: otg.PatternFlowGtpv2PiggybackingFlagMetricTag - (*PatternFlowGtpv2PiggybackingFlag)(nil), // 961: otg.PatternFlowGtpv2PiggybackingFlag - (*PatternFlowGtpv2TeidFlagCounter)(nil), // 962: otg.PatternFlowGtpv2TeidFlagCounter - (*PatternFlowGtpv2TeidFlagMetricTag)(nil), // 963: otg.PatternFlowGtpv2TeidFlagMetricTag - (*PatternFlowGtpv2TeidFlag)(nil), // 964: otg.PatternFlowGtpv2TeidFlag - (*PatternFlowGtpv2Spare1Counter)(nil), // 965: otg.PatternFlowGtpv2Spare1Counter - (*PatternFlowGtpv2Spare1MetricTag)(nil), // 966: otg.PatternFlowGtpv2Spare1MetricTag - (*PatternFlowGtpv2Spare1)(nil), // 967: otg.PatternFlowGtpv2Spare1 - (*PatternFlowGtpv2MessageTypeCounter)(nil), // 968: otg.PatternFlowGtpv2MessageTypeCounter - (*PatternFlowGtpv2MessageTypeMetricTag)(nil), // 969: otg.PatternFlowGtpv2MessageTypeMetricTag - (*PatternFlowGtpv2MessageType)(nil), // 970: otg.PatternFlowGtpv2MessageType - (*PatternFlowGtpv2MessageLengthCounter)(nil), // 971: otg.PatternFlowGtpv2MessageLengthCounter - (*PatternFlowGtpv2MessageLengthMetricTag)(nil), // 972: otg.PatternFlowGtpv2MessageLengthMetricTag - (*PatternFlowGtpv2MessageLength)(nil), // 973: otg.PatternFlowGtpv2MessageLength - (*PatternFlowGtpv2TeidCounter)(nil), // 974: otg.PatternFlowGtpv2TeidCounter - (*PatternFlowGtpv2TeidMetricTag)(nil), // 975: otg.PatternFlowGtpv2TeidMetricTag - (*PatternFlowGtpv2Teid)(nil), // 976: otg.PatternFlowGtpv2Teid - (*PatternFlowGtpv2SequenceNumberCounter)(nil), // 977: otg.PatternFlowGtpv2SequenceNumberCounter - (*PatternFlowGtpv2SequenceNumberMetricTag)(nil), // 978: otg.PatternFlowGtpv2SequenceNumberMetricTag - (*PatternFlowGtpv2SequenceNumber)(nil), // 979: otg.PatternFlowGtpv2SequenceNumber - (*PatternFlowGtpv2Spare2Counter)(nil), // 980: otg.PatternFlowGtpv2Spare2Counter - (*PatternFlowGtpv2Spare2MetricTag)(nil), // 981: otg.PatternFlowGtpv2Spare2MetricTag - (*PatternFlowGtpv2Spare2)(nil), // 982: otg.PatternFlowGtpv2Spare2 - (*PatternFlowArpHardwareTypeCounter)(nil), // 983: otg.PatternFlowArpHardwareTypeCounter - (*PatternFlowArpHardwareTypeMetricTag)(nil), // 984: otg.PatternFlowArpHardwareTypeMetricTag - (*PatternFlowArpHardwareType)(nil), // 985: otg.PatternFlowArpHardwareType - (*PatternFlowArpProtocolTypeCounter)(nil), // 986: otg.PatternFlowArpProtocolTypeCounter - (*PatternFlowArpProtocolTypeMetricTag)(nil), // 987: otg.PatternFlowArpProtocolTypeMetricTag - (*PatternFlowArpProtocolType)(nil), // 988: otg.PatternFlowArpProtocolType - (*PatternFlowArpHardwareLengthCounter)(nil), // 989: otg.PatternFlowArpHardwareLengthCounter - (*PatternFlowArpHardwareLengthMetricTag)(nil), // 990: otg.PatternFlowArpHardwareLengthMetricTag - (*PatternFlowArpHardwareLength)(nil), // 991: otg.PatternFlowArpHardwareLength - (*PatternFlowArpProtocolLengthCounter)(nil), // 992: otg.PatternFlowArpProtocolLengthCounter - (*PatternFlowArpProtocolLengthMetricTag)(nil), // 993: otg.PatternFlowArpProtocolLengthMetricTag - (*PatternFlowArpProtocolLength)(nil), // 994: otg.PatternFlowArpProtocolLength - (*PatternFlowArpOperationCounter)(nil), // 995: otg.PatternFlowArpOperationCounter - (*PatternFlowArpOperationMetricTag)(nil), // 996: otg.PatternFlowArpOperationMetricTag - (*PatternFlowArpOperation)(nil), // 997: otg.PatternFlowArpOperation - (*PatternFlowArpSenderHardwareAddrCounter)(nil), // 998: otg.PatternFlowArpSenderHardwareAddrCounter - (*PatternFlowArpSenderHardwareAddrMetricTag)(nil), // 999: otg.PatternFlowArpSenderHardwareAddrMetricTag - (*PatternFlowArpSenderHardwareAddr)(nil), // 1000: otg.PatternFlowArpSenderHardwareAddr - (*PatternFlowArpSenderProtocolAddrCounter)(nil), // 1001: otg.PatternFlowArpSenderProtocolAddrCounter - (*PatternFlowArpSenderProtocolAddrMetricTag)(nil), // 1002: otg.PatternFlowArpSenderProtocolAddrMetricTag - (*PatternFlowArpSenderProtocolAddr)(nil), // 1003: otg.PatternFlowArpSenderProtocolAddr - (*PatternFlowArpTargetHardwareAddrCounter)(nil), // 1004: otg.PatternFlowArpTargetHardwareAddrCounter - (*PatternFlowArpTargetHardwareAddrMetricTag)(nil), // 1005: otg.PatternFlowArpTargetHardwareAddrMetricTag - (*PatternFlowArpTargetHardwareAddr)(nil), // 1006: otg.PatternFlowArpTargetHardwareAddr - (*PatternFlowArpTargetProtocolAddrCounter)(nil), // 1007: otg.PatternFlowArpTargetProtocolAddrCounter - (*PatternFlowArpTargetProtocolAddrMetricTag)(nil), // 1008: otg.PatternFlowArpTargetProtocolAddrMetricTag - (*PatternFlowArpTargetProtocolAddr)(nil), // 1009: otg.PatternFlowArpTargetProtocolAddr - (*PatternFlowIcmpEchoTypeCounter)(nil), // 1010: otg.PatternFlowIcmpEchoTypeCounter - (*PatternFlowIcmpEchoTypeMetricTag)(nil), // 1011: otg.PatternFlowIcmpEchoTypeMetricTag - (*PatternFlowIcmpEchoType)(nil), // 1012: otg.PatternFlowIcmpEchoType - (*PatternFlowIcmpEchoCodeCounter)(nil), // 1013: otg.PatternFlowIcmpEchoCodeCounter - (*PatternFlowIcmpEchoCodeMetricTag)(nil), // 1014: otg.PatternFlowIcmpEchoCodeMetricTag - (*PatternFlowIcmpEchoCode)(nil), // 1015: otg.PatternFlowIcmpEchoCode - (*PatternFlowIcmpEchoChecksum)(nil), // 1016: otg.PatternFlowIcmpEchoChecksum - (*PatternFlowIcmpEchoIdentifierCounter)(nil), // 1017: otg.PatternFlowIcmpEchoIdentifierCounter - (*PatternFlowIcmpEchoIdentifierMetricTag)(nil), // 1018: otg.PatternFlowIcmpEchoIdentifierMetricTag - (*PatternFlowIcmpEchoIdentifier)(nil), // 1019: otg.PatternFlowIcmpEchoIdentifier - (*PatternFlowIcmpEchoSequenceNumberCounter)(nil), // 1020: otg.PatternFlowIcmpEchoSequenceNumberCounter - (*PatternFlowIcmpEchoSequenceNumberMetricTag)(nil), // 1021: otg.PatternFlowIcmpEchoSequenceNumberMetricTag - (*PatternFlowIcmpEchoSequenceNumber)(nil), // 1022: otg.PatternFlowIcmpEchoSequenceNumber - (*PatternFlowIcmpCommonChecksum)(nil), // 1023: otg.PatternFlowIcmpCommonChecksum - (*PatternFlowIcmpNextFieldsIdentifierCounter)(nil), // 1024: otg.PatternFlowIcmpNextFieldsIdentifierCounter - (*PatternFlowIcmpNextFieldsIdentifierMetricTag)(nil), // 1025: otg.PatternFlowIcmpNextFieldsIdentifierMetricTag - (*PatternFlowIcmpNextFieldsIdentifier)(nil), // 1026: otg.PatternFlowIcmpNextFieldsIdentifier - (*PatternFlowIcmpNextFieldsSequenceNumberCounter)(nil), // 1027: otg.PatternFlowIcmpNextFieldsSequenceNumberCounter - (*PatternFlowIcmpNextFieldsSequenceNumberMetricTag)(nil), // 1028: otg.PatternFlowIcmpNextFieldsSequenceNumberMetricTag - (*PatternFlowIcmpNextFieldsSequenceNumber)(nil), // 1029: otg.PatternFlowIcmpNextFieldsSequenceNumber - (*PatternFlowIcmpv6EchoTypeCounter)(nil), // 1030: otg.PatternFlowIcmpv6EchoTypeCounter - (*PatternFlowIcmpv6EchoTypeMetricTag)(nil), // 1031: otg.PatternFlowIcmpv6EchoTypeMetricTag - (*PatternFlowIcmpv6EchoType)(nil), // 1032: otg.PatternFlowIcmpv6EchoType - (*PatternFlowIcmpv6EchoCodeCounter)(nil), // 1033: otg.PatternFlowIcmpv6EchoCodeCounter - (*PatternFlowIcmpv6EchoCodeMetricTag)(nil), // 1034: otg.PatternFlowIcmpv6EchoCodeMetricTag - (*PatternFlowIcmpv6EchoCode)(nil), // 1035: otg.PatternFlowIcmpv6EchoCode - (*PatternFlowIcmpv6EchoIdentifierCounter)(nil), // 1036: otg.PatternFlowIcmpv6EchoIdentifierCounter - (*PatternFlowIcmpv6EchoIdentifierMetricTag)(nil), // 1037: otg.PatternFlowIcmpv6EchoIdentifierMetricTag - (*PatternFlowIcmpv6EchoIdentifier)(nil), // 1038: otg.PatternFlowIcmpv6EchoIdentifier - (*PatternFlowIcmpv6EchoSequenceNumberCounter)(nil), // 1039: otg.PatternFlowIcmpv6EchoSequenceNumberCounter - (*PatternFlowIcmpv6EchoSequenceNumberMetricTag)(nil), // 1040: otg.PatternFlowIcmpv6EchoSequenceNumberMetricTag - (*PatternFlowIcmpv6EchoSequenceNumber)(nil), // 1041: otg.PatternFlowIcmpv6EchoSequenceNumber - (*PatternFlowIcmpv6EchoChecksum)(nil), // 1042: otg.PatternFlowIcmpv6EchoChecksum - (*PatternFlowIcmpv6CommonChecksum)(nil), // 1043: otg.PatternFlowIcmpv6CommonChecksum - (*PatternFlowPppAddressCounter)(nil), // 1044: otg.PatternFlowPppAddressCounter - (*PatternFlowPppAddressMetricTag)(nil), // 1045: otg.PatternFlowPppAddressMetricTag - (*PatternFlowPppAddress)(nil), // 1046: otg.PatternFlowPppAddress - (*PatternFlowPppControlCounter)(nil), // 1047: otg.PatternFlowPppControlCounter - (*PatternFlowPppControlMetricTag)(nil), // 1048: otg.PatternFlowPppControlMetricTag - (*PatternFlowPppControl)(nil), // 1049: otg.PatternFlowPppControl - (*PatternFlowPppProtocolTypeCounter)(nil), // 1050: otg.PatternFlowPppProtocolTypeCounter - (*PatternFlowPppProtocolTypeMetricTag)(nil), // 1051: otg.PatternFlowPppProtocolTypeMetricTag - (*PatternFlowPppProtocolType)(nil), // 1052: otg.PatternFlowPppProtocolType - (*PatternFlowIgmpv1VersionCounter)(nil), // 1053: otg.PatternFlowIgmpv1VersionCounter - (*PatternFlowIgmpv1VersionMetricTag)(nil), // 1054: otg.PatternFlowIgmpv1VersionMetricTag - (*PatternFlowIgmpv1Version)(nil), // 1055: otg.PatternFlowIgmpv1Version - (*PatternFlowIgmpv1TypeCounter)(nil), // 1056: otg.PatternFlowIgmpv1TypeCounter - (*PatternFlowIgmpv1TypeMetricTag)(nil), // 1057: otg.PatternFlowIgmpv1TypeMetricTag - (*PatternFlowIgmpv1Type)(nil), // 1058: otg.PatternFlowIgmpv1Type - (*PatternFlowIgmpv1UnusedCounter)(nil), // 1059: otg.PatternFlowIgmpv1UnusedCounter - (*PatternFlowIgmpv1UnusedMetricTag)(nil), // 1060: otg.PatternFlowIgmpv1UnusedMetricTag - (*PatternFlowIgmpv1Unused)(nil), // 1061: otg.PatternFlowIgmpv1Unused - (*PatternFlowIgmpv1Checksum)(nil), // 1062: otg.PatternFlowIgmpv1Checksum - (*PatternFlowIgmpv1GroupAddressCounter)(nil), // 1063: otg.PatternFlowIgmpv1GroupAddressCounter - (*PatternFlowIgmpv1GroupAddressMetricTag)(nil), // 1064: otg.PatternFlowIgmpv1GroupAddressMetricTag - (*PatternFlowIgmpv1GroupAddress)(nil), // 1065: otg.PatternFlowIgmpv1GroupAddress - (*PatternFlowMplsLabelCounter)(nil), // 1066: otg.PatternFlowMplsLabelCounter - (*PatternFlowMplsLabelMetricTag)(nil), // 1067: otg.PatternFlowMplsLabelMetricTag - (*PatternFlowMplsLabel)(nil), // 1068: otg.PatternFlowMplsLabel - (*PatternFlowMplsTrafficClassCounter)(nil), // 1069: otg.PatternFlowMplsTrafficClassCounter - (*PatternFlowMplsTrafficClassMetricTag)(nil), // 1070: otg.PatternFlowMplsTrafficClassMetricTag - (*PatternFlowMplsTrafficClass)(nil), // 1071: otg.PatternFlowMplsTrafficClass - (*PatternFlowMplsBottomOfStackCounter)(nil), // 1072: otg.PatternFlowMplsBottomOfStackCounter - (*PatternFlowMplsBottomOfStackMetricTag)(nil), // 1073: otg.PatternFlowMplsBottomOfStackMetricTag - (*PatternFlowMplsBottomOfStack)(nil), // 1074: otg.PatternFlowMplsBottomOfStack - (*PatternFlowMplsTimeToLiveCounter)(nil), // 1075: otg.PatternFlowMplsTimeToLiveCounter - (*PatternFlowMplsTimeToLiveMetricTag)(nil), // 1076: otg.PatternFlowMplsTimeToLiveMetricTag - (*PatternFlowMplsTimeToLive)(nil), // 1077: otg.PatternFlowMplsTimeToLive - (*Version)(nil), // 1078: otg.Version - (*Success)(nil), // 1079: otg.Success - (*Failure)(nil), // 1080: otg.Failure - (*SetConfigRequest)(nil), // 1081: otg.SetConfigRequest - (*UpdateConfigRequest)(nil), // 1082: otg.UpdateConfigRequest - (*SetConfigResponse)(nil), // 1083: otg.SetConfigResponse - (*GetConfigResponse)(nil), // 1084: otg.GetConfigResponse - (*UpdateConfigResponse)(nil), // 1085: otg.UpdateConfigResponse - (*SetControlStateRequest)(nil), // 1086: otg.SetControlStateRequest - (*SetControlStateResponse)(nil), // 1087: otg.SetControlStateResponse - (*SetControlActionRequest)(nil), // 1088: otg.SetControlActionRequest - (*SetControlActionResponse)(nil), // 1089: otg.SetControlActionResponse - (*GetMetricsRequest)(nil), // 1090: otg.GetMetricsRequest - (*GetMetricsResponse)(nil), // 1091: otg.GetMetricsResponse - (*GetStatesRequest)(nil), // 1092: otg.GetStatesRequest - (*GetStatesResponse)(nil), // 1093: otg.GetStatesResponse - (*GetCaptureRequest)(nil), // 1094: otg.GetCaptureRequest - (*GetCaptureResponse)(nil), // 1095: otg.GetCaptureResponse - (*GetVersionResponse)(nil), // 1096: otg.GetVersionResponse - (*LagProtocol_Choice)(nil), // 1097: otg.LagProtocol.Choice - (*LagPortLacp_ActorActivity)(nil), // 1098: otg.LagPortLacp.ActorActivity - (*EthernetConnection_Choice)(nil), // 1099: otg.EthernetConnection.Choice - (*DeviceVlan_Tpid)(nil), // 1100: otg.DeviceVlan.Tpid - (*DeviceIpv4GatewayMAC_Choice)(nil), // 1101: otg.DeviceIpv4GatewayMAC.Choice - (*DeviceIpv6GatewayMAC_Choice)(nil), // 1102: otg.DeviceIpv6GatewayMAC.Choice - (*Layer1_Speed)(nil), // 1103: otg.Layer1.Speed - (*Layer1_Media)(nil), // 1104: otg.Layer1.Media - (*Layer1FlowControl_Choice)(nil), // 1105: otg.Layer1FlowControl.Choice - (*Capture_Format)(nil), // 1106: otg.Capture.Format - (*CaptureFilter_Choice)(nil), // 1107: otg.CaptureFilter.Choice - (*IsisInterface_NetworkType)(nil), // 1108: otg.IsisInterface.NetworkType - (*IsisInterface_LevelType)(nil), // 1109: otg.IsisInterface.LevelType - (*IsisInterfaceAuthentication_AuthType)(nil), // 1110: otg.IsisInterfaceAuthentication.AuthType - (*IsisAuthenticationBase_AuthType)(nil), // 1111: otg.IsisAuthenticationBase.AuthType - (*IsisV4RouteRange_OriginType)(nil), // 1112: otg.IsisV4RouteRange.OriginType - (*IsisV4RouteRange_RedistributionType)(nil), // 1113: otg.IsisV4RouteRange.RedistributionType - (*IsisV6RouteRange_OriginType)(nil), // 1114: otg.IsisV6RouteRange.OriginType - (*IsisV6RouteRange_RedistributionType)(nil), // 1115: otg.IsisV6RouteRange.RedistributionType - (*DeviceBgpMessageHeaderError_Subcode)(nil), // 1116: otg.DeviceBgpMessageHeaderError.Subcode - (*DeviceBgpOpenMessageError_Subcode)(nil), // 1117: otg.DeviceBgpOpenMessageError.Subcode - (*DeviceBgpUpdateMessageError_Subcode)(nil), // 1118: otg.DeviceBgpUpdateMessageError.Subcode - (*DeviceBgpCeaseError_Subcode)(nil), // 1119: otg.DeviceBgpCeaseError.Subcode - (*BgpV4Peer_AsType)(nil), // 1120: otg.BgpV4Peer.AsType - (*BgpV4Peer_AsNumberWidth)(nil), // 1121: otg.BgpV4Peer.AsNumberWidth - (*BgpV4EthernetSegment_ActiveMode)(nil), // 1122: otg.BgpV4EthernetSegment.ActiveMode - (*BgpRouteAdvanced_Origin)(nil), // 1123: otg.BgpRouteAdvanced.Origin - (*BgpCommunity_Type)(nil), // 1124: otg.BgpCommunity.Type - (*BgpExtCommunity_Type)(nil), // 1125: otg.BgpExtCommunity.Type - (*BgpExtCommunity_Subtype)(nil), // 1126: otg.BgpExtCommunity.Subtype - (*BgpAsPath_AsSetMode)(nil), // 1127: otg.BgpAsPath.AsSetMode - (*BgpAsPathSegment_Type)(nil), // 1128: otg.BgpAsPathSegment.Type - (*BgpV4EvpnEvis_Choice)(nil), // 1129: otg.BgpV4EvpnEvis.Choice - (*BgpV4EviVxlan_ReplicationType)(nil), // 1130: otg.BgpV4EviVxlan.ReplicationType - (*BgpRouteDistinguisher_RdType)(nil), // 1131: otg.BgpRouteDistinguisher.RdType - (*BgpRouteTarget_RtType)(nil), // 1132: otg.BgpRouteTarget.RtType - (*BgpV4RouteRange_NextHopMode)(nil), // 1133: otg.BgpV4RouteRange.NextHopMode - (*BgpV4RouteRange_NextHopAddressType)(nil), // 1134: otg.BgpV4RouteRange.NextHopAddressType - (*BgpExtendedCommunity_Choice)(nil), // 1135: otg.BgpExtendedCommunity.Choice - (*BgpExtendedCommunityTransitive2OctetAsType_Choice)(nil), // 1136: otg.BgpExtendedCommunityTransitive2OctetAsType.Choice - (*BgpExtendedCommunityTransitiveIpv4AddressType_Choice)(nil), // 1137: otg.BgpExtendedCommunityTransitiveIpv4AddressType.Choice - (*BgpExtendedCommunityTransitive4OctetAsType_Choice)(nil), // 1138: otg.BgpExtendedCommunityTransitive4OctetAsType.Choice - (*BgpExtendedCommunityTransitiveOpaqueType_Choice)(nil), // 1139: otg.BgpExtendedCommunityTransitiveOpaqueType.Choice - (*BgpExtendedCommunityTransitiveEvpnType_Choice)(nil), // 1140: otg.BgpExtendedCommunityTransitiveEvpnType.Choice - (*BgpExtendedCommunityNonTransitive2OctetAsType_Choice)(nil), // 1141: otg.BgpExtendedCommunityNonTransitive2OctetAsType.Choice - (*BgpV6RouteRange_NextHopMode)(nil), // 1142: otg.BgpV6RouteRange.NextHopMode - (*BgpV6RouteRange_NextHopAddressType)(nil), // 1143: otg.BgpV6RouteRange.NextHopAddressType - (*BgpSrteV4Policy_NextHopMode)(nil), // 1144: otg.BgpSrteV4Policy.NextHopMode - (*BgpSrteV4Policy_NextHopAddressType)(nil), // 1145: otg.BgpSrteV4Policy.NextHopAddressType - (*BgpSrteRemoteEndpointSubTlv_AddressFamily)(nil), // 1146: otg.BgpSrteRemoteEndpointSubTlv.AddressFamily - (*BgpSrteBindingSubTlv_BindingSidType)(nil), // 1147: otg.BgpSrteBindingSubTlv.BindingSidType - (*BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy)(nil), // 1148: otg.BgpSrteExplicitNullLabelPolicySubTlv.ExplicitNullLabelPolicy - (*BgpSrteSegment_SegmentType)(nil), // 1149: otg.BgpSrteSegment.SegmentType - (*BgpSrteV6Policy_NextHopMode)(nil), // 1150: otg.BgpSrteV6Policy.NextHopMode - (*BgpSrteV6Policy_NextHopAddressType)(nil), // 1151: otg.BgpSrteV6Policy.NextHopAddressType - (*BgpV6Peer_AsType)(nil), // 1152: otg.BgpV6Peer.AsType - (*BgpV6Peer_AsNumberWidth)(nil), // 1153: otg.BgpV6Peer.AsNumberWidth - (*BgpV6EthernetSegment_ActiveMode)(nil), // 1154: otg.BgpV6EthernetSegment.ActiveMode - (*BgpV6EvpnEvis_Choice)(nil), // 1155: otg.BgpV6EvpnEvis.Choice - (*BgpV6EviVxlan_ReplicationType)(nil), // 1156: otg.BgpV6EviVxlan.ReplicationType - (*VxlanV4TunnelDestinationIPMode_Choice)(nil), // 1157: otg.VxlanV4TunnelDestinationIPMode.Choice - (*VxlanV6TunnelDestinationIPMode_Choice)(nil), // 1158: otg.VxlanV6TunnelDestinationIPMode.Choice - (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle)(nil), // 1159: otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ReservationStyle - (*RsvpEro_PrependNeighborIp)(nil), // 1160: otg.RsvpEro.PrependNeighborIp - (*RsvpEroSubobject_Type)(nil), // 1161: otg.RsvpEroSubobject.Type - (*RsvpEroSubobject_HopType)(nil), // 1162: otg.RsvpEroSubobject.HopType - (*FlowTxRx_Choice)(nil), // 1163: otg.FlowTxRx.Choice - (*FlowRouter_Mode)(nil), // 1164: otg.FlowRouter.Mode - (*FlowHeader_Choice)(nil), // 1165: otg.FlowHeader.Choice - (*FlowIpv4Options_Choice)(nil), // 1166: otg.FlowIpv4Options.Choice - (*FlowIpv4OptionsCustomLength_Choice)(nil), // 1167: otg.FlowIpv4OptionsCustomLength.Choice - (*FlowIpv4Priority_Choice)(nil), // 1168: otg.FlowIpv4Priority.Choice - (*FlowIcmp_Choice)(nil), // 1169: otg.FlowIcmp.Choice - (*FlowIcmpv6_Choice)(nil), // 1170: otg.FlowIcmpv6.Choice - (*FlowSize_Choice)(nil), // 1171: otg.FlowSize.Choice - (*FlowSizeWeightPairs_Choice)(nil), // 1172: otg.FlowSizeWeightPairs.Choice - (*FlowSizeWeightPairs_Predefined)(nil), // 1173: otg.FlowSizeWeightPairs.Predefined - (*FlowRate_Choice)(nil), // 1174: otg.FlowRate.Choice - (*FlowDuration_Choice)(nil), // 1175: otg.FlowDuration.Choice - (*FlowDelay_Choice)(nil), // 1176: otg.FlowDelay.Choice - (*FlowDurationInterBurstGap_Choice)(nil), // 1177: otg.FlowDurationInterBurstGap.Choice - (*FlowLatencyMetrics_Mode)(nil), // 1178: otg.FlowLatencyMetrics.Mode - (*FlowRxTxRatio_Choice)(nil), // 1179: otg.FlowRxTxRatio.Choice - (*EventRequest_Type)(nil), // 1180: otg.EventRequest.Type - (*LldpConnection_Choice)(nil), // 1181: otg.LldpConnection.Choice - (*LldpChassisId_Choice)(nil), // 1182: otg.LldpChassisId.Choice - (*LldpPortId_Choice)(nil), // 1183: otg.LldpPortId.Choice - (*LldpChassisMacSubType_Choice)(nil), // 1184: otg.LldpChassisMacSubType.Choice - (*LldpPortInterfaceNameSubType_Choice)(nil), // 1185: otg.LldpPortInterfaceNameSubType.Choice - (*LldpSystemName_Choice)(nil), // 1186: otg.LldpSystemName.Choice - (*Error_Kind)(nil), // 1187: otg.Error.Kind - (*ConfigUpdate_Choice)(nil), // 1188: otg.ConfigUpdate.Choice - (*FlowsUpdate_PropertyNames)(nil), // 1189: otg.FlowsUpdate.PropertyNames - (*ControlState_Choice)(nil), // 1190: otg.ControlState.Choice - (*StatePort_Choice)(nil), // 1191: otg.StatePort.Choice - (*StateTraffic_Choice)(nil), // 1192: otg.StateTraffic.Choice - (*StateProtocol_Choice)(nil), // 1193: otg.StateProtocol.Choice - (*StatePortLink_State)(nil), // 1194: otg.StatePortLink.State - (*StatePortCapture_State)(nil), // 1195: otg.StatePortCapture.State - (*StateTrafficFlowTransmit_State)(nil), // 1196: otg.StateTrafficFlowTransmit.State - (*StateProtocolAll_State)(nil), // 1197: otg.StateProtocolAll.State - (*StateProtocolRoute_State)(nil), // 1198: otg.StateProtocolRoute.State - (*StateProtocolLacp_Choice)(nil), // 1199: otg.StateProtocolLacp.Choice - (*StateProtocolLacpAdmin_State)(nil), // 1200: otg.StateProtocolLacpAdmin.State - (*StateProtocolLacpMemberPorts_State)(nil), // 1201: otg.StateProtocolLacpMemberPorts.State - (*StateProtocolBgp_Choice)(nil), // 1202: otg.StateProtocolBgp.Choice - (*StateProtocolBgpPeers_State)(nil), // 1203: otg.StateProtocolBgpPeers.State - (*StateProtocolIsis_Choice)(nil), // 1204: otg.StateProtocolIsis.Choice - (*StateProtocolIsisRouters_State)(nil), // 1205: otg.StateProtocolIsisRouters.State - (*ControlAction_Choice)(nil), // 1206: otg.ControlAction.Choice - (*ActionResponse_Choice)(nil), // 1207: otg.ActionResponse.Choice - (*ActionProtocol_Choice)(nil), // 1208: otg.ActionProtocol.Choice - (*ActionResponseProtocol_Choice)(nil), // 1209: otg.ActionResponseProtocol.Choice - (*ActionProtocolIpv4_Choice)(nil), // 1210: otg.ActionProtocolIpv4.Choice - (*ActionResponseProtocolIpv4_Choice)(nil), // 1211: otg.ActionResponseProtocolIpv4.Choice - (*ActionResponseProtocolIpv4PingResponse_Result)(nil), // 1212: otg.ActionResponseProtocolIpv4PingResponse.Result - (*ActionProtocolIpv6_Choice)(nil), // 1213: otg.ActionProtocolIpv6.Choice - (*ActionResponseProtocolIpv6_Choice)(nil), // 1214: otg.ActionResponseProtocolIpv6.Choice - (*ActionResponseProtocolIpv6PingResponse_Result)(nil), // 1215: otg.ActionResponseProtocolIpv6PingResponse.Result - (*ActionProtocolBgp_Choice)(nil), // 1216: otg.ActionProtocolBgp.Choice - (*ActionProtocolBgpNotification_Choice)(nil), // 1217: otg.ActionProtocolBgpNotification.Choice - (*MetricsRequest_Choice)(nil), // 1218: otg.MetricsRequest.Choice - (*MetricsResponse_Choice)(nil), // 1219: otg.MetricsResponse.Choice - (*PortMetricsRequest_ColumnNames)(nil), // 1220: otg.PortMetricsRequest.ColumnNames - (*PortMetric_Link)(nil), // 1221: otg.PortMetric.Link - (*PortMetric_Capture)(nil), // 1222: otg.PortMetric.Capture - (*PortMetric_Transmit)(nil), // 1223: otg.PortMetric.Transmit - (*FlowMetricsRequest_MetricNames)(nil), // 1224: otg.FlowMetricsRequest.MetricNames - (*FlowTaggedMetricsFilter_MetricNames)(nil), // 1225: otg.FlowTaggedMetricsFilter.MetricNames - (*FlowMetric_Transmit)(nil), // 1226: otg.FlowMetric.Transmit - (*FlowMetricTagValue_Choice)(nil), // 1227: otg.FlowMetricTagValue.Choice - (*Bgpv4MetricsRequest_ColumnNames)(nil), // 1228: otg.Bgpv4MetricsRequest.ColumnNames - (*Bgpv4Metric_SessionState)(nil), // 1229: otg.Bgpv4Metric.SessionState - (*Bgpv4Metric_FsmState)(nil), // 1230: otg.Bgpv4Metric.FsmState - (*Bgpv6MetricsRequest_ColumnNames)(nil), // 1231: otg.Bgpv6MetricsRequest.ColumnNames - (*Bgpv6Metric_SessionState)(nil), // 1232: otg.Bgpv6Metric.SessionState - (*Bgpv6Metric_FsmState)(nil), // 1233: otg.Bgpv6Metric.FsmState - (*IsisMetricsRequest_ColumnNames)(nil), // 1234: otg.IsisMetricsRequest.ColumnNames - (*LagMetricsRequest_ColumnNames)(nil), // 1235: otg.LagMetricsRequest.ColumnNames - (*LagMetric_OperStatus)(nil), // 1236: otg.LagMetric.OperStatus - (*LacpMetricsRequest_ColumnNames)(nil), // 1237: otg.LacpMetricsRequest.ColumnNames - (*LacpMetric_Activity)(nil), // 1238: otg.LacpMetric.Activity - (*LacpMetric_Timeout)(nil), // 1239: otg.LacpMetric.Timeout - (*LacpMetric_Synchronization)(nil), // 1240: otg.LacpMetric.Synchronization - (*LldpMetricsRequest_ColumnNames)(nil), // 1241: otg.LldpMetricsRequest.ColumnNames - (*RsvpMetricsRequest_ColumnNames)(nil), // 1242: otg.RsvpMetricsRequest.ColumnNames - (*StatesRequest_Choice)(nil), // 1243: otg.StatesRequest.Choice - (*StatesResponse_Choice)(nil), // 1244: otg.StatesResponse.Choice - (*BgpPrefixStateRequest_PrefixFilters)(nil), // 1245: otg.BgpPrefixStateRequest.PrefixFilters - (*BgpPrefixIpv4UnicastFilter_Origin)(nil), // 1246: otg.BgpPrefixIpv4UnicastFilter.Origin - (*BgpPrefixIpv6UnicastFilter_Origin)(nil), // 1247: otg.BgpPrefixIpv6UnicastFilter.Origin - (*BgpPrefixIpv4UnicastState_Origin)(nil), // 1248: otg.BgpPrefixIpv4UnicastState.Origin - (*BgpPrefixIpv6UnicastState_Origin)(nil), // 1249: otg.BgpPrefixIpv6UnicastState.Origin - (*ResultBgpCommunity_Type)(nil), // 1250: otg.ResultBgpCommunity.Type - (*ResultBgpAsPathSegment_Type)(nil), // 1251: otg.ResultBgpAsPathSegment.Type - (*IsisLspState_PduType)(nil), // 1252: otg.IsisLspState.PduType - (*IsisLspV4Prefix_RedistributionType)(nil), // 1253: otg.IsisLspV4Prefix.RedistributionType - (*IsisLspV4Prefix_OriginType)(nil), // 1254: otg.IsisLspV4Prefix.OriginType - (*IsisLspExtendedV4Prefix_RedistributionType)(nil), // 1255: otg.IsisLspExtendedV4Prefix.RedistributionType - (*IsisLspV6Prefix_RedistributionType)(nil), // 1256: otg.IsisLspV6Prefix.RedistributionType - (*IsisLspV6Prefix_OriginType)(nil), // 1257: otg.IsisLspV6Prefix.OriginType - (*LldpNeighborsState_ChassisIdType)(nil), // 1258: otg.LldpNeighborsState.ChassisIdType - (*LldpNeighborsState_PortIdType)(nil), // 1259: otg.LldpNeighborsState.PortIdType - (*LldpCapabilityState_CapabilityName)(nil), // 1260: otg.LldpCapabilityState.CapabilityName - (*RsvpLspState_SessionStatus)(nil), // 1261: otg.RsvpLspState.SessionStatus - (*RsvpLspState_LastFlapReason)(nil), // 1262: otg.RsvpLspState.LastFlapReason - (*RsvpLspIpv4Ero_Type)(nil), // 1263: otg.RsvpLspIpv4Ero.Type - (*PatternFlowEthernetDst_Choice)(nil), // 1264: otg.PatternFlowEthernetDst.Choice - (*PatternFlowEthernetSrc_Choice)(nil), // 1265: otg.PatternFlowEthernetSrc.Choice - (*PatternFlowEthernetEtherType_Choice)(nil), // 1266: otg.PatternFlowEthernetEtherType.Choice - (*PatternFlowEthernetPfcQueue_Choice)(nil), // 1267: otg.PatternFlowEthernetPfcQueue.Choice - (*PatternFlowVlanPriority_Choice)(nil), // 1268: otg.PatternFlowVlanPriority.Choice - (*PatternFlowVlanCfi_Choice)(nil), // 1269: otg.PatternFlowVlanCfi.Choice - (*PatternFlowVlanId_Choice)(nil), // 1270: otg.PatternFlowVlanId.Choice - (*PatternFlowVlanTpid_Choice)(nil), // 1271: otg.PatternFlowVlanTpid.Choice - (*PatternFlowVxlanFlags_Choice)(nil), // 1272: otg.PatternFlowVxlanFlags.Choice - (*PatternFlowVxlanReserved0_Choice)(nil), // 1273: otg.PatternFlowVxlanReserved0.Choice - (*PatternFlowVxlanVni_Choice)(nil), // 1274: otg.PatternFlowVxlanVni.Choice - (*PatternFlowVxlanReserved1_Choice)(nil), // 1275: otg.PatternFlowVxlanReserved1.Choice - (*PatternFlowIpv4Version_Choice)(nil), // 1276: otg.PatternFlowIpv4Version.Choice - (*PatternFlowIpv4HeaderLength_Choice)(nil), // 1277: otg.PatternFlowIpv4HeaderLength.Choice - (*PatternFlowIpv4TotalLength_Choice)(nil), // 1278: otg.PatternFlowIpv4TotalLength.Choice - (*PatternFlowIpv4Identification_Choice)(nil), // 1279: otg.PatternFlowIpv4Identification.Choice - (*PatternFlowIpv4Reserved_Choice)(nil), // 1280: otg.PatternFlowIpv4Reserved.Choice - (*PatternFlowIpv4DontFragment_Choice)(nil), // 1281: otg.PatternFlowIpv4DontFragment.Choice - (*PatternFlowIpv4MoreFragments_Choice)(nil), // 1282: otg.PatternFlowIpv4MoreFragments.Choice - (*PatternFlowIpv4FragmentOffset_Choice)(nil), // 1283: otg.PatternFlowIpv4FragmentOffset.Choice - (*PatternFlowIpv4TimeToLive_Choice)(nil), // 1284: otg.PatternFlowIpv4TimeToLive.Choice - (*PatternFlowIpv4Protocol_Choice)(nil), // 1285: otg.PatternFlowIpv4Protocol.Choice - (*PatternFlowIpv4HeaderChecksum_Choice)(nil), // 1286: otg.PatternFlowIpv4HeaderChecksum.Choice - (*PatternFlowIpv4HeaderChecksum_Generated)(nil), // 1287: otg.PatternFlowIpv4HeaderChecksum.Generated - (*PatternFlowIpv4Src_Choice)(nil), // 1288: otg.PatternFlowIpv4Src.Choice - (*PatternFlowIpv4Dst_Choice)(nil), // 1289: otg.PatternFlowIpv4Dst.Choice - (*PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice)(nil), // 1290: otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag.Choice - (*PatternFlowIpv4OptionsCustomTypeOptionClass_Choice)(nil), // 1291: otg.PatternFlowIpv4OptionsCustomTypeOptionClass.Choice - (*PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice)(nil), // 1292: otg.PatternFlowIpv4OptionsCustomTypeOptionNumber.Choice - (*PatternFlowIpv4PriorityRaw_Choice)(nil), // 1293: otg.PatternFlowIpv4PriorityRaw.Choice - (*PatternFlowIpv4DscpPhb_Choice)(nil), // 1294: otg.PatternFlowIpv4DscpPhb.Choice - (*PatternFlowIpv4DscpEcn_Choice)(nil), // 1295: otg.PatternFlowIpv4DscpEcn.Choice - (*PatternFlowIpv4TosPrecedence_Choice)(nil), // 1296: otg.PatternFlowIpv4TosPrecedence.Choice - (*PatternFlowIpv4TosDelay_Choice)(nil), // 1297: otg.PatternFlowIpv4TosDelay.Choice - (*PatternFlowIpv4TosThroughput_Choice)(nil), // 1298: otg.PatternFlowIpv4TosThroughput.Choice - (*PatternFlowIpv4TosReliability_Choice)(nil), // 1299: otg.PatternFlowIpv4TosReliability.Choice - (*PatternFlowIpv4TosMonetary_Choice)(nil), // 1300: otg.PatternFlowIpv4TosMonetary.Choice - (*PatternFlowIpv4TosUnused_Choice)(nil), // 1301: otg.PatternFlowIpv4TosUnused.Choice - (*PatternFlowIpv6Version_Choice)(nil), // 1302: otg.PatternFlowIpv6Version.Choice - (*PatternFlowIpv6TrafficClass_Choice)(nil), // 1303: otg.PatternFlowIpv6TrafficClass.Choice - (*PatternFlowIpv6FlowLabel_Choice)(nil), // 1304: otg.PatternFlowIpv6FlowLabel.Choice - (*PatternFlowIpv6PayloadLength_Choice)(nil), // 1305: otg.PatternFlowIpv6PayloadLength.Choice - (*PatternFlowIpv6NextHeader_Choice)(nil), // 1306: otg.PatternFlowIpv6NextHeader.Choice - (*PatternFlowIpv6HopLimit_Choice)(nil), // 1307: otg.PatternFlowIpv6HopLimit.Choice - (*PatternFlowIpv6Src_Choice)(nil), // 1308: otg.PatternFlowIpv6Src.Choice - (*PatternFlowIpv6Dst_Choice)(nil), // 1309: otg.PatternFlowIpv6Dst.Choice - (*PatternFlowPfcPauseDst_Choice)(nil), // 1310: otg.PatternFlowPfcPauseDst.Choice - (*PatternFlowPfcPauseSrc_Choice)(nil), // 1311: otg.PatternFlowPfcPauseSrc.Choice - (*PatternFlowPfcPauseEtherType_Choice)(nil), // 1312: otg.PatternFlowPfcPauseEtherType.Choice - (*PatternFlowPfcPauseControlOpCode_Choice)(nil), // 1313: otg.PatternFlowPfcPauseControlOpCode.Choice - (*PatternFlowPfcPauseClassEnableVector_Choice)(nil), // 1314: otg.PatternFlowPfcPauseClassEnableVector.Choice - (*PatternFlowPfcPausePauseClass0_Choice)(nil), // 1315: otg.PatternFlowPfcPausePauseClass0.Choice - (*PatternFlowPfcPausePauseClass1_Choice)(nil), // 1316: otg.PatternFlowPfcPausePauseClass1.Choice - (*PatternFlowPfcPausePauseClass2_Choice)(nil), // 1317: otg.PatternFlowPfcPausePauseClass2.Choice - (*PatternFlowPfcPausePauseClass3_Choice)(nil), // 1318: otg.PatternFlowPfcPausePauseClass3.Choice - (*PatternFlowPfcPausePauseClass4_Choice)(nil), // 1319: otg.PatternFlowPfcPausePauseClass4.Choice - (*PatternFlowPfcPausePauseClass5_Choice)(nil), // 1320: otg.PatternFlowPfcPausePauseClass5.Choice - (*PatternFlowPfcPausePauseClass6_Choice)(nil), // 1321: otg.PatternFlowPfcPausePauseClass6.Choice - (*PatternFlowPfcPausePauseClass7_Choice)(nil), // 1322: otg.PatternFlowPfcPausePauseClass7.Choice - (*PatternFlowEthernetPauseDst_Choice)(nil), // 1323: otg.PatternFlowEthernetPauseDst.Choice - (*PatternFlowEthernetPauseSrc_Choice)(nil), // 1324: otg.PatternFlowEthernetPauseSrc.Choice - (*PatternFlowEthernetPauseEtherType_Choice)(nil), // 1325: otg.PatternFlowEthernetPauseEtherType.Choice - (*PatternFlowEthernetPauseControlOpCode_Choice)(nil), // 1326: otg.PatternFlowEthernetPauseControlOpCode.Choice - (*PatternFlowEthernetPauseTime_Choice)(nil), // 1327: otg.PatternFlowEthernetPauseTime.Choice - (*PatternFlowTcpSrcPort_Choice)(nil), // 1328: otg.PatternFlowTcpSrcPort.Choice - (*PatternFlowTcpDstPort_Choice)(nil), // 1329: otg.PatternFlowTcpDstPort.Choice - (*PatternFlowTcpSeqNum_Choice)(nil), // 1330: otg.PatternFlowTcpSeqNum.Choice - (*PatternFlowTcpAckNum_Choice)(nil), // 1331: otg.PatternFlowTcpAckNum.Choice - (*PatternFlowTcpDataOffset_Choice)(nil), // 1332: otg.PatternFlowTcpDataOffset.Choice - (*PatternFlowTcpEcnNs_Choice)(nil), // 1333: otg.PatternFlowTcpEcnNs.Choice - (*PatternFlowTcpEcnCwr_Choice)(nil), // 1334: otg.PatternFlowTcpEcnCwr.Choice - (*PatternFlowTcpEcnEcho_Choice)(nil), // 1335: otg.PatternFlowTcpEcnEcho.Choice - (*PatternFlowTcpCtlUrg_Choice)(nil), // 1336: otg.PatternFlowTcpCtlUrg.Choice - (*PatternFlowTcpCtlAck_Choice)(nil), // 1337: otg.PatternFlowTcpCtlAck.Choice - (*PatternFlowTcpCtlPsh_Choice)(nil), // 1338: otg.PatternFlowTcpCtlPsh.Choice - (*PatternFlowTcpCtlRst_Choice)(nil), // 1339: otg.PatternFlowTcpCtlRst.Choice - (*PatternFlowTcpCtlSyn_Choice)(nil), // 1340: otg.PatternFlowTcpCtlSyn.Choice - (*PatternFlowTcpCtlFin_Choice)(nil), // 1341: otg.PatternFlowTcpCtlFin.Choice - (*PatternFlowTcpWindow_Choice)(nil), // 1342: otg.PatternFlowTcpWindow.Choice - (*PatternFlowUdpSrcPort_Choice)(nil), // 1343: otg.PatternFlowUdpSrcPort.Choice - (*PatternFlowUdpDstPort_Choice)(nil), // 1344: otg.PatternFlowUdpDstPort.Choice - (*PatternFlowUdpLength_Choice)(nil), // 1345: otg.PatternFlowUdpLength.Choice - (*PatternFlowUdpChecksum_Choice)(nil), // 1346: otg.PatternFlowUdpChecksum.Choice - (*PatternFlowUdpChecksum_Generated)(nil), // 1347: otg.PatternFlowUdpChecksum.Generated - (*PatternFlowGreChecksumPresent_Choice)(nil), // 1348: otg.PatternFlowGreChecksumPresent.Choice - (*PatternFlowGreReserved0_Choice)(nil), // 1349: otg.PatternFlowGreReserved0.Choice - (*PatternFlowGreVersion_Choice)(nil), // 1350: otg.PatternFlowGreVersion.Choice - (*PatternFlowGreProtocol_Choice)(nil), // 1351: otg.PatternFlowGreProtocol.Choice - (*PatternFlowGreChecksum_Choice)(nil), // 1352: otg.PatternFlowGreChecksum.Choice - (*PatternFlowGreChecksum_Generated)(nil), // 1353: otg.PatternFlowGreChecksum.Generated - (*PatternFlowGreReserved1_Choice)(nil), // 1354: otg.PatternFlowGreReserved1.Choice - (*PatternFlowGtpv1Version_Choice)(nil), // 1355: otg.PatternFlowGtpv1Version.Choice - (*PatternFlowGtpv1ProtocolType_Choice)(nil), // 1356: otg.PatternFlowGtpv1ProtocolType.Choice - (*PatternFlowGtpv1Reserved_Choice)(nil), // 1357: otg.PatternFlowGtpv1Reserved.Choice - (*PatternFlowGtpv1EFlag_Choice)(nil), // 1358: otg.PatternFlowGtpv1EFlag.Choice - (*PatternFlowGtpv1SFlag_Choice)(nil), // 1359: otg.PatternFlowGtpv1SFlag.Choice - (*PatternFlowGtpv1PnFlag_Choice)(nil), // 1360: otg.PatternFlowGtpv1PnFlag.Choice - (*PatternFlowGtpv1MessageType_Choice)(nil), // 1361: otg.PatternFlowGtpv1MessageType.Choice - (*PatternFlowGtpv1MessageLength_Choice)(nil), // 1362: otg.PatternFlowGtpv1MessageLength.Choice - (*PatternFlowGtpv1Teid_Choice)(nil), // 1363: otg.PatternFlowGtpv1Teid.Choice - (*PatternFlowGtpv1SquenceNumber_Choice)(nil), // 1364: otg.PatternFlowGtpv1SquenceNumber.Choice - (*PatternFlowGtpv1NPduNumber_Choice)(nil), // 1365: otg.PatternFlowGtpv1NPduNumber.Choice - (*PatternFlowGtpv1NextExtensionHeaderType_Choice)(nil), // 1366: otg.PatternFlowGtpv1NextExtensionHeaderType.Choice - (*PatternFlowGtpExtensionExtensionLength_Choice)(nil), // 1367: otg.PatternFlowGtpExtensionExtensionLength.Choice - (*PatternFlowGtpExtensionContents_Choice)(nil), // 1368: otg.PatternFlowGtpExtensionContents.Choice - (*PatternFlowGtpExtensionNextExtensionHeader_Choice)(nil), // 1369: otg.PatternFlowGtpExtensionNextExtensionHeader.Choice - (*PatternFlowGtpv2Version_Choice)(nil), // 1370: otg.PatternFlowGtpv2Version.Choice - (*PatternFlowGtpv2PiggybackingFlag_Choice)(nil), // 1371: otg.PatternFlowGtpv2PiggybackingFlag.Choice - (*PatternFlowGtpv2TeidFlag_Choice)(nil), // 1372: otg.PatternFlowGtpv2TeidFlag.Choice - (*PatternFlowGtpv2Spare1_Choice)(nil), // 1373: otg.PatternFlowGtpv2Spare1.Choice - (*PatternFlowGtpv2MessageType_Choice)(nil), // 1374: otg.PatternFlowGtpv2MessageType.Choice - (*PatternFlowGtpv2MessageLength_Choice)(nil), // 1375: otg.PatternFlowGtpv2MessageLength.Choice - (*PatternFlowGtpv2Teid_Choice)(nil), // 1376: otg.PatternFlowGtpv2Teid.Choice - (*PatternFlowGtpv2SequenceNumber_Choice)(nil), // 1377: otg.PatternFlowGtpv2SequenceNumber.Choice - (*PatternFlowGtpv2Spare2_Choice)(nil), // 1378: otg.PatternFlowGtpv2Spare2.Choice - (*PatternFlowArpHardwareType_Choice)(nil), // 1379: otg.PatternFlowArpHardwareType.Choice - (*PatternFlowArpProtocolType_Choice)(nil), // 1380: otg.PatternFlowArpProtocolType.Choice - (*PatternFlowArpHardwareLength_Choice)(nil), // 1381: otg.PatternFlowArpHardwareLength.Choice - (*PatternFlowArpProtocolLength_Choice)(nil), // 1382: otg.PatternFlowArpProtocolLength.Choice - (*PatternFlowArpOperation_Choice)(nil), // 1383: otg.PatternFlowArpOperation.Choice - (*PatternFlowArpSenderHardwareAddr_Choice)(nil), // 1384: otg.PatternFlowArpSenderHardwareAddr.Choice - (*PatternFlowArpSenderProtocolAddr_Choice)(nil), // 1385: otg.PatternFlowArpSenderProtocolAddr.Choice - (*PatternFlowArpTargetHardwareAddr_Choice)(nil), // 1386: otg.PatternFlowArpTargetHardwareAddr.Choice - (*PatternFlowArpTargetProtocolAddr_Choice)(nil), // 1387: otg.PatternFlowArpTargetProtocolAddr.Choice - (*PatternFlowIcmpEchoType_Choice)(nil), // 1388: otg.PatternFlowIcmpEchoType.Choice - (*PatternFlowIcmpEchoCode_Choice)(nil), // 1389: otg.PatternFlowIcmpEchoCode.Choice - (*PatternFlowIcmpEchoChecksum_Choice)(nil), // 1390: otg.PatternFlowIcmpEchoChecksum.Choice - (*PatternFlowIcmpEchoChecksum_Generated)(nil), // 1391: otg.PatternFlowIcmpEchoChecksum.Generated - (*PatternFlowIcmpEchoIdentifier_Choice)(nil), // 1392: otg.PatternFlowIcmpEchoIdentifier.Choice - (*PatternFlowIcmpEchoSequenceNumber_Choice)(nil), // 1393: otg.PatternFlowIcmpEchoSequenceNumber.Choice - (*PatternFlowIcmpCommonChecksum_Choice)(nil), // 1394: otg.PatternFlowIcmpCommonChecksum.Choice - (*PatternFlowIcmpCommonChecksum_Generated)(nil), // 1395: otg.PatternFlowIcmpCommonChecksum.Generated - (*PatternFlowIcmpNextFieldsIdentifier_Choice)(nil), // 1396: otg.PatternFlowIcmpNextFieldsIdentifier.Choice - (*PatternFlowIcmpNextFieldsSequenceNumber_Choice)(nil), // 1397: otg.PatternFlowIcmpNextFieldsSequenceNumber.Choice - (*PatternFlowIcmpv6EchoType_Choice)(nil), // 1398: otg.PatternFlowIcmpv6EchoType.Choice - (*PatternFlowIcmpv6EchoCode_Choice)(nil), // 1399: otg.PatternFlowIcmpv6EchoCode.Choice - (*PatternFlowIcmpv6EchoIdentifier_Choice)(nil), // 1400: otg.PatternFlowIcmpv6EchoIdentifier.Choice - (*PatternFlowIcmpv6EchoSequenceNumber_Choice)(nil), // 1401: otg.PatternFlowIcmpv6EchoSequenceNumber.Choice - (*PatternFlowIcmpv6EchoChecksum_Choice)(nil), // 1402: otg.PatternFlowIcmpv6EchoChecksum.Choice - (*PatternFlowIcmpv6EchoChecksum_Generated)(nil), // 1403: otg.PatternFlowIcmpv6EchoChecksum.Generated - (*PatternFlowIcmpv6CommonChecksum_Choice)(nil), // 1404: otg.PatternFlowIcmpv6CommonChecksum.Choice - (*PatternFlowIcmpv6CommonChecksum_Generated)(nil), // 1405: otg.PatternFlowIcmpv6CommonChecksum.Generated - (*PatternFlowPppAddress_Choice)(nil), // 1406: otg.PatternFlowPppAddress.Choice - (*PatternFlowPppControl_Choice)(nil), // 1407: otg.PatternFlowPppControl.Choice - (*PatternFlowPppProtocolType_Choice)(nil), // 1408: otg.PatternFlowPppProtocolType.Choice - (*PatternFlowIgmpv1Version_Choice)(nil), // 1409: otg.PatternFlowIgmpv1Version.Choice - (*PatternFlowIgmpv1Type_Choice)(nil), // 1410: otg.PatternFlowIgmpv1Type.Choice - (*PatternFlowIgmpv1Unused_Choice)(nil), // 1411: otg.PatternFlowIgmpv1Unused.Choice - (*PatternFlowIgmpv1Checksum_Choice)(nil), // 1412: otg.PatternFlowIgmpv1Checksum.Choice - (*PatternFlowIgmpv1Checksum_Generated)(nil), // 1413: otg.PatternFlowIgmpv1Checksum.Generated - (*PatternFlowIgmpv1GroupAddress_Choice)(nil), // 1414: otg.PatternFlowIgmpv1GroupAddress.Choice - (*PatternFlowMplsLabel_Choice)(nil), // 1415: otg.PatternFlowMplsLabel.Choice - (*PatternFlowMplsTrafficClass_Choice)(nil), // 1416: otg.PatternFlowMplsTrafficClass.Choice - (*PatternFlowMplsBottomOfStack_Choice)(nil), // 1417: otg.PatternFlowMplsBottomOfStack.Choice - (*PatternFlowMplsTimeToLive_Choice)(nil), // 1418: otg.PatternFlowMplsTimeToLive.Choice - (*emptypb.Empty)(nil), // 1419: google.protobuf.Empty + (LagProtocol_Choice_Enum)(0), // 0: otg.LagProtocol.Choice.Enum + (LagPortLacp_ActorActivity_Enum)(0), // 1: otg.LagPortLacp.ActorActivity.Enum + (EthernetConnection_Choice_Enum)(0), // 2: otg.EthernetConnection.Choice.Enum + (DeviceVlan_Tpid_Enum)(0), // 3: otg.DeviceVlan.Tpid.Enum + (DeviceIpv4GatewayMAC_Choice_Enum)(0), // 4: otg.DeviceIpv4GatewayMAC.Choice.Enum + (DeviceIpv6GatewayMAC_Choice_Enum)(0), // 5: otg.DeviceIpv6GatewayMAC.Choice.Enum + (Layer1_Speed_Enum)(0), // 6: otg.Layer1.Speed.Enum + (Layer1_Media_Enum)(0), // 7: otg.Layer1.Media.Enum + (Layer1FlowControl_Choice_Enum)(0), // 8: otg.Layer1FlowControl.Choice.Enum + (Capture_Format_Enum)(0), // 9: otg.Capture.Format.Enum + (CaptureFilter_Choice_Enum)(0), // 10: otg.CaptureFilter.Choice.Enum + (IsisInterface_NetworkType_Enum)(0), // 11: otg.IsisInterface.NetworkType.Enum + (IsisInterface_LevelType_Enum)(0), // 12: otg.IsisInterface.LevelType.Enum + (IsisInterfaceAuthentication_AuthType_Enum)(0), // 13: otg.IsisInterfaceAuthentication.AuthType.Enum + (IsisAuthenticationBase_AuthType_Enum)(0), // 14: otg.IsisAuthenticationBase.AuthType.Enum + (IsisV4RouteRange_OriginType_Enum)(0), // 15: otg.IsisV4RouteRange.OriginType.Enum + (IsisV4RouteRange_RedistributionType_Enum)(0), // 16: otg.IsisV4RouteRange.RedistributionType.Enum + (IsisV6RouteRange_OriginType_Enum)(0), // 17: otg.IsisV6RouteRange.OriginType.Enum + (IsisV6RouteRange_RedistributionType_Enum)(0), // 18: otg.IsisV6RouteRange.RedistributionType.Enum + (DeviceBgpMessageHeaderError_Subcode_Enum)(0), // 19: otg.DeviceBgpMessageHeaderError.Subcode.Enum + (DeviceBgpOpenMessageError_Subcode_Enum)(0), // 20: otg.DeviceBgpOpenMessageError.Subcode.Enum + (DeviceBgpUpdateMessageError_Subcode_Enum)(0), // 21: otg.DeviceBgpUpdateMessageError.Subcode.Enum + (DeviceBgpCeaseError_Subcode_Enum)(0), // 22: otg.DeviceBgpCeaseError.Subcode.Enum + (BgpV4Peer_AsType_Enum)(0), // 23: otg.BgpV4Peer.AsType.Enum + (BgpV4Peer_AsNumberWidth_Enum)(0), // 24: otg.BgpV4Peer.AsNumberWidth.Enum + (BgpV4EthernetSegment_ActiveMode_Enum)(0), // 25: otg.BgpV4EthernetSegment.ActiveMode.Enum + (BgpRouteAdvanced_Origin_Enum)(0), // 26: otg.BgpRouteAdvanced.Origin.Enum + (BgpCommunity_Type_Enum)(0), // 27: otg.BgpCommunity.Type.Enum + (BgpExtCommunity_Type_Enum)(0), // 28: otg.BgpExtCommunity.Type.Enum + (BgpExtCommunity_Subtype_Enum)(0), // 29: otg.BgpExtCommunity.Subtype.Enum + (BgpAsPath_AsSetMode_Enum)(0), // 30: otg.BgpAsPath.AsSetMode.Enum + (BgpAsPathSegment_Type_Enum)(0), // 31: otg.BgpAsPathSegment.Type.Enum + (BgpV4EvpnEvis_Choice_Enum)(0), // 32: otg.BgpV4EvpnEvis.Choice.Enum + (BgpV4EviVxlan_ReplicationType_Enum)(0), // 33: otg.BgpV4EviVxlan.ReplicationType.Enum + (BgpRouteDistinguisher_RdType_Enum)(0), // 34: otg.BgpRouteDistinguisher.RdType.Enum + (BgpRouteTarget_RtType_Enum)(0), // 35: otg.BgpRouteTarget.RtType.Enum + (BgpV4RouteRange_NextHopMode_Enum)(0), // 36: otg.BgpV4RouteRange.NextHopMode.Enum + (BgpV4RouteRange_NextHopAddressType_Enum)(0), // 37: otg.BgpV4RouteRange.NextHopAddressType.Enum + (BgpExtendedCommunity_Choice_Enum)(0), // 38: otg.BgpExtendedCommunity.Choice.Enum + (BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum)(0), // 39: otg.BgpExtendedCommunityTransitive2OctetAsType.Choice.Enum + (BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum)(0), // 40: otg.BgpExtendedCommunityTransitiveIpv4AddressType.Choice.Enum + (BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum)(0), // 41: otg.BgpExtendedCommunityTransitive4OctetAsType.Choice.Enum + (BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum)(0), // 42: otg.BgpExtendedCommunityTransitiveOpaqueType.Choice.Enum + (BgpExtendedCommunityTransitiveEvpnType_Choice_Enum)(0), // 43: otg.BgpExtendedCommunityTransitiveEvpnType.Choice.Enum + (BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum)(0), // 44: otg.BgpExtendedCommunityNonTransitive2OctetAsType.Choice.Enum + (BgpV6RouteRange_NextHopMode_Enum)(0), // 45: otg.BgpV6RouteRange.NextHopMode.Enum + (BgpV6RouteRange_NextHopAddressType_Enum)(0), // 46: otg.BgpV6RouteRange.NextHopAddressType.Enum + (BgpSrteV4Policy_NextHopMode_Enum)(0), // 47: otg.BgpSrteV4Policy.NextHopMode.Enum + (BgpSrteV4Policy_NextHopAddressType_Enum)(0), // 48: otg.BgpSrteV4Policy.NextHopAddressType.Enum + (BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum)(0), // 49: otg.BgpSrteRemoteEndpointSubTlv.AddressFamily.Enum + (BgpSrteBindingSubTlv_BindingSidType_Enum)(0), // 50: otg.BgpSrteBindingSubTlv.BindingSidType.Enum + (BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum)(0), // 51: otg.BgpSrteExplicitNullLabelPolicySubTlv.ExplicitNullLabelPolicy.Enum + (BgpSrteSegment_SegmentType_Enum)(0), // 52: otg.BgpSrteSegment.SegmentType.Enum + (BgpSrteV6Policy_NextHopMode_Enum)(0), // 53: otg.BgpSrteV6Policy.NextHopMode.Enum + (BgpSrteV6Policy_NextHopAddressType_Enum)(0), // 54: otg.BgpSrteV6Policy.NextHopAddressType.Enum + (BgpV6Peer_AsType_Enum)(0), // 55: otg.BgpV6Peer.AsType.Enum + (BgpV6Peer_AsNumberWidth_Enum)(0), // 56: otg.BgpV6Peer.AsNumberWidth.Enum + (BgpV6EthernetSegment_ActiveMode_Enum)(0), // 57: otg.BgpV6EthernetSegment.ActiveMode.Enum + (BgpV6EvpnEvis_Choice_Enum)(0), // 58: otg.BgpV6EvpnEvis.Choice.Enum + (BgpV6EviVxlan_ReplicationType_Enum)(0), // 59: otg.BgpV6EviVxlan.ReplicationType.Enum + (VxlanV4TunnelDestinationIPMode_Choice_Enum)(0), // 60: otg.VxlanV4TunnelDestinationIPMode.Choice.Enum + (VxlanV6TunnelDestinationIPMode_Choice_Enum)(0), // 61: otg.VxlanV6TunnelDestinationIPMode.Choice.Enum + (RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum)(0), // 62: otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ReservationStyle.Enum + (RsvpEro_PrependNeighborIp_Enum)(0), // 63: otg.RsvpEro.PrependNeighborIp.Enum + (RsvpEroSubobject_Type_Enum)(0), // 64: otg.RsvpEroSubobject.Type.Enum + (RsvpEroSubobject_HopType_Enum)(0), // 65: otg.RsvpEroSubobject.HopType.Enum + (FlowTxRx_Choice_Enum)(0), // 66: otg.FlowTxRx.Choice.Enum + (FlowRouter_Mode_Enum)(0), // 67: otg.FlowRouter.Mode.Enum + (FlowHeader_Choice_Enum)(0), // 68: otg.FlowHeader.Choice.Enum + (FlowIpv4Options_Choice_Enum)(0), // 69: otg.FlowIpv4Options.Choice.Enum + (FlowIpv4OptionsCustomLength_Choice_Enum)(0), // 70: otg.FlowIpv4OptionsCustomLength.Choice.Enum + (FlowIpv4Priority_Choice_Enum)(0), // 71: otg.FlowIpv4Priority.Choice.Enum + (FlowIcmp_Choice_Enum)(0), // 72: otg.FlowIcmp.Choice.Enum + (FlowIcmpv6_Choice_Enum)(0), // 73: otg.FlowIcmpv6.Choice.Enum + (FlowSnmpv2CData_Choice_Enum)(0), // 74: otg.FlowSnmpv2cData.Choice.Enum + (FlowSnmpv2CPDU_ErrorStatus_Enum)(0), // 75: otg.FlowSnmpv2cPDU.ErrorStatus.Enum + (FlowSnmpv2CVariableBindingValue_Choice_Enum)(0), // 76: otg.FlowSnmpv2cVariableBindingValue.Choice.Enum + (FlowSize_Choice_Enum)(0), // 77: otg.FlowSize.Choice.Enum + (FlowSizeWeightPairs_Choice_Enum)(0), // 78: otg.FlowSizeWeightPairs.Choice.Enum + (FlowSizeWeightPairs_Predefined_Enum)(0), // 79: otg.FlowSizeWeightPairs.Predefined.Enum + (FlowRate_Choice_Enum)(0), // 80: otg.FlowRate.Choice.Enum + (FlowDuration_Choice_Enum)(0), // 81: otg.FlowDuration.Choice.Enum + (FlowDelay_Choice_Enum)(0), // 82: otg.FlowDelay.Choice.Enum + (FlowDurationInterBurstGap_Choice_Enum)(0), // 83: otg.FlowDurationInterBurstGap.Choice.Enum + (FlowLatencyMetrics_Mode_Enum)(0), // 84: otg.FlowLatencyMetrics.Mode.Enum + (FlowRxTxRatio_Choice_Enum)(0), // 85: otg.FlowRxTxRatio.Choice.Enum + (EventRequest_Type_Enum)(0), // 86: otg.EventRequest.Type.Enum + (LldpConnection_Choice_Enum)(0), // 87: otg.LldpConnection.Choice.Enum + (LldpChassisId_Choice_Enum)(0), // 88: otg.LldpChassisId.Choice.Enum + (LldpPortId_Choice_Enum)(0), // 89: otg.LldpPortId.Choice.Enum + (LldpChassisMacSubType_Choice_Enum)(0), // 90: otg.LldpChassisMacSubType.Choice.Enum + (LldpPortInterfaceNameSubType_Choice_Enum)(0), // 91: otg.LldpPortInterfaceNameSubType.Choice.Enum + (LldpSystemName_Choice_Enum)(0), // 92: otg.LldpSystemName.Choice.Enum + (Error_Kind_Enum)(0), // 93: otg.Error.Kind.Enum + (ConfigUpdate_Choice_Enum)(0), // 94: otg.ConfigUpdate.Choice.Enum + (FlowsUpdate_PropertyNames_Enum)(0), // 95: otg.FlowsUpdate.PropertyNames.Enum + (ControlState_Choice_Enum)(0), // 96: otg.ControlState.Choice.Enum + (StatePort_Choice_Enum)(0), // 97: otg.StatePort.Choice.Enum + (StateTraffic_Choice_Enum)(0), // 98: otg.StateTraffic.Choice.Enum + (StateProtocol_Choice_Enum)(0), // 99: otg.StateProtocol.Choice.Enum + (StatePortLink_State_Enum)(0), // 100: otg.StatePortLink.State.Enum + (StatePortCapture_State_Enum)(0), // 101: otg.StatePortCapture.State.Enum + (StateTrafficFlowTransmit_State_Enum)(0), // 102: otg.StateTrafficFlowTransmit.State.Enum + (StateProtocolAll_State_Enum)(0), // 103: otg.StateProtocolAll.State.Enum + (StateProtocolRoute_State_Enum)(0), // 104: otg.StateProtocolRoute.State.Enum + (StateProtocolLacp_Choice_Enum)(0), // 105: otg.StateProtocolLacp.Choice.Enum + (StateProtocolLacpAdmin_State_Enum)(0), // 106: otg.StateProtocolLacpAdmin.State.Enum + (StateProtocolLacpMemberPorts_State_Enum)(0), // 107: otg.StateProtocolLacpMemberPorts.State.Enum + (StateProtocolBgp_Choice_Enum)(0), // 108: otg.StateProtocolBgp.Choice.Enum + (StateProtocolBgpPeers_State_Enum)(0), // 109: otg.StateProtocolBgpPeers.State.Enum + (StateProtocolIsis_Choice_Enum)(0), // 110: otg.StateProtocolIsis.Choice.Enum + (StateProtocolIsisRouters_State_Enum)(0), // 111: otg.StateProtocolIsisRouters.State.Enum + (ControlAction_Choice_Enum)(0), // 112: otg.ControlAction.Choice.Enum + (ActionResponse_Choice_Enum)(0), // 113: otg.ActionResponse.Choice.Enum + (ActionProtocol_Choice_Enum)(0), // 114: otg.ActionProtocol.Choice.Enum + (ActionResponseProtocol_Choice_Enum)(0), // 115: otg.ActionResponseProtocol.Choice.Enum + (ActionProtocolIpv4_Choice_Enum)(0), // 116: otg.ActionProtocolIpv4.Choice.Enum + (ActionResponseProtocolIpv4_Choice_Enum)(0), // 117: otg.ActionResponseProtocolIpv4.Choice.Enum + (ActionResponseProtocolIpv4PingResponse_Result_Enum)(0), // 118: otg.ActionResponseProtocolIpv4PingResponse.Result.Enum + (ActionProtocolIpv6_Choice_Enum)(0), // 119: otg.ActionProtocolIpv6.Choice.Enum + (ActionResponseProtocolIpv6_Choice_Enum)(0), // 120: otg.ActionResponseProtocolIpv6.Choice.Enum + (ActionResponseProtocolIpv6PingResponse_Result_Enum)(0), // 121: otg.ActionResponseProtocolIpv6PingResponse.Result.Enum + (ActionProtocolBgp_Choice_Enum)(0), // 122: otg.ActionProtocolBgp.Choice.Enum + (ActionProtocolBgpNotification_Choice_Enum)(0), // 123: otg.ActionProtocolBgpNotification.Choice.Enum + (MetricsRequest_Choice_Enum)(0), // 124: otg.MetricsRequest.Choice.Enum + (MetricsResponse_Choice_Enum)(0), // 125: otg.MetricsResponse.Choice.Enum + (PortMetricsRequest_ColumnNames_Enum)(0), // 126: otg.PortMetricsRequest.ColumnNames.Enum + (PortMetric_Link_Enum)(0), // 127: otg.PortMetric.Link.Enum + (PortMetric_Capture_Enum)(0), // 128: otg.PortMetric.Capture.Enum + (PortMetric_Transmit_Enum)(0), // 129: otg.PortMetric.Transmit.Enum + (FlowMetricsRequest_MetricNames_Enum)(0), // 130: otg.FlowMetricsRequest.MetricNames.Enum + (FlowTaggedMetricsFilter_MetricNames_Enum)(0), // 131: otg.FlowTaggedMetricsFilter.MetricNames.Enum + (FlowMetric_Transmit_Enum)(0), // 132: otg.FlowMetric.Transmit.Enum + (FlowMetricTagValue_Choice_Enum)(0), // 133: otg.FlowMetricTagValue.Choice.Enum + (Bgpv4MetricsRequest_ColumnNames_Enum)(0), // 134: otg.Bgpv4MetricsRequest.ColumnNames.Enum + (Bgpv4Metric_SessionState_Enum)(0), // 135: otg.Bgpv4Metric.SessionState.Enum + (Bgpv4Metric_FsmState_Enum)(0), // 136: otg.Bgpv4Metric.FsmState.Enum + (Bgpv6MetricsRequest_ColumnNames_Enum)(0), // 137: otg.Bgpv6MetricsRequest.ColumnNames.Enum + (Bgpv6Metric_SessionState_Enum)(0), // 138: otg.Bgpv6Metric.SessionState.Enum + (Bgpv6Metric_FsmState_Enum)(0), // 139: otg.Bgpv6Metric.FsmState.Enum + (IsisMetricsRequest_ColumnNames_Enum)(0), // 140: otg.IsisMetricsRequest.ColumnNames.Enum + (LagMetricsRequest_ColumnNames_Enum)(0), // 141: otg.LagMetricsRequest.ColumnNames.Enum + (LagMetric_OperStatus_Enum)(0), // 142: otg.LagMetric.OperStatus.Enum + (LacpMetricsRequest_ColumnNames_Enum)(0), // 143: otg.LacpMetricsRequest.ColumnNames.Enum + (LacpMetric_Activity_Enum)(0), // 144: otg.LacpMetric.Activity.Enum + (LacpMetric_Timeout_Enum)(0), // 145: otg.LacpMetric.Timeout.Enum + (LacpMetric_Synchronization_Enum)(0), // 146: otg.LacpMetric.Synchronization.Enum + (LldpMetricsRequest_ColumnNames_Enum)(0), // 147: otg.LldpMetricsRequest.ColumnNames.Enum + (RsvpMetricsRequest_ColumnNames_Enum)(0), // 148: otg.RsvpMetricsRequest.ColumnNames.Enum + (StatesRequest_Choice_Enum)(0), // 149: otg.StatesRequest.Choice.Enum + (StatesResponse_Choice_Enum)(0), // 150: otg.StatesResponse.Choice.Enum + (BgpPrefixStateRequest_PrefixFilters_Enum)(0), // 151: otg.BgpPrefixStateRequest.PrefixFilters.Enum + (BgpPrefixIpv4UnicastFilter_Origin_Enum)(0), // 152: otg.BgpPrefixIpv4UnicastFilter.Origin.Enum + (BgpPrefixIpv6UnicastFilter_Origin_Enum)(0), // 153: otg.BgpPrefixIpv6UnicastFilter.Origin.Enum + (BgpPrefixIpv4UnicastState_Origin_Enum)(0), // 154: otg.BgpPrefixIpv4UnicastState.Origin.Enum + (BgpPrefixIpv6UnicastState_Origin_Enum)(0), // 155: otg.BgpPrefixIpv6UnicastState.Origin.Enum + (ResultBgpCommunity_Type_Enum)(0), // 156: otg.ResultBgpCommunity.Type.Enum + (ResultBgpAsPathSegment_Type_Enum)(0), // 157: otg.ResultBgpAsPathSegment.Type.Enum + (IsisLspState_PduType_Enum)(0), // 158: otg.IsisLspState.PduType.Enum + (IsisLspV4Prefix_RedistributionType_Enum)(0), // 159: otg.IsisLspV4Prefix.RedistributionType.Enum + (IsisLspV4Prefix_OriginType_Enum)(0), // 160: otg.IsisLspV4Prefix.OriginType.Enum + (IsisLspExtendedV4Prefix_RedistributionType_Enum)(0), // 161: otg.IsisLspExtendedV4Prefix.RedistributionType.Enum + (IsisLspV6Prefix_RedistributionType_Enum)(0), // 162: otg.IsisLspV6Prefix.RedistributionType.Enum + (IsisLspV6Prefix_OriginType_Enum)(0), // 163: otg.IsisLspV6Prefix.OriginType.Enum + (LldpNeighborsState_ChassisIdType_Enum)(0), // 164: otg.LldpNeighborsState.ChassisIdType.Enum + (LldpNeighborsState_PortIdType_Enum)(0), // 165: otg.LldpNeighborsState.PortIdType.Enum + (LldpCapabilityState_CapabilityName_Enum)(0), // 166: otg.LldpCapabilityState.CapabilityName.Enum + (RsvpLspState_SessionStatus_Enum)(0), // 167: otg.RsvpLspState.SessionStatus.Enum + (RsvpLspState_LastFlapReason_Enum)(0), // 168: otg.RsvpLspState.LastFlapReason.Enum + (RsvpLspIpv4Ero_Type_Enum)(0), // 169: otg.RsvpLspIpv4Ero.Type.Enum + (PatternFlowEthernetDst_Choice_Enum)(0), // 170: otg.PatternFlowEthernetDst.Choice.Enum + (PatternFlowEthernetSrc_Choice_Enum)(0), // 171: otg.PatternFlowEthernetSrc.Choice.Enum + (PatternFlowEthernetEtherType_Choice_Enum)(0), // 172: otg.PatternFlowEthernetEtherType.Choice.Enum + (PatternFlowEthernetPfcQueue_Choice_Enum)(0), // 173: otg.PatternFlowEthernetPfcQueue.Choice.Enum + (PatternFlowVlanPriority_Choice_Enum)(0), // 174: otg.PatternFlowVlanPriority.Choice.Enum + (PatternFlowVlanCfi_Choice_Enum)(0), // 175: otg.PatternFlowVlanCfi.Choice.Enum + (PatternFlowVlanId_Choice_Enum)(0), // 176: otg.PatternFlowVlanId.Choice.Enum + (PatternFlowVlanTpid_Choice_Enum)(0), // 177: otg.PatternFlowVlanTpid.Choice.Enum + (PatternFlowVxlanFlags_Choice_Enum)(0), // 178: otg.PatternFlowVxlanFlags.Choice.Enum + (PatternFlowVxlanReserved0_Choice_Enum)(0), // 179: otg.PatternFlowVxlanReserved0.Choice.Enum + (PatternFlowVxlanVni_Choice_Enum)(0), // 180: otg.PatternFlowVxlanVni.Choice.Enum + (PatternFlowVxlanReserved1_Choice_Enum)(0), // 181: otg.PatternFlowVxlanReserved1.Choice.Enum + (PatternFlowIpv4Version_Choice_Enum)(0), // 182: otg.PatternFlowIpv4Version.Choice.Enum + (PatternFlowIpv4HeaderLength_Choice_Enum)(0), // 183: otg.PatternFlowIpv4HeaderLength.Choice.Enum + (PatternFlowIpv4TotalLength_Choice_Enum)(0), // 184: otg.PatternFlowIpv4TotalLength.Choice.Enum + (PatternFlowIpv4Identification_Choice_Enum)(0), // 185: otg.PatternFlowIpv4Identification.Choice.Enum + (PatternFlowIpv4Reserved_Choice_Enum)(0), // 186: otg.PatternFlowIpv4Reserved.Choice.Enum + (PatternFlowIpv4DontFragment_Choice_Enum)(0), // 187: otg.PatternFlowIpv4DontFragment.Choice.Enum + (PatternFlowIpv4MoreFragments_Choice_Enum)(0), // 188: otg.PatternFlowIpv4MoreFragments.Choice.Enum + (PatternFlowIpv4FragmentOffset_Choice_Enum)(0), // 189: otg.PatternFlowIpv4FragmentOffset.Choice.Enum + (PatternFlowIpv4TimeToLive_Choice_Enum)(0), // 190: otg.PatternFlowIpv4TimeToLive.Choice.Enum + (PatternFlowIpv4Protocol_Choice_Enum)(0), // 191: otg.PatternFlowIpv4Protocol.Choice.Enum + (PatternFlowIpv4HeaderChecksum_Choice_Enum)(0), // 192: otg.PatternFlowIpv4HeaderChecksum.Choice.Enum + (PatternFlowIpv4HeaderChecksum_Generated_Enum)(0), // 193: otg.PatternFlowIpv4HeaderChecksum.Generated.Enum + (PatternFlowIpv4Src_Choice_Enum)(0), // 194: otg.PatternFlowIpv4Src.Choice.Enum + (PatternFlowIpv4Dst_Choice_Enum)(0), // 195: otg.PatternFlowIpv4Dst.Choice.Enum + (PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice_Enum)(0), // 196: otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag.Choice.Enum + (PatternFlowIpv4OptionsCustomTypeOptionClass_Choice_Enum)(0), // 197: otg.PatternFlowIpv4OptionsCustomTypeOptionClass.Choice.Enum + (PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice_Enum)(0), // 198: otg.PatternFlowIpv4OptionsCustomTypeOptionNumber.Choice.Enum + (PatternFlowIpv4PriorityRaw_Choice_Enum)(0), // 199: otg.PatternFlowIpv4PriorityRaw.Choice.Enum + (PatternFlowIpv4DscpPhb_Choice_Enum)(0), // 200: otg.PatternFlowIpv4DscpPhb.Choice.Enum + (PatternFlowIpv4DscpEcn_Choice_Enum)(0), // 201: otg.PatternFlowIpv4DscpEcn.Choice.Enum + (PatternFlowIpv4TosPrecedence_Choice_Enum)(0), // 202: otg.PatternFlowIpv4TosPrecedence.Choice.Enum + (PatternFlowIpv4TosDelay_Choice_Enum)(0), // 203: otg.PatternFlowIpv4TosDelay.Choice.Enum + (PatternFlowIpv4TosThroughput_Choice_Enum)(0), // 204: otg.PatternFlowIpv4TosThroughput.Choice.Enum + (PatternFlowIpv4TosReliability_Choice_Enum)(0), // 205: otg.PatternFlowIpv4TosReliability.Choice.Enum + (PatternFlowIpv4TosMonetary_Choice_Enum)(0), // 206: otg.PatternFlowIpv4TosMonetary.Choice.Enum + (PatternFlowIpv4TosUnused_Choice_Enum)(0), // 207: otg.PatternFlowIpv4TosUnused.Choice.Enum + (PatternFlowIpv6Version_Choice_Enum)(0), // 208: otg.PatternFlowIpv6Version.Choice.Enum + (PatternFlowIpv6TrafficClass_Choice_Enum)(0), // 209: otg.PatternFlowIpv6TrafficClass.Choice.Enum + (PatternFlowIpv6FlowLabel_Choice_Enum)(0), // 210: otg.PatternFlowIpv6FlowLabel.Choice.Enum + (PatternFlowIpv6PayloadLength_Choice_Enum)(0), // 211: otg.PatternFlowIpv6PayloadLength.Choice.Enum + (PatternFlowIpv6NextHeader_Choice_Enum)(0), // 212: otg.PatternFlowIpv6NextHeader.Choice.Enum + (PatternFlowIpv6HopLimit_Choice_Enum)(0), // 213: otg.PatternFlowIpv6HopLimit.Choice.Enum + (PatternFlowIpv6Src_Choice_Enum)(0), // 214: otg.PatternFlowIpv6Src.Choice.Enum + (PatternFlowIpv6Dst_Choice_Enum)(0), // 215: otg.PatternFlowIpv6Dst.Choice.Enum + (PatternFlowPfcPauseDst_Choice_Enum)(0), // 216: otg.PatternFlowPfcPauseDst.Choice.Enum + (PatternFlowPfcPauseSrc_Choice_Enum)(0), // 217: otg.PatternFlowPfcPauseSrc.Choice.Enum + (PatternFlowPfcPauseEtherType_Choice_Enum)(0), // 218: otg.PatternFlowPfcPauseEtherType.Choice.Enum + (PatternFlowPfcPauseControlOpCode_Choice_Enum)(0), // 219: otg.PatternFlowPfcPauseControlOpCode.Choice.Enum + (PatternFlowPfcPauseClassEnableVector_Choice_Enum)(0), // 220: otg.PatternFlowPfcPauseClassEnableVector.Choice.Enum + (PatternFlowPfcPausePauseClass0_Choice_Enum)(0), // 221: otg.PatternFlowPfcPausePauseClass0.Choice.Enum + (PatternFlowPfcPausePauseClass1_Choice_Enum)(0), // 222: otg.PatternFlowPfcPausePauseClass1.Choice.Enum + (PatternFlowPfcPausePauseClass2_Choice_Enum)(0), // 223: otg.PatternFlowPfcPausePauseClass2.Choice.Enum + (PatternFlowPfcPausePauseClass3_Choice_Enum)(0), // 224: otg.PatternFlowPfcPausePauseClass3.Choice.Enum + (PatternFlowPfcPausePauseClass4_Choice_Enum)(0), // 225: otg.PatternFlowPfcPausePauseClass4.Choice.Enum + (PatternFlowPfcPausePauseClass5_Choice_Enum)(0), // 226: otg.PatternFlowPfcPausePauseClass5.Choice.Enum + (PatternFlowPfcPausePauseClass6_Choice_Enum)(0), // 227: otg.PatternFlowPfcPausePauseClass6.Choice.Enum + (PatternFlowPfcPausePauseClass7_Choice_Enum)(0), // 228: otg.PatternFlowPfcPausePauseClass7.Choice.Enum + (PatternFlowEthernetPauseDst_Choice_Enum)(0), // 229: otg.PatternFlowEthernetPauseDst.Choice.Enum + (PatternFlowEthernetPauseSrc_Choice_Enum)(0), // 230: otg.PatternFlowEthernetPauseSrc.Choice.Enum + (PatternFlowEthernetPauseEtherType_Choice_Enum)(0), // 231: otg.PatternFlowEthernetPauseEtherType.Choice.Enum + (PatternFlowEthernetPauseControlOpCode_Choice_Enum)(0), // 232: otg.PatternFlowEthernetPauseControlOpCode.Choice.Enum + (PatternFlowEthernetPauseTime_Choice_Enum)(0), // 233: otg.PatternFlowEthernetPauseTime.Choice.Enum + (PatternFlowTcpSrcPort_Choice_Enum)(0), // 234: otg.PatternFlowTcpSrcPort.Choice.Enum + (PatternFlowTcpDstPort_Choice_Enum)(0), // 235: otg.PatternFlowTcpDstPort.Choice.Enum + (PatternFlowTcpSeqNum_Choice_Enum)(0), // 236: otg.PatternFlowTcpSeqNum.Choice.Enum + (PatternFlowTcpAckNum_Choice_Enum)(0), // 237: otg.PatternFlowTcpAckNum.Choice.Enum + (PatternFlowTcpDataOffset_Choice_Enum)(0), // 238: otg.PatternFlowTcpDataOffset.Choice.Enum + (PatternFlowTcpEcnNs_Choice_Enum)(0), // 239: otg.PatternFlowTcpEcnNs.Choice.Enum + (PatternFlowTcpEcnCwr_Choice_Enum)(0), // 240: otg.PatternFlowTcpEcnCwr.Choice.Enum + (PatternFlowTcpEcnEcho_Choice_Enum)(0), // 241: otg.PatternFlowTcpEcnEcho.Choice.Enum + (PatternFlowTcpCtlUrg_Choice_Enum)(0), // 242: otg.PatternFlowTcpCtlUrg.Choice.Enum + (PatternFlowTcpCtlAck_Choice_Enum)(0), // 243: otg.PatternFlowTcpCtlAck.Choice.Enum + (PatternFlowTcpCtlPsh_Choice_Enum)(0), // 244: otg.PatternFlowTcpCtlPsh.Choice.Enum + (PatternFlowTcpCtlRst_Choice_Enum)(0), // 245: otg.PatternFlowTcpCtlRst.Choice.Enum + (PatternFlowTcpCtlSyn_Choice_Enum)(0), // 246: otg.PatternFlowTcpCtlSyn.Choice.Enum + (PatternFlowTcpCtlFin_Choice_Enum)(0), // 247: otg.PatternFlowTcpCtlFin.Choice.Enum + (PatternFlowTcpWindow_Choice_Enum)(0), // 248: otg.PatternFlowTcpWindow.Choice.Enum + (PatternFlowUdpSrcPort_Choice_Enum)(0), // 249: otg.PatternFlowUdpSrcPort.Choice.Enum + (PatternFlowUdpDstPort_Choice_Enum)(0), // 250: otg.PatternFlowUdpDstPort.Choice.Enum + (PatternFlowUdpLength_Choice_Enum)(0), // 251: otg.PatternFlowUdpLength.Choice.Enum + (PatternFlowUdpChecksum_Choice_Enum)(0), // 252: otg.PatternFlowUdpChecksum.Choice.Enum + (PatternFlowUdpChecksum_Generated_Enum)(0), // 253: otg.PatternFlowUdpChecksum.Generated.Enum + (PatternFlowGreChecksumPresent_Choice_Enum)(0), // 254: otg.PatternFlowGreChecksumPresent.Choice.Enum + (PatternFlowGreReserved0_Choice_Enum)(0), // 255: otg.PatternFlowGreReserved0.Choice.Enum + (PatternFlowGreVersion_Choice_Enum)(0), // 256: otg.PatternFlowGreVersion.Choice.Enum + (PatternFlowGreProtocol_Choice_Enum)(0), // 257: otg.PatternFlowGreProtocol.Choice.Enum + (PatternFlowGreChecksum_Choice_Enum)(0), // 258: otg.PatternFlowGreChecksum.Choice.Enum + (PatternFlowGreChecksum_Generated_Enum)(0), // 259: otg.PatternFlowGreChecksum.Generated.Enum + (PatternFlowGreReserved1_Choice_Enum)(0), // 260: otg.PatternFlowGreReserved1.Choice.Enum + (PatternFlowGtpv1Version_Choice_Enum)(0), // 261: otg.PatternFlowGtpv1Version.Choice.Enum + (PatternFlowGtpv1ProtocolType_Choice_Enum)(0), // 262: otg.PatternFlowGtpv1ProtocolType.Choice.Enum + (PatternFlowGtpv1Reserved_Choice_Enum)(0), // 263: otg.PatternFlowGtpv1Reserved.Choice.Enum + (PatternFlowGtpv1EFlag_Choice_Enum)(0), // 264: otg.PatternFlowGtpv1EFlag.Choice.Enum + (PatternFlowGtpv1SFlag_Choice_Enum)(0), // 265: otg.PatternFlowGtpv1SFlag.Choice.Enum + (PatternFlowGtpv1PnFlag_Choice_Enum)(0), // 266: otg.PatternFlowGtpv1PnFlag.Choice.Enum + (PatternFlowGtpv1MessageType_Choice_Enum)(0), // 267: otg.PatternFlowGtpv1MessageType.Choice.Enum + (PatternFlowGtpv1MessageLength_Choice_Enum)(0), // 268: otg.PatternFlowGtpv1MessageLength.Choice.Enum + (PatternFlowGtpv1Teid_Choice_Enum)(0), // 269: otg.PatternFlowGtpv1Teid.Choice.Enum + (PatternFlowGtpv1SquenceNumber_Choice_Enum)(0), // 270: otg.PatternFlowGtpv1SquenceNumber.Choice.Enum + (PatternFlowGtpv1NPduNumber_Choice_Enum)(0), // 271: otg.PatternFlowGtpv1NPduNumber.Choice.Enum + (PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum)(0), // 272: otg.PatternFlowGtpv1NextExtensionHeaderType.Choice.Enum + (PatternFlowGtpExtensionExtensionLength_Choice_Enum)(0), // 273: otg.PatternFlowGtpExtensionExtensionLength.Choice.Enum + (PatternFlowGtpExtensionContents_Choice_Enum)(0), // 274: otg.PatternFlowGtpExtensionContents.Choice.Enum + (PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum)(0), // 275: otg.PatternFlowGtpExtensionNextExtensionHeader.Choice.Enum + (PatternFlowGtpv2Version_Choice_Enum)(0), // 276: otg.PatternFlowGtpv2Version.Choice.Enum + (PatternFlowGtpv2PiggybackingFlag_Choice_Enum)(0), // 277: otg.PatternFlowGtpv2PiggybackingFlag.Choice.Enum + (PatternFlowGtpv2TeidFlag_Choice_Enum)(0), // 278: otg.PatternFlowGtpv2TeidFlag.Choice.Enum + (PatternFlowGtpv2Spare1_Choice_Enum)(0), // 279: otg.PatternFlowGtpv2Spare1.Choice.Enum + (PatternFlowGtpv2MessageType_Choice_Enum)(0), // 280: otg.PatternFlowGtpv2MessageType.Choice.Enum + (PatternFlowGtpv2MessageLength_Choice_Enum)(0), // 281: otg.PatternFlowGtpv2MessageLength.Choice.Enum + (PatternFlowGtpv2Teid_Choice_Enum)(0), // 282: otg.PatternFlowGtpv2Teid.Choice.Enum + (PatternFlowGtpv2SequenceNumber_Choice_Enum)(0), // 283: otg.PatternFlowGtpv2SequenceNumber.Choice.Enum + (PatternFlowGtpv2Spare2_Choice_Enum)(0), // 284: otg.PatternFlowGtpv2Spare2.Choice.Enum + (PatternFlowArpHardwareType_Choice_Enum)(0), // 285: otg.PatternFlowArpHardwareType.Choice.Enum + (PatternFlowArpProtocolType_Choice_Enum)(0), // 286: otg.PatternFlowArpProtocolType.Choice.Enum + (PatternFlowArpHardwareLength_Choice_Enum)(0), // 287: otg.PatternFlowArpHardwareLength.Choice.Enum + (PatternFlowArpProtocolLength_Choice_Enum)(0), // 288: otg.PatternFlowArpProtocolLength.Choice.Enum + (PatternFlowArpOperation_Choice_Enum)(0), // 289: otg.PatternFlowArpOperation.Choice.Enum + (PatternFlowArpSenderHardwareAddr_Choice_Enum)(0), // 290: otg.PatternFlowArpSenderHardwareAddr.Choice.Enum + (PatternFlowArpSenderProtocolAddr_Choice_Enum)(0), // 291: otg.PatternFlowArpSenderProtocolAddr.Choice.Enum + (PatternFlowArpTargetHardwareAddr_Choice_Enum)(0), // 292: otg.PatternFlowArpTargetHardwareAddr.Choice.Enum + (PatternFlowArpTargetProtocolAddr_Choice_Enum)(0), // 293: otg.PatternFlowArpTargetProtocolAddr.Choice.Enum + (PatternFlowIcmpEchoType_Choice_Enum)(0), // 294: otg.PatternFlowIcmpEchoType.Choice.Enum + (PatternFlowIcmpEchoCode_Choice_Enum)(0), // 295: otg.PatternFlowIcmpEchoCode.Choice.Enum + (PatternFlowIcmpEchoChecksum_Choice_Enum)(0), // 296: otg.PatternFlowIcmpEchoChecksum.Choice.Enum + (PatternFlowIcmpEchoChecksum_Generated_Enum)(0), // 297: otg.PatternFlowIcmpEchoChecksum.Generated.Enum + (PatternFlowIcmpEchoIdentifier_Choice_Enum)(0), // 298: otg.PatternFlowIcmpEchoIdentifier.Choice.Enum + (PatternFlowIcmpEchoSequenceNumber_Choice_Enum)(0), // 299: otg.PatternFlowIcmpEchoSequenceNumber.Choice.Enum + (PatternFlowIcmpCommonChecksum_Choice_Enum)(0), // 300: otg.PatternFlowIcmpCommonChecksum.Choice.Enum + (PatternFlowIcmpCommonChecksum_Generated_Enum)(0), // 301: otg.PatternFlowIcmpCommonChecksum.Generated.Enum + (PatternFlowIcmpNextFieldsIdentifier_Choice_Enum)(0), // 302: otg.PatternFlowIcmpNextFieldsIdentifier.Choice.Enum + (PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum)(0), // 303: otg.PatternFlowIcmpNextFieldsSequenceNumber.Choice.Enum + (PatternFlowIcmpv6EchoType_Choice_Enum)(0), // 304: otg.PatternFlowIcmpv6EchoType.Choice.Enum + (PatternFlowIcmpv6EchoCode_Choice_Enum)(0), // 305: otg.PatternFlowIcmpv6EchoCode.Choice.Enum + (PatternFlowIcmpv6EchoIdentifier_Choice_Enum)(0), // 306: otg.PatternFlowIcmpv6EchoIdentifier.Choice.Enum + (PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum)(0), // 307: otg.PatternFlowIcmpv6EchoSequenceNumber.Choice.Enum + (PatternFlowIcmpv6EchoChecksum_Choice_Enum)(0), // 308: otg.PatternFlowIcmpv6EchoChecksum.Choice.Enum + (PatternFlowIcmpv6EchoChecksum_Generated_Enum)(0), // 309: otg.PatternFlowIcmpv6EchoChecksum.Generated.Enum + (PatternFlowIcmpv6CommonChecksum_Choice_Enum)(0), // 310: otg.PatternFlowIcmpv6CommonChecksum.Choice.Enum + (PatternFlowIcmpv6CommonChecksum_Generated_Enum)(0), // 311: otg.PatternFlowIcmpv6CommonChecksum.Generated.Enum + (PatternFlowPppAddress_Choice_Enum)(0), // 312: otg.PatternFlowPppAddress.Choice.Enum + (PatternFlowPppControl_Choice_Enum)(0), // 313: otg.PatternFlowPppControl.Choice.Enum + (PatternFlowPppProtocolType_Choice_Enum)(0), // 314: otg.PatternFlowPppProtocolType.Choice.Enum + (PatternFlowIgmpv1Version_Choice_Enum)(0), // 315: otg.PatternFlowIgmpv1Version.Choice.Enum + (PatternFlowIgmpv1Type_Choice_Enum)(0), // 316: otg.PatternFlowIgmpv1Type.Choice.Enum + (PatternFlowIgmpv1Unused_Choice_Enum)(0), // 317: otg.PatternFlowIgmpv1Unused.Choice.Enum + (PatternFlowIgmpv1Checksum_Choice_Enum)(0), // 318: otg.PatternFlowIgmpv1Checksum.Choice.Enum + (PatternFlowIgmpv1Checksum_Generated_Enum)(0), // 319: otg.PatternFlowIgmpv1Checksum.Generated.Enum + (PatternFlowIgmpv1GroupAddress_Choice_Enum)(0), // 320: otg.PatternFlowIgmpv1GroupAddress.Choice.Enum + (PatternFlowMplsLabel_Choice_Enum)(0), // 321: otg.PatternFlowMplsLabel.Choice.Enum + (PatternFlowMplsTrafficClass_Choice_Enum)(0), // 322: otg.PatternFlowMplsTrafficClass.Choice.Enum + (PatternFlowMplsBottomOfStack_Choice_Enum)(0), // 323: otg.PatternFlowMplsBottomOfStack.Choice.Enum + (PatternFlowMplsTimeToLive_Choice_Enum)(0), // 324: otg.PatternFlowMplsTimeToLive.Choice.Enum + (PatternFlowSnmpv2CVersion_Choice_Enum)(0), // 325: otg.PatternFlowSnmpv2cVersion.Choice.Enum + (PatternFlowSnmpv2CPDURequestId_Choice_Enum)(0), // 326: otg.PatternFlowSnmpv2cPDURequestId.Choice.Enum + (PatternFlowSnmpv2CPDUErrorIndex_Choice_Enum)(0), // 327: otg.PatternFlowSnmpv2cPDUErrorIndex.Choice.Enum + (PatternFlowSnmpv2CBulkPDURequestId_Choice_Enum)(0), // 328: otg.PatternFlowSnmpv2cBulkPDURequestId.Choice.Enum + (PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_Enum)(0), // 329: otg.PatternFlowSnmpv2cBulkPDUNonRepeaters.Choice.Enum + (PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_Enum)(0), // 330: otg.PatternFlowSnmpv2cBulkPDUMaxRepetitions.Choice.Enum + (PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_Enum)(0), // 331: otg.PatternFlowSnmpv2cVariableBindingValueIntegerValue.Choice.Enum + (PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_Enum)(0), // 332: otg.PatternFlowSnmpv2cVariableBindingValueIpAddressValue.Choice.Enum + (PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_Enum)(0), // 333: otg.PatternFlowSnmpv2cVariableBindingValueCounterValue.Choice.Enum + (PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_Enum)(0), // 334: otg.PatternFlowSnmpv2cVariableBindingValueTimeticksValue.Choice.Enum + (PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_Enum)(0), // 335: otg.PatternFlowSnmpv2cVariableBindingValueBigCounterValue.Choice.Enum + (PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_Enum)(0), // 336: otg.PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValue.Choice.Enum + (PatternFlowSnmpv2CCommonRequestId_Choice_Enum)(0), // 337: otg.PatternFlowSnmpv2cCommonRequestId.Choice.Enum + (*Config)(nil), // 338: otg.Config + (*ConfigOptions)(nil), // 339: otg.ConfigOptions + (*Port)(nil), // 340: otg.Port + (*PortOptions)(nil), // 341: otg.PortOptions + (*Lag)(nil), // 342: otg.Lag + (*LagPort)(nil), // 343: otg.LagPort + (*LagProtocol)(nil), // 344: otg.LagProtocol + (*LagProtocolStatic)(nil), // 345: otg.LagProtocolStatic + (*LagProtocolLacp)(nil), // 346: otg.LagProtocolLacp + (*LagPortLacp)(nil), // 347: otg.LagPortLacp + (*DeviceEthernetBase)(nil), // 348: otg.DeviceEthernetBase + (*DeviceEthernet)(nil), // 349: otg.DeviceEthernet + (*EthernetConnection)(nil), // 350: otg.EthernetConnection + (*DeviceVlan)(nil), // 351: otg.DeviceVlan + (*DeviceIpv4)(nil), // 352: otg.DeviceIpv4 + (*DeviceIpv4Loopback)(nil), // 353: otg.DeviceIpv4Loopback + (*DeviceIpv4GatewayMAC)(nil), // 354: otg.DeviceIpv4GatewayMAC + (*DeviceIpv6)(nil), // 355: otg.DeviceIpv6 + (*DeviceIpv6Loopback)(nil), // 356: otg.DeviceIpv6Loopback + (*DeviceIpv6GatewayMAC)(nil), // 357: otg.DeviceIpv6GatewayMAC + (*Layer1)(nil), // 358: otg.Layer1 + (*Layer1AutoNegotiation)(nil), // 359: otg.Layer1AutoNegotiation + (*Layer1FlowControl)(nil), // 360: otg.Layer1FlowControl + (*Layer1Ieee8023X)(nil), // 361: otg.Layer1Ieee8023x + (*Layer1Ieee8021Qbb)(nil), // 362: otg.Layer1Ieee8021qbb + (*Capture)(nil), // 363: otg.Capture + (*CaptureFilter)(nil), // 364: otg.CaptureFilter + (*CaptureCustom)(nil), // 365: otg.CaptureCustom + (*CaptureField)(nil), // 366: otg.CaptureField + (*CaptureEthernet)(nil), // 367: otg.CaptureEthernet + (*CaptureVlan)(nil), // 368: otg.CaptureVlan + (*CaptureIpv4)(nil), // 369: otg.CaptureIpv4 + (*CaptureIpv6)(nil), // 370: otg.CaptureIpv6 + (*Device)(nil), // 371: otg.Device + (*ProtocolOptions)(nil), // 372: otg.ProtocolOptions + (*DeviceIsisRouter)(nil), // 373: otg.DeviceIsisRouter + (*DeviceIsisMultiInstance)(nil), // 374: otg.DeviceIsisMultiInstance + (*IsisInterface)(nil), // 375: otg.IsisInterface + (*IsisInterfaceLevel)(nil), // 376: otg.IsisInterfaceLevel + (*IsisMT)(nil), // 377: otg.IsisMT + (*LinkStateTE)(nil), // 378: otg.LinkStateTE + (*LinkStatepriorityBandwidths)(nil), // 379: otg.LinkStatepriorityBandwidths + (*IsisInterfaceAuthentication)(nil), // 380: otg.IsisInterfaceAuthentication + (*IsisInterfaceAdvanced)(nil), // 381: otg.IsisInterfaceAdvanced + (*IsisInterfaceLinkProtection)(nil), // 382: otg.IsisInterfaceLinkProtection + (*IsisBasic)(nil), // 383: otg.IsisBasic + (*IsisAdvanced)(nil), // 384: otg.IsisAdvanced + (*IsisAuthentication)(nil), // 385: otg.IsisAuthentication + (*IsisAuthenticationBase)(nil), // 386: otg.IsisAuthenticationBase + (*IsisV4RouteRange)(nil), // 387: otg.IsisV4RouteRange + (*V4RouteAddress)(nil), // 388: otg.V4RouteAddress + (*V6RouteAddress)(nil), // 389: otg.V6RouteAddress + (*MACRouteAddress)(nil), // 390: otg.MACRouteAddress + (*IsisV6RouteRange)(nil), // 391: otg.IsisV6RouteRange + (*DeviceBgpRouter)(nil), // 392: otg.DeviceBgpRouter + (*DeviceBgpMessageHeaderError)(nil), // 393: otg.DeviceBgpMessageHeaderError + (*DeviceBgpOpenMessageError)(nil), // 394: otg.DeviceBgpOpenMessageError + (*DeviceBgpUpdateMessageError)(nil), // 395: otg.DeviceBgpUpdateMessageError + (*DeviceBgpHoldTimerExpired)(nil), // 396: otg.DeviceBgpHoldTimerExpired + (*DeviceBgpFiniteStateMachineError)(nil), // 397: otg.DeviceBgpFiniteStateMachineError + (*DeviceBgpCeaseError)(nil), // 398: otg.DeviceBgpCeaseError + (*DeviceBgpCustomError)(nil), // 399: otg.DeviceBgpCustomError + (*BgpV4Peer)(nil), // 400: otg.BgpV4Peer + (*BgpV4Interface)(nil), // 401: otg.BgpV4Interface + (*BgpV4EthernetSegment)(nil), // 402: otg.BgpV4EthernetSegment + (*BgpEthernetSegmentDfElection)(nil), // 403: otg.BgpEthernetSegmentDfElection + (*BgpRouteAdvanced)(nil), // 404: otg.BgpRouteAdvanced + (*BgpCommunity)(nil), // 405: otg.BgpCommunity + (*BgpExtCommunity)(nil), // 406: otg.BgpExtCommunity + (*BgpAsPath)(nil), // 407: otg.BgpAsPath + (*BgpAsPathSegment)(nil), // 408: otg.BgpAsPathSegment + (*BgpV4EvpnEvis)(nil), // 409: otg.BgpV4EvpnEvis + (*BgpV4EviVxlan)(nil), // 410: otg.BgpV4EviVxlan + (*BgpV4EviVxlanBroadcastDomain)(nil), // 411: otg.BgpV4EviVxlanBroadcastDomain + (*BgpCMacIpRange)(nil), // 412: otg.BgpCMacIpRange + (*BgpRouteDistinguisher)(nil), // 413: otg.BgpRouteDistinguisher + (*BgpRouteTarget)(nil), // 414: otg.BgpRouteTarget + (*BgpAdvanced)(nil), // 415: otg.BgpAdvanced + (*BgpCapability)(nil), // 416: otg.BgpCapability + (*BgpLearnedInformationFilter)(nil), // 417: otg.BgpLearnedInformationFilter + (*BgpV4RouteRange)(nil), // 418: otg.BgpV4RouteRange + (*BgpAddPath)(nil), // 419: otg.BgpAddPath + (*BgpExtendedCommunity)(nil), // 420: otg.BgpExtendedCommunity + (*BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget)(nil), // 421: otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + (*BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin)(nil), // 422: otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + (*BgpExtendedCommunityTransitive2OctetAsType)(nil), // 423: otg.BgpExtendedCommunityTransitive2OctetAsType + (*BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin)(nil), // 424: otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + (*BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget)(nil), // 425: otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + (*BgpExtendedCommunityTransitiveIpv4AddressType)(nil), // 426: otg.BgpExtendedCommunityTransitiveIpv4AddressType + (*BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget)(nil), // 427: otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + (*BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin)(nil), // 428: otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + (*BgpExtendedCommunityTransitive4OctetAsType)(nil), // 429: otg.BgpExtendedCommunityTransitive4OctetAsType + (*BgpExtendedCommunityTransitiveOpaqueTypeColor)(nil), // 430: otg.BgpExtendedCommunityTransitiveOpaqueTypeColor + (*BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation)(nil), // 431: otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + (*BgpExtendedCommunityTransitiveOpaqueType)(nil), // 432: otg.BgpExtendedCommunityTransitiveOpaqueType + (*BgpExtendedCommunityTransitiveEvpnTypeRouterMac)(nil), // 433: otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac + (*BgpExtendedCommunityTransitiveEvpnType)(nil), // 434: otg.BgpExtendedCommunityTransitiveEvpnType + (*BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth)(nil), // 435: otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + (*BgpExtendedCommunityNonTransitive2OctetAsType)(nil), // 436: otg.BgpExtendedCommunityNonTransitive2OctetAsType + (*BgpExtendedCommunityCustomType)(nil), // 437: otg.BgpExtendedCommunityCustomType + (*BgpV6RouteRange)(nil), // 438: otg.BgpV6RouteRange + (*BgpSrteV4Policy)(nil), // 439: otg.BgpSrteV4Policy + (*BgpSrteV4TunnelTlv)(nil), // 440: otg.BgpSrteV4TunnelTlv + (*BgpSrteRemoteEndpointSubTlv)(nil), // 441: otg.BgpSrteRemoteEndpointSubTlv + (*BgpSrteColorSubTlv)(nil), // 442: otg.BgpSrteColorSubTlv + (*BgpSrteBindingSubTlv)(nil), // 443: otg.BgpSrteBindingSubTlv + (*BgpSrtePreferenceSubTlv)(nil), // 444: otg.BgpSrtePreferenceSubTlv + (*BgpSrtePolicyPrioritySubTlv)(nil), // 445: otg.BgpSrtePolicyPrioritySubTlv + (*BgpSrtePolicyNameSubTlv)(nil), // 446: otg.BgpSrtePolicyNameSubTlv + (*BgpSrteExplicitNullLabelPolicySubTlv)(nil), // 447: otg.BgpSrteExplicitNullLabelPolicySubTlv + (*BgpSrteSegmentList)(nil), // 448: otg.BgpSrteSegmentList + (*BgpSrteSegment)(nil), // 449: otg.BgpSrteSegment + (*BgpSrteSrMplsSid)(nil), // 450: otg.BgpSrteSrMplsSid + (*BgpSrteSRv6SIDEndpointBehaviorAndStructure)(nil), // 451: otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure + (*BgpSrteSegmentATypeSubTlv)(nil), // 452: otg.BgpSrteSegmentATypeSubTlv + (*BgpSrteSegmentBTypeSubTlv)(nil), // 453: otg.BgpSrteSegmentBTypeSubTlv + (*BgpSrteSegmentCTypeSubTlv)(nil), // 454: otg.BgpSrteSegmentCTypeSubTlv + (*BgpSrteSegmentDTypeSubTlv)(nil), // 455: otg.BgpSrteSegmentDTypeSubTlv + (*BgpSrteSegmentETypeSubTlv)(nil), // 456: otg.BgpSrteSegmentETypeSubTlv + (*BgpSrteSegmentFTypeSubTlv)(nil), // 457: otg.BgpSrteSegmentFTypeSubTlv + (*BgpSrteSegmentGTypeSubTlv)(nil), // 458: otg.BgpSrteSegmentGTypeSubTlv + (*BgpSrteSegmentHTypeSubTlv)(nil), // 459: otg.BgpSrteSegmentHTypeSubTlv + (*BgpSrteSegmentITypeSubTlv)(nil), // 460: otg.BgpSrteSegmentITypeSubTlv + (*BgpSrteSegmentJTypeSubTlv)(nil), // 461: otg.BgpSrteSegmentJTypeSubTlv + (*BgpSrteSegmentKTypeSubTlv)(nil), // 462: otg.BgpSrteSegmentKTypeSubTlv + (*BgpSrteV6Policy)(nil), // 463: otg.BgpSrteV6Policy + (*BgpSrteV6TunnelTlv)(nil), // 464: otg.BgpSrteV6TunnelTlv + (*BgpGracefulRestart)(nil), // 465: otg.BgpGracefulRestart + (*BgpV6Peer)(nil), // 466: otg.BgpV6Peer + (*BgpV6Interface)(nil), // 467: otg.BgpV6Interface + (*BgpV6SegmentRouting)(nil), // 468: otg.BgpV6SegmentRouting + (*BgpV6EthernetSegment)(nil), // 469: otg.BgpV6EthernetSegment + (*BgpV6EvpnEvis)(nil), // 470: otg.BgpV6EvpnEvis + (*BgpV6EviVxlan)(nil), // 471: otg.BgpV6EviVxlan + (*BgpV6EviVxlanBroadcastDomain)(nil), // 472: otg.BgpV6EviVxlanBroadcastDomain + (*DeviceVxlan)(nil), // 473: otg.DeviceVxlan + (*VxlanV4Tunnel)(nil), // 474: otg.VxlanV4Tunnel + (*VxlanV6Tunnel)(nil), // 475: otg.VxlanV6Tunnel + (*VxlanV4TunnelDestinationIPMode)(nil), // 476: otg.VxlanV4TunnelDestinationIPMode + (*VxlanV6TunnelDestinationIPMode)(nil), // 477: otg.VxlanV6TunnelDestinationIPMode + (*VxlanV4TunnelDestinationIPModeUnicast)(nil), // 478: otg.VxlanV4TunnelDestinationIPModeUnicast + (*VxlanV6TunnelDestinationIPModeUnicast)(nil), // 479: otg.VxlanV6TunnelDestinationIPModeUnicast + (*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache)(nil), // 480: otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + (*VxlanV4TunnelDestinationIPModeUnicastVtep)(nil), // 481: otg.VxlanV4TunnelDestinationIPModeUnicastVtep + (*VxlanV6TunnelDestinationIPModeUnicastVtep)(nil), // 482: otg.VxlanV6TunnelDestinationIPModeUnicastVtep + (*VxlanV4TunnelDestinationIPModeMulticast)(nil), // 483: otg.VxlanV4TunnelDestinationIPModeMulticast + (*VxlanV6TunnelDestinationIPModeMulticast)(nil), // 484: otg.VxlanV6TunnelDestinationIPModeMulticast + (*DeviceRsvp)(nil), // 485: otg.DeviceRsvp + (*RsvpIpv4Interface)(nil), // 486: otg.RsvpIpv4Interface + (*RsvpLspIpv4Interface)(nil), // 487: otg.RsvpLspIpv4Interface + (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp)(nil), // 488: otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp + (*RsvpLspIpv4InterfaceP2PIngressIpv4Lsp)(nil), // 489: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp + (*RsvpSessionAttribute)(nil), // 490: otg.RsvpSessionAttribute + (*RsvpResourceAffinities)(nil), // 491: otg.RsvpResourceAffinities + (*RsvpTspec)(nil), // 492: otg.RsvpTspec + (*RsvpFastReroute)(nil), // 493: otg.RsvpFastReroute + (*RsvpEro)(nil), // 494: otg.RsvpEro + (*RsvpEroSubobject)(nil), // 495: otg.RsvpEroSubobject + (*Flow)(nil), // 496: otg.Flow + (*FlowTxRx)(nil), // 497: otg.FlowTxRx + (*FlowPort)(nil), // 498: otg.FlowPort + (*FlowRouter)(nil), // 499: otg.FlowRouter + (*FlowHeader)(nil), // 500: otg.FlowHeader + (*FlowCustom)(nil), // 501: otg.FlowCustom + (*FlowCustomMetricTag)(nil), // 502: otg.FlowCustomMetricTag + (*FlowEthernet)(nil), // 503: otg.FlowEthernet + (*FlowVlan)(nil), // 504: otg.FlowVlan + (*FlowVxlan)(nil), // 505: otg.FlowVxlan + (*FlowIpv4)(nil), // 506: otg.FlowIpv4 + (*FlowIpv4Options)(nil), // 507: otg.FlowIpv4Options + (*FlowIpv4OptionsCustom)(nil), // 508: otg.FlowIpv4OptionsCustom + (*FlowIpv4OptionsCustomType)(nil), // 509: otg.FlowIpv4OptionsCustomType + (*FlowIpv4OptionsCustomLength)(nil), // 510: otg.FlowIpv4OptionsCustomLength + (*FlowIpv4Priority)(nil), // 511: otg.FlowIpv4Priority + (*FlowIpv4Dscp)(nil), // 512: otg.FlowIpv4Dscp + (*FlowIpv4Tos)(nil), // 513: otg.FlowIpv4Tos + (*FlowIpv6)(nil), // 514: otg.FlowIpv6 + (*FlowPfcPause)(nil), // 515: otg.FlowPfcPause + (*FlowEthernetPause)(nil), // 516: otg.FlowEthernetPause + (*FlowTcp)(nil), // 517: otg.FlowTcp + (*FlowUdp)(nil), // 518: otg.FlowUdp + (*FlowGre)(nil), // 519: otg.FlowGre + (*FlowGtpv1)(nil), // 520: otg.FlowGtpv1 + (*FlowGtpExtension)(nil), // 521: otg.FlowGtpExtension + (*FlowGtpv2)(nil), // 522: otg.FlowGtpv2 + (*FlowArp)(nil), // 523: otg.FlowArp + (*FlowIcmp)(nil), // 524: otg.FlowIcmp + (*FlowIcmpEcho)(nil), // 525: otg.FlowIcmpEcho + (*FlowIcmpv6)(nil), // 526: otg.FlowIcmpv6 + (*FlowIcmpv6Echo)(nil), // 527: otg.FlowIcmpv6Echo + (*FlowPpp)(nil), // 528: otg.FlowPpp + (*FlowIgmpv1)(nil), // 529: otg.FlowIgmpv1 + (*FlowMpls)(nil), // 530: otg.FlowMpls + (*FlowSnmpv2C)(nil), // 531: otg.FlowSnmpv2c + (*FlowSnmpv2CData)(nil), // 532: otg.FlowSnmpv2cData + (*FlowSnmpv2CPDU)(nil), // 533: otg.FlowSnmpv2cPDU + (*FlowSnmpv2CBulkPDU)(nil), // 534: otg.FlowSnmpv2cBulkPDU + (*FlowSnmpv2CVariableBinding)(nil), // 535: otg.FlowSnmpv2cVariableBinding + (*FlowSnmpv2CVariableBindingValue)(nil), // 536: otg.FlowSnmpv2cVariableBindingValue + (*FlowSize)(nil), // 537: otg.FlowSize + (*FlowSizeIncrement)(nil), // 538: otg.FlowSizeIncrement + (*FlowSizeRandom)(nil), // 539: otg.FlowSizeRandom + (*FlowSizeWeightPairs)(nil), // 540: otg.FlowSizeWeightPairs + (*FlowSizeWeightPairsCustom)(nil), // 541: otg.FlowSizeWeightPairsCustom + (*FlowRate)(nil), // 542: otg.FlowRate + (*FlowDuration)(nil), // 543: otg.FlowDuration + (*FlowContinuous)(nil), // 544: otg.FlowContinuous + (*FlowDelay)(nil), // 545: otg.FlowDelay + (*FlowFixedPackets)(nil), // 546: otg.FlowFixedPackets + (*FlowFixedSeconds)(nil), // 547: otg.FlowFixedSeconds + (*FlowBurst)(nil), // 548: otg.FlowBurst + (*FlowDurationInterBurstGap)(nil), // 549: otg.FlowDurationInterBurstGap + (*FlowMetrics)(nil), // 550: otg.FlowMetrics + (*FlowLatencyMetrics)(nil), // 551: otg.FlowLatencyMetrics + (*FlowPredefinedTags)(nil), // 552: otg.FlowPredefinedTags + (*FlowRxTxRatio)(nil), // 553: otg.FlowRxTxRatio + (*FlowRxTxRatioRxCount)(nil), // 554: otg.FlowRxTxRatioRxCount + (*Event)(nil), // 555: otg.Event + (*EventRxRateThreshold)(nil), // 556: otg.EventRxRateThreshold + (*EventLink)(nil), // 557: otg.EventLink + (*EventRouteAdvertiseWithdraw)(nil), // 558: otg.EventRouteAdvertiseWithdraw + (*EventRequest)(nil), // 559: otg.EventRequest + (*EventSubscription)(nil), // 560: otg.EventSubscription + (*Lldp)(nil), // 561: otg.Lldp + (*LldpConnection)(nil), // 562: otg.LldpConnection + (*LldpChassisId)(nil), // 563: otg.LldpChassisId + (*LldpPortId)(nil), // 564: otg.LldpPortId + (*LldpChassisMacSubType)(nil), // 565: otg.LldpChassisMacSubType + (*LldpPortInterfaceNameSubType)(nil), // 566: otg.LldpPortInterfaceNameSubType + (*LldpSystemName)(nil), // 567: otg.LldpSystemName + (*Error)(nil), // 568: otg.Error + (*Warning)(nil), // 569: otg.Warning + (*ConfigUpdate)(nil), // 570: otg.ConfigUpdate + (*FlowsUpdate)(nil), // 571: otg.FlowsUpdate + (*ControlState)(nil), // 572: otg.ControlState + (*StatePort)(nil), // 573: otg.StatePort + (*StateTraffic)(nil), // 574: otg.StateTraffic + (*StateProtocol)(nil), // 575: otg.StateProtocol + (*StatePortLink)(nil), // 576: otg.StatePortLink + (*StatePortCapture)(nil), // 577: otg.StatePortCapture + (*StateTrafficFlowTransmit)(nil), // 578: otg.StateTrafficFlowTransmit + (*StateProtocolAll)(nil), // 579: otg.StateProtocolAll + (*StateProtocolRoute)(nil), // 580: otg.StateProtocolRoute + (*StateProtocolLacp)(nil), // 581: otg.StateProtocolLacp + (*StateProtocolLacpAdmin)(nil), // 582: otg.StateProtocolLacpAdmin + (*StateProtocolLacpMemberPorts)(nil), // 583: otg.StateProtocolLacpMemberPorts + (*StateProtocolBgp)(nil), // 584: otg.StateProtocolBgp + (*StateProtocolBgpPeers)(nil), // 585: otg.StateProtocolBgpPeers + (*StateProtocolIsis)(nil), // 586: otg.StateProtocolIsis + (*StateProtocolIsisRouters)(nil), // 587: otg.StateProtocolIsisRouters + (*ControlAction)(nil), // 588: otg.ControlAction + (*ControlActionResponse)(nil), // 589: otg.ControlActionResponse + (*ActionResponse)(nil), // 590: otg.ActionResponse + (*ActionProtocol)(nil), // 591: otg.ActionProtocol + (*ActionResponseProtocol)(nil), // 592: otg.ActionResponseProtocol + (*ActionProtocolIpv4)(nil), // 593: otg.ActionProtocolIpv4 + (*ActionResponseProtocolIpv4)(nil), // 594: otg.ActionResponseProtocolIpv4 + (*ActionProtocolIpv4Ping)(nil), // 595: otg.ActionProtocolIpv4Ping + (*ActionProtocolIpv4PingRequest)(nil), // 596: otg.ActionProtocolIpv4PingRequest + (*ActionResponseProtocolIpv4Ping)(nil), // 597: otg.ActionResponseProtocolIpv4Ping + (*ActionResponseProtocolIpv4PingResponse)(nil), // 598: otg.ActionResponseProtocolIpv4PingResponse + (*ActionProtocolIpv6)(nil), // 599: otg.ActionProtocolIpv6 + (*ActionResponseProtocolIpv6)(nil), // 600: otg.ActionResponseProtocolIpv6 + (*ActionProtocolIpv6Ping)(nil), // 601: otg.ActionProtocolIpv6Ping + (*ActionProtocolIpv6PingRequest)(nil), // 602: otg.ActionProtocolIpv6PingRequest + (*ActionResponseProtocolIpv6Ping)(nil), // 603: otg.ActionResponseProtocolIpv6Ping + (*ActionResponseProtocolIpv6PingResponse)(nil), // 604: otg.ActionResponseProtocolIpv6PingResponse + (*ActionProtocolBgp)(nil), // 605: otg.ActionProtocolBgp + (*ActionProtocolBgpNotification)(nil), // 606: otg.ActionProtocolBgpNotification + (*ActionProtocolBgpInitiateGracefulRestart)(nil), // 607: otg.ActionProtocolBgpInitiateGracefulRestart + (*MetricsRequest)(nil), // 608: otg.MetricsRequest + (*MetricsResponse)(nil), // 609: otg.MetricsResponse + (*PortMetricsRequest)(nil), // 610: otg.PortMetricsRequest + (*PortMetric)(nil), // 611: otg.PortMetric + (*FlowMetricsRequest)(nil), // 612: otg.FlowMetricsRequest + (*FlowTaggedMetricsFilter)(nil), // 613: otg.FlowTaggedMetricsFilter + (*FlowMetricTagFilter)(nil), // 614: otg.FlowMetricTagFilter + (*FlowMetric)(nil), // 615: otg.FlowMetric + (*FlowTaggedMetric)(nil), // 616: otg.FlowTaggedMetric + (*FlowMetricTag)(nil), // 617: otg.FlowMetricTag + (*FlowMetricTagValue)(nil), // 618: otg.FlowMetricTagValue + (*MetricTimestamp)(nil), // 619: otg.MetricTimestamp + (*MetricLatency)(nil), // 620: otg.MetricLatency + (*Bgpv4MetricsRequest)(nil), // 621: otg.Bgpv4MetricsRequest + (*Bgpv4Metric)(nil), // 622: otg.Bgpv4Metric + (*Bgpv6MetricsRequest)(nil), // 623: otg.Bgpv6MetricsRequest + (*Bgpv6Metric)(nil), // 624: otg.Bgpv6Metric + (*IsisMetricsRequest)(nil), // 625: otg.IsisMetricsRequest + (*IsisMetric)(nil), // 626: otg.IsisMetric + (*LagMetricsRequest)(nil), // 627: otg.LagMetricsRequest + (*LagMetric)(nil), // 628: otg.LagMetric + (*LacpMetricsRequest)(nil), // 629: otg.LacpMetricsRequest + (*LacpMetric)(nil), // 630: otg.LacpMetric + (*LldpMetricsRequest)(nil), // 631: otg.LldpMetricsRequest + (*LldpMetric)(nil), // 632: otg.LldpMetric + (*RsvpMetricsRequest)(nil), // 633: otg.RsvpMetricsRequest + (*RsvpMetric)(nil), // 634: otg.RsvpMetric + (*StatesRequest)(nil), // 635: otg.StatesRequest + (*StatesResponse)(nil), // 636: otg.StatesResponse + (*Neighborsv4StatesRequest)(nil), // 637: otg.Neighborsv4StatesRequest + (*Neighborsv4State)(nil), // 638: otg.Neighborsv4State + (*Neighborsv6StatesRequest)(nil), // 639: otg.Neighborsv6StatesRequest + (*Neighborsv6State)(nil), // 640: otg.Neighborsv6State + (*BgpPrefixStateRequest)(nil), // 641: otg.BgpPrefixStateRequest + (*BgpPrefixIpv4UnicastFilter)(nil), // 642: otg.BgpPrefixIpv4UnicastFilter + (*BgpPrefixIpv6UnicastFilter)(nil), // 643: otg.BgpPrefixIpv6UnicastFilter + (*BgpPrefixesState)(nil), // 644: otg.BgpPrefixesState + (*BgpPrefixIpv4UnicastState)(nil), // 645: otg.BgpPrefixIpv4UnicastState + (*BgpPrefixIpv6UnicastState)(nil), // 646: otg.BgpPrefixIpv6UnicastState + (*ResultBgpCommunity)(nil), // 647: otg.ResultBgpCommunity + (*ResultBgpAsPath)(nil), // 648: otg.ResultBgpAsPath + (*ResultBgpAsPathSegment)(nil), // 649: otg.ResultBgpAsPathSegment + (*IsisLspsStateRequest)(nil), // 650: otg.IsisLspsStateRequest + (*IsisLspsState)(nil), // 651: otg.IsisLspsState + (*IsisLspState)(nil), // 652: otg.IsisLspState + (*IsisLspTlvs)(nil), // 653: otg.IsisLspTlvs + (*IsisLspHostname)(nil), // 654: otg.IsisLspHostname + (*IsisLspFlags)(nil), // 655: otg.IsisLspFlags + (*IsisLspIsReachabilityTlv)(nil), // 656: otg.IsisLspIsReachabilityTlv + (*IsisLspExtendedIsReachabilityTlv)(nil), // 657: otg.IsisLspExtendedIsReachabilityTlv + (*IsisLspneighbor)(nil), // 658: otg.IsisLspneighbor + (*IsisLspIpv4InternalReachabilityTlv)(nil), // 659: otg.IsisLspIpv4InternalReachabilityTlv + (*IsisLspIpv4ExternalReachabilityTlv)(nil), // 660: otg.IsisLspIpv4ExternalReachabilityTlv + (*IsisLspV4Prefix)(nil), // 661: otg.IsisLspV4Prefix + (*IsisLspExtendedIpv4ReachabilityTlv)(nil), // 662: otg.IsisLspExtendedIpv4ReachabilityTlv + (*IsisLspExtendedV4Prefix)(nil), // 663: otg.IsisLspExtendedV4Prefix + (*IsisLspIpv6ReachabilityTlv)(nil), // 664: otg.IsisLspIpv6ReachabilityTlv + (*IsisLspV6Prefix)(nil), // 665: otg.IsisLspV6Prefix + (*IsisLspPrefixAttributes)(nil), // 666: otg.IsisLspPrefixAttributes + (*LldpNeighborsStateRequest)(nil), // 667: otg.LldpNeighborsStateRequest + (*LldpNeighborsState)(nil), // 668: otg.LldpNeighborsState + (*LldpCustomTLVState)(nil), // 669: otg.LldpCustomTLVState + (*LldpCapabilityState)(nil), // 670: otg.LldpCapabilityState + (*RsvpLspsStateRequest)(nil), // 671: otg.RsvpLspsStateRequest + (*RsvpLspsState)(nil), // 672: otg.RsvpLspsState + (*RsvpIPv4LspState)(nil), // 673: otg.RsvpIPv4LspState + (*RsvpLspState)(nil), // 674: otg.RsvpLspState + (*RsvpLspIpv4Rro)(nil), // 675: otg.RsvpLspIpv4Rro + (*RsvpLspIpv4Ero)(nil), // 676: otg.RsvpLspIpv4Ero + (*CaptureRequest)(nil), // 677: otg.CaptureRequest + (*PatternFlowEthernetDstCounter)(nil), // 678: otg.PatternFlowEthernetDstCounter + (*PatternFlowEthernetDstMetricTag)(nil), // 679: otg.PatternFlowEthernetDstMetricTag + (*PatternFlowEthernetDst)(nil), // 680: otg.PatternFlowEthernetDst + (*PatternFlowEthernetSrcCounter)(nil), // 681: otg.PatternFlowEthernetSrcCounter + (*PatternFlowEthernetSrcMetricTag)(nil), // 682: otg.PatternFlowEthernetSrcMetricTag + (*PatternFlowEthernetSrc)(nil), // 683: otg.PatternFlowEthernetSrc + (*PatternFlowEthernetEtherTypeCounter)(nil), // 684: otg.PatternFlowEthernetEtherTypeCounter + (*PatternFlowEthernetEtherTypeMetricTag)(nil), // 685: otg.PatternFlowEthernetEtherTypeMetricTag + (*PatternFlowEthernetEtherType)(nil), // 686: otg.PatternFlowEthernetEtherType + (*PatternFlowEthernetPfcQueueCounter)(nil), // 687: otg.PatternFlowEthernetPfcQueueCounter + (*PatternFlowEthernetPfcQueueMetricTag)(nil), // 688: otg.PatternFlowEthernetPfcQueueMetricTag + (*PatternFlowEthernetPfcQueue)(nil), // 689: otg.PatternFlowEthernetPfcQueue + (*PatternFlowVlanPriorityCounter)(nil), // 690: otg.PatternFlowVlanPriorityCounter + (*PatternFlowVlanPriorityMetricTag)(nil), // 691: otg.PatternFlowVlanPriorityMetricTag + (*PatternFlowVlanPriority)(nil), // 692: otg.PatternFlowVlanPriority + (*PatternFlowVlanCfiCounter)(nil), // 693: otg.PatternFlowVlanCfiCounter + (*PatternFlowVlanCfiMetricTag)(nil), // 694: otg.PatternFlowVlanCfiMetricTag + (*PatternFlowVlanCfi)(nil), // 695: otg.PatternFlowVlanCfi + (*PatternFlowVlanIdCounter)(nil), // 696: otg.PatternFlowVlanIdCounter + (*PatternFlowVlanIdMetricTag)(nil), // 697: otg.PatternFlowVlanIdMetricTag + (*PatternFlowVlanId)(nil), // 698: otg.PatternFlowVlanId + (*PatternFlowVlanTpidCounter)(nil), // 699: otg.PatternFlowVlanTpidCounter + (*PatternFlowVlanTpidMetricTag)(nil), // 700: otg.PatternFlowVlanTpidMetricTag + (*PatternFlowVlanTpid)(nil), // 701: otg.PatternFlowVlanTpid + (*PatternFlowVxlanFlagsCounter)(nil), // 702: otg.PatternFlowVxlanFlagsCounter + (*PatternFlowVxlanFlagsMetricTag)(nil), // 703: otg.PatternFlowVxlanFlagsMetricTag + (*PatternFlowVxlanFlags)(nil), // 704: otg.PatternFlowVxlanFlags + (*PatternFlowVxlanReserved0Counter)(nil), // 705: otg.PatternFlowVxlanReserved0Counter + (*PatternFlowVxlanReserved0MetricTag)(nil), // 706: otg.PatternFlowVxlanReserved0MetricTag + (*PatternFlowVxlanReserved0)(nil), // 707: otg.PatternFlowVxlanReserved0 + (*PatternFlowVxlanVniCounter)(nil), // 708: otg.PatternFlowVxlanVniCounter + (*PatternFlowVxlanVniMetricTag)(nil), // 709: otg.PatternFlowVxlanVniMetricTag + (*PatternFlowVxlanVni)(nil), // 710: otg.PatternFlowVxlanVni + (*PatternFlowVxlanReserved1Counter)(nil), // 711: otg.PatternFlowVxlanReserved1Counter + (*PatternFlowVxlanReserved1MetricTag)(nil), // 712: otg.PatternFlowVxlanReserved1MetricTag + (*PatternFlowVxlanReserved1)(nil), // 713: otg.PatternFlowVxlanReserved1 + (*PatternFlowIpv4VersionCounter)(nil), // 714: otg.PatternFlowIpv4VersionCounter + (*PatternFlowIpv4VersionMetricTag)(nil), // 715: otg.PatternFlowIpv4VersionMetricTag + (*PatternFlowIpv4Version)(nil), // 716: otg.PatternFlowIpv4Version + (*PatternFlowIpv4HeaderLengthCounter)(nil), // 717: otg.PatternFlowIpv4HeaderLengthCounter + (*PatternFlowIpv4HeaderLengthMetricTag)(nil), // 718: otg.PatternFlowIpv4HeaderLengthMetricTag + (*PatternFlowIpv4HeaderLength)(nil), // 719: otg.PatternFlowIpv4HeaderLength + (*PatternFlowIpv4TotalLengthCounter)(nil), // 720: otg.PatternFlowIpv4TotalLengthCounter + (*PatternFlowIpv4TotalLengthMetricTag)(nil), // 721: otg.PatternFlowIpv4TotalLengthMetricTag + (*PatternFlowIpv4TotalLength)(nil), // 722: otg.PatternFlowIpv4TotalLength + (*PatternFlowIpv4IdentificationCounter)(nil), // 723: otg.PatternFlowIpv4IdentificationCounter + (*PatternFlowIpv4IdentificationMetricTag)(nil), // 724: otg.PatternFlowIpv4IdentificationMetricTag + (*PatternFlowIpv4Identification)(nil), // 725: otg.PatternFlowIpv4Identification + (*PatternFlowIpv4ReservedCounter)(nil), // 726: otg.PatternFlowIpv4ReservedCounter + (*PatternFlowIpv4ReservedMetricTag)(nil), // 727: otg.PatternFlowIpv4ReservedMetricTag + (*PatternFlowIpv4Reserved)(nil), // 728: otg.PatternFlowIpv4Reserved + (*PatternFlowIpv4DontFragmentCounter)(nil), // 729: otg.PatternFlowIpv4DontFragmentCounter + (*PatternFlowIpv4DontFragmentMetricTag)(nil), // 730: otg.PatternFlowIpv4DontFragmentMetricTag + (*PatternFlowIpv4DontFragment)(nil), // 731: otg.PatternFlowIpv4DontFragment + (*PatternFlowIpv4MoreFragmentsCounter)(nil), // 732: otg.PatternFlowIpv4MoreFragmentsCounter + (*PatternFlowIpv4MoreFragmentsMetricTag)(nil), // 733: otg.PatternFlowIpv4MoreFragmentsMetricTag + (*PatternFlowIpv4MoreFragments)(nil), // 734: otg.PatternFlowIpv4MoreFragments + (*PatternFlowIpv4FragmentOffsetCounter)(nil), // 735: otg.PatternFlowIpv4FragmentOffsetCounter + (*PatternFlowIpv4FragmentOffsetMetricTag)(nil), // 736: otg.PatternFlowIpv4FragmentOffsetMetricTag + (*PatternFlowIpv4FragmentOffset)(nil), // 737: otg.PatternFlowIpv4FragmentOffset + (*PatternFlowIpv4TimeToLiveCounter)(nil), // 738: otg.PatternFlowIpv4TimeToLiveCounter + (*PatternFlowIpv4TimeToLiveMetricTag)(nil), // 739: otg.PatternFlowIpv4TimeToLiveMetricTag + (*PatternFlowIpv4TimeToLive)(nil), // 740: otg.PatternFlowIpv4TimeToLive + (*PatternFlowIpv4ProtocolCounter)(nil), // 741: otg.PatternFlowIpv4ProtocolCounter + (*PatternFlowIpv4ProtocolMetricTag)(nil), // 742: otg.PatternFlowIpv4ProtocolMetricTag + (*PatternFlowIpv4Protocol)(nil), // 743: otg.PatternFlowIpv4Protocol + (*PatternFlowIpv4HeaderChecksum)(nil), // 744: otg.PatternFlowIpv4HeaderChecksum + (*PatternFlowIpv4SrcCounter)(nil), // 745: otg.PatternFlowIpv4SrcCounter + (*PatternFlowIpv4SrcMetricTag)(nil), // 746: otg.PatternFlowIpv4SrcMetricTag + (*PatternFlowIpv4Src)(nil), // 747: otg.PatternFlowIpv4Src + (*PatternFlowIpv4DstCounter)(nil), // 748: otg.PatternFlowIpv4DstCounter + (*PatternFlowIpv4DstMetricTag)(nil), // 749: otg.PatternFlowIpv4DstMetricTag + (*PatternFlowIpv4Dst)(nil), // 750: otg.PatternFlowIpv4Dst + (*PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter)(nil), // 751: otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter + (*PatternFlowIpv4OptionsCustomTypeCopiedFlag)(nil), // 752: otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag + (*PatternFlowIpv4OptionsCustomTypeOptionClassCounter)(nil), // 753: otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter + (*PatternFlowIpv4OptionsCustomTypeOptionClass)(nil), // 754: otg.PatternFlowIpv4OptionsCustomTypeOptionClass + (*PatternFlowIpv4OptionsCustomTypeOptionNumberCounter)(nil), // 755: otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter + (*PatternFlowIpv4OptionsCustomTypeOptionNumber)(nil), // 756: otg.PatternFlowIpv4OptionsCustomTypeOptionNumber + (*PatternFlowIpv4PriorityRawCounter)(nil), // 757: otg.PatternFlowIpv4PriorityRawCounter + (*PatternFlowIpv4PriorityRawMetricTag)(nil), // 758: otg.PatternFlowIpv4PriorityRawMetricTag + (*PatternFlowIpv4PriorityRaw)(nil), // 759: otg.PatternFlowIpv4PriorityRaw + (*PatternFlowIpv4DscpPhbCounter)(nil), // 760: otg.PatternFlowIpv4DscpPhbCounter + (*PatternFlowIpv4DscpPhbMetricTag)(nil), // 761: otg.PatternFlowIpv4DscpPhbMetricTag + (*PatternFlowIpv4DscpPhb)(nil), // 762: otg.PatternFlowIpv4DscpPhb + (*PatternFlowIpv4DscpEcnCounter)(nil), // 763: otg.PatternFlowIpv4DscpEcnCounter + (*PatternFlowIpv4DscpEcnMetricTag)(nil), // 764: otg.PatternFlowIpv4DscpEcnMetricTag + (*PatternFlowIpv4DscpEcn)(nil), // 765: otg.PatternFlowIpv4DscpEcn + (*PatternFlowIpv4TosPrecedenceCounter)(nil), // 766: otg.PatternFlowIpv4TosPrecedenceCounter + (*PatternFlowIpv4TosPrecedenceMetricTag)(nil), // 767: otg.PatternFlowIpv4TosPrecedenceMetricTag + (*PatternFlowIpv4TosPrecedence)(nil), // 768: otg.PatternFlowIpv4TosPrecedence + (*PatternFlowIpv4TosDelayCounter)(nil), // 769: otg.PatternFlowIpv4TosDelayCounter + (*PatternFlowIpv4TosDelayMetricTag)(nil), // 770: otg.PatternFlowIpv4TosDelayMetricTag + (*PatternFlowIpv4TosDelay)(nil), // 771: otg.PatternFlowIpv4TosDelay + (*PatternFlowIpv4TosThroughputCounter)(nil), // 772: otg.PatternFlowIpv4TosThroughputCounter + (*PatternFlowIpv4TosThroughputMetricTag)(nil), // 773: otg.PatternFlowIpv4TosThroughputMetricTag + (*PatternFlowIpv4TosThroughput)(nil), // 774: otg.PatternFlowIpv4TosThroughput + (*PatternFlowIpv4TosReliabilityCounter)(nil), // 775: otg.PatternFlowIpv4TosReliabilityCounter + (*PatternFlowIpv4TosReliabilityMetricTag)(nil), // 776: otg.PatternFlowIpv4TosReliabilityMetricTag + (*PatternFlowIpv4TosReliability)(nil), // 777: otg.PatternFlowIpv4TosReliability + (*PatternFlowIpv4TosMonetaryCounter)(nil), // 778: otg.PatternFlowIpv4TosMonetaryCounter + (*PatternFlowIpv4TosMonetaryMetricTag)(nil), // 779: otg.PatternFlowIpv4TosMonetaryMetricTag + (*PatternFlowIpv4TosMonetary)(nil), // 780: otg.PatternFlowIpv4TosMonetary + (*PatternFlowIpv4TosUnusedCounter)(nil), // 781: otg.PatternFlowIpv4TosUnusedCounter + (*PatternFlowIpv4TosUnusedMetricTag)(nil), // 782: otg.PatternFlowIpv4TosUnusedMetricTag + (*PatternFlowIpv4TosUnused)(nil), // 783: otg.PatternFlowIpv4TosUnused + (*PatternFlowIpv6VersionCounter)(nil), // 784: otg.PatternFlowIpv6VersionCounter + (*PatternFlowIpv6VersionMetricTag)(nil), // 785: otg.PatternFlowIpv6VersionMetricTag + (*PatternFlowIpv6Version)(nil), // 786: otg.PatternFlowIpv6Version + (*PatternFlowIpv6TrafficClassCounter)(nil), // 787: otg.PatternFlowIpv6TrafficClassCounter + (*PatternFlowIpv6TrafficClassMetricTag)(nil), // 788: otg.PatternFlowIpv6TrafficClassMetricTag + (*PatternFlowIpv6TrafficClass)(nil), // 789: otg.PatternFlowIpv6TrafficClass + (*PatternFlowIpv6FlowLabelCounter)(nil), // 790: otg.PatternFlowIpv6FlowLabelCounter + (*PatternFlowIpv6FlowLabelMetricTag)(nil), // 791: otg.PatternFlowIpv6FlowLabelMetricTag + (*PatternFlowIpv6FlowLabel)(nil), // 792: otg.PatternFlowIpv6FlowLabel + (*PatternFlowIpv6PayloadLengthCounter)(nil), // 793: otg.PatternFlowIpv6PayloadLengthCounter + (*PatternFlowIpv6PayloadLengthMetricTag)(nil), // 794: otg.PatternFlowIpv6PayloadLengthMetricTag + (*PatternFlowIpv6PayloadLength)(nil), // 795: otg.PatternFlowIpv6PayloadLength + (*PatternFlowIpv6NextHeaderCounter)(nil), // 796: otg.PatternFlowIpv6NextHeaderCounter + (*PatternFlowIpv6NextHeaderMetricTag)(nil), // 797: otg.PatternFlowIpv6NextHeaderMetricTag + (*PatternFlowIpv6NextHeader)(nil), // 798: otg.PatternFlowIpv6NextHeader + (*PatternFlowIpv6HopLimitCounter)(nil), // 799: otg.PatternFlowIpv6HopLimitCounter + (*PatternFlowIpv6HopLimitMetricTag)(nil), // 800: otg.PatternFlowIpv6HopLimitMetricTag + (*PatternFlowIpv6HopLimit)(nil), // 801: otg.PatternFlowIpv6HopLimit + (*PatternFlowIpv6SrcCounter)(nil), // 802: otg.PatternFlowIpv6SrcCounter + (*PatternFlowIpv6SrcMetricTag)(nil), // 803: otg.PatternFlowIpv6SrcMetricTag + (*PatternFlowIpv6Src)(nil), // 804: otg.PatternFlowIpv6Src + (*PatternFlowIpv6DstCounter)(nil), // 805: otg.PatternFlowIpv6DstCounter + (*PatternFlowIpv6DstMetricTag)(nil), // 806: otg.PatternFlowIpv6DstMetricTag + (*PatternFlowIpv6Dst)(nil), // 807: otg.PatternFlowIpv6Dst + (*PatternFlowPfcPauseDstCounter)(nil), // 808: otg.PatternFlowPfcPauseDstCounter + (*PatternFlowPfcPauseDstMetricTag)(nil), // 809: otg.PatternFlowPfcPauseDstMetricTag + (*PatternFlowPfcPauseDst)(nil), // 810: otg.PatternFlowPfcPauseDst + (*PatternFlowPfcPauseSrcCounter)(nil), // 811: otg.PatternFlowPfcPauseSrcCounter + (*PatternFlowPfcPauseSrcMetricTag)(nil), // 812: otg.PatternFlowPfcPauseSrcMetricTag + (*PatternFlowPfcPauseSrc)(nil), // 813: otg.PatternFlowPfcPauseSrc + (*PatternFlowPfcPauseEtherTypeCounter)(nil), // 814: otg.PatternFlowPfcPauseEtherTypeCounter + (*PatternFlowPfcPauseEtherTypeMetricTag)(nil), // 815: otg.PatternFlowPfcPauseEtherTypeMetricTag + (*PatternFlowPfcPauseEtherType)(nil), // 816: otg.PatternFlowPfcPauseEtherType + (*PatternFlowPfcPauseControlOpCodeCounter)(nil), // 817: otg.PatternFlowPfcPauseControlOpCodeCounter + (*PatternFlowPfcPauseControlOpCodeMetricTag)(nil), // 818: otg.PatternFlowPfcPauseControlOpCodeMetricTag + (*PatternFlowPfcPauseControlOpCode)(nil), // 819: otg.PatternFlowPfcPauseControlOpCode + (*PatternFlowPfcPauseClassEnableVectorCounter)(nil), // 820: otg.PatternFlowPfcPauseClassEnableVectorCounter + (*PatternFlowPfcPauseClassEnableVectorMetricTag)(nil), // 821: otg.PatternFlowPfcPauseClassEnableVectorMetricTag + (*PatternFlowPfcPauseClassEnableVector)(nil), // 822: otg.PatternFlowPfcPauseClassEnableVector + (*PatternFlowPfcPausePauseClass0Counter)(nil), // 823: otg.PatternFlowPfcPausePauseClass0Counter + (*PatternFlowPfcPausePauseClass0MetricTag)(nil), // 824: otg.PatternFlowPfcPausePauseClass0MetricTag + (*PatternFlowPfcPausePauseClass0)(nil), // 825: otg.PatternFlowPfcPausePauseClass0 + (*PatternFlowPfcPausePauseClass1Counter)(nil), // 826: otg.PatternFlowPfcPausePauseClass1Counter + (*PatternFlowPfcPausePauseClass1MetricTag)(nil), // 827: otg.PatternFlowPfcPausePauseClass1MetricTag + (*PatternFlowPfcPausePauseClass1)(nil), // 828: otg.PatternFlowPfcPausePauseClass1 + (*PatternFlowPfcPausePauseClass2Counter)(nil), // 829: otg.PatternFlowPfcPausePauseClass2Counter + (*PatternFlowPfcPausePauseClass2MetricTag)(nil), // 830: otg.PatternFlowPfcPausePauseClass2MetricTag + (*PatternFlowPfcPausePauseClass2)(nil), // 831: otg.PatternFlowPfcPausePauseClass2 + (*PatternFlowPfcPausePauseClass3Counter)(nil), // 832: otg.PatternFlowPfcPausePauseClass3Counter + (*PatternFlowPfcPausePauseClass3MetricTag)(nil), // 833: otg.PatternFlowPfcPausePauseClass3MetricTag + (*PatternFlowPfcPausePauseClass3)(nil), // 834: otg.PatternFlowPfcPausePauseClass3 + (*PatternFlowPfcPausePauseClass4Counter)(nil), // 835: otg.PatternFlowPfcPausePauseClass4Counter + (*PatternFlowPfcPausePauseClass4MetricTag)(nil), // 836: otg.PatternFlowPfcPausePauseClass4MetricTag + (*PatternFlowPfcPausePauseClass4)(nil), // 837: otg.PatternFlowPfcPausePauseClass4 + (*PatternFlowPfcPausePauseClass5Counter)(nil), // 838: otg.PatternFlowPfcPausePauseClass5Counter + (*PatternFlowPfcPausePauseClass5MetricTag)(nil), // 839: otg.PatternFlowPfcPausePauseClass5MetricTag + (*PatternFlowPfcPausePauseClass5)(nil), // 840: otg.PatternFlowPfcPausePauseClass5 + (*PatternFlowPfcPausePauseClass6Counter)(nil), // 841: otg.PatternFlowPfcPausePauseClass6Counter + (*PatternFlowPfcPausePauseClass6MetricTag)(nil), // 842: otg.PatternFlowPfcPausePauseClass6MetricTag + (*PatternFlowPfcPausePauseClass6)(nil), // 843: otg.PatternFlowPfcPausePauseClass6 + (*PatternFlowPfcPausePauseClass7Counter)(nil), // 844: otg.PatternFlowPfcPausePauseClass7Counter + (*PatternFlowPfcPausePauseClass7MetricTag)(nil), // 845: otg.PatternFlowPfcPausePauseClass7MetricTag + (*PatternFlowPfcPausePauseClass7)(nil), // 846: otg.PatternFlowPfcPausePauseClass7 + (*PatternFlowEthernetPauseDstCounter)(nil), // 847: otg.PatternFlowEthernetPauseDstCounter + (*PatternFlowEthernetPauseDstMetricTag)(nil), // 848: otg.PatternFlowEthernetPauseDstMetricTag + (*PatternFlowEthernetPauseDst)(nil), // 849: otg.PatternFlowEthernetPauseDst + (*PatternFlowEthernetPauseSrcCounter)(nil), // 850: otg.PatternFlowEthernetPauseSrcCounter + (*PatternFlowEthernetPauseSrcMetricTag)(nil), // 851: otg.PatternFlowEthernetPauseSrcMetricTag + (*PatternFlowEthernetPauseSrc)(nil), // 852: otg.PatternFlowEthernetPauseSrc + (*PatternFlowEthernetPauseEtherTypeCounter)(nil), // 853: otg.PatternFlowEthernetPauseEtherTypeCounter + (*PatternFlowEthernetPauseEtherTypeMetricTag)(nil), // 854: otg.PatternFlowEthernetPauseEtherTypeMetricTag + (*PatternFlowEthernetPauseEtherType)(nil), // 855: otg.PatternFlowEthernetPauseEtherType + (*PatternFlowEthernetPauseControlOpCodeCounter)(nil), // 856: otg.PatternFlowEthernetPauseControlOpCodeCounter + (*PatternFlowEthernetPauseControlOpCodeMetricTag)(nil), // 857: otg.PatternFlowEthernetPauseControlOpCodeMetricTag + (*PatternFlowEthernetPauseControlOpCode)(nil), // 858: otg.PatternFlowEthernetPauseControlOpCode + (*PatternFlowEthernetPauseTimeCounter)(nil), // 859: otg.PatternFlowEthernetPauseTimeCounter + (*PatternFlowEthernetPauseTimeMetricTag)(nil), // 860: otg.PatternFlowEthernetPauseTimeMetricTag + (*PatternFlowEthernetPauseTime)(nil), // 861: otg.PatternFlowEthernetPauseTime + (*PatternFlowTcpSrcPortCounter)(nil), // 862: otg.PatternFlowTcpSrcPortCounter + (*PatternFlowTcpSrcPortMetricTag)(nil), // 863: otg.PatternFlowTcpSrcPortMetricTag + (*PatternFlowTcpSrcPort)(nil), // 864: otg.PatternFlowTcpSrcPort + (*PatternFlowTcpDstPortCounter)(nil), // 865: otg.PatternFlowTcpDstPortCounter + (*PatternFlowTcpDstPortMetricTag)(nil), // 866: otg.PatternFlowTcpDstPortMetricTag + (*PatternFlowTcpDstPort)(nil), // 867: otg.PatternFlowTcpDstPort + (*PatternFlowTcpSeqNumCounter)(nil), // 868: otg.PatternFlowTcpSeqNumCounter + (*PatternFlowTcpSeqNumMetricTag)(nil), // 869: otg.PatternFlowTcpSeqNumMetricTag + (*PatternFlowTcpSeqNum)(nil), // 870: otg.PatternFlowTcpSeqNum + (*PatternFlowTcpAckNumCounter)(nil), // 871: otg.PatternFlowTcpAckNumCounter + (*PatternFlowTcpAckNumMetricTag)(nil), // 872: otg.PatternFlowTcpAckNumMetricTag + (*PatternFlowTcpAckNum)(nil), // 873: otg.PatternFlowTcpAckNum + (*PatternFlowTcpDataOffsetCounter)(nil), // 874: otg.PatternFlowTcpDataOffsetCounter + (*PatternFlowTcpDataOffsetMetricTag)(nil), // 875: otg.PatternFlowTcpDataOffsetMetricTag + (*PatternFlowTcpDataOffset)(nil), // 876: otg.PatternFlowTcpDataOffset + (*PatternFlowTcpEcnNsCounter)(nil), // 877: otg.PatternFlowTcpEcnNsCounter + (*PatternFlowTcpEcnNsMetricTag)(nil), // 878: otg.PatternFlowTcpEcnNsMetricTag + (*PatternFlowTcpEcnNs)(nil), // 879: otg.PatternFlowTcpEcnNs + (*PatternFlowTcpEcnCwrCounter)(nil), // 880: otg.PatternFlowTcpEcnCwrCounter + (*PatternFlowTcpEcnCwrMetricTag)(nil), // 881: otg.PatternFlowTcpEcnCwrMetricTag + (*PatternFlowTcpEcnCwr)(nil), // 882: otg.PatternFlowTcpEcnCwr + (*PatternFlowTcpEcnEchoCounter)(nil), // 883: otg.PatternFlowTcpEcnEchoCounter + (*PatternFlowTcpEcnEchoMetricTag)(nil), // 884: otg.PatternFlowTcpEcnEchoMetricTag + (*PatternFlowTcpEcnEcho)(nil), // 885: otg.PatternFlowTcpEcnEcho + (*PatternFlowTcpCtlUrgCounter)(nil), // 886: otg.PatternFlowTcpCtlUrgCounter + (*PatternFlowTcpCtlUrgMetricTag)(nil), // 887: otg.PatternFlowTcpCtlUrgMetricTag + (*PatternFlowTcpCtlUrg)(nil), // 888: otg.PatternFlowTcpCtlUrg + (*PatternFlowTcpCtlAckCounter)(nil), // 889: otg.PatternFlowTcpCtlAckCounter + (*PatternFlowTcpCtlAckMetricTag)(nil), // 890: otg.PatternFlowTcpCtlAckMetricTag + (*PatternFlowTcpCtlAck)(nil), // 891: otg.PatternFlowTcpCtlAck + (*PatternFlowTcpCtlPshCounter)(nil), // 892: otg.PatternFlowTcpCtlPshCounter + (*PatternFlowTcpCtlPshMetricTag)(nil), // 893: otg.PatternFlowTcpCtlPshMetricTag + (*PatternFlowTcpCtlPsh)(nil), // 894: otg.PatternFlowTcpCtlPsh + (*PatternFlowTcpCtlRstCounter)(nil), // 895: otg.PatternFlowTcpCtlRstCounter + (*PatternFlowTcpCtlRstMetricTag)(nil), // 896: otg.PatternFlowTcpCtlRstMetricTag + (*PatternFlowTcpCtlRst)(nil), // 897: otg.PatternFlowTcpCtlRst + (*PatternFlowTcpCtlSynCounter)(nil), // 898: otg.PatternFlowTcpCtlSynCounter + (*PatternFlowTcpCtlSynMetricTag)(nil), // 899: otg.PatternFlowTcpCtlSynMetricTag + (*PatternFlowTcpCtlSyn)(nil), // 900: otg.PatternFlowTcpCtlSyn + (*PatternFlowTcpCtlFinCounter)(nil), // 901: otg.PatternFlowTcpCtlFinCounter + (*PatternFlowTcpCtlFinMetricTag)(nil), // 902: otg.PatternFlowTcpCtlFinMetricTag + (*PatternFlowTcpCtlFin)(nil), // 903: otg.PatternFlowTcpCtlFin + (*PatternFlowTcpWindowCounter)(nil), // 904: otg.PatternFlowTcpWindowCounter + (*PatternFlowTcpWindowMetricTag)(nil), // 905: otg.PatternFlowTcpWindowMetricTag + (*PatternFlowTcpWindow)(nil), // 906: otg.PatternFlowTcpWindow + (*PatternFlowUdpSrcPortCounter)(nil), // 907: otg.PatternFlowUdpSrcPortCounter + (*PatternFlowUdpSrcPortMetricTag)(nil), // 908: otg.PatternFlowUdpSrcPortMetricTag + (*PatternFlowUdpSrcPort)(nil), // 909: otg.PatternFlowUdpSrcPort + (*PatternFlowUdpDstPortCounter)(nil), // 910: otg.PatternFlowUdpDstPortCounter + (*PatternFlowUdpDstPortMetricTag)(nil), // 911: otg.PatternFlowUdpDstPortMetricTag + (*PatternFlowUdpDstPort)(nil), // 912: otg.PatternFlowUdpDstPort + (*PatternFlowUdpLengthCounter)(nil), // 913: otg.PatternFlowUdpLengthCounter + (*PatternFlowUdpLengthMetricTag)(nil), // 914: otg.PatternFlowUdpLengthMetricTag + (*PatternFlowUdpLength)(nil), // 915: otg.PatternFlowUdpLength + (*PatternFlowUdpChecksum)(nil), // 916: otg.PatternFlowUdpChecksum + (*PatternFlowGreChecksumPresentCounter)(nil), // 917: otg.PatternFlowGreChecksumPresentCounter + (*PatternFlowGreChecksumPresentMetricTag)(nil), // 918: otg.PatternFlowGreChecksumPresentMetricTag + (*PatternFlowGreChecksumPresent)(nil), // 919: otg.PatternFlowGreChecksumPresent + (*PatternFlowGreReserved0Counter)(nil), // 920: otg.PatternFlowGreReserved0Counter + (*PatternFlowGreReserved0MetricTag)(nil), // 921: otg.PatternFlowGreReserved0MetricTag + (*PatternFlowGreReserved0)(nil), // 922: otg.PatternFlowGreReserved0 + (*PatternFlowGreVersionCounter)(nil), // 923: otg.PatternFlowGreVersionCounter + (*PatternFlowGreVersionMetricTag)(nil), // 924: otg.PatternFlowGreVersionMetricTag + (*PatternFlowGreVersion)(nil), // 925: otg.PatternFlowGreVersion + (*PatternFlowGreProtocolCounter)(nil), // 926: otg.PatternFlowGreProtocolCounter + (*PatternFlowGreProtocolMetricTag)(nil), // 927: otg.PatternFlowGreProtocolMetricTag + (*PatternFlowGreProtocol)(nil), // 928: otg.PatternFlowGreProtocol + (*PatternFlowGreChecksum)(nil), // 929: otg.PatternFlowGreChecksum + (*PatternFlowGreReserved1Counter)(nil), // 930: otg.PatternFlowGreReserved1Counter + (*PatternFlowGreReserved1MetricTag)(nil), // 931: otg.PatternFlowGreReserved1MetricTag + (*PatternFlowGreReserved1)(nil), // 932: otg.PatternFlowGreReserved1 + (*PatternFlowGtpv1VersionCounter)(nil), // 933: otg.PatternFlowGtpv1VersionCounter + (*PatternFlowGtpv1VersionMetricTag)(nil), // 934: otg.PatternFlowGtpv1VersionMetricTag + (*PatternFlowGtpv1Version)(nil), // 935: otg.PatternFlowGtpv1Version + (*PatternFlowGtpv1ProtocolTypeCounter)(nil), // 936: otg.PatternFlowGtpv1ProtocolTypeCounter + (*PatternFlowGtpv1ProtocolTypeMetricTag)(nil), // 937: otg.PatternFlowGtpv1ProtocolTypeMetricTag + (*PatternFlowGtpv1ProtocolType)(nil), // 938: otg.PatternFlowGtpv1ProtocolType + (*PatternFlowGtpv1ReservedCounter)(nil), // 939: otg.PatternFlowGtpv1ReservedCounter + (*PatternFlowGtpv1ReservedMetricTag)(nil), // 940: otg.PatternFlowGtpv1ReservedMetricTag + (*PatternFlowGtpv1Reserved)(nil), // 941: otg.PatternFlowGtpv1Reserved + (*PatternFlowGtpv1EFlagCounter)(nil), // 942: otg.PatternFlowGtpv1EFlagCounter + (*PatternFlowGtpv1EFlagMetricTag)(nil), // 943: otg.PatternFlowGtpv1EFlagMetricTag + (*PatternFlowGtpv1EFlag)(nil), // 944: otg.PatternFlowGtpv1EFlag + (*PatternFlowGtpv1SFlagCounter)(nil), // 945: otg.PatternFlowGtpv1SFlagCounter + (*PatternFlowGtpv1SFlagMetricTag)(nil), // 946: otg.PatternFlowGtpv1SFlagMetricTag + (*PatternFlowGtpv1SFlag)(nil), // 947: otg.PatternFlowGtpv1SFlag + (*PatternFlowGtpv1PnFlagCounter)(nil), // 948: otg.PatternFlowGtpv1PnFlagCounter + (*PatternFlowGtpv1PnFlagMetricTag)(nil), // 949: otg.PatternFlowGtpv1PnFlagMetricTag + (*PatternFlowGtpv1PnFlag)(nil), // 950: otg.PatternFlowGtpv1PnFlag + (*PatternFlowGtpv1MessageTypeCounter)(nil), // 951: otg.PatternFlowGtpv1MessageTypeCounter + (*PatternFlowGtpv1MessageTypeMetricTag)(nil), // 952: otg.PatternFlowGtpv1MessageTypeMetricTag + (*PatternFlowGtpv1MessageType)(nil), // 953: otg.PatternFlowGtpv1MessageType + (*PatternFlowGtpv1MessageLengthCounter)(nil), // 954: otg.PatternFlowGtpv1MessageLengthCounter + (*PatternFlowGtpv1MessageLengthMetricTag)(nil), // 955: otg.PatternFlowGtpv1MessageLengthMetricTag + (*PatternFlowGtpv1MessageLength)(nil), // 956: otg.PatternFlowGtpv1MessageLength + (*PatternFlowGtpv1TeidCounter)(nil), // 957: otg.PatternFlowGtpv1TeidCounter + (*PatternFlowGtpv1TeidMetricTag)(nil), // 958: otg.PatternFlowGtpv1TeidMetricTag + (*PatternFlowGtpv1Teid)(nil), // 959: otg.PatternFlowGtpv1Teid + (*PatternFlowGtpv1SquenceNumberCounter)(nil), // 960: otg.PatternFlowGtpv1SquenceNumberCounter + (*PatternFlowGtpv1SquenceNumberMetricTag)(nil), // 961: otg.PatternFlowGtpv1SquenceNumberMetricTag + (*PatternFlowGtpv1SquenceNumber)(nil), // 962: otg.PatternFlowGtpv1SquenceNumber + (*PatternFlowGtpv1NPduNumberCounter)(nil), // 963: otg.PatternFlowGtpv1NPduNumberCounter + (*PatternFlowGtpv1NPduNumberMetricTag)(nil), // 964: otg.PatternFlowGtpv1NPduNumberMetricTag + (*PatternFlowGtpv1NPduNumber)(nil), // 965: otg.PatternFlowGtpv1NPduNumber + (*PatternFlowGtpv1NextExtensionHeaderTypeCounter)(nil), // 966: otg.PatternFlowGtpv1NextExtensionHeaderTypeCounter + (*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag)(nil), // 967: otg.PatternFlowGtpv1NextExtensionHeaderTypeMetricTag + (*PatternFlowGtpv1NextExtensionHeaderType)(nil), // 968: otg.PatternFlowGtpv1NextExtensionHeaderType + (*PatternFlowGtpExtensionExtensionLengthCounter)(nil), // 969: otg.PatternFlowGtpExtensionExtensionLengthCounter + (*PatternFlowGtpExtensionExtensionLengthMetricTag)(nil), // 970: otg.PatternFlowGtpExtensionExtensionLengthMetricTag + (*PatternFlowGtpExtensionExtensionLength)(nil), // 971: otg.PatternFlowGtpExtensionExtensionLength + (*PatternFlowGtpExtensionContentsCounter)(nil), // 972: otg.PatternFlowGtpExtensionContentsCounter + (*PatternFlowGtpExtensionContentsMetricTag)(nil), // 973: otg.PatternFlowGtpExtensionContentsMetricTag + (*PatternFlowGtpExtensionContents)(nil), // 974: otg.PatternFlowGtpExtensionContents + (*PatternFlowGtpExtensionNextExtensionHeaderCounter)(nil), // 975: otg.PatternFlowGtpExtensionNextExtensionHeaderCounter + (*PatternFlowGtpExtensionNextExtensionHeaderMetricTag)(nil), // 976: otg.PatternFlowGtpExtensionNextExtensionHeaderMetricTag + (*PatternFlowGtpExtensionNextExtensionHeader)(nil), // 977: otg.PatternFlowGtpExtensionNextExtensionHeader + (*PatternFlowGtpv2VersionCounter)(nil), // 978: otg.PatternFlowGtpv2VersionCounter + (*PatternFlowGtpv2VersionMetricTag)(nil), // 979: otg.PatternFlowGtpv2VersionMetricTag + (*PatternFlowGtpv2Version)(nil), // 980: otg.PatternFlowGtpv2Version + (*PatternFlowGtpv2PiggybackingFlagCounter)(nil), // 981: otg.PatternFlowGtpv2PiggybackingFlagCounter + (*PatternFlowGtpv2PiggybackingFlagMetricTag)(nil), // 982: otg.PatternFlowGtpv2PiggybackingFlagMetricTag + (*PatternFlowGtpv2PiggybackingFlag)(nil), // 983: otg.PatternFlowGtpv2PiggybackingFlag + (*PatternFlowGtpv2TeidFlagCounter)(nil), // 984: otg.PatternFlowGtpv2TeidFlagCounter + (*PatternFlowGtpv2TeidFlagMetricTag)(nil), // 985: otg.PatternFlowGtpv2TeidFlagMetricTag + (*PatternFlowGtpv2TeidFlag)(nil), // 986: otg.PatternFlowGtpv2TeidFlag + (*PatternFlowGtpv2Spare1Counter)(nil), // 987: otg.PatternFlowGtpv2Spare1Counter + (*PatternFlowGtpv2Spare1MetricTag)(nil), // 988: otg.PatternFlowGtpv2Spare1MetricTag + (*PatternFlowGtpv2Spare1)(nil), // 989: otg.PatternFlowGtpv2Spare1 + (*PatternFlowGtpv2MessageTypeCounter)(nil), // 990: otg.PatternFlowGtpv2MessageTypeCounter + (*PatternFlowGtpv2MessageTypeMetricTag)(nil), // 991: otg.PatternFlowGtpv2MessageTypeMetricTag + (*PatternFlowGtpv2MessageType)(nil), // 992: otg.PatternFlowGtpv2MessageType + (*PatternFlowGtpv2MessageLengthCounter)(nil), // 993: otg.PatternFlowGtpv2MessageLengthCounter + (*PatternFlowGtpv2MessageLengthMetricTag)(nil), // 994: otg.PatternFlowGtpv2MessageLengthMetricTag + (*PatternFlowGtpv2MessageLength)(nil), // 995: otg.PatternFlowGtpv2MessageLength + (*PatternFlowGtpv2TeidCounter)(nil), // 996: otg.PatternFlowGtpv2TeidCounter + (*PatternFlowGtpv2TeidMetricTag)(nil), // 997: otg.PatternFlowGtpv2TeidMetricTag + (*PatternFlowGtpv2Teid)(nil), // 998: otg.PatternFlowGtpv2Teid + (*PatternFlowGtpv2SequenceNumberCounter)(nil), // 999: otg.PatternFlowGtpv2SequenceNumberCounter + (*PatternFlowGtpv2SequenceNumberMetricTag)(nil), // 1000: otg.PatternFlowGtpv2SequenceNumberMetricTag + (*PatternFlowGtpv2SequenceNumber)(nil), // 1001: otg.PatternFlowGtpv2SequenceNumber + (*PatternFlowGtpv2Spare2Counter)(nil), // 1002: otg.PatternFlowGtpv2Spare2Counter + (*PatternFlowGtpv2Spare2MetricTag)(nil), // 1003: otg.PatternFlowGtpv2Spare2MetricTag + (*PatternFlowGtpv2Spare2)(nil), // 1004: otg.PatternFlowGtpv2Spare2 + (*PatternFlowArpHardwareTypeCounter)(nil), // 1005: otg.PatternFlowArpHardwareTypeCounter + (*PatternFlowArpHardwareTypeMetricTag)(nil), // 1006: otg.PatternFlowArpHardwareTypeMetricTag + (*PatternFlowArpHardwareType)(nil), // 1007: otg.PatternFlowArpHardwareType + (*PatternFlowArpProtocolTypeCounter)(nil), // 1008: otg.PatternFlowArpProtocolTypeCounter + (*PatternFlowArpProtocolTypeMetricTag)(nil), // 1009: otg.PatternFlowArpProtocolTypeMetricTag + (*PatternFlowArpProtocolType)(nil), // 1010: otg.PatternFlowArpProtocolType + (*PatternFlowArpHardwareLengthCounter)(nil), // 1011: otg.PatternFlowArpHardwareLengthCounter + (*PatternFlowArpHardwareLengthMetricTag)(nil), // 1012: otg.PatternFlowArpHardwareLengthMetricTag + (*PatternFlowArpHardwareLength)(nil), // 1013: otg.PatternFlowArpHardwareLength + (*PatternFlowArpProtocolLengthCounter)(nil), // 1014: otg.PatternFlowArpProtocolLengthCounter + (*PatternFlowArpProtocolLengthMetricTag)(nil), // 1015: otg.PatternFlowArpProtocolLengthMetricTag + (*PatternFlowArpProtocolLength)(nil), // 1016: otg.PatternFlowArpProtocolLength + (*PatternFlowArpOperationCounter)(nil), // 1017: otg.PatternFlowArpOperationCounter + (*PatternFlowArpOperationMetricTag)(nil), // 1018: otg.PatternFlowArpOperationMetricTag + (*PatternFlowArpOperation)(nil), // 1019: otg.PatternFlowArpOperation + (*PatternFlowArpSenderHardwareAddrCounter)(nil), // 1020: otg.PatternFlowArpSenderHardwareAddrCounter + (*PatternFlowArpSenderHardwareAddrMetricTag)(nil), // 1021: otg.PatternFlowArpSenderHardwareAddrMetricTag + (*PatternFlowArpSenderHardwareAddr)(nil), // 1022: otg.PatternFlowArpSenderHardwareAddr + (*PatternFlowArpSenderProtocolAddrCounter)(nil), // 1023: otg.PatternFlowArpSenderProtocolAddrCounter + (*PatternFlowArpSenderProtocolAddrMetricTag)(nil), // 1024: otg.PatternFlowArpSenderProtocolAddrMetricTag + (*PatternFlowArpSenderProtocolAddr)(nil), // 1025: otg.PatternFlowArpSenderProtocolAddr + (*PatternFlowArpTargetHardwareAddrCounter)(nil), // 1026: otg.PatternFlowArpTargetHardwareAddrCounter + (*PatternFlowArpTargetHardwareAddrMetricTag)(nil), // 1027: otg.PatternFlowArpTargetHardwareAddrMetricTag + (*PatternFlowArpTargetHardwareAddr)(nil), // 1028: otg.PatternFlowArpTargetHardwareAddr + (*PatternFlowArpTargetProtocolAddrCounter)(nil), // 1029: otg.PatternFlowArpTargetProtocolAddrCounter + (*PatternFlowArpTargetProtocolAddrMetricTag)(nil), // 1030: otg.PatternFlowArpTargetProtocolAddrMetricTag + (*PatternFlowArpTargetProtocolAddr)(nil), // 1031: otg.PatternFlowArpTargetProtocolAddr + (*PatternFlowIcmpEchoTypeCounter)(nil), // 1032: otg.PatternFlowIcmpEchoTypeCounter + (*PatternFlowIcmpEchoTypeMetricTag)(nil), // 1033: otg.PatternFlowIcmpEchoTypeMetricTag + (*PatternFlowIcmpEchoType)(nil), // 1034: otg.PatternFlowIcmpEchoType + (*PatternFlowIcmpEchoCodeCounter)(nil), // 1035: otg.PatternFlowIcmpEchoCodeCounter + (*PatternFlowIcmpEchoCodeMetricTag)(nil), // 1036: otg.PatternFlowIcmpEchoCodeMetricTag + (*PatternFlowIcmpEchoCode)(nil), // 1037: otg.PatternFlowIcmpEchoCode + (*PatternFlowIcmpEchoChecksum)(nil), // 1038: otg.PatternFlowIcmpEchoChecksum + (*PatternFlowIcmpEchoIdentifierCounter)(nil), // 1039: otg.PatternFlowIcmpEchoIdentifierCounter + (*PatternFlowIcmpEchoIdentifierMetricTag)(nil), // 1040: otg.PatternFlowIcmpEchoIdentifierMetricTag + (*PatternFlowIcmpEchoIdentifier)(nil), // 1041: otg.PatternFlowIcmpEchoIdentifier + (*PatternFlowIcmpEchoSequenceNumberCounter)(nil), // 1042: otg.PatternFlowIcmpEchoSequenceNumberCounter + (*PatternFlowIcmpEchoSequenceNumberMetricTag)(nil), // 1043: otg.PatternFlowIcmpEchoSequenceNumberMetricTag + (*PatternFlowIcmpEchoSequenceNumber)(nil), // 1044: otg.PatternFlowIcmpEchoSequenceNumber + (*PatternFlowIcmpCommonChecksum)(nil), // 1045: otg.PatternFlowIcmpCommonChecksum + (*PatternFlowIcmpNextFieldsIdentifierCounter)(nil), // 1046: otg.PatternFlowIcmpNextFieldsIdentifierCounter + (*PatternFlowIcmpNextFieldsIdentifierMetricTag)(nil), // 1047: otg.PatternFlowIcmpNextFieldsIdentifierMetricTag + (*PatternFlowIcmpNextFieldsIdentifier)(nil), // 1048: otg.PatternFlowIcmpNextFieldsIdentifier + (*PatternFlowIcmpNextFieldsSequenceNumberCounter)(nil), // 1049: otg.PatternFlowIcmpNextFieldsSequenceNumberCounter + (*PatternFlowIcmpNextFieldsSequenceNumberMetricTag)(nil), // 1050: otg.PatternFlowIcmpNextFieldsSequenceNumberMetricTag + (*PatternFlowIcmpNextFieldsSequenceNumber)(nil), // 1051: otg.PatternFlowIcmpNextFieldsSequenceNumber + (*PatternFlowIcmpv6EchoTypeCounter)(nil), // 1052: otg.PatternFlowIcmpv6EchoTypeCounter + (*PatternFlowIcmpv6EchoTypeMetricTag)(nil), // 1053: otg.PatternFlowIcmpv6EchoTypeMetricTag + (*PatternFlowIcmpv6EchoType)(nil), // 1054: otg.PatternFlowIcmpv6EchoType + (*PatternFlowIcmpv6EchoCodeCounter)(nil), // 1055: otg.PatternFlowIcmpv6EchoCodeCounter + (*PatternFlowIcmpv6EchoCodeMetricTag)(nil), // 1056: otg.PatternFlowIcmpv6EchoCodeMetricTag + (*PatternFlowIcmpv6EchoCode)(nil), // 1057: otg.PatternFlowIcmpv6EchoCode + (*PatternFlowIcmpv6EchoIdentifierCounter)(nil), // 1058: otg.PatternFlowIcmpv6EchoIdentifierCounter + (*PatternFlowIcmpv6EchoIdentifierMetricTag)(nil), // 1059: otg.PatternFlowIcmpv6EchoIdentifierMetricTag + (*PatternFlowIcmpv6EchoIdentifier)(nil), // 1060: otg.PatternFlowIcmpv6EchoIdentifier + (*PatternFlowIcmpv6EchoSequenceNumberCounter)(nil), // 1061: otg.PatternFlowIcmpv6EchoSequenceNumberCounter + (*PatternFlowIcmpv6EchoSequenceNumberMetricTag)(nil), // 1062: otg.PatternFlowIcmpv6EchoSequenceNumberMetricTag + (*PatternFlowIcmpv6EchoSequenceNumber)(nil), // 1063: otg.PatternFlowIcmpv6EchoSequenceNumber + (*PatternFlowIcmpv6EchoChecksum)(nil), // 1064: otg.PatternFlowIcmpv6EchoChecksum + (*PatternFlowIcmpv6CommonChecksum)(nil), // 1065: otg.PatternFlowIcmpv6CommonChecksum + (*PatternFlowPppAddressCounter)(nil), // 1066: otg.PatternFlowPppAddressCounter + (*PatternFlowPppAddressMetricTag)(nil), // 1067: otg.PatternFlowPppAddressMetricTag + (*PatternFlowPppAddress)(nil), // 1068: otg.PatternFlowPppAddress + (*PatternFlowPppControlCounter)(nil), // 1069: otg.PatternFlowPppControlCounter + (*PatternFlowPppControlMetricTag)(nil), // 1070: otg.PatternFlowPppControlMetricTag + (*PatternFlowPppControl)(nil), // 1071: otg.PatternFlowPppControl + (*PatternFlowPppProtocolTypeCounter)(nil), // 1072: otg.PatternFlowPppProtocolTypeCounter + (*PatternFlowPppProtocolTypeMetricTag)(nil), // 1073: otg.PatternFlowPppProtocolTypeMetricTag + (*PatternFlowPppProtocolType)(nil), // 1074: otg.PatternFlowPppProtocolType + (*PatternFlowIgmpv1VersionCounter)(nil), // 1075: otg.PatternFlowIgmpv1VersionCounter + (*PatternFlowIgmpv1VersionMetricTag)(nil), // 1076: otg.PatternFlowIgmpv1VersionMetricTag + (*PatternFlowIgmpv1Version)(nil), // 1077: otg.PatternFlowIgmpv1Version + (*PatternFlowIgmpv1TypeCounter)(nil), // 1078: otg.PatternFlowIgmpv1TypeCounter + (*PatternFlowIgmpv1TypeMetricTag)(nil), // 1079: otg.PatternFlowIgmpv1TypeMetricTag + (*PatternFlowIgmpv1Type)(nil), // 1080: otg.PatternFlowIgmpv1Type + (*PatternFlowIgmpv1UnusedCounter)(nil), // 1081: otg.PatternFlowIgmpv1UnusedCounter + (*PatternFlowIgmpv1UnusedMetricTag)(nil), // 1082: otg.PatternFlowIgmpv1UnusedMetricTag + (*PatternFlowIgmpv1Unused)(nil), // 1083: otg.PatternFlowIgmpv1Unused + (*PatternFlowIgmpv1Checksum)(nil), // 1084: otg.PatternFlowIgmpv1Checksum + (*PatternFlowIgmpv1GroupAddressCounter)(nil), // 1085: otg.PatternFlowIgmpv1GroupAddressCounter + (*PatternFlowIgmpv1GroupAddressMetricTag)(nil), // 1086: otg.PatternFlowIgmpv1GroupAddressMetricTag + (*PatternFlowIgmpv1GroupAddress)(nil), // 1087: otg.PatternFlowIgmpv1GroupAddress + (*PatternFlowMplsLabelCounter)(nil), // 1088: otg.PatternFlowMplsLabelCounter + (*PatternFlowMplsLabelMetricTag)(nil), // 1089: otg.PatternFlowMplsLabelMetricTag + (*PatternFlowMplsLabel)(nil), // 1090: otg.PatternFlowMplsLabel + (*PatternFlowMplsTrafficClassCounter)(nil), // 1091: otg.PatternFlowMplsTrafficClassCounter + (*PatternFlowMplsTrafficClassMetricTag)(nil), // 1092: otg.PatternFlowMplsTrafficClassMetricTag + (*PatternFlowMplsTrafficClass)(nil), // 1093: otg.PatternFlowMplsTrafficClass + (*PatternFlowMplsBottomOfStackCounter)(nil), // 1094: otg.PatternFlowMplsBottomOfStackCounter + (*PatternFlowMplsBottomOfStackMetricTag)(nil), // 1095: otg.PatternFlowMplsBottomOfStackMetricTag + (*PatternFlowMplsBottomOfStack)(nil), // 1096: otg.PatternFlowMplsBottomOfStack + (*PatternFlowMplsTimeToLiveCounter)(nil), // 1097: otg.PatternFlowMplsTimeToLiveCounter + (*PatternFlowMplsTimeToLiveMetricTag)(nil), // 1098: otg.PatternFlowMplsTimeToLiveMetricTag + (*PatternFlowMplsTimeToLive)(nil), // 1099: otg.PatternFlowMplsTimeToLive + (*PatternFlowSnmpv2CVersionCounter)(nil), // 1100: otg.PatternFlowSnmpv2cVersionCounter + (*PatternFlowSnmpv2CVersion)(nil), // 1101: otg.PatternFlowSnmpv2cVersion + (*PatternFlowSnmpv2CPDURequestIdCounter)(nil), // 1102: otg.PatternFlowSnmpv2cPDURequestIdCounter + (*PatternFlowSnmpv2CPDURequestId)(nil), // 1103: otg.PatternFlowSnmpv2cPDURequestId + (*PatternFlowSnmpv2CPDUErrorIndexCounter)(nil), // 1104: otg.PatternFlowSnmpv2cPDUErrorIndexCounter + (*PatternFlowSnmpv2CPDUErrorIndex)(nil), // 1105: otg.PatternFlowSnmpv2cPDUErrorIndex + (*PatternFlowSnmpv2CBulkPDURequestIdCounter)(nil), // 1106: otg.PatternFlowSnmpv2cBulkPDURequestIdCounter + (*PatternFlowSnmpv2CBulkPDURequestId)(nil), // 1107: otg.PatternFlowSnmpv2cBulkPDURequestId + (*PatternFlowSnmpv2CBulkPDUNonRepeaters)(nil), // 1108: otg.PatternFlowSnmpv2cBulkPDUNonRepeaters + (*PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter)(nil), // 1109: otg.PatternFlowSnmpv2cBulkPDUMaxRepetitionsCounter + (*PatternFlowSnmpv2CBulkPDUMaxRepetitions)(nil), // 1110: otg.PatternFlowSnmpv2cBulkPDUMaxRepetitions + (*PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter)(nil), // 1111: otg.PatternFlowSnmpv2cVariableBindingValueIntegerValueCounter + (*PatternFlowSnmpv2CVariableBindingValueIntegerValue)(nil), // 1112: otg.PatternFlowSnmpv2cVariableBindingValueIntegerValue + (*PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter)(nil), // 1113: otg.PatternFlowSnmpv2cVariableBindingValueIpAddressValueCounter + (*PatternFlowSnmpv2CVariableBindingValueIpAddressValue)(nil), // 1114: otg.PatternFlowSnmpv2cVariableBindingValueIpAddressValue + (*PatternFlowSnmpv2CVariableBindingValueCounterValueCounter)(nil), // 1115: otg.PatternFlowSnmpv2cVariableBindingValueCounterValueCounter + (*PatternFlowSnmpv2CVariableBindingValueCounterValue)(nil), // 1116: otg.PatternFlowSnmpv2cVariableBindingValueCounterValue + (*PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter)(nil), // 1117: otg.PatternFlowSnmpv2cVariableBindingValueTimeticksValueCounter + (*PatternFlowSnmpv2CVariableBindingValueTimeticksValue)(nil), // 1118: otg.PatternFlowSnmpv2cVariableBindingValueTimeticksValue + (*PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter)(nil), // 1119: otg.PatternFlowSnmpv2cVariableBindingValueBigCounterValueCounter + (*PatternFlowSnmpv2CVariableBindingValueBigCounterValue)(nil), // 1120: otg.PatternFlowSnmpv2cVariableBindingValueBigCounterValue + (*PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter)(nil), // 1121: otg.PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValueCounter + (*PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue)(nil), // 1122: otg.PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValue + (*PatternFlowSnmpv2CCommonRequestIdCounter)(nil), // 1123: otg.PatternFlowSnmpv2cCommonRequestIdCounter + (*PatternFlowSnmpv2CCommonRequestId)(nil), // 1124: otg.PatternFlowSnmpv2cCommonRequestId + (*Version)(nil), // 1125: otg.Version + (*Success)(nil), // 1126: otg.Success + (*Failure)(nil), // 1127: otg.Failure + (*SetConfigRequest)(nil), // 1128: otg.SetConfigRequest + (*UpdateConfigRequest)(nil), // 1129: otg.UpdateConfigRequest + (*SetConfigResponse)(nil), // 1130: otg.SetConfigResponse + (*GetConfigResponse)(nil), // 1131: otg.GetConfigResponse + (*UpdateConfigResponse)(nil), // 1132: otg.UpdateConfigResponse + (*SetControlStateRequest)(nil), // 1133: otg.SetControlStateRequest + (*SetControlStateResponse)(nil), // 1134: otg.SetControlStateResponse + (*SetControlActionRequest)(nil), // 1135: otg.SetControlActionRequest + (*SetControlActionResponse)(nil), // 1136: otg.SetControlActionResponse + (*GetMetricsRequest)(nil), // 1137: otg.GetMetricsRequest + (*GetMetricsResponse)(nil), // 1138: otg.GetMetricsResponse + (*GetStatesRequest)(nil), // 1139: otg.GetStatesRequest + (*GetStatesResponse)(nil), // 1140: otg.GetStatesResponse + (*GetCaptureRequest)(nil), // 1141: otg.GetCaptureRequest + (*GetCaptureResponse)(nil), // 1142: otg.GetCaptureResponse + (*GetVersionResponse)(nil), // 1143: otg.GetVersionResponse + (*LagProtocol_Choice)(nil), // 1144: otg.LagProtocol.Choice + (*LagPortLacp_ActorActivity)(nil), // 1145: otg.LagPortLacp.ActorActivity + (*EthernetConnection_Choice)(nil), // 1146: otg.EthernetConnection.Choice + (*DeviceVlan_Tpid)(nil), // 1147: otg.DeviceVlan.Tpid + (*DeviceIpv4GatewayMAC_Choice)(nil), // 1148: otg.DeviceIpv4GatewayMAC.Choice + (*DeviceIpv6GatewayMAC_Choice)(nil), // 1149: otg.DeviceIpv6GatewayMAC.Choice + (*Layer1_Speed)(nil), // 1150: otg.Layer1.Speed + (*Layer1_Media)(nil), // 1151: otg.Layer1.Media + (*Layer1FlowControl_Choice)(nil), // 1152: otg.Layer1FlowControl.Choice + (*Capture_Format)(nil), // 1153: otg.Capture.Format + (*CaptureFilter_Choice)(nil), // 1154: otg.CaptureFilter.Choice + (*IsisInterface_NetworkType)(nil), // 1155: otg.IsisInterface.NetworkType + (*IsisInterface_LevelType)(nil), // 1156: otg.IsisInterface.LevelType + (*IsisInterfaceAuthentication_AuthType)(nil), // 1157: otg.IsisInterfaceAuthentication.AuthType + (*IsisAuthenticationBase_AuthType)(nil), // 1158: otg.IsisAuthenticationBase.AuthType + (*IsisV4RouteRange_OriginType)(nil), // 1159: otg.IsisV4RouteRange.OriginType + (*IsisV4RouteRange_RedistributionType)(nil), // 1160: otg.IsisV4RouteRange.RedistributionType + (*IsisV6RouteRange_OriginType)(nil), // 1161: otg.IsisV6RouteRange.OriginType + (*IsisV6RouteRange_RedistributionType)(nil), // 1162: otg.IsisV6RouteRange.RedistributionType + (*DeviceBgpMessageHeaderError_Subcode)(nil), // 1163: otg.DeviceBgpMessageHeaderError.Subcode + (*DeviceBgpOpenMessageError_Subcode)(nil), // 1164: otg.DeviceBgpOpenMessageError.Subcode + (*DeviceBgpUpdateMessageError_Subcode)(nil), // 1165: otg.DeviceBgpUpdateMessageError.Subcode + (*DeviceBgpCeaseError_Subcode)(nil), // 1166: otg.DeviceBgpCeaseError.Subcode + (*BgpV4Peer_AsType)(nil), // 1167: otg.BgpV4Peer.AsType + (*BgpV4Peer_AsNumberWidth)(nil), // 1168: otg.BgpV4Peer.AsNumberWidth + (*BgpV4EthernetSegment_ActiveMode)(nil), // 1169: otg.BgpV4EthernetSegment.ActiveMode + (*BgpRouteAdvanced_Origin)(nil), // 1170: otg.BgpRouteAdvanced.Origin + (*BgpCommunity_Type)(nil), // 1171: otg.BgpCommunity.Type + (*BgpExtCommunity_Type)(nil), // 1172: otg.BgpExtCommunity.Type + (*BgpExtCommunity_Subtype)(nil), // 1173: otg.BgpExtCommunity.Subtype + (*BgpAsPath_AsSetMode)(nil), // 1174: otg.BgpAsPath.AsSetMode + (*BgpAsPathSegment_Type)(nil), // 1175: otg.BgpAsPathSegment.Type + (*BgpV4EvpnEvis_Choice)(nil), // 1176: otg.BgpV4EvpnEvis.Choice + (*BgpV4EviVxlan_ReplicationType)(nil), // 1177: otg.BgpV4EviVxlan.ReplicationType + (*BgpRouteDistinguisher_RdType)(nil), // 1178: otg.BgpRouteDistinguisher.RdType + (*BgpRouteTarget_RtType)(nil), // 1179: otg.BgpRouteTarget.RtType + (*BgpV4RouteRange_NextHopMode)(nil), // 1180: otg.BgpV4RouteRange.NextHopMode + (*BgpV4RouteRange_NextHopAddressType)(nil), // 1181: otg.BgpV4RouteRange.NextHopAddressType + (*BgpExtendedCommunity_Choice)(nil), // 1182: otg.BgpExtendedCommunity.Choice + (*BgpExtendedCommunityTransitive2OctetAsType_Choice)(nil), // 1183: otg.BgpExtendedCommunityTransitive2OctetAsType.Choice + (*BgpExtendedCommunityTransitiveIpv4AddressType_Choice)(nil), // 1184: otg.BgpExtendedCommunityTransitiveIpv4AddressType.Choice + (*BgpExtendedCommunityTransitive4OctetAsType_Choice)(nil), // 1185: otg.BgpExtendedCommunityTransitive4OctetAsType.Choice + (*BgpExtendedCommunityTransitiveOpaqueType_Choice)(nil), // 1186: otg.BgpExtendedCommunityTransitiveOpaqueType.Choice + (*BgpExtendedCommunityTransitiveEvpnType_Choice)(nil), // 1187: otg.BgpExtendedCommunityTransitiveEvpnType.Choice + (*BgpExtendedCommunityNonTransitive2OctetAsType_Choice)(nil), // 1188: otg.BgpExtendedCommunityNonTransitive2OctetAsType.Choice + (*BgpV6RouteRange_NextHopMode)(nil), // 1189: otg.BgpV6RouteRange.NextHopMode + (*BgpV6RouteRange_NextHopAddressType)(nil), // 1190: otg.BgpV6RouteRange.NextHopAddressType + (*BgpSrteV4Policy_NextHopMode)(nil), // 1191: otg.BgpSrteV4Policy.NextHopMode + (*BgpSrteV4Policy_NextHopAddressType)(nil), // 1192: otg.BgpSrteV4Policy.NextHopAddressType + (*BgpSrteRemoteEndpointSubTlv_AddressFamily)(nil), // 1193: otg.BgpSrteRemoteEndpointSubTlv.AddressFamily + (*BgpSrteBindingSubTlv_BindingSidType)(nil), // 1194: otg.BgpSrteBindingSubTlv.BindingSidType + (*BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy)(nil), // 1195: otg.BgpSrteExplicitNullLabelPolicySubTlv.ExplicitNullLabelPolicy + (*BgpSrteSegment_SegmentType)(nil), // 1196: otg.BgpSrteSegment.SegmentType + (*BgpSrteV6Policy_NextHopMode)(nil), // 1197: otg.BgpSrteV6Policy.NextHopMode + (*BgpSrteV6Policy_NextHopAddressType)(nil), // 1198: otg.BgpSrteV6Policy.NextHopAddressType + (*BgpV6Peer_AsType)(nil), // 1199: otg.BgpV6Peer.AsType + (*BgpV6Peer_AsNumberWidth)(nil), // 1200: otg.BgpV6Peer.AsNumberWidth + (*BgpV6EthernetSegment_ActiveMode)(nil), // 1201: otg.BgpV6EthernetSegment.ActiveMode + (*BgpV6EvpnEvis_Choice)(nil), // 1202: otg.BgpV6EvpnEvis.Choice + (*BgpV6EviVxlan_ReplicationType)(nil), // 1203: otg.BgpV6EviVxlan.ReplicationType + (*VxlanV4TunnelDestinationIPMode_Choice)(nil), // 1204: otg.VxlanV4TunnelDestinationIPMode.Choice + (*VxlanV6TunnelDestinationIPMode_Choice)(nil), // 1205: otg.VxlanV6TunnelDestinationIPMode.Choice + (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle)(nil), // 1206: otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ReservationStyle + (*RsvpEro_PrependNeighborIp)(nil), // 1207: otg.RsvpEro.PrependNeighborIp + (*RsvpEroSubobject_Type)(nil), // 1208: otg.RsvpEroSubobject.Type + (*RsvpEroSubobject_HopType)(nil), // 1209: otg.RsvpEroSubobject.HopType + (*FlowTxRx_Choice)(nil), // 1210: otg.FlowTxRx.Choice + (*FlowRouter_Mode)(nil), // 1211: otg.FlowRouter.Mode + (*FlowHeader_Choice)(nil), // 1212: otg.FlowHeader.Choice + (*FlowIpv4Options_Choice)(nil), // 1213: otg.FlowIpv4Options.Choice + (*FlowIpv4OptionsCustomLength_Choice)(nil), // 1214: otg.FlowIpv4OptionsCustomLength.Choice + (*FlowIpv4Priority_Choice)(nil), // 1215: otg.FlowIpv4Priority.Choice + (*FlowIcmp_Choice)(nil), // 1216: otg.FlowIcmp.Choice + (*FlowIcmpv6_Choice)(nil), // 1217: otg.FlowIcmpv6.Choice + (*FlowSnmpv2CData_Choice)(nil), // 1218: otg.FlowSnmpv2cData.Choice + (*FlowSnmpv2CPDU_ErrorStatus)(nil), // 1219: otg.FlowSnmpv2cPDU.ErrorStatus + (*FlowSnmpv2CVariableBindingValue_Choice)(nil), // 1220: otg.FlowSnmpv2cVariableBindingValue.Choice + (*FlowSize_Choice)(nil), // 1221: otg.FlowSize.Choice + (*FlowSizeWeightPairs_Choice)(nil), // 1222: otg.FlowSizeWeightPairs.Choice + (*FlowSizeWeightPairs_Predefined)(nil), // 1223: otg.FlowSizeWeightPairs.Predefined + (*FlowRate_Choice)(nil), // 1224: otg.FlowRate.Choice + (*FlowDuration_Choice)(nil), // 1225: otg.FlowDuration.Choice + (*FlowDelay_Choice)(nil), // 1226: otg.FlowDelay.Choice + (*FlowDurationInterBurstGap_Choice)(nil), // 1227: otg.FlowDurationInterBurstGap.Choice + (*FlowLatencyMetrics_Mode)(nil), // 1228: otg.FlowLatencyMetrics.Mode + (*FlowRxTxRatio_Choice)(nil), // 1229: otg.FlowRxTxRatio.Choice + (*EventRequest_Type)(nil), // 1230: otg.EventRequest.Type + (*LldpConnection_Choice)(nil), // 1231: otg.LldpConnection.Choice + (*LldpChassisId_Choice)(nil), // 1232: otg.LldpChassisId.Choice + (*LldpPortId_Choice)(nil), // 1233: otg.LldpPortId.Choice + (*LldpChassisMacSubType_Choice)(nil), // 1234: otg.LldpChassisMacSubType.Choice + (*LldpPortInterfaceNameSubType_Choice)(nil), // 1235: otg.LldpPortInterfaceNameSubType.Choice + (*LldpSystemName_Choice)(nil), // 1236: otg.LldpSystemName.Choice + (*Error_Kind)(nil), // 1237: otg.Error.Kind + (*ConfigUpdate_Choice)(nil), // 1238: otg.ConfigUpdate.Choice + (*FlowsUpdate_PropertyNames)(nil), // 1239: otg.FlowsUpdate.PropertyNames + (*ControlState_Choice)(nil), // 1240: otg.ControlState.Choice + (*StatePort_Choice)(nil), // 1241: otg.StatePort.Choice + (*StateTraffic_Choice)(nil), // 1242: otg.StateTraffic.Choice + (*StateProtocol_Choice)(nil), // 1243: otg.StateProtocol.Choice + (*StatePortLink_State)(nil), // 1244: otg.StatePortLink.State + (*StatePortCapture_State)(nil), // 1245: otg.StatePortCapture.State + (*StateTrafficFlowTransmit_State)(nil), // 1246: otg.StateTrafficFlowTransmit.State + (*StateProtocolAll_State)(nil), // 1247: otg.StateProtocolAll.State + (*StateProtocolRoute_State)(nil), // 1248: otg.StateProtocolRoute.State + (*StateProtocolLacp_Choice)(nil), // 1249: otg.StateProtocolLacp.Choice + (*StateProtocolLacpAdmin_State)(nil), // 1250: otg.StateProtocolLacpAdmin.State + (*StateProtocolLacpMemberPorts_State)(nil), // 1251: otg.StateProtocolLacpMemberPorts.State + (*StateProtocolBgp_Choice)(nil), // 1252: otg.StateProtocolBgp.Choice + (*StateProtocolBgpPeers_State)(nil), // 1253: otg.StateProtocolBgpPeers.State + (*StateProtocolIsis_Choice)(nil), // 1254: otg.StateProtocolIsis.Choice + (*StateProtocolIsisRouters_State)(nil), // 1255: otg.StateProtocolIsisRouters.State + (*ControlAction_Choice)(nil), // 1256: otg.ControlAction.Choice + (*ActionResponse_Choice)(nil), // 1257: otg.ActionResponse.Choice + (*ActionProtocol_Choice)(nil), // 1258: otg.ActionProtocol.Choice + (*ActionResponseProtocol_Choice)(nil), // 1259: otg.ActionResponseProtocol.Choice + (*ActionProtocolIpv4_Choice)(nil), // 1260: otg.ActionProtocolIpv4.Choice + (*ActionResponseProtocolIpv4_Choice)(nil), // 1261: otg.ActionResponseProtocolIpv4.Choice + (*ActionResponseProtocolIpv4PingResponse_Result)(nil), // 1262: otg.ActionResponseProtocolIpv4PingResponse.Result + (*ActionProtocolIpv6_Choice)(nil), // 1263: otg.ActionProtocolIpv6.Choice + (*ActionResponseProtocolIpv6_Choice)(nil), // 1264: otg.ActionResponseProtocolIpv6.Choice + (*ActionResponseProtocolIpv6PingResponse_Result)(nil), // 1265: otg.ActionResponseProtocolIpv6PingResponse.Result + (*ActionProtocolBgp_Choice)(nil), // 1266: otg.ActionProtocolBgp.Choice + (*ActionProtocolBgpNotification_Choice)(nil), // 1267: otg.ActionProtocolBgpNotification.Choice + (*MetricsRequest_Choice)(nil), // 1268: otg.MetricsRequest.Choice + (*MetricsResponse_Choice)(nil), // 1269: otg.MetricsResponse.Choice + (*PortMetricsRequest_ColumnNames)(nil), // 1270: otg.PortMetricsRequest.ColumnNames + (*PortMetric_Link)(nil), // 1271: otg.PortMetric.Link + (*PortMetric_Capture)(nil), // 1272: otg.PortMetric.Capture + (*PortMetric_Transmit)(nil), // 1273: otg.PortMetric.Transmit + (*FlowMetricsRequest_MetricNames)(nil), // 1274: otg.FlowMetricsRequest.MetricNames + (*FlowTaggedMetricsFilter_MetricNames)(nil), // 1275: otg.FlowTaggedMetricsFilter.MetricNames + (*FlowMetric_Transmit)(nil), // 1276: otg.FlowMetric.Transmit + (*FlowMetricTagValue_Choice)(nil), // 1277: otg.FlowMetricTagValue.Choice + (*Bgpv4MetricsRequest_ColumnNames)(nil), // 1278: otg.Bgpv4MetricsRequest.ColumnNames + (*Bgpv4Metric_SessionState)(nil), // 1279: otg.Bgpv4Metric.SessionState + (*Bgpv4Metric_FsmState)(nil), // 1280: otg.Bgpv4Metric.FsmState + (*Bgpv6MetricsRequest_ColumnNames)(nil), // 1281: otg.Bgpv6MetricsRequest.ColumnNames + (*Bgpv6Metric_SessionState)(nil), // 1282: otg.Bgpv6Metric.SessionState + (*Bgpv6Metric_FsmState)(nil), // 1283: otg.Bgpv6Metric.FsmState + (*IsisMetricsRequest_ColumnNames)(nil), // 1284: otg.IsisMetricsRequest.ColumnNames + (*LagMetricsRequest_ColumnNames)(nil), // 1285: otg.LagMetricsRequest.ColumnNames + (*LagMetric_OperStatus)(nil), // 1286: otg.LagMetric.OperStatus + (*LacpMetricsRequest_ColumnNames)(nil), // 1287: otg.LacpMetricsRequest.ColumnNames + (*LacpMetric_Activity)(nil), // 1288: otg.LacpMetric.Activity + (*LacpMetric_Timeout)(nil), // 1289: otg.LacpMetric.Timeout + (*LacpMetric_Synchronization)(nil), // 1290: otg.LacpMetric.Synchronization + (*LldpMetricsRequest_ColumnNames)(nil), // 1291: otg.LldpMetricsRequest.ColumnNames + (*RsvpMetricsRequest_ColumnNames)(nil), // 1292: otg.RsvpMetricsRequest.ColumnNames + (*StatesRequest_Choice)(nil), // 1293: otg.StatesRequest.Choice + (*StatesResponse_Choice)(nil), // 1294: otg.StatesResponse.Choice + (*BgpPrefixStateRequest_PrefixFilters)(nil), // 1295: otg.BgpPrefixStateRequest.PrefixFilters + (*BgpPrefixIpv4UnicastFilter_Origin)(nil), // 1296: otg.BgpPrefixIpv4UnicastFilter.Origin + (*BgpPrefixIpv6UnicastFilter_Origin)(nil), // 1297: otg.BgpPrefixIpv6UnicastFilter.Origin + (*BgpPrefixIpv4UnicastState_Origin)(nil), // 1298: otg.BgpPrefixIpv4UnicastState.Origin + (*BgpPrefixIpv6UnicastState_Origin)(nil), // 1299: otg.BgpPrefixIpv6UnicastState.Origin + (*ResultBgpCommunity_Type)(nil), // 1300: otg.ResultBgpCommunity.Type + (*ResultBgpAsPathSegment_Type)(nil), // 1301: otg.ResultBgpAsPathSegment.Type + (*IsisLspState_PduType)(nil), // 1302: otg.IsisLspState.PduType + (*IsisLspV4Prefix_RedistributionType)(nil), // 1303: otg.IsisLspV4Prefix.RedistributionType + (*IsisLspV4Prefix_OriginType)(nil), // 1304: otg.IsisLspV4Prefix.OriginType + (*IsisLspExtendedV4Prefix_RedistributionType)(nil), // 1305: otg.IsisLspExtendedV4Prefix.RedistributionType + (*IsisLspV6Prefix_RedistributionType)(nil), // 1306: otg.IsisLspV6Prefix.RedistributionType + (*IsisLspV6Prefix_OriginType)(nil), // 1307: otg.IsisLspV6Prefix.OriginType + (*LldpNeighborsState_ChassisIdType)(nil), // 1308: otg.LldpNeighborsState.ChassisIdType + (*LldpNeighborsState_PortIdType)(nil), // 1309: otg.LldpNeighborsState.PortIdType + (*LldpCapabilityState_CapabilityName)(nil), // 1310: otg.LldpCapabilityState.CapabilityName + (*RsvpLspState_SessionStatus)(nil), // 1311: otg.RsvpLspState.SessionStatus + (*RsvpLspState_LastFlapReason)(nil), // 1312: otg.RsvpLspState.LastFlapReason + (*RsvpLspIpv4Ero_Type)(nil), // 1313: otg.RsvpLspIpv4Ero.Type + (*PatternFlowEthernetDst_Choice)(nil), // 1314: otg.PatternFlowEthernetDst.Choice + (*PatternFlowEthernetSrc_Choice)(nil), // 1315: otg.PatternFlowEthernetSrc.Choice + (*PatternFlowEthernetEtherType_Choice)(nil), // 1316: otg.PatternFlowEthernetEtherType.Choice + (*PatternFlowEthernetPfcQueue_Choice)(nil), // 1317: otg.PatternFlowEthernetPfcQueue.Choice + (*PatternFlowVlanPriority_Choice)(nil), // 1318: otg.PatternFlowVlanPriority.Choice + (*PatternFlowVlanCfi_Choice)(nil), // 1319: otg.PatternFlowVlanCfi.Choice + (*PatternFlowVlanId_Choice)(nil), // 1320: otg.PatternFlowVlanId.Choice + (*PatternFlowVlanTpid_Choice)(nil), // 1321: otg.PatternFlowVlanTpid.Choice + (*PatternFlowVxlanFlags_Choice)(nil), // 1322: otg.PatternFlowVxlanFlags.Choice + (*PatternFlowVxlanReserved0_Choice)(nil), // 1323: otg.PatternFlowVxlanReserved0.Choice + (*PatternFlowVxlanVni_Choice)(nil), // 1324: otg.PatternFlowVxlanVni.Choice + (*PatternFlowVxlanReserved1_Choice)(nil), // 1325: otg.PatternFlowVxlanReserved1.Choice + (*PatternFlowIpv4Version_Choice)(nil), // 1326: otg.PatternFlowIpv4Version.Choice + (*PatternFlowIpv4HeaderLength_Choice)(nil), // 1327: otg.PatternFlowIpv4HeaderLength.Choice + (*PatternFlowIpv4TotalLength_Choice)(nil), // 1328: otg.PatternFlowIpv4TotalLength.Choice + (*PatternFlowIpv4Identification_Choice)(nil), // 1329: otg.PatternFlowIpv4Identification.Choice + (*PatternFlowIpv4Reserved_Choice)(nil), // 1330: otg.PatternFlowIpv4Reserved.Choice + (*PatternFlowIpv4DontFragment_Choice)(nil), // 1331: otg.PatternFlowIpv4DontFragment.Choice + (*PatternFlowIpv4MoreFragments_Choice)(nil), // 1332: otg.PatternFlowIpv4MoreFragments.Choice + (*PatternFlowIpv4FragmentOffset_Choice)(nil), // 1333: otg.PatternFlowIpv4FragmentOffset.Choice + (*PatternFlowIpv4TimeToLive_Choice)(nil), // 1334: otg.PatternFlowIpv4TimeToLive.Choice + (*PatternFlowIpv4Protocol_Choice)(nil), // 1335: otg.PatternFlowIpv4Protocol.Choice + (*PatternFlowIpv4HeaderChecksum_Choice)(nil), // 1336: otg.PatternFlowIpv4HeaderChecksum.Choice + (*PatternFlowIpv4HeaderChecksum_Generated)(nil), // 1337: otg.PatternFlowIpv4HeaderChecksum.Generated + (*PatternFlowIpv4Src_Choice)(nil), // 1338: otg.PatternFlowIpv4Src.Choice + (*PatternFlowIpv4Dst_Choice)(nil), // 1339: otg.PatternFlowIpv4Dst.Choice + (*PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice)(nil), // 1340: otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag.Choice + (*PatternFlowIpv4OptionsCustomTypeOptionClass_Choice)(nil), // 1341: otg.PatternFlowIpv4OptionsCustomTypeOptionClass.Choice + (*PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice)(nil), // 1342: otg.PatternFlowIpv4OptionsCustomTypeOptionNumber.Choice + (*PatternFlowIpv4PriorityRaw_Choice)(nil), // 1343: otg.PatternFlowIpv4PriorityRaw.Choice + (*PatternFlowIpv4DscpPhb_Choice)(nil), // 1344: otg.PatternFlowIpv4DscpPhb.Choice + (*PatternFlowIpv4DscpEcn_Choice)(nil), // 1345: otg.PatternFlowIpv4DscpEcn.Choice + (*PatternFlowIpv4TosPrecedence_Choice)(nil), // 1346: otg.PatternFlowIpv4TosPrecedence.Choice + (*PatternFlowIpv4TosDelay_Choice)(nil), // 1347: otg.PatternFlowIpv4TosDelay.Choice + (*PatternFlowIpv4TosThroughput_Choice)(nil), // 1348: otg.PatternFlowIpv4TosThroughput.Choice + (*PatternFlowIpv4TosReliability_Choice)(nil), // 1349: otg.PatternFlowIpv4TosReliability.Choice + (*PatternFlowIpv4TosMonetary_Choice)(nil), // 1350: otg.PatternFlowIpv4TosMonetary.Choice + (*PatternFlowIpv4TosUnused_Choice)(nil), // 1351: otg.PatternFlowIpv4TosUnused.Choice + (*PatternFlowIpv6Version_Choice)(nil), // 1352: otg.PatternFlowIpv6Version.Choice + (*PatternFlowIpv6TrafficClass_Choice)(nil), // 1353: otg.PatternFlowIpv6TrafficClass.Choice + (*PatternFlowIpv6FlowLabel_Choice)(nil), // 1354: otg.PatternFlowIpv6FlowLabel.Choice + (*PatternFlowIpv6PayloadLength_Choice)(nil), // 1355: otg.PatternFlowIpv6PayloadLength.Choice + (*PatternFlowIpv6NextHeader_Choice)(nil), // 1356: otg.PatternFlowIpv6NextHeader.Choice + (*PatternFlowIpv6HopLimit_Choice)(nil), // 1357: otg.PatternFlowIpv6HopLimit.Choice + (*PatternFlowIpv6Src_Choice)(nil), // 1358: otg.PatternFlowIpv6Src.Choice + (*PatternFlowIpv6Dst_Choice)(nil), // 1359: otg.PatternFlowIpv6Dst.Choice + (*PatternFlowPfcPauseDst_Choice)(nil), // 1360: otg.PatternFlowPfcPauseDst.Choice + (*PatternFlowPfcPauseSrc_Choice)(nil), // 1361: otg.PatternFlowPfcPauseSrc.Choice + (*PatternFlowPfcPauseEtherType_Choice)(nil), // 1362: otg.PatternFlowPfcPauseEtherType.Choice + (*PatternFlowPfcPauseControlOpCode_Choice)(nil), // 1363: otg.PatternFlowPfcPauseControlOpCode.Choice + (*PatternFlowPfcPauseClassEnableVector_Choice)(nil), // 1364: otg.PatternFlowPfcPauseClassEnableVector.Choice + (*PatternFlowPfcPausePauseClass0_Choice)(nil), // 1365: otg.PatternFlowPfcPausePauseClass0.Choice + (*PatternFlowPfcPausePauseClass1_Choice)(nil), // 1366: otg.PatternFlowPfcPausePauseClass1.Choice + (*PatternFlowPfcPausePauseClass2_Choice)(nil), // 1367: otg.PatternFlowPfcPausePauseClass2.Choice + (*PatternFlowPfcPausePauseClass3_Choice)(nil), // 1368: otg.PatternFlowPfcPausePauseClass3.Choice + (*PatternFlowPfcPausePauseClass4_Choice)(nil), // 1369: otg.PatternFlowPfcPausePauseClass4.Choice + (*PatternFlowPfcPausePauseClass5_Choice)(nil), // 1370: otg.PatternFlowPfcPausePauseClass5.Choice + (*PatternFlowPfcPausePauseClass6_Choice)(nil), // 1371: otg.PatternFlowPfcPausePauseClass6.Choice + (*PatternFlowPfcPausePauseClass7_Choice)(nil), // 1372: otg.PatternFlowPfcPausePauseClass7.Choice + (*PatternFlowEthernetPauseDst_Choice)(nil), // 1373: otg.PatternFlowEthernetPauseDst.Choice + (*PatternFlowEthernetPauseSrc_Choice)(nil), // 1374: otg.PatternFlowEthernetPauseSrc.Choice + (*PatternFlowEthernetPauseEtherType_Choice)(nil), // 1375: otg.PatternFlowEthernetPauseEtherType.Choice + (*PatternFlowEthernetPauseControlOpCode_Choice)(nil), // 1376: otg.PatternFlowEthernetPauseControlOpCode.Choice + (*PatternFlowEthernetPauseTime_Choice)(nil), // 1377: otg.PatternFlowEthernetPauseTime.Choice + (*PatternFlowTcpSrcPort_Choice)(nil), // 1378: otg.PatternFlowTcpSrcPort.Choice + (*PatternFlowTcpDstPort_Choice)(nil), // 1379: otg.PatternFlowTcpDstPort.Choice + (*PatternFlowTcpSeqNum_Choice)(nil), // 1380: otg.PatternFlowTcpSeqNum.Choice + (*PatternFlowTcpAckNum_Choice)(nil), // 1381: otg.PatternFlowTcpAckNum.Choice + (*PatternFlowTcpDataOffset_Choice)(nil), // 1382: otg.PatternFlowTcpDataOffset.Choice + (*PatternFlowTcpEcnNs_Choice)(nil), // 1383: otg.PatternFlowTcpEcnNs.Choice + (*PatternFlowTcpEcnCwr_Choice)(nil), // 1384: otg.PatternFlowTcpEcnCwr.Choice + (*PatternFlowTcpEcnEcho_Choice)(nil), // 1385: otg.PatternFlowTcpEcnEcho.Choice + (*PatternFlowTcpCtlUrg_Choice)(nil), // 1386: otg.PatternFlowTcpCtlUrg.Choice + (*PatternFlowTcpCtlAck_Choice)(nil), // 1387: otg.PatternFlowTcpCtlAck.Choice + (*PatternFlowTcpCtlPsh_Choice)(nil), // 1388: otg.PatternFlowTcpCtlPsh.Choice + (*PatternFlowTcpCtlRst_Choice)(nil), // 1389: otg.PatternFlowTcpCtlRst.Choice + (*PatternFlowTcpCtlSyn_Choice)(nil), // 1390: otg.PatternFlowTcpCtlSyn.Choice + (*PatternFlowTcpCtlFin_Choice)(nil), // 1391: otg.PatternFlowTcpCtlFin.Choice + (*PatternFlowTcpWindow_Choice)(nil), // 1392: otg.PatternFlowTcpWindow.Choice + (*PatternFlowUdpSrcPort_Choice)(nil), // 1393: otg.PatternFlowUdpSrcPort.Choice + (*PatternFlowUdpDstPort_Choice)(nil), // 1394: otg.PatternFlowUdpDstPort.Choice + (*PatternFlowUdpLength_Choice)(nil), // 1395: otg.PatternFlowUdpLength.Choice + (*PatternFlowUdpChecksum_Choice)(nil), // 1396: otg.PatternFlowUdpChecksum.Choice + (*PatternFlowUdpChecksum_Generated)(nil), // 1397: otg.PatternFlowUdpChecksum.Generated + (*PatternFlowGreChecksumPresent_Choice)(nil), // 1398: otg.PatternFlowGreChecksumPresent.Choice + (*PatternFlowGreReserved0_Choice)(nil), // 1399: otg.PatternFlowGreReserved0.Choice + (*PatternFlowGreVersion_Choice)(nil), // 1400: otg.PatternFlowGreVersion.Choice + (*PatternFlowGreProtocol_Choice)(nil), // 1401: otg.PatternFlowGreProtocol.Choice + (*PatternFlowGreChecksum_Choice)(nil), // 1402: otg.PatternFlowGreChecksum.Choice + (*PatternFlowGreChecksum_Generated)(nil), // 1403: otg.PatternFlowGreChecksum.Generated + (*PatternFlowGreReserved1_Choice)(nil), // 1404: otg.PatternFlowGreReserved1.Choice + (*PatternFlowGtpv1Version_Choice)(nil), // 1405: otg.PatternFlowGtpv1Version.Choice + (*PatternFlowGtpv1ProtocolType_Choice)(nil), // 1406: otg.PatternFlowGtpv1ProtocolType.Choice + (*PatternFlowGtpv1Reserved_Choice)(nil), // 1407: otg.PatternFlowGtpv1Reserved.Choice + (*PatternFlowGtpv1EFlag_Choice)(nil), // 1408: otg.PatternFlowGtpv1EFlag.Choice + (*PatternFlowGtpv1SFlag_Choice)(nil), // 1409: otg.PatternFlowGtpv1SFlag.Choice + (*PatternFlowGtpv1PnFlag_Choice)(nil), // 1410: otg.PatternFlowGtpv1PnFlag.Choice + (*PatternFlowGtpv1MessageType_Choice)(nil), // 1411: otg.PatternFlowGtpv1MessageType.Choice + (*PatternFlowGtpv1MessageLength_Choice)(nil), // 1412: otg.PatternFlowGtpv1MessageLength.Choice + (*PatternFlowGtpv1Teid_Choice)(nil), // 1413: otg.PatternFlowGtpv1Teid.Choice + (*PatternFlowGtpv1SquenceNumber_Choice)(nil), // 1414: otg.PatternFlowGtpv1SquenceNumber.Choice + (*PatternFlowGtpv1NPduNumber_Choice)(nil), // 1415: otg.PatternFlowGtpv1NPduNumber.Choice + (*PatternFlowGtpv1NextExtensionHeaderType_Choice)(nil), // 1416: otg.PatternFlowGtpv1NextExtensionHeaderType.Choice + (*PatternFlowGtpExtensionExtensionLength_Choice)(nil), // 1417: otg.PatternFlowGtpExtensionExtensionLength.Choice + (*PatternFlowGtpExtensionContents_Choice)(nil), // 1418: otg.PatternFlowGtpExtensionContents.Choice + (*PatternFlowGtpExtensionNextExtensionHeader_Choice)(nil), // 1419: otg.PatternFlowGtpExtensionNextExtensionHeader.Choice + (*PatternFlowGtpv2Version_Choice)(nil), // 1420: otg.PatternFlowGtpv2Version.Choice + (*PatternFlowGtpv2PiggybackingFlag_Choice)(nil), // 1421: otg.PatternFlowGtpv2PiggybackingFlag.Choice + (*PatternFlowGtpv2TeidFlag_Choice)(nil), // 1422: otg.PatternFlowGtpv2TeidFlag.Choice + (*PatternFlowGtpv2Spare1_Choice)(nil), // 1423: otg.PatternFlowGtpv2Spare1.Choice + (*PatternFlowGtpv2MessageType_Choice)(nil), // 1424: otg.PatternFlowGtpv2MessageType.Choice + (*PatternFlowGtpv2MessageLength_Choice)(nil), // 1425: otg.PatternFlowGtpv2MessageLength.Choice + (*PatternFlowGtpv2Teid_Choice)(nil), // 1426: otg.PatternFlowGtpv2Teid.Choice + (*PatternFlowGtpv2SequenceNumber_Choice)(nil), // 1427: otg.PatternFlowGtpv2SequenceNumber.Choice + (*PatternFlowGtpv2Spare2_Choice)(nil), // 1428: otg.PatternFlowGtpv2Spare2.Choice + (*PatternFlowArpHardwareType_Choice)(nil), // 1429: otg.PatternFlowArpHardwareType.Choice + (*PatternFlowArpProtocolType_Choice)(nil), // 1430: otg.PatternFlowArpProtocolType.Choice + (*PatternFlowArpHardwareLength_Choice)(nil), // 1431: otg.PatternFlowArpHardwareLength.Choice + (*PatternFlowArpProtocolLength_Choice)(nil), // 1432: otg.PatternFlowArpProtocolLength.Choice + (*PatternFlowArpOperation_Choice)(nil), // 1433: otg.PatternFlowArpOperation.Choice + (*PatternFlowArpSenderHardwareAddr_Choice)(nil), // 1434: otg.PatternFlowArpSenderHardwareAddr.Choice + (*PatternFlowArpSenderProtocolAddr_Choice)(nil), // 1435: otg.PatternFlowArpSenderProtocolAddr.Choice + (*PatternFlowArpTargetHardwareAddr_Choice)(nil), // 1436: otg.PatternFlowArpTargetHardwareAddr.Choice + (*PatternFlowArpTargetProtocolAddr_Choice)(nil), // 1437: otg.PatternFlowArpTargetProtocolAddr.Choice + (*PatternFlowIcmpEchoType_Choice)(nil), // 1438: otg.PatternFlowIcmpEchoType.Choice + (*PatternFlowIcmpEchoCode_Choice)(nil), // 1439: otg.PatternFlowIcmpEchoCode.Choice + (*PatternFlowIcmpEchoChecksum_Choice)(nil), // 1440: otg.PatternFlowIcmpEchoChecksum.Choice + (*PatternFlowIcmpEchoChecksum_Generated)(nil), // 1441: otg.PatternFlowIcmpEchoChecksum.Generated + (*PatternFlowIcmpEchoIdentifier_Choice)(nil), // 1442: otg.PatternFlowIcmpEchoIdentifier.Choice + (*PatternFlowIcmpEchoSequenceNumber_Choice)(nil), // 1443: otg.PatternFlowIcmpEchoSequenceNumber.Choice + (*PatternFlowIcmpCommonChecksum_Choice)(nil), // 1444: otg.PatternFlowIcmpCommonChecksum.Choice + (*PatternFlowIcmpCommonChecksum_Generated)(nil), // 1445: otg.PatternFlowIcmpCommonChecksum.Generated + (*PatternFlowIcmpNextFieldsIdentifier_Choice)(nil), // 1446: otg.PatternFlowIcmpNextFieldsIdentifier.Choice + (*PatternFlowIcmpNextFieldsSequenceNumber_Choice)(nil), // 1447: otg.PatternFlowIcmpNextFieldsSequenceNumber.Choice + (*PatternFlowIcmpv6EchoType_Choice)(nil), // 1448: otg.PatternFlowIcmpv6EchoType.Choice + (*PatternFlowIcmpv6EchoCode_Choice)(nil), // 1449: otg.PatternFlowIcmpv6EchoCode.Choice + (*PatternFlowIcmpv6EchoIdentifier_Choice)(nil), // 1450: otg.PatternFlowIcmpv6EchoIdentifier.Choice + (*PatternFlowIcmpv6EchoSequenceNumber_Choice)(nil), // 1451: otg.PatternFlowIcmpv6EchoSequenceNumber.Choice + (*PatternFlowIcmpv6EchoChecksum_Choice)(nil), // 1452: otg.PatternFlowIcmpv6EchoChecksum.Choice + (*PatternFlowIcmpv6EchoChecksum_Generated)(nil), // 1453: otg.PatternFlowIcmpv6EchoChecksum.Generated + (*PatternFlowIcmpv6CommonChecksum_Choice)(nil), // 1454: otg.PatternFlowIcmpv6CommonChecksum.Choice + (*PatternFlowIcmpv6CommonChecksum_Generated)(nil), // 1455: otg.PatternFlowIcmpv6CommonChecksum.Generated + (*PatternFlowPppAddress_Choice)(nil), // 1456: otg.PatternFlowPppAddress.Choice + (*PatternFlowPppControl_Choice)(nil), // 1457: otg.PatternFlowPppControl.Choice + (*PatternFlowPppProtocolType_Choice)(nil), // 1458: otg.PatternFlowPppProtocolType.Choice + (*PatternFlowIgmpv1Version_Choice)(nil), // 1459: otg.PatternFlowIgmpv1Version.Choice + (*PatternFlowIgmpv1Type_Choice)(nil), // 1460: otg.PatternFlowIgmpv1Type.Choice + (*PatternFlowIgmpv1Unused_Choice)(nil), // 1461: otg.PatternFlowIgmpv1Unused.Choice + (*PatternFlowIgmpv1Checksum_Choice)(nil), // 1462: otg.PatternFlowIgmpv1Checksum.Choice + (*PatternFlowIgmpv1Checksum_Generated)(nil), // 1463: otg.PatternFlowIgmpv1Checksum.Generated + (*PatternFlowIgmpv1GroupAddress_Choice)(nil), // 1464: otg.PatternFlowIgmpv1GroupAddress.Choice + (*PatternFlowMplsLabel_Choice)(nil), // 1465: otg.PatternFlowMplsLabel.Choice + (*PatternFlowMplsTrafficClass_Choice)(nil), // 1466: otg.PatternFlowMplsTrafficClass.Choice + (*PatternFlowMplsBottomOfStack_Choice)(nil), // 1467: otg.PatternFlowMplsBottomOfStack.Choice + (*PatternFlowMplsTimeToLive_Choice)(nil), // 1468: otg.PatternFlowMplsTimeToLive.Choice + (*PatternFlowSnmpv2CVersion_Choice)(nil), // 1469: otg.PatternFlowSnmpv2cVersion.Choice + (*PatternFlowSnmpv2CPDURequestId_Choice)(nil), // 1470: otg.PatternFlowSnmpv2cPDURequestId.Choice + (*PatternFlowSnmpv2CPDUErrorIndex_Choice)(nil), // 1471: otg.PatternFlowSnmpv2cPDUErrorIndex.Choice + (*PatternFlowSnmpv2CBulkPDURequestId_Choice)(nil), // 1472: otg.PatternFlowSnmpv2cBulkPDURequestId.Choice + (*PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice)(nil), // 1473: otg.PatternFlowSnmpv2cBulkPDUNonRepeaters.Choice + (*PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice)(nil), // 1474: otg.PatternFlowSnmpv2cBulkPDUMaxRepetitions.Choice + (*PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice)(nil), // 1475: otg.PatternFlowSnmpv2cVariableBindingValueIntegerValue.Choice + (*PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice)(nil), // 1476: otg.PatternFlowSnmpv2cVariableBindingValueIpAddressValue.Choice + (*PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice)(nil), // 1477: otg.PatternFlowSnmpv2cVariableBindingValueCounterValue.Choice + (*PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice)(nil), // 1478: otg.PatternFlowSnmpv2cVariableBindingValueTimeticksValue.Choice + (*PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice)(nil), // 1479: otg.PatternFlowSnmpv2cVariableBindingValueBigCounterValue.Choice + (*PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice)(nil), // 1480: otg.PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValue.Choice + (*PatternFlowSnmpv2CCommonRequestId_Choice)(nil), // 1481: otg.PatternFlowSnmpv2cCommonRequestId.Choice + (*emptypb.Empty)(nil), // 1482: google.protobuf.Empty } var file_otg_proto_depIdxs = []int32{ - 324, // 0: otg.Config.ports:type_name -> otg.Port - 326, // 1: otg.Config.lags:type_name -> otg.Lag - 342, // 2: otg.Config.layer1:type_name -> otg.Layer1 - 347, // 3: otg.Config.captures:type_name -> otg.Capture - 355, // 4: otg.Config.devices:type_name -> otg.Device - 480, // 5: otg.Config.flows:type_name -> otg.Flow - 533, // 6: otg.Config.events:type_name -> otg.Event - 323, // 7: otg.Config.options:type_name -> otg.ConfigOptions - 539, // 8: otg.Config.lldp:type_name -> otg.Lldp - 325, // 9: otg.ConfigOptions.port_options:type_name -> otg.PortOptions - 356, // 10: otg.ConfigOptions.protocol_options:type_name -> otg.ProtocolOptions - 327, // 11: otg.Lag.ports:type_name -> otg.LagPort - 328, // 12: otg.Lag.protocol:type_name -> otg.LagProtocol - 331, // 13: otg.LagPort.lacp:type_name -> otg.LagPortLacp - 332, // 14: otg.LagPort.ethernet:type_name -> otg.DeviceEthernetBase + 340, // 0: otg.Config.ports:type_name -> otg.Port + 342, // 1: otg.Config.lags:type_name -> otg.Lag + 358, // 2: otg.Config.layer1:type_name -> otg.Layer1 + 363, // 3: otg.Config.captures:type_name -> otg.Capture + 371, // 4: otg.Config.devices:type_name -> otg.Device + 496, // 5: otg.Config.flows:type_name -> otg.Flow + 555, // 6: otg.Config.events:type_name -> otg.Event + 339, // 7: otg.Config.options:type_name -> otg.ConfigOptions + 561, // 8: otg.Config.lldp:type_name -> otg.Lldp + 341, // 9: otg.ConfigOptions.port_options:type_name -> otg.PortOptions + 372, // 10: otg.ConfigOptions.protocol_options:type_name -> otg.ProtocolOptions + 343, // 11: otg.Lag.ports:type_name -> otg.LagPort + 344, // 12: otg.Lag.protocol:type_name -> otg.LagProtocol + 347, // 13: otg.LagPort.lacp:type_name -> otg.LagPortLacp + 348, // 14: otg.LagPort.ethernet:type_name -> otg.DeviceEthernetBase 0, // 15: otg.LagProtocol.choice:type_name -> otg.LagProtocol.Choice.Enum - 330, // 16: otg.LagProtocol.lacp:type_name -> otg.LagProtocolLacp - 329, // 17: otg.LagProtocol.static:type_name -> otg.LagProtocolStatic + 346, // 16: otg.LagProtocol.lacp:type_name -> otg.LagProtocolLacp + 345, // 17: otg.LagProtocol.static:type_name -> otg.LagProtocolStatic 1, // 18: otg.LagPortLacp.actor_activity:type_name -> otg.LagPortLacp.ActorActivity.Enum - 335, // 19: otg.DeviceEthernetBase.vlans:type_name -> otg.DeviceVlan - 334, // 20: otg.DeviceEthernet.connection:type_name -> otg.EthernetConnection - 336, // 21: otg.DeviceEthernet.ipv4_addresses:type_name -> otg.DeviceIpv4 - 339, // 22: otg.DeviceEthernet.ipv6_addresses:type_name -> otg.DeviceIpv6 - 335, // 23: otg.DeviceEthernet.vlans:type_name -> otg.DeviceVlan + 351, // 19: otg.DeviceEthernetBase.vlans:type_name -> otg.DeviceVlan + 350, // 20: otg.DeviceEthernet.connection:type_name -> otg.EthernetConnection + 352, // 21: otg.DeviceEthernet.ipv4_addresses:type_name -> otg.DeviceIpv4 + 355, // 22: otg.DeviceEthernet.ipv6_addresses:type_name -> otg.DeviceIpv6 + 351, // 23: otg.DeviceEthernet.vlans:type_name -> otg.DeviceVlan 2, // 24: otg.EthernetConnection.choice:type_name -> otg.EthernetConnection.Choice.Enum 3, // 25: otg.DeviceVlan.tpid:type_name -> otg.DeviceVlan.Tpid.Enum - 338, // 26: otg.DeviceIpv4.gateway_mac:type_name -> otg.DeviceIpv4GatewayMAC + 354, // 26: otg.DeviceIpv4.gateway_mac:type_name -> otg.DeviceIpv4GatewayMAC 4, // 27: otg.DeviceIpv4GatewayMAC.choice:type_name -> otg.DeviceIpv4GatewayMAC.Choice.Enum - 341, // 28: otg.DeviceIpv6.gateway_mac:type_name -> otg.DeviceIpv6GatewayMAC + 357, // 28: otg.DeviceIpv6.gateway_mac:type_name -> otg.DeviceIpv6GatewayMAC 5, // 29: otg.DeviceIpv6GatewayMAC.choice:type_name -> otg.DeviceIpv6GatewayMAC.Choice.Enum 6, // 30: otg.Layer1.speed:type_name -> otg.Layer1.Speed.Enum 7, // 31: otg.Layer1.media:type_name -> otg.Layer1.Media.Enum - 343, // 32: otg.Layer1.auto_negotiation:type_name -> otg.Layer1AutoNegotiation - 344, // 33: otg.Layer1.flow_control:type_name -> otg.Layer1FlowControl + 359, // 32: otg.Layer1.auto_negotiation:type_name -> otg.Layer1AutoNegotiation + 360, // 33: otg.Layer1.flow_control:type_name -> otg.Layer1FlowControl 8, // 34: otg.Layer1FlowControl.choice:type_name -> otg.Layer1FlowControl.Choice.Enum - 346, // 35: otg.Layer1FlowControl.ieee_802_1qbb:type_name -> otg.Layer1Ieee8021qbb - 345, // 36: otg.Layer1FlowControl.ieee_802_3x:type_name -> otg.Layer1Ieee8023x - 348, // 37: otg.Capture.filters:type_name -> otg.CaptureFilter + 362, // 35: otg.Layer1FlowControl.ieee_802_1qbb:type_name -> otg.Layer1Ieee8021qbb + 361, // 36: otg.Layer1FlowControl.ieee_802_3x:type_name -> otg.Layer1Ieee8023x + 364, // 37: otg.Capture.filters:type_name -> otg.CaptureFilter 9, // 38: otg.Capture.format:type_name -> otg.Capture.Format.Enum 10, // 39: otg.CaptureFilter.choice:type_name -> otg.CaptureFilter.Choice.Enum - 349, // 40: otg.CaptureFilter.custom:type_name -> otg.CaptureCustom - 351, // 41: otg.CaptureFilter.ethernet:type_name -> otg.CaptureEthernet - 352, // 42: otg.CaptureFilter.vlan:type_name -> otg.CaptureVlan - 353, // 43: otg.CaptureFilter.ipv4:type_name -> otg.CaptureIpv4 - 354, // 44: otg.CaptureFilter.ipv6:type_name -> otg.CaptureIpv6 - 350, // 45: otg.CaptureEthernet.src:type_name -> otg.CaptureField - 350, // 46: otg.CaptureEthernet.dst:type_name -> otg.CaptureField - 350, // 47: otg.CaptureEthernet.ether_type:type_name -> otg.CaptureField - 350, // 48: otg.CaptureEthernet.pfc_queue:type_name -> otg.CaptureField - 350, // 49: otg.CaptureVlan.priority:type_name -> otg.CaptureField - 350, // 50: otg.CaptureVlan.cfi:type_name -> otg.CaptureField - 350, // 51: otg.CaptureVlan.id:type_name -> otg.CaptureField - 350, // 52: otg.CaptureVlan.protocol:type_name -> otg.CaptureField - 350, // 53: otg.CaptureIpv4.version:type_name -> otg.CaptureField - 350, // 54: otg.CaptureIpv4.header_length:type_name -> otg.CaptureField - 350, // 55: otg.CaptureIpv4.priority:type_name -> otg.CaptureField - 350, // 56: otg.CaptureIpv4.total_length:type_name -> otg.CaptureField - 350, // 57: otg.CaptureIpv4.identification:type_name -> otg.CaptureField - 350, // 58: otg.CaptureIpv4.reserved:type_name -> otg.CaptureField - 350, // 59: otg.CaptureIpv4.dont_fragment:type_name -> otg.CaptureField - 350, // 60: otg.CaptureIpv4.more_fragments:type_name -> otg.CaptureField - 350, // 61: otg.CaptureIpv4.fragment_offset:type_name -> otg.CaptureField - 350, // 62: otg.CaptureIpv4.time_to_live:type_name -> otg.CaptureField - 350, // 63: otg.CaptureIpv4.protocol:type_name -> otg.CaptureField - 350, // 64: otg.CaptureIpv4.header_checksum:type_name -> otg.CaptureField - 350, // 65: otg.CaptureIpv4.src:type_name -> otg.CaptureField - 350, // 66: otg.CaptureIpv4.dst:type_name -> otg.CaptureField - 350, // 67: otg.CaptureIpv6.version:type_name -> otg.CaptureField - 350, // 68: otg.CaptureIpv6.traffic_class:type_name -> otg.CaptureField - 350, // 69: otg.CaptureIpv6.flow_label:type_name -> otg.CaptureField - 350, // 70: otg.CaptureIpv6.payload_length:type_name -> otg.CaptureField - 350, // 71: otg.CaptureIpv6.next_header:type_name -> otg.CaptureField - 350, // 72: otg.CaptureIpv6.hop_limit:type_name -> otg.CaptureField - 350, // 73: otg.CaptureIpv6.src:type_name -> otg.CaptureField - 350, // 74: otg.CaptureIpv6.dst:type_name -> otg.CaptureField - 333, // 75: otg.Device.ethernets:type_name -> otg.DeviceEthernet - 337, // 76: otg.Device.ipv4_loopbacks:type_name -> otg.DeviceIpv4Loopback - 340, // 77: otg.Device.ipv6_loopbacks:type_name -> otg.DeviceIpv6Loopback - 357, // 78: otg.Device.isis:type_name -> otg.DeviceIsisRouter - 376, // 79: otg.Device.bgp:type_name -> otg.DeviceBgpRouter - 457, // 80: otg.Device.vxlan:type_name -> otg.DeviceVxlan - 469, // 81: otg.Device.rsvp:type_name -> otg.DeviceRsvp - 358, // 82: otg.DeviceIsisRouter.instance:type_name -> otg.DeviceIsisMultiInstance - 359, // 83: otg.DeviceIsisRouter.interfaces:type_name -> otg.IsisInterface - 367, // 84: otg.DeviceIsisRouter.basic:type_name -> otg.IsisBasic - 368, // 85: otg.DeviceIsisRouter.advanced:type_name -> otg.IsisAdvanced - 369, // 86: otg.DeviceIsisRouter.router_auth:type_name -> otg.IsisAuthentication - 371, // 87: otg.DeviceIsisRouter.v4_routes:type_name -> otg.IsisV4RouteRange - 375, // 88: otg.DeviceIsisRouter.v6_routes:type_name -> otg.IsisV6RouteRange + 365, // 40: otg.CaptureFilter.custom:type_name -> otg.CaptureCustom + 367, // 41: otg.CaptureFilter.ethernet:type_name -> otg.CaptureEthernet + 368, // 42: otg.CaptureFilter.vlan:type_name -> otg.CaptureVlan + 369, // 43: otg.CaptureFilter.ipv4:type_name -> otg.CaptureIpv4 + 370, // 44: otg.CaptureFilter.ipv6:type_name -> otg.CaptureIpv6 + 366, // 45: otg.CaptureEthernet.src:type_name -> otg.CaptureField + 366, // 46: otg.CaptureEthernet.dst:type_name -> otg.CaptureField + 366, // 47: otg.CaptureEthernet.ether_type:type_name -> otg.CaptureField + 366, // 48: otg.CaptureEthernet.pfc_queue:type_name -> otg.CaptureField + 366, // 49: otg.CaptureVlan.priority:type_name -> otg.CaptureField + 366, // 50: otg.CaptureVlan.cfi:type_name -> otg.CaptureField + 366, // 51: otg.CaptureVlan.id:type_name -> otg.CaptureField + 366, // 52: otg.CaptureVlan.protocol:type_name -> otg.CaptureField + 366, // 53: otg.CaptureIpv4.version:type_name -> otg.CaptureField + 366, // 54: otg.CaptureIpv4.header_length:type_name -> otg.CaptureField + 366, // 55: otg.CaptureIpv4.priority:type_name -> otg.CaptureField + 366, // 56: otg.CaptureIpv4.total_length:type_name -> otg.CaptureField + 366, // 57: otg.CaptureIpv4.identification:type_name -> otg.CaptureField + 366, // 58: otg.CaptureIpv4.reserved:type_name -> otg.CaptureField + 366, // 59: otg.CaptureIpv4.dont_fragment:type_name -> otg.CaptureField + 366, // 60: otg.CaptureIpv4.more_fragments:type_name -> otg.CaptureField + 366, // 61: otg.CaptureIpv4.fragment_offset:type_name -> otg.CaptureField + 366, // 62: otg.CaptureIpv4.time_to_live:type_name -> otg.CaptureField + 366, // 63: otg.CaptureIpv4.protocol:type_name -> otg.CaptureField + 366, // 64: otg.CaptureIpv4.header_checksum:type_name -> otg.CaptureField + 366, // 65: otg.CaptureIpv4.src:type_name -> otg.CaptureField + 366, // 66: otg.CaptureIpv4.dst:type_name -> otg.CaptureField + 366, // 67: otg.CaptureIpv6.version:type_name -> otg.CaptureField + 366, // 68: otg.CaptureIpv6.traffic_class:type_name -> otg.CaptureField + 366, // 69: otg.CaptureIpv6.flow_label:type_name -> otg.CaptureField + 366, // 70: otg.CaptureIpv6.payload_length:type_name -> otg.CaptureField + 366, // 71: otg.CaptureIpv6.next_header:type_name -> otg.CaptureField + 366, // 72: otg.CaptureIpv6.hop_limit:type_name -> otg.CaptureField + 366, // 73: otg.CaptureIpv6.src:type_name -> otg.CaptureField + 366, // 74: otg.CaptureIpv6.dst:type_name -> otg.CaptureField + 349, // 75: otg.Device.ethernets:type_name -> otg.DeviceEthernet + 353, // 76: otg.Device.ipv4_loopbacks:type_name -> otg.DeviceIpv4Loopback + 356, // 77: otg.Device.ipv6_loopbacks:type_name -> otg.DeviceIpv6Loopback + 373, // 78: otg.Device.isis:type_name -> otg.DeviceIsisRouter + 392, // 79: otg.Device.bgp:type_name -> otg.DeviceBgpRouter + 473, // 80: otg.Device.vxlan:type_name -> otg.DeviceVxlan + 485, // 81: otg.Device.rsvp:type_name -> otg.DeviceRsvp + 374, // 82: otg.DeviceIsisRouter.instance:type_name -> otg.DeviceIsisMultiInstance + 375, // 83: otg.DeviceIsisRouter.interfaces:type_name -> otg.IsisInterface + 383, // 84: otg.DeviceIsisRouter.basic:type_name -> otg.IsisBasic + 384, // 85: otg.DeviceIsisRouter.advanced:type_name -> otg.IsisAdvanced + 385, // 86: otg.DeviceIsisRouter.router_auth:type_name -> otg.IsisAuthentication + 387, // 87: otg.DeviceIsisRouter.v4_routes:type_name -> otg.IsisV4RouteRange + 391, // 88: otg.DeviceIsisRouter.v6_routes:type_name -> otg.IsisV6RouteRange 11, // 89: otg.IsisInterface.network_type:type_name -> otg.IsisInterface.NetworkType.Enum 12, // 90: otg.IsisInterface.level_type:type_name -> otg.IsisInterface.LevelType.Enum - 360, // 91: otg.IsisInterface.l1_settings:type_name -> otg.IsisInterfaceLevel - 360, // 92: otg.IsisInterface.l2_settings:type_name -> otg.IsisInterfaceLevel - 361, // 93: otg.IsisInterface.multi_topology_ids:type_name -> otg.IsisMT - 362, // 94: otg.IsisInterface.traffic_engineering:type_name -> otg.LinkStateTE - 364, // 95: otg.IsisInterface.authentication:type_name -> otg.IsisInterfaceAuthentication - 365, // 96: otg.IsisInterface.advanced:type_name -> otg.IsisInterfaceAdvanced - 366, // 97: otg.IsisInterface.link_protection:type_name -> otg.IsisInterfaceLinkProtection - 363, // 98: otg.LinkStateTE.priority_bandwidths:type_name -> otg.LinkStatepriorityBandwidths + 376, // 91: otg.IsisInterface.l1_settings:type_name -> otg.IsisInterfaceLevel + 376, // 92: otg.IsisInterface.l2_settings:type_name -> otg.IsisInterfaceLevel + 377, // 93: otg.IsisInterface.multi_topology_ids:type_name -> otg.IsisMT + 378, // 94: otg.IsisInterface.traffic_engineering:type_name -> otg.LinkStateTE + 380, // 95: otg.IsisInterface.authentication:type_name -> otg.IsisInterfaceAuthentication + 381, // 96: otg.IsisInterface.advanced:type_name -> otg.IsisInterfaceAdvanced + 382, // 97: otg.IsisInterface.link_protection:type_name -> otg.IsisInterfaceLinkProtection + 379, // 98: otg.LinkStateTE.priority_bandwidths:type_name -> otg.LinkStatepriorityBandwidths 13, // 99: otg.IsisInterfaceAuthentication.auth_type:type_name -> otg.IsisInterfaceAuthentication.AuthType.Enum - 370, // 100: otg.IsisAuthentication.area_auth:type_name -> otg.IsisAuthenticationBase - 370, // 101: otg.IsisAuthentication.domain_auth:type_name -> otg.IsisAuthenticationBase + 386, // 100: otg.IsisAuthentication.area_auth:type_name -> otg.IsisAuthenticationBase + 386, // 101: otg.IsisAuthentication.domain_auth:type_name -> otg.IsisAuthenticationBase 14, // 102: otg.IsisAuthenticationBase.auth_type:type_name -> otg.IsisAuthenticationBase.AuthType.Enum - 372, // 103: otg.IsisV4RouteRange.addresses:type_name -> otg.V4RouteAddress + 388, // 103: otg.IsisV4RouteRange.addresses:type_name -> otg.V4RouteAddress 15, // 104: otg.IsisV4RouteRange.origin_type:type_name -> otg.IsisV4RouteRange.OriginType.Enum 16, // 105: otg.IsisV4RouteRange.redistribution_type:type_name -> otg.IsisV4RouteRange.RedistributionType.Enum - 373, // 106: otg.IsisV6RouteRange.addresses:type_name -> otg.V6RouteAddress + 389, // 106: otg.IsisV6RouteRange.addresses:type_name -> otg.V6RouteAddress 17, // 107: otg.IsisV6RouteRange.origin_type:type_name -> otg.IsisV6RouteRange.OriginType.Enum 18, // 108: otg.IsisV6RouteRange.redistribution_type:type_name -> otg.IsisV6RouteRange.RedistributionType.Enum - 385, // 109: otg.DeviceBgpRouter.ipv4_interfaces:type_name -> otg.BgpV4Interface - 451, // 110: otg.DeviceBgpRouter.ipv6_interfaces:type_name -> otg.BgpV6Interface + 401, // 109: otg.DeviceBgpRouter.ipv4_interfaces:type_name -> otg.BgpV4Interface + 467, // 110: otg.DeviceBgpRouter.ipv6_interfaces:type_name -> otg.BgpV6Interface 19, // 111: otg.DeviceBgpMessageHeaderError.subcode:type_name -> otg.DeviceBgpMessageHeaderError.Subcode.Enum 20, // 112: otg.DeviceBgpOpenMessageError.subcode:type_name -> otg.DeviceBgpOpenMessageError.Subcode.Enum 21, // 113: otg.DeviceBgpUpdateMessageError.subcode:type_name -> otg.DeviceBgpUpdateMessageError.Subcode.Enum 22, // 114: otg.DeviceBgpCeaseError.subcode:type_name -> otg.DeviceBgpCeaseError.Subcode.Enum - 386, // 115: otg.BgpV4Peer.evpn_ethernet_segments:type_name -> otg.BgpV4EthernetSegment + 402, // 115: otg.BgpV4Peer.evpn_ethernet_segments:type_name -> otg.BgpV4EthernetSegment 23, // 116: otg.BgpV4Peer.as_type:type_name -> otg.BgpV4Peer.AsType.Enum 24, // 117: otg.BgpV4Peer.as_number_width:type_name -> otg.BgpV4Peer.AsNumberWidth.Enum - 399, // 118: otg.BgpV4Peer.advanced:type_name -> otg.BgpAdvanced - 400, // 119: otg.BgpV4Peer.capability:type_name -> otg.BgpCapability - 401, // 120: otg.BgpV4Peer.learned_information_filter:type_name -> otg.BgpLearnedInformationFilter - 402, // 121: otg.BgpV4Peer.v4_routes:type_name -> otg.BgpV4RouteRange - 422, // 122: otg.BgpV4Peer.v6_routes:type_name -> otg.BgpV6RouteRange - 423, // 123: otg.BgpV4Peer.v4_srte_policies:type_name -> otg.BgpSrteV4Policy - 447, // 124: otg.BgpV4Peer.v6_srte_policies:type_name -> otg.BgpSrteV6Policy - 449, // 125: otg.BgpV4Peer.graceful_restart:type_name -> otg.BgpGracefulRestart - 384, // 126: otg.BgpV4Interface.peers:type_name -> otg.BgpV4Peer - 387, // 127: otg.BgpV4EthernetSegment.df_election:type_name -> otg.BgpEthernetSegmentDfElection - 393, // 128: otg.BgpV4EthernetSegment.evis:type_name -> otg.BgpV4EvpnEvis + 415, // 118: otg.BgpV4Peer.advanced:type_name -> otg.BgpAdvanced + 416, // 119: otg.BgpV4Peer.capability:type_name -> otg.BgpCapability + 417, // 120: otg.BgpV4Peer.learned_information_filter:type_name -> otg.BgpLearnedInformationFilter + 418, // 121: otg.BgpV4Peer.v4_routes:type_name -> otg.BgpV4RouteRange + 438, // 122: otg.BgpV4Peer.v6_routes:type_name -> otg.BgpV6RouteRange + 439, // 123: otg.BgpV4Peer.v4_srte_policies:type_name -> otg.BgpSrteV4Policy + 463, // 124: otg.BgpV4Peer.v6_srte_policies:type_name -> otg.BgpSrteV6Policy + 465, // 125: otg.BgpV4Peer.graceful_restart:type_name -> otg.BgpGracefulRestart + 400, // 126: otg.BgpV4Interface.peers:type_name -> otg.BgpV4Peer + 403, // 127: otg.BgpV4EthernetSegment.df_election:type_name -> otg.BgpEthernetSegmentDfElection + 409, // 128: otg.BgpV4EthernetSegment.evis:type_name -> otg.BgpV4EvpnEvis 25, // 129: otg.BgpV4EthernetSegment.active_mode:type_name -> otg.BgpV4EthernetSegment.ActiveMode.Enum - 388, // 130: otg.BgpV4EthernetSegment.advanced:type_name -> otg.BgpRouteAdvanced - 389, // 131: otg.BgpV4EthernetSegment.communities:type_name -> otg.BgpCommunity - 390, // 132: otg.BgpV4EthernetSegment.ext_communities:type_name -> otg.BgpExtCommunity - 391, // 133: otg.BgpV4EthernetSegment.as_path:type_name -> otg.BgpAsPath + 404, // 130: otg.BgpV4EthernetSegment.advanced:type_name -> otg.BgpRouteAdvanced + 405, // 131: otg.BgpV4EthernetSegment.communities:type_name -> otg.BgpCommunity + 406, // 132: otg.BgpV4EthernetSegment.ext_communities:type_name -> otg.BgpExtCommunity + 407, // 133: otg.BgpV4EthernetSegment.as_path:type_name -> otg.BgpAsPath 26, // 134: otg.BgpRouteAdvanced.origin:type_name -> otg.BgpRouteAdvanced.Origin.Enum 27, // 135: otg.BgpCommunity.type:type_name -> otg.BgpCommunity.Type.Enum 28, // 136: otg.BgpExtCommunity.type:type_name -> otg.BgpExtCommunity.Type.Enum 29, // 137: otg.BgpExtCommunity.subtype:type_name -> otg.BgpExtCommunity.Subtype.Enum 30, // 138: otg.BgpAsPath.as_set_mode:type_name -> otg.BgpAsPath.AsSetMode.Enum - 392, // 139: otg.BgpAsPath.segments:type_name -> otg.BgpAsPathSegment + 408, // 139: otg.BgpAsPath.segments:type_name -> otg.BgpAsPathSegment 31, // 140: otg.BgpAsPathSegment.type:type_name -> otg.BgpAsPathSegment.Type.Enum 32, // 141: otg.BgpV4EvpnEvis.choice:type_name -> otg.BgpV4EvpnEvis.Choice.Enum - 394, // 142: otg.BgpV4EvpnEvis.evi_vxlan:type_name -> otg.BgpV4EviVxlan - 395, // 143: otg.BgpV4EviVxlan.broadcast_domains:type_name -> otg.BgpV4EviVxlanBroadcastDomain + 410, // 142: otg.BgpV4EvpnEvis.evi_vxlan:type_name -> otg.BgpV4EviVxlan + 411, // 143: otg.BgpV4EviVxlan.broadcast_domains:type_name -> otg.BgpV4EviVxlanBroadcastDomain 33, // 144: otg.BgpV4EviVxlan.replication_type:type_name -> otg.BgpV4EviVxlan.ReplicationType.Enum - 397, // 145: otg.BgpV4EviVxlan.route_distinguisher:type_name -> otg.BgpRouteDistinguisher - 398, // 146: otg.BgpV4EviVxlan.route_target_export:type_name -> otg.BgpRouteTarget - 398, // 147: otg.BgpV4EviVxlan.route_target_import:type_name -> otg.BgpRouteTarget - 398, // 148: otg.BgpV4EviVxlan.l3_route_target_export:type_name -> otg.BgpRouteTarget - 398, // 149: otg.BgpV4EviVxlan.l3_route_target_import:type_name -> otg.BgpRouteTarget - 388, // 150: otg.BgpV4EviVxlan.advanced:type_name -> otg.BgpRouteAdvanced - 389, // 151: otg.BgpV4EviVxlan.communities:type_name -> otg.BgpCommunity - 390, // 152: otg.BgpV4EviVxlan.ext_communities:type_name -> otg.BgpExtCommunity - 391, // 153: otg.BgpV4EviVxlan.as_path:type_name -> otg.BgpAsPath - 396, // 154: otg.BgpV4EviVxlanBroadcastDomain.cmac_ip_range:type_name -> otg.BgpCMacIpRange - 374, // 155: otg.BgpCMacIpRange.mac_addresses:type_name -> otg.MACRouteAddress - 372, // 156: otg.BgpCMacIpRange.ipv4_addresses:type_name -> otg.V4RouteAddress - 373, // 157: otg.BgpCMacIpRange.ipv6_addresses:type_name -> otg.V6RouteAddress - 388, // 158: otg.BgpCMacIpRange.advanced:type_name -> otg.BgpRouteAdvanced - 389, // 159: otg.BgpCMacIpRange.communities:type_name -> otg.BgpCommunity - 390, // 160: otg.BgpCMacIpRange.ext_communities:type_name -> otg.BgpExtCommunity - 391, // 161: otg.BgpCMacIpRange.as_path:type_name -> otg.BgpAsPath + 413, // 145: otg.BgpV4EviVxlan.route_distinguisher:type_name -> otg.BgpRouteDistinguisher + 414, // 146: otg.BgpV4EviVxlan.route_target_export:type_name -> otg.BgpRouteTarget + 414, // 147: otg.BgpV4EviVxlan.route_target_import:type_name -> otg.BgpRouteTarget + 414, // 148: otg.BgpV4EviVxlan.l3_route_target_export:type_name -> otg.BgpRouteTarget + 414, // 149: otg.BgpV4EviVxlan.l3_route_target_import:type_name -> otg.BgpRouteTarget + 404, // 150: otg.BgpV4EviVxlan.advanced:type_name -> otg.BgpRouteAdvanced + 405, // 151: otg.BgpV4EviVxlan.communities:type_name -> otg.BgpCommunity + 406, // 152: otg.BgpV4EviVxlan.ext_communities:type_name -> otg.BgpExtCommunity + 407, // 153: otg.BgpV4EviVxlan.as_path:type_name -> otg.BgpAsPath + 412, // 154: otg.BgpV4EviVxlanBroadcastDomain.cmac_ip_range:type_name -> otg.BgpCMacIpRange + 390, // 155: otg.BgpCMacIpRange.mac_addresses:type_name -> otg.MACRouteAddress + 388, // 156: otg.BgpCMacIpRange.ipv4_addresses:type_name -> otg.V4RouteAddress + 389, // 157: otg.BgpCMacIpRange.ipv6_addresses:type_name -> otg.V6RouteAddress + 404, // 158: otg.BgpCMacIpRange.advanced:type_name -> otg.BgpRouteAdvanced + 405, // 159: otg.BgpCMacIpRange.communities:type_name -> otg.BgpCommunity + 406, // 160: otg.BgpCMacIpRange.ext_communities:type_name -> otg.BgpExtCommunity + 407, // 161: otg.BgpCMacIpRange.as_path:type_name -> otg.BgpAsPath 34, // 162: otg.BgpRouteDistinguisher.rd_type:type_name -> otg.BgpRouteDistinguisher.RdType.Enum 35, // 163: otg.BgpRouteTarget.rt_type:type_name -> otg.BgpRouteTarget.RtType.Enum - 372, // 164: otg.BgpV4RouteRange.addresses:type_name -> otg.V4RouteAddress + 388, // 164: otg.BgpV4RouteRange.addresses:type_name -> otg.V4RouteAddress 36, // 165: otg.BgpV4RouteRange.next_hop_mode:type_name -> otg.BgpV4RouteRange.NextHopMode.Enum 37, // 166: otg.BgpV4RouteRange.next_hop_address_type:type_name -> otg.BgpV4RouteRange.NextHopAddressType.Enum - 388, // 167: otg.BgpV4RouteRange.advanced:type_name -> otg.BgpRouteAdvanced - 389, // 168: otg.BgpV4RouteRange.communities:type_name -> otg.BgpCommunity - 391, // 169: otg.BgpV4RouteRange.as_path:type_name -> otg.BgpAsPath - 403, // 170: otg.BgpV4RouteRange.add_path:type_name -> otg.BgpAddPath - 390, // 171: otg.BgpV4RouteRange.ext_communities:type_name -> otg.BgpExtCommunity - 404, // 172: otg.BgpV4RouteRange.extended_communities:type_name -> otg.BgpExtendedCommunity + 404, // 167: otg.BgpV4RouteRange.advanced:type_name -> otg.BgpRouteAdvanced + 405, // 168: otg.BgpV4RouteRange.communities:type_name -> otg.BgpCommunity + 407, // 169: otg.BgpV4RouteRange.as_path:type_name -> otg.BgpAsPath + 419, // 170: otg.BgpV4RouteRange.add_path:type_name -> otg.BgpAddPath + 406, // 171: otg.BgpV4RouteRange.ext_communities:type_name -> otg.BgpExtCommunity + 420, // 172: otg.BgpV4RouteRange.extended_communities:type_name -> otg.BgpExtendedCommunity 38, // 173: otg.BgpExtendedCommunity.choice:type_name -> otg.BgpExtendedCommunity.Choice.Enum - 407, // 174: otg.BgpExtendedCommunity.transitive_2octet_as_type:type_name -> otg.BgpExtendedCommunityTransitive2OctetAsType - 410, // 175: otg.BgpExtendedCommunity.transitive_ipv4_address_type:type_name -> otg.BgpExtendedCommunityTransitiveIpv4AddressType - 413, // 176: otg.BgpExtendedCommunity.transitive_4octet_as_type:type_name -> otg.BgpExtendedCommunityTransitive4OctetAsType - 416, // 177: otg.BgpExtendedCommunity.transitive_opaque_type:type_name -> otg.BgpExtendedCommunityTransitiveOpaqueType - 418, // 178: otg.BgpExtendedCommunity.transitive_evpn_type:type_name -> otg.BgpExtendedCommunityTransitiveEvpnType - 420, // 179: otg.BgpExtendedCommunity.non_transitive_2octet_as_type:type_name -> otg.BgpExtendedCommunityNonTransitive2OctetAsType - 421, // 180: otg.BgpExtendedCommunity.custom:type_name -> otg.BgpExtendedCommunityCustomType + 423, // 174: otg.BgpExtendedCommunity.transitive_2octet_as_type:type_name -> otg.BgpExtendedCommunityTransitive2OctetAsType + 426, // 175: otg.BgpExtendedCommunity.transitive_ipv4_address_type:type_name -> otg.BgpExtendedCommunityTransitiveIpv4AddressType + 429, // 176: otg.BgpExtendedCommunity.transitive_4octet_as_type:type_name -> otg.BgpExtendedCommunityTransitive4OctetAsType + 432, // 177: otg.BgpExtendedCommunity.transitive_opaque_type:type_name -> otg.BgpExtendedCommunityTransitiveOpaqueType + 434, // 178: otg.BgpExtendedCommunity.transitive_evpn_type:type_name -> otg.BgpExtendedCommunityTransitiveEvpnType + 436, // 179: otg.BgpExtendedCommunity.non_transitive_2octet_as_type:type_name -> otg.BgpExtendedCommunityNonTransitive2OctetAsType + 437, // 180: otg.BgpExtendedCommunity.custom:type_name -> otg.BgpExtendedCommunityCustomType 39, // 181: otg.BgpExtendedCommunityTransitive2OctetAsType.choice:type_name -> otg.BgpExtendedCommunityTransitive2OctetAsType.Choice.Enum - 405, // 182: otg.BgpExtendedCommunityTransitive2OctetAsType.route_target_subtype:type_name -> otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget - 406, // 183: otg.BgpExtendedCommunityTransitive2OctetAsType.route_origin_subtype:type_name -> otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + 421, // 182: otg.BgpExtendedCommunityTransitive2OctetAsType.route_target_subtype:type_name -> otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + 422, // 183: otg.BgpExtendedCommunityTransitive2OctetAsType.route_origin_subtype:type_name -> otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin 40, // 184: otg.BgpExtendedCommunityTransitiveIpv4AddressType.choice:type_name -> otg.BgpExtendedCommunityTransitiveIpv4AddressType.Choice.Enum - 409, // 185: otg.BgpExtendedCommunityTransitiveIpv4AddressType.route_target_subtype:type_name -> otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget - 408, // 186: otg.BgpExtendedCommunityTransitiveIpv4AddressType.route_origin_subtype:type_name -> otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + 425, // 185: otg.BgpExtendedCommunityTransitiveIpv4AddressType.route_target_subtype:type_name -> otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + 424, // 186: otg.BgpExtendedCommunityTransitiveIpv4AddressType.route_origin_subtype:type_name -> otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin 41, // 187: otg.BgpExtendedCommunityTransitive4OctetAsType.choice:type_name -> otg.BgpExtendedCommunityTransitive4OctetAsType.Choice.Enum - 411, // 188: otg.BgpExtendedCommunityTransitive4OctetAsType.route_target_subtype:type_name -> otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget - 412, // 189: otg.BgpExtendedCommunityTransitive4OctetAsType.route_origin_subtype:type_name -> otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + 427, // 188: otg.BgpExtendedCommunityTransitive4OctetAsType.route_target_subtype:type_name -> otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + 428, // 189: otg.BgpExtendedCommunityTransitive4OctetAsType.route_origin_subtype:type_name -> otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin 42, // 190: otg.BgpExtendedCommunityTransitiveOpaqueType.choice:type_name -> otg.BgpExtendedCommunityTransitiveOpaqueType.Choice.Enum - 414, // 191: otg.BgpExtendedCommunityTransitiveOpaqueType.color_subtype:type_name -> otg.BgpExtendedCommunityTransitiveOpaqueTypeColor - 415, // 192: otg.BgpExtendedCommunityTransitiveOpaqueType.encapsulation_subtype:type_name -> otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + 430, // 191: otg.BgpExtendedCommunityTransitiveOpaqueType.color_subtype:type_name -> otg.BgpExtendedCommunityTransitiveOpaqueTypeColor + 431, // 192: otg.BgpExtendedCommunityTransitiveOpaqueType.encapsulation_subtype:type_name -> otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation 43, // 193: otg.BgpExtendedCommunityTransitiveEvpnType.choice:type_name -> otg.BgpExtendedCommunityTransitiveEvpnType.Choice.Enum - 417, // 194: otg.BgpExtendedCommunityTransitiveEvpnType.router_mac_subtype:type_name -> otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac + 433, // 194: otg.BgpExtendedCommunityTransitiveEvpnType.router_mac_subtype:type_name -> otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac 44, // 195: otg.BgpExtendedCommunityNonTransitive2OctetAsType.choice:type_name -> otg.BgpExtendedCommunityNonTransitive2OctetAsType.Choice.Enum - 419, // 196: otg.BgpExtendedCommunityNonTransitive2OctetAsType.link_bandwidth_subtype:type_name -> otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth - 373, // 197: otg.BgpV6RouteRange.addresses:type_name -> otg.V6RouteAddress + 435, // 196: otg.BgpExtendedCommunityNonTransitive2OctetAsType.link_bandwidth_subtype:type_name -> otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + 389, // 197: otg.BgpV6RouteRange.addresses:type_name -> otg.V6RouteAddress 45, // 198: otg.BgpV6RouteRange.next_hop_mode:type_name -> otg.BgpV6RouteRange.NextHopMode.Enum 46, // 199: otg.BgpV6RouteRange.next_hop_address_type:type_name -> otg.BgpV6RouteRange.NextHopAddressType.Enum - 388, // 200: otg.BgpV6RouteRange.advanced:type_name -> otg.BgpRouteAdvanced - 389, // 201: otg.BgpV6RouteRange.communities:type_name -> otg.BgpCommunity - 391, // 202: otg.BgpV6RouteRange.as_path:type_name -> otg.BgpAsPath - 403, // 203: otg.BgpV6RouteRange.add_path:type_name -> otg.BgpAddPath - 390, // 204: otg.BgpV6RouteRange.ext_communities:type_name -> otg.BgpExtCommunity - 404, // 205: otg.BgpV6RouteRange.extended_communities:type_name -> otg.BgpExtendedCommunity + 404, // 200: otg.BgpV6RouteRange.advanced:type_name -> otg.BgpRouteAdvanced + 405, // 201: otg.BgpV6RouteRange.communities:type_name -> otg.BgpCommunity + 407, // 202: otg.BgpV6RouteRange.as_path:type_name -> otg.BgpAsPath + 419, // 203: otg.BgpV6RouteRange.add_path:type_name -> otg.BgpAddPath + 406, // 204: otg.BgpV6RouteRange.ext_communities:type_name -> otg.BgpExtCommunity + 420, // 205: otg.BgpV6RouteRange.extended_communities:type_name -> otg.BgpExtendedCommunity 47, // 206: otg.BgpSrteV4Policy.next_hop_mode:type_name -> otg.BgpSrteV4Policy.NextHopMode.Enum 48, // 207: otg.BgpSrteV4Policy.next_hop_address_type:type_name -> otg.BgpSrteV4Policy.NextHopAddressType.Enum - 388, // 208: otg.BgpSrteV4Policy.advanced:type_name -> otg.BgpRouteAdvanced - 403, // 209: otg.BgpSrteV4Policy.add_path:type_name -> otg.BgpAddPath - 391, // 210: otg.BgpSrteV4Policy.as_path:type_name -> otg.BgpAsPath - 389, // 211: otg.BgpSrteV4Policy.communities:type_name -> otg.BgpCommunity - 390, // 212: otg.BgpSrteV4Policy.ext_communities:type_name -> otg.BgpExtCommunity - 424, // 213: otg.BgpSrteV4Policy.tunnel_tlvs:type_name -> otg.BgpSrteV4TunnelTlv - 425, // 214: otg.BgpSrteV4TunnelTlv.remote_endpoint_sub_tlv:type_name -> otg.BgpSrteRemoteEndpointSubTlv - 426, // 215: otg.BgpSrteV4TunnelTlv.color_sub_tlv:type_name -> otg.BgpSrteColorSubTlv - 427, // 216: otg.BgpSrteV4TunnelTlv.binding_sub_tlv:type_name -> otg.BgpSrteBindingSubTlv - 428, // 217: otg.BgpSrteV4TunnelTlv.preference_sub_tlv:type_name -> otg.BgpSrtePreferenceSubTlv - 429, // 218: otg.BgpSrteV4TunnelTlv.policy_priority_sub_tlv:type_name -> otg.BgpSrtePolicyPrioritySubTlv - 430, // 219: otg.BgpSrteV4TunnelTlv.policy_name_sub_tlv:type_name -> otg.BgpSrtePolicyNameSubTlv - 431, // 220: otg.BgpSrteV4TunnelTlv.explicit_null_label_policy_sub_tlv:type_name -> otg.BgpSrteExplicitNullLabelPolicySubTlv - 432, // 221: otg.BgpSrteV4TunnelTlv.segment_lists:type_name -> otg.BgpSrteSegmentList + 404, // 208: otg.BgpSrteV4Policy.advanced:type_name -> otg.BgpRouteAdvanced + 419, // 209: otg.BgpSrteV4Policy.add_path:type_name -> otg.BgpAddPath + 407, // 210: otg.BgpSrteV4Policy.as_path:type_name -> otg.BgpAsPath + 405, // 211: otg.BgpSrteV4Policy.communities:type_name -> otg.BgpCommunity + 406, // 212: otg.BgpSrteV4Policy.ext_communities:type_name -> otg.BgpExtCommunity + 440, // 213: otg.BgpSrteV4Policy.tunnel_tlvs:type_name -> otg.BgpSrteV4TunnelTlv + 441, // 214: otg.BgpSrteV4TunnelTlv.remote_endpoint_sub_tlv:type_name -> otg.BgpSrteRemoteEndpointSubTlv + 442, // 215: otg.BgpSrteV4TunnelTlv.color_sub_tlv:type_name -> otg.BgpSrteColorSubTlv + 443, // 216: otg.BgpSrteV4TunnelTlv.binding_sub_tlv:type_name -> otg.BgpSrteBindingSubTlv + 444, // 217: otg.BgpSrteV4TunnelTlv.preference_sub_tlv:type_name -> otg.BgpSrtePreferenceSubTlv + 445, // 218: otg.BgpSrteV4TunnelTlv.policy_priority_sub_tlv:type_name -> otg.BgpSrtePolicyPrioritySubTlv + 446, // 219: otg.BgpSrteV4TunnelTlv.policy_name_sub_tlv:type_name -> otg.BgpSrtePolicyNameSubTlv + 447, // 220: otg.BgpSrteV4TunnelTlv.explicit_null_label_policy_sub_tlv:type_name -> otg.BgpSrteExplicitNullLabelPolicySubTlv + 448, // 221: otg.BgpSrteV4TunnelTlv.segment_lists:type_name -> otg.BgpSrteSegmentList 49, // 222: otg.BgpSrteRemoteEndpointSubTlv.address_family:type_name -> otg.BgpSrteRemoteEndpointSubTlv.AddressFamily.Enum 50, // 223: otg.BgpSrteBindingSubTlv.binding_sid_type:type_name -> otg.BgpSrteBindingSubTlv.BindingSidType.Enum 51, // 224: otg.BgpSrteExplicitNullLabelPolicySubTlv.explicit_null_label_policy:type_name -> otg.BgpSrteExplicitNullLabelPolicySubTlv.ExplicitNullLabelPolicy.Enum - 433, // 225: otg.BgpSrteSegmentList.segments:type_name -> otg.BgpSrteSegment + 449, // 225: otg.BgpSrteSegmentList.segments:type_name -> otg.BgpSrteSegment 52, // 226: otg.BgpSrteSegment.segment_type:type_name -> otg.BgpSrteSegment.SegmentType.Enum - 436, // 227: otg.BgpSrteSegment.type_a:type_name -> otg.BgpSrteSegmentATypeSubTlv - 437, // 228: otg.BgpSrteSegment.type_b:type_name -> otg.BgpSrteSegmentBTypeSubTlv - 438, // 229: otg.BgpSrteSegment.type_c:type_name -> otg.BgpSrteSegmentCTypeSubTlv - 439, // 230: otg.BgpSrteSegment.type_d:type_name -> otg.BgpSrteSegmentDTypeSubTlv - 440, // 231: otg.BgpSrteSegment.type_e:type_name -> otg.BgpSrteSegmentETypeSubTlv - 441, // 232: otg.BgpSrteSegment.type_f:type_name -> otg.BgpSrteSegmentFTypeSubTlv - 442, // 233: otg.BgpSrteSegment.type_g:type_name -> otg.BgpSrteSegmentGTypeSubTlv - 443, // 234: otg.BgpSrteSegment.type_h:type_name -> otg.BgpSrteSegmentHTypeSubTlv - 444, // 235: otg.BgpSrteSegment.type_i:type_name -> otg.BgpSrteSegmentITypeSubTlv - 445, // 236: otg.BgpSrteSegment.type_j:type_name -> otg.BgpSrteSegmentJTypeSubTlv - 446, // 237: otg.BgpSrteSegment.type_k:type_name -> otg.BgpSrteSegmentKTypeSubTlv - 435, // 238: otg.BgpSrteSegmentBTypeSubTlv.srv6_sid_endpoint_behavior:type_name -> otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure - 434, // 239: otg.BgpSrteSegmentCTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid - 434, // 240: otg.BgpSrteSegmentDTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid - 434, // 241: otg.BgpSrteSegmentETypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid - 434, // 242: otg.BgpSrteSegmentFTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid - 434, // 243: otg.BgpSrteSegmentGTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid - 434, // 244: otg.BgpSrteSegmentHTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid - 435, // 245: otg.BgpSrteSegmentITypeSubTlv.srv6_sid_endpoint_behavior:type_name -> otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure - 435, // 246: otg.BgpSrteSegmentJTypeSubTlv.srv6_sid_endpoint_behavior:type_name -> otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure - 435, // 247: otg.BgpSrteSegmentKTypeSubTlv.srv6_sid_endpoint_behavior:type_name -> otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure + 452, // 227: otg.BgpSrteSegment.type_a:type_name -> otg.BgpSrteSegmentATypeSubTlv + 453, // 228: otg.BgpSrteSegment.type_b:type_name -> otg.BgpSrteSegmentBTypeSubTlv + 454, // 229: otg.BgpSrteSegment.type_c:type_name -> otg.BgpSrteSegmentCTypeSubTlv + 455, // 230: otg.BgpSrteSegment.type_d:type_name -> otg.BgpSrteSegmentDTypeSubTlv + 456, // 231: otg.BgpSrteSegment.type_e:type_name -> otg.BgpSrteSegmentETypeSubTlv + 457, // 232: otg.BgpSrteSegment.type_f:type_name -> otg.BgpSrteSegmentFTypeSubTlv + 458, // 233: otg.BgpSrteSegment.type_g:type_name -> otg.BgpSrteSegmentGTypeSubTlv + 459, // 234: otg.BgpSrteSegment.type_h:type_name -> otg.BgpSrteSegmentHTypeSubTlv + 460, // 235: otg.BgpSrteSegment.type_i:type_name -> otg.BgpSrteSegmentITypeSubTlv + 461, // 236: otg.BgpSrteSegment.type_j:type_name -> otg.BgpSrteSegmentJTypeSubTlv + 462, // 237: otg.BgpSrteSegment.type_k:type_name -> otg.BgpSrteSegmentKTypeSubTlv + 451, // 238: otg.BgpSrteSegmentBTypeSubTlv.srv6_sid_endpoint_behavior:type_name -> otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure + 450, // 239: otg.BgpSrteSegmentCTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid + 450, // 240: otg.BgpSrteSegmentDTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid + 450, // 241: otg.BgpSrteSegmentETypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid + 450, // 242: otg.BgpSrteSegmentFTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid + 450, // 243: otg.BgpSrteSegmentGTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid + 450, // 244: otg.BgpSrteSegmentHTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid + 451, // 245: otg.BgpSrteSegmentITypeSubTlv.srv6_sid_endpoint_behavior:type_name -> otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure + 451, // 246: otg.BgpSrteSegmentJTypeSubTlv.srv6_sid_endpoint_behavior:type_name -> otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure + 451, // 247: otg.BgpSrteSegmentKTypeSubTlv.srv6_sid_endpoint_behavior:type_name -> otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure 53, // 248: otg.BgpSrteV6Policy.next_hop_mode:type_name -> otg.BgpSrteV6Policy.NextHopMode.Enum 54, // 249: otg.BgpSrteV6Policy.next_hop_address_type:type_name -> otg.BgpSrteV6Policy.NextHopAddressType.Enum - 388, // 250: otg.BgpSrteV6Policy.advanced:type_name -> otg.BgpRouteAdvanced - 403, // 251: otg.BgpSrteV6Policy.add_path:type_name -> otg.BgpAddPath - 391, // 252: otg.BgpSrteV6Policy.as_path:type_name -> otg.BgpAsPath - 389, // 253: otg.BgpSrteV6Policy.communities:type_name -> otg.BgpCommunity - 390, // 254: otg.BgpSrteV6Policy.extcommunities:type_name -> otg.BgpExtCommunity - 448, // 255: otg.BgpSrteV6Policy.tunnel_tlvs:type_name -> otg.BgpSrteV6TunnelTlv - 425, // 256: otg.BgpSrteV6TunnelTlv.remote_endpoint_sub_tlv:type_name -> otg.BgpSrteRemoteEndpointSubTlv - 426, // 257: otg.BgpSrteV6TunnelTlv.color_sub_tlv:type_name -> otg.BgpSrteColorSubTlv - 427, // 258: otg.BgpSrteV6TunnelTlv.binding_sub_tlv:type_name -> otg.BgpSrteBindingSubTlv - 428, // 259: otg.BgpSrteV6TunnelTlv.preference_sub_tlv:type_name -> otg.BgpSrtePreferenceSubTlv - 429, // 260: otg.BgpSrteV6TunnelTlv.policy_priority_sub_tlv:type_name -> otg.BgpSrtePolicyPrioritySubTlv - 430, // 261: otg.BgpSrteV6TunnelTlv.policy_name_sub_tlv:type_name -> otg.BgpSrtePolicyNameSubTlv - 431, // 262: otg.BgpSrteV6TunnelTlv.explicit_null_label_policy_sub_tlv:type_name -> otg.BgpSrteExplicitNullLabelPolicySubTlv - 432, // 263: otg.BgpSrteV6TunnelTlv.segment_lists:type_name -> otg.BgpSrteSegmentList - 452, // 264: otg.BgpV6Peer.segment_routing:type_name -> otg.BgpV6SegmentRouting - 453, // 265: otg.BgpV6Peer.evpn_ethernet_segments:type_name -> otg.BgpV6EthernetSegment + 404, // 250: otg.BgpSrteV6Policy.advanced:type_name -> otg.BgpRouteAdvanced + 419, // 251: otg.BgpSrteV6Policy.add_path:type_name -> otg.BgpAddPath + 407, // 252: otg.BgpSrteV6Policy.as_path:type_name -> otg.BgpAsPath + 405, // 253: otg.BgpSrteV6Policy.communities:type_name -> otg.BgpCommunity + 406, // 254: otg.BgpSrteV6Policy.extcommunities:type_name -> otg.BgpExtCommunity + 464, // 255: otg.BgpSrteV6Policy.tunnel_tlvs:type_name -> otg.BgpSrteV6TunnelTlv + 441, // 256: otg.BgpSrteV6TunnelTlv.remote_endpoint_sub_tlv:type_name -> otg.BgpSrteRemoteEndpointSubTlv + 442, // 257: otg.BgpSrteV6TunnelTlv.color_sub_tlv:type_name -> otg.BgpSrteColorSubTlv + 443, // 258: otg.BgpSrteV6TunnelTlv.binding_sub_tlv:type_name -> otg.BgpSrteBindingSubTlv + 444, // 259: otg.BgpSrteV6TunnelTlv.preference_sub_tlv:type_name -> otg.BgpSrtePreferenceSubTlv + 445, // 260: otg.BgpSrteV6TunnelTlv.policy_priority_sub_tlv:type_name -> otg.BgpSrtePolicyPrioritySubTlv + 446, // 261: otg.BgpSrteV6TunnelTlv.policy_name_sub_tlv:type_name -> otg.BgpSrtePolicyNameSubTlv + 447, // 262: otg.BgpSrteV6TunnelTlv.explicit_null_label_policy_sub_tlv:type_name -> otg.BgpSrteExplicitNullLabelPolicySubTlv + 448, // 263: otg.BgpSrteV6TunnelTlv.segment_lists:type_name -> otg.BgpSrteSegmentList + 468, // 264: otg.BgpV6Peer.segment_routing:type_name -> otg.BgpV6SegmentRouting + 469, // 265: otg.BgpV6Peer.evpn_ethernet_segments:type_name -> otg.BgpV6EthernetSegment 55, // 266: otg.BgpV6Peer.as_type:type_name -> otg.BgpV6Peer.AsType.Enum 56, // 267: otg.BgpV6Peer.as_number_width:type_name -> otg.BgpV6Peer.AsNumberWidth.Enum - 399, // 268: otg.BgpV6Peer.advanced:type_name -> otg.BgpAdvanced - 400, // 269: otg.BgpV6Peer.capability:type_name -> otg.BgpCapability - 401, // 270: otg.BgpV6Peer.learned_information_filter:type_name -> otg.BgpLearnedInformationFilter - 402, // 271: otg.BgpV6Peer.v4_routes:type_name -> otg.BgpV4RouteRange - 422, // 272: otg.BgpV6Peer.v6_routes:type_name -> otg.BgpV6RouteRange - 423, // 273: otg.BgpV6Peer.v4_srte_policies:type_name -> otg.BgpSrteV4Policy - 447, // 274: otg.BgpV6Peer.v6_srte_policies:type_name -> otg.BgpSrteV6Policy - 449, // 275: otg.BgpV6Peer.graceful_restart:type_name -> otg.BgpGracefulRestart - 450, // 276: otg.BgpV6Interface.peers:type_name -> otg.BgpV6Peer - 387, // 277: otg.BgpV6EthernetSegment.df_election:type_name -> otg.BgpEthernetSegmentDfElection - 454, // 278: otg.BgpV6EthernetSegment.evis:type_name -> otg.BgpV6EvpnEvis + 415, // 268: otg.BgpV6Peer.advanced:type_name -> otg.BgpAdvanced + 416, // 269: otg.BgpV6Peer.capability:type_name -> otg.BgpCapability + 417, // 270: otg.BgpV6Peer.learned_information_filter:type_name -> otg.BgpLearnedInformationFilter + 418, // 271: otg.BgpV6Peer.v4_routes:type_name -> otg.BgpV4RouteRange + 438, // 272: otg.BgpV6Peer.v6_routes:type_name -> otg.BgpV6RouteRange + 439, // 273: otg.BgpV6Peer.v4_srte_policies:type_name -> otg.BgpSrteV4Policy + 463, // 274: otg.BgpV6Peer.v6_srte_policies:type_name -> otg.BgpSrteV6Policy + 465, // 275: otg.BgpV6Peer.graceful_restart:type_name -> otg.BgpGracefulRestart + 466, // 276: otg.BgpV6Interface.peers:type_name -> otg.BgpV6Peer + 403, // 277: otg.BgpV6EthernetSegment.df_election:type_name -> otg.BgpEthernetSegmentDfElection + 470, // 278: otg.BgpV6EthernetSegment.evis:type_name -> otg.BgpV6EvpnEvis 57, // 279: otg.BgpV6EthernetSegment.active_mode:type_name -> otg.BgpV6EthernetSegment.ActiveMode.Enum - 388, // 280: otg.BgpV6EthernetSegment.advanced:type_name -> otg.BgpRouteAdvanced - 389, // 281: otg.BgpV6EthernetSegment.communities:type_name -> otg.BgpCommunity - 390, // 282: otg.BgpV6EthernetSegment.ext_communities:type_name -> otg.BgpExtCommunity - 391, // 283: otg.BgpV6EthernetSegment.as_path:type_name -> otg.BgpAsPath + 404, // 280: otg.BgpV6EthernetSegment.advanced:type_name -> otg.BgpRouteAdvanced + 405, // 281: otg.BgpV6EthernetSegment.communities:type_name -> otg.BgpCommunity + 406, // 282: otg.BgpV6EthernetSegment.ext_communities:type_name -> otg.BgpExtCommunity + 407, // 283: otg.BgpV6EthernetSegment.as_path:type_name -> otg.BgpAsPath 58, // 284: otg.BgpV6EvpnEvis.choice:type_name -> otg.BgpV6EvpnEvis.Choice.Enum - 455, // 285: otg.BgpV6EvpnEvis.evi_vxlan:type_name -> otg.BgpV6EviVxlan - 456, // 286: otg.BgpV6EviVxlan.broadcast_domains:type_name -> otg.BgpV6EviVxlanBroadcastDomain + 471, // 285: otg.BgpV6EvpnEvis.evi_vxlan:type_name -> otg.BgpV6EviVxlan + 472, // 286: otg.BgpV6EviVxlan.broadcast_domains:type_name -> otg.BgpV6EviVxlanBroadcastDomain 59, // 287: otg.BgpV6EviVxlan.replication_type:type_name -> otg.BgpV6EviVxlan.ReplicationType.Enum - 397, // 288: otg.BgpV6EviVxlan.route_distinguisher:type_name -> otg.BgpRouteDistinguisher - 398, // 289: otg.BgpV6EviVxlan.route_target_export:type_name -> otg.BgpRouteTarget - 398, // 290: otg.BgpV6EviVxlan.route_target_import:type_name -> otg.BgpRouteTarget - 398, // 291: otg.BgpV6EviVxlan.l3_route_target_export:type_name -> otg.BgpRouteTarget - 398, // 292: otg.BgpV6EviVxlan.l3_route_target_import:type_name -> otg.BgpRouteTarget - 388, // 293: otg.BgpV6EviVxlan.advanced:type_name -> otg.BgpRouteAdvanced - 389, // 294: otg.BgpV6EviVxlan.communities:type_name -> otg.BgpCommunity - 390, // 295: otg.BgpV6EviVxlan.ext_communities:type_name -> otg.BgpExtCommunity - 391, // 296: otg.BgpV6EviVxlan.as_path:type_name -> otg.BgpAsPath - 396, // 297: otg.BgpV6EviVxlanBroadcastDomain.cmac_ip_range:type_name -> otg.BgpCMacIpRange - 458, // 298: otg.DeviceVxlan.v4_tunnels:type_name -> otg.VxlanV4Tunnel - 459, // 299: otg.DeviceVxlan.v6_tunnels:type_name -> otg.VxlanV6Tunnel - 460, // 300: otg.VxlanV4Tunnel.destination_ip_mode:type_name -> otg.VxlanV4TunnelDestinationIPMode - 461, // 301: otg.VxlanV6Tunnel.destination_ip_mode:type_name -> otg.VxlanV6TunnelDestinationIPMode + 413, // 288: otg.BgpV6EviVxlan.route_distinguisher:type_name -> otg.BgpRouteDistinguisher + 414, // 289: otg.BgpV6EviVxlan.route_target_export:type_name -> otg.BgpRouteTarget + 414, // 290: otg.BgpV6EviVxlan.route_target_import:type_name -> otg.BgpRouteTarget + 414, // 291: otg.BgpV6EviVxlan.l3_route_target_export:type_name -> otg.BgpRouteTarget + 414, // 292: otg.BgpV6EviVxlan.l3_route_target_import:type_name -> otg.BgpRouteTarget + 404, // 293: otg.BgpV6EviVxlan.advanced:type_name -> otg.BgpRouteAdvanced + 405, // 294: otg.BgpV6EviVxlan.communities:type_name -> otg.BgpCommunity + 406, // 295: otg.BgpV6EviVxlan.ext_communities:type_name -> otg.BgpExtCommunity + 407, // 296: otg.BgpV6EviVxlan.as_path:type_name -> otg.BgpAsPath + 412, // 297: otg.BgpV6EviVxlanBroadcastDomain.cmac_ip_range:type_name -> otg.BgpCMacIpRange + 474, // 298: otg.DeviceVxlan.v4_tunnels:type_name -> otg.VxlanV4Tunnel + 475, // 299: otg.DeviceVxlan.v6_tunnels:type_name -> otg.VxlanV6Tunnel + 476, // 300: otg.VxlanV4Tunnel.destination_ip_mode:type_name -> otg.VxlanV4TunnelDestinationIPMode + 477, // 301: otg.VxlanV6Tunnel.destination_ip_mode:type_name -> otg.VxlanV6TunnelDestinationIPMode 60, // 302: otg.VxlanV4TunnelDestinationIPMode.choice:type_name -> otg.VxlanV4TunnelDestinationIPMode.Choice.Enum - 462, // 303: otg.VxlanV4TunnelDestinationIPMode.unicast:type_name -> otg.VxlanV4TunnelDestinationIPModeUnicast - 467, // 304: otg.VxlanV4TunnelDestinationIPMode.multicast:type_name -> otg.VxlanV4TunnelDestinationIPModeMulticast + 478, // 303: otg.VxlanV4TunnelDestinationIPMode.unicast:type_name -> otg.VxlanV4TunnelDestinationIPModeUnicast + 483, // 304: otg.VxlanV4TunnelDestinationIPMode.multicast:type_name -> otg.VxlanV4TunnelDestinationIPModeMulticast 61, // 305: otg.VxlanV6TunnelDestinationIPMode.choice:type_name -> otg.VxlanV6TunnelDestinationIPMode.Choice.Enum - 463, // 306: otg.VxlanV6TunnelDestinationIPMode.unicast:type_name -> otg.VxlanV6TunnelDestinationIPModeUnicast - 468, // 307: otg.VxlanV6TunnelDestinationIPMode.multicast:type_name -> otg.VxlanV6TunnelDestinationIPModeMulticast - 465, // 308: otg.VxlanV4TunnelDestinationIPModeUnicast.vteps:type_name -> otg.VxlanV4TunnelDestinationIPModeUnicastVtep - 466, // 309: otg.VxlanV6TunnelDestinationIPModeUnicast.vteps:type_name -> otg.VxlanV6TunnelDestinationIPModeUnicastVtep - 464, // 310: otg.VxlanV4TunnelDestinationIPModeUnicastVtep.arp_suppression_cache:type_name -> otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - 464, // 311: otg.VxlanV6TunnelDestinationIPModeUnicastVtep.arp_suppression_cache:type_name -> otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - 470, // 312: otg.DeviceRsvp.ipv4_interfaces:type_name -> otg.RsvpIpv4Interface - 471, // 313: otg.DeviceRsvp.lsp_ipv4_interfaces:type_name -> otg.RsvpLspIpv4Interface - 472, // 314: otg.RsvpLspIpv4Interface.p2p_egress_ipv4_lsps:type_name -> otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp - 473, // 315: otg.RsvpLspIpv4Interface.p2p_ingress_ipv4_lsps:type_name -> otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp + 479, // 306: otg.VxlanV6TunnelDestinationIPMode.unicast:type_name -> otg.VxlanV6TunnelDestinationIPModeUnicast + 484, // 307: otg.VxlanV6TunnelDestinationIPMode.multicast:type_name -> otg.VxlanV6TunnelDestinationIPModeMulticast + 481, // 308: otg.VxlanV4TunnelDestinationIPModeUnicast.vteps:type_name -> otg.VxlanV4TunnelDestinationIPModeUnicastVtep + 482, // 309: otg.VxlanV6TunnelDestinationIPModeUnicast.vteps:type_name -> otg.VxlanV6TunnelDestinationIPModeUnicastVtep + 480, // 310: otg.VxlanV4TunnelDestinationIPModeUnicastVtep.arp_suppression_cache:type_name -> otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + 480, // 311: otg.VxlanV6TunnelDestinationIPModeUnicastVtep.arp_suppression_cache:type_name -> otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + 486, // 312: otg.DeviceRsvp.ipv4_interfaces:type_name -> otg.RsvpIpv4Interface + 487, // 313: otg.DeviceRsvp.lsp_ipv4_interfaces:type_name -> otg.RsvpLspIpv4Interface + 488, // 314: otg.RsvpLspIpv4Interface.p2p_egress_ipv4_lsps:type_name -> otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp + 489, // 315: otg.RsvpLspIpv4Interface.p2p_ingress_ipv4_lsps:type_name -> otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp 62, // 316: otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.reservation_style:type_name -> otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ReservationStyle.Enum - 474, // 317: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp.session_attribute:type_name -> otg.RsvpSessionAttribute - 476, // 318: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp.tspec:type_name -> otg.RsvpTspec - 477, // 319: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp.fast_reroute:type_name -> otg.RsvpFastReroute - 478, // 320: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp.ero:type_name -> otg.RsvpEro - 475, // 321: otg.RsvpSessionAttribute.resource_affinities:type_name -> otg.RsvpResourceAffinities + 490, // 317: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp.session_attribute:type_name -> otg.RsvpSessionAttribute + 492, // 318: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp.tspec:type_name -> otg.RsvpTspec + 493, // 319: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp.fast_reroute:type_name -> otg.RsvpFastReroute + 494, // 320: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp.ero:type_name -> otg.RsvpEro + 491, // 321: otg.RsvpSessionAttribute.resource_affinities:type_name -> otg.RsvpResourceAffinities 63, // 322: otg.RsvpEro.prepend_neighbor_ip:type_name -> otg.RsvpEro.PrependNeighborIp.Enum - 479, // 323: otg.RsvpEro.subobjects:type_name -> otg.RsvpEroSubobject + 495, // 323: otg.RsvpEro.subobjects:type_name -> otg.RsvpEroSubobject 64, // 324: otg.RsvpEroSubobject.type:type_name -> otg.RsvpEroSubobject.Type.Enum 65, // 325: otg.RsvpEroSubobject.hop_type:type_name -> otg.RsvpEroSubobject.HopType.Enum - 481, // 326: otg.Flow.tx_rx:type_name -> otg.FlowTxRx - 484, // 327: otg.Flow.packet:type_name -> otg.FlowHeader - 484, // 328: otg.Flow.egress_packet:type_name -> otg.FlowHeader - 515, // 329: otg.Flow.size:type_name -> otg.FlowSize - 520, // 330: otg.Flow.rate:type_name -> otg.FlowRate - 521, // 331: otg.Flow.duration:type_name -> otg.FlowDuration - 528, // 332: otg.Flow.metrics:type_name -> otg.FlowMetrics + 497, // 326: otg.Flow.tx_rx:type_name -> otg.FlowTxRx + 500, // 327: otg.Flow.packet:type_name -> otg.FlowHeader + 500, // 328: otg.Flow.egress_packet:type_name -> otg.FlowHeader + 537, // 329: otg.Flow.size:type_name -> otg.FlowSize + 542, // 330: otg.Flow.rate:type_name -> otg.FlowRate + 543, // 331: otg.Flow.duration:type_name -> otg.FlowDuration + 550, // 332: otg.Flow.metrics:type_name -> otg.FlowMetrics 66, // 333: otg.FlowTxRx.choice:type_name -> otg.FlowTxRx.Choice.Enum - 482, // 334: otg.FlowTxRx.port:type_name -> otg.FlowPort - 483, // 335: otg.FlowTxRx.device:type_name -> otg.FlowRouter + 498, // 334: otg.FlowTxRx.port:type_name -> otg.FlowPort + 499, // 335: otg.FlowTxRx.device:type_name -> otg.FlowRouter 67, // 336: otg.FlowRouter.mode:type_name -> otg.FlowRouter.Mode.Enum 68, // 337: otg.FlowHeader.choice:type_name -> otg.FlowHeader.Choice.Enum - 485, // 338: otg.FlowHeader.custom:type_name -> otg.FlowCustom - 487, // 339: otg.FlowHeader.ethernet:type_name -> otg.FlowEthernet - 488, // 340: otg.FlowHeader.vlan:type_name -> otg.FlowVlan - 489, // 341: otg.FlowHeader.vxlan:type_name -> otg.FlowVxlan - 490, // 342: otg.FlowHeader.ipv4:type_name -> otg.FlowIpv4 - 498, // 343: otg.FlowHeader.ipv6:type_name -> otg.FlowIpv6 - 499, // 344: otg.FlowHeader.pfcpause:type_name -> otg.FlowPfcPause - 500, // 345: otg.FlowHeader.ethernetpause:type_name -> otg.FlowEthernetPause - 501, // 346: otg.FlowHeader.tcp:type_name -> otg.FlowTcp - 502, // 347: otg.FlowHeader.udp:type_name -> otg.FlowUdp - 503, // 348: otg.FlowHeader.gre:type_name -> otg.FlowGre - 504, // 349: otg.FlowHeader.gtpv1:type_name -> otg.FlowGtpv1 - 506, // 350: otg.FlowHeader.gtpv2:type_name -> otg.FlowGtpv2 - 507, // 351: otg.FlowHeader.arp:type_name -> otg.FlowArp - 508, // 352: otg.FlowHeader.icmp:type_name -> otg.FlowIcmp - 510, // 353: otg.FlowHeader.icmpv6:type_name -> otg.FlowIcmpv6 - 512, // 354: otg.FlowHeader.ppp:type_name -> otg.FlowPpp - 513, // 355: otg.FlowHeader.igmpv1:type_name -> otg.FlowIgmpv1 - 514, // 356: otg.FlowHeader.mpls:type_name -> otg.FlowMpls - 486, // 357: otg.FlowCustom.metric_tags:type_name -> otg.FlowCustomMetricTag - 658, // 358: otg.FlowEthernet.dst:type_name -> otg.PatternFlowEthernetDst - 661, // 359: otg.FlowEthernet.src:type_name -> otg.PatternFlowEthernetSrc - 664, // 360: otg.FlowEthernet.ether_type:type_name -> otg.PatternFlowEthernetEtherType - 667, // 361: otg.FlowEthernet.pfc_queue:type_name -> otg.PatternFlowEthernetPfcQueue - 670, // 362: otg.FlowVlan.priority:type_name -> otg.PatternFlowVlanPriority - 673, // 363: otg.FlowVlan.cfi:type_name -> otg.PatternFlowVlanCfi - 676, // 364: otg.FlowVlan.id:type_name -> otg.PatternFlowVlanId - 679, // 365: otg.FlowVlan.tpid:type_name -> otg.PatternFlowVlanTpid - 682, // 366: otg.FlowVxlan.flags:type_name -> otg.PatternFlowVxlanFlags - 685, // 367: otg.FlowVxlan.reserved0:type_name -> otg.PatternFlowVxlanReserved0 - 688, // 368: otg.FlowVxlan.vni:type_name -> otg.PatternFlowVxlanVni - 691, // 369: otg.FlowVxlan.reserved1:type_name -> otg.PatternFlowVxlanReserved1 - 694, // 370: otg.FlowIpv4.version:type_name -> otg.PatternFlowIpv4Version - 697, // 371: otg.FlowIpv4.header_length:type_name -> otg.PatternFlowIpv4HeaderLength - 495, // 372: otg.FlowIpv4.priority:type_name -> otg.FlowIpv4Priority - 700, // 373: otg.FlowIpv4.total_length:type_name -> otg.PatternFlowIpv4TotalLength - 703, // 374: otg.FlowIpv4.identification:type_name -> otg.PatternFlowIpv4Identification - 706, // 375: otg.FlowIpv4.reserved:type_name -> otg.PatternFlowIpv4Reserved - 709, // 376: otg.FlowIpv4.dont_fragment:type_name -> otg.PatternFlowIpv4DontFragment - 712, // 377: otg.FlowIpv4.more_fragments:type_name -> otg.PatternFlowIpv4MoreFragments - 715, // 378: otg.FlowIpv4.fragment_offset:type_name -> otg.PatternFlowIpv4FragmentOffset - 718, // 379: otg.FlowIpv4.time_to_live:type_name -> otg.PatternFlowIpv4TimeToLive - 721, // 380: otg.FlowIpv4.protocol:type_name -> otg.PatternFlowIpv4Protocol - 722, // 381: otg.FlowIpv4.header_checksum:type_name -> otg.PatternFlowIpv4HeaderChecksum - 725, // 382: otg.FlowIpv4.src:type_name -> otg.PatternFlowIpv4Src - 728, // 383: otg.FlowIpv4.dst:type_name -> otg.PatternFlowIpv4Dst - 491, // 384: otg.FlowIpv4.options:type_name -> otg.FlowIpv4Options - 69, // 385: otg.FlowIpv4Options.choice:type_name -> otg.FlowIpv4Options.Choice.Enum - 492, // 386: otg.FlowIpv4Options.custom:type_name -> otg.FlowIpv4OptionsCustom - 493, // 387: otg.FlowIpv4OptionsCustom.type:type_name -> otg.FlowIpv4OptionsCustomType - 494, // 388: otg.FlowIpv4OptionsCustom.length:type_name -> otg.FlowIpv4OptionsCustomLength - 730, // 389: otg.FlowIpv4OptionsCustomType.copied_flag:type_name -> otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag - 732, // 390: otg.FlowIpv4OptionsCustomType.option_class:type_name -> otg.PatternFlowIpv4OptionsCustomTypeOptionClass - 734, // 391: otg.FlowIpv4OptionsCustomType.option_number:type_name -> otg.PatternFlowIpv4OptionsCustomTypeOptionNumber - 70, // 392: otg.FlowIpv4OptionsCustomLength.choice:type_name -> otg.FlowIpv4OptionsCustomLength.Choice.Enum - 71, // 393: otg.FlowIpv4Priority.choice:type_name -> otg.FlowIpv4Priority.Choice.Enum - 737, // 394: otg.FlowIpv4Priority.raw:type_name -> otg.PatternFlowIpv4PriorityRaw - 497, // 395: otg.FlowIpv4Priority.tos:type_name -> otg.FlowIpv4Tos - 496, // 396: otg.FlowIpv4Priority.dscp:type_name -> otg.FlowIpv4Dscp - 740, // 397: otg.FlowIpv4Dscp.phb:type_name -> otg.PatternFlowIpv4DscpPhb - 743, // 398: otg.FlowIpv4Dscp.ecn:type_name -> otg.PatternFlowIpv4DscpEcn - 746, // 399: otg.FlowIpv4Tos.precedence:type_name -> otg.PatternFlowIpv4TosPrecedence - 749, // 400: otg.FlowIpv4Tos.delay:type_name -> otg.PatternFlowIpv4TosDelay - 752, // 401: otg.FlowIpv4Tos.throughput:type_name -> otg.PatternFlowIpv4TosThroughput - 755, // 402: otg.FlowIpv4Tos.reliability:type_name -> otg.PatternFlowIpv4TosReliability - 758, // 403: otg.FlowIpv4Tos.monetary:type_name -> otg.PatternFlowIpv4TosMonetary - 761, // 404: otg.FlowIpv4Tos.unused:type_name -> otg.PatternFlowIpv4TosUnused - 764, // 405: otg.FlowIpv6.version:type_name -> otg.PatternFlowIpv6Version - 767, // 406: otg.FlowIpv6.traffic_class:type_name -> otg.PatternFlowIpv6TrafficClass - 770, // 407: otg.FlowIpv6.flow_label:type_name -> otg.PatternFlowIpv6FlowLabel - 773, // 408: otg.FlowIpv6.payload_length:type_name -> otg.PatternFlowIpv6PayloadLength - 776, // 409: otg.FlowIpv6.next_header:type_name -> otg.PatternFlowIpv6NextHeader - 779, // 410: otg.FlowIpv6.hop_limit:type_name -> otg.PatternFlowIpv6HopLimit - 782, // 411: otg.FlowIpv6.src:type_name -> otg.PatternFlowIpv6Src - 785, // 412: otg.FlowIpv6.dst:type_name -> otg.PatternFlowIpv6Dst - 788, // 413: otg.FlowPfcPause.dst:type_name -> otg.PatternFlowPfcPauseDst - 791, // 414: otg.FlowPfcPause.src:type_name -> otg.PatternFlowPfcPauseSrc - 794, // 415: otg.FlowPfcPause.ether_type:type_name -> otg.PatternFlowPfcPauseEtherType - 797, // 416: otg.FlowPfcPause.control_op_code:type_name -> otg.PatternFlowPfcPauseControlOpCode - 800, // 417: otg.FlowPfcPause.class_enable_vector:type_name -> otg.PatternFlowPfcPauseClassEnableVector - 803, // 418: otg.FlowPfcPause.pause_class_0:type_name -> otg.PatternFlowPfcPausePauseClass0 - 806, // 419: otg.FlowPfcPause.pause_class_1:type_name -> otg.PatternFlowPfcPausePauseClass1 - 809, // 420: otg.FlowPfcPause.pause_class_2:type_name -> otg.PatternFlowPfcPausePauseClass2 - 812, // 421: otg.FlowPfcPause.pause_class_3:type_name -> otg.PatternFlowPfcPausePauseClass3 - 815, // 422: otg.FlowPfcPause.pause_class_4:type_name -> otg.PatternFlowPfcPausePauseClass4 - 818, // 423: otg.FlowPfcPause.pause_class_5:type_name -> otg.PatternFlowPfcPausePauseClass5 - 821, // 424: otg.FlowPfcPause.pause_class_6:type_name -> otg.PatternFlowPfcPausePauseClass6 - 824, // 425: otg.FlowPfcPause.pause_class_7:type_name -> otg.PatternFlowPfcPausePauseClass7 - 827, // 426: otg.FlowEthernetPause.dst:type_name -> otg.PatternFlowEthernetPauseDst - 830, // 427: otg.FlowEthernetPause.src:type_name -> otg.PatternFlowEthernetPauseSrc - 833, // 428: otg.FlowEthernetPause.ether_type:type_name -> otg.PatternFlowEthernetPauseEtherType - 836, // 429: otg.FlowEthernetPause.control_op_code:type_name -> otg.PatternFlowEthernetPauseControlOpCode - 839, // 430: otg.FlowEthernetPause.time:type_name -> otg.PatternFlowEthernetPauseTime - 842, // 431: otg.FlowTcp.src_port:type_name -> otg.PatternFlowTcpSrcPort - 845, // 432: otg.FlowTcp.dst_port:type_name -> otg.PatternFlowTcpDstPort - 848, // 433: otg.FlowTcp.seq_num:type_name -> otg.PatternFlowTcpSeqNum - 851, // 434: otg.FlowTcp.ack_num:type_name -> otg.PatternFlowTcpAckNum - 854, // 435: otg.FlowTcp.data_offset:type_name -> otg.PatternFlowTcpDataOffset - 857, // 436: otg.FlowTcp.ecn_ns:type_name -> otg.PatternFlowTcpEcnNs - 860, // 437: otg.FlowTcp.ecn_cwr:type_name -> otg.PatternFlowTcpEcnCwr - 863, // 438: otg.FlowTcp.ecn_echo:type_name -> otg.PatternFlowTcpEcnEcho - 866, // 439: otg.FlowTcp.ctl_urg:type_name -> otg.PatternFlowTcpCtlUrg - 869, // 440: otg.FlowTcp.ctl_ack:type_name -> otg.PatternFlowTcpCtlAck - 872, // 441: otg.FlowTcp.ctl_psh:type_name -> otg.PatternFlowTcpCtlPsh - 875, // 442: otg.FlowTcp.ctl_rst:type_name -> otg.PatternFlowTcpCtlRst - 878, // 443: otg.FlowTcp.ctl_syn:type_name -> otg.PatternFlowTcpCtlSyn - 881, // 444: otg.FlowTcp.ctl_fin:type_name -> otg.PatternFlowTcpCtlFin - 884, // 445: otg.FlowTcp.window:type_name -> otg.PatternFlowTcpWindow - 887, // 446: otg.FlowUdp.src_port:type_name -> otg.PatternFlowUdpSrcPort - 890, // 447: otg.FlowUdp.dst_port:type_name -> otg.PatternFlowUdpDstPort - 893, // 448: otg.FlowUdp.length:type_name -> otg.PatternFlowUdpLength - 894, // 449: otg.FlowUdp.checksum:type_name -> otg.PatternFlowUdpChecksum - 897, // 450: otg.FlowGre.checksum_present:type_name -> otg.PatternFlowGreChecksumPresent - 900, // 451: otg.FlowGre.reserved0:type_name -> otg.PatternFlowGreReserved0 - 903, // 452: otg.FlowGre.version:type_name -> otg.PatternFlowGreVersion - 906, // 453: otg.FlowGre.protocol:type_name -> otg.PatternFlowGreProtocol - 907, // 454: otg.FlowGre.checksum:type_name -> otg.PatternFlowGreChecksum - 910, // 455: otg.FlowGre.reserved1:type_name -> otg.PatternFlowGreReserved1 - 913, // 456: otg.FlowGtpv1.version:type_name -> otg.PatternFlowGtpv1Version - 916, // 457: otg.FlowGtpv1.protocol_type:type_name -> otg.PatternFlowGtpv1ProtocolType - 919, // 458: otg.FlowGtpv1.reserved:type_name -> otg.PatternFlowGtpv1Reserved - 922, // 459: otg.FlowGtpv1.e_flag:type_name -> otg.PatternFlowGtpv1EFlag - 925, // 460: otg.FlowGtpv1.s_flag:type_name -> otg.PatternFlowGtpv1SFlag - 928, // 461: otg.FlowGtpv1.pn_flag:type_name -> otg.PatternFlowGtpv1PnFlag - 931, // 462: otg.FlowGtpv1.message_type:type_name -> otg.PatternFlowGtpv1MessageType - 934, // 463: otg.FlowGtpv1.message_length:type_name -> otg.PatternFlowGtpv1MessageLength - 937, // 464: otg.FlowGtpv1.teid:type_name -> otg.PatternFlowGtpv1Teid - 940, // 465: otg.FlowGtpv1.squence_number:type_name -> otg.PatternFlowGtpv1SquenceNumber - 943, // 466: otg.FlowGtpv1.n_pdu_number:type_name -> otg.PatternFlowGtpv1NPduNumber - 946, // 467: otg.FlowGtpv1.next_extension_header_type:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderType - 505, // 468: otg.FlowGtpv1.extension_headers:type_name -> otg.FlowGtpExtension - 949, // 469: otg.FlowGtpExtension.extension_length:type_name -> otg.PatternFlowGtpExtensionExtensionLength - 952, // 470: otg.FlowGtpExtension.contents:type_name -> otg.PatternFlowGtpExtensionContents - 955, // 471: otg.FlowGtpExtension.next_extension_header:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeader - 958, // 472: otg.FlowGtpv2.version:type_name -> otg.PatternFlowGtpv2Version - 961, // 473: otg.FlowGtpv2.piggybacking_flag:type_name -> otg.PatternFlowGtpv2PiggybackingFlag - 964, // 474: otg.FlowGtpv2.teid_flag:type_name -> otg.PatternFlowGtpv2TeidFlag - 967, // 475: otg.FlowGtpv2.spare1:type_name -> otg.PatternFlowGtpv2Spare1 - 970, // 476: otg.FlowGtpv2.message_type:type_name -> otg.PatternFlowGtpv2MessageType - 973, // 477: otg.FlowGtpv2.message_length:type_name -> otg.PatternFlowGtpv2MessageLength - 976, // 478: otg.FlowGtpv2.teid:type_name -> otg.PatternFlowGtpv2Teid - 979, // 479: otg.FlowGtpv2.sequence_number:type_name -> otg.PatternFlowGtpv2SequenceNumber - 982, // 480: otg.FlowGtpv2.spare2:type_name -> otg.PatternFlowGtpv2Spare2 - 985, // 481: otg.FlowArp.hardware_type:type_name -> otg.PatternFlowArpHardwareType - 988, // 482: otg.FlowArp.protocol_type:type_name -> otg.PatternFlowArpProtocolType - 991, // 483: otg.FlowArp.hardware_length:type_name -> otg.PatternFlowArpHardwareLength - 994, // 484: otg.FlowArp.protocol_length:type_name -> otg.PatternFlowArpProtocolLength - 997, // 485: otg.FlowArp.operation:type_name -> otg.PatternFlowArpOperation - 1000, // 486: otg.FlowArp.sender_hardware_addr:type_name -> otg.PatternFlowArpSenderHardwareAddr - 1003, // 487: otg.FlowArp.sender_protocol_addr:type_name -> otg.PatternFlowArpSenderProtocolAddr - 1006, // 488: otg.FlowArp.target_hardware_addr:type_name -> otg.PatternFlowArpTargetHardwareAddr - 1009, // 489: otg.FlowArp.target_protocol_addr:type_name -> otg.PatternFlowArpTargetProtocolAddr - 72, // 490: otg.FlowIcmp.choice:type_name -> otg.FlowIcmp.Choice.Enum - 509, // 491: otg.FlowIcmp.echo:type_name -> otg.FlowIcmpEcho - 1012, // 492: otg.FlowIcmpEcho.type:type_name -> otg.PatternFlowIcmpEchoType - 1015, // 493: otg.FlowIcmpEcho.code:type_name -> otg.PatternFlowIcmpEchoCode - 1016, // 494: otg.FlowIcmpEcho.checksum:type_name -> otg.PatternFlowIcmpEchoChecksum - 1019, // 495: otg.FlowIcmpEcho.identifier:type_name -> otg.PatternFlowIcmpEchoIdentifier - 1022, // 496: otg.FlowIcmpEcho.sequence_number:type_name -> otg.PatternFlowIcmpEchoSequenceNumber - 73, // 497: otg.FlowIcmpv6.choice:type_name -> otg.FlowIcmpv6.Choice.Enum - 511, // 498: otg.FlowIcmpv6.echo:type_name -> otg.FlowIcmpv6Echo - 1032, // 499: otg.FlowIcmpv6Echo.type:type_name -> otg.PatternFlowIcmpv6EchoType - 1035, // 500: otg.FlowIcmpv6Echo.code:type_name -> otg.PatternFlowIcmpv6EchoCode - 1038, // 501: otg.FlowIcmpv6Echo.identifier:type_name -> otg.PatternFlowIcmpv6EchoIdentifier - 1041, // 502: otg.FlowIcmpv6Echo.sequence_number:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumber - 1042, // 503: otg.FlowIcmpv6Echo.checksum:type_name -> otg.PatternFlowIcmpv6EchoChecksum - 1046, // 504: otg.FlowPpp.address:type_name -> otg.PatternFlowPppAddress - 1049, // 505: otg.FlowPpp.control:type_name -> otg.PatternFlowPppControl - 1052, // 506: otg.FlowPpp.protocol_type:type_name -> otg.PatternFlowPppProtocolType - 1055, // 507: otg.FlowIgmpv1.version:type_name -> otg.PatternFlowIgmpv1Version - 1058, // 508: otg.FlowIgmpv1.type:type_name -> otg.PatternFlowIgmpv1Type - 1061, // 509: otg.FlowIgmpv1.unused:type_name -> otg.PatternFlowIgmpv1Unused - 1062, // 510: otg.FlowIgmpv1.checksum:type_name -> otg.PatternFlowIgmpv1Checksum - 1065, // 511: otg.FlowIgmpv1.group_address:type_name -> otg.PatternFlowIgmpv1GroupAddress - 1068, // 512: otg.FlowMpls.label:type_name -> otg.PatternFlowMplsLabel - 1071, // 513: otg.FlowMpls.traffic_class:type_name -> otg.PatternFlowMplsTrafficClass - 1074, // 514: otg.FlowMpls.bottom_of_stack:type_name -> otg.PatternFlowMplsBottomOfStack - 1077, // 515: otg.FlowMpls.time_to_live:type_name -> otg.PatternFlowMplsTimeToLive - 74, // 516: otg.FlowSize.choice:type_name -> otg.FlowSize.Choice.Enum - 516, // 517: otg.FlowSize.increment:type_name -> otg.FlowSizeIncrement - 517, // 518: otg.FlowSize.random:type_name -> otg.FlowSizeRandom - 518, // 519: otg.FlowSize.weight_pairs:type_name -> otg.FlowSizeWeightPairs - 75, // 520: otg.FlowSizeWeightPairs.choice:type_name -> otg.FlowSizeWeightPairs.Choice.Enum - 76, // 521: otg.FlowSizeWeightPairs.predefined:type_name -> otg.FlowSizeWeightPairs.Predefined.Enum - 519, // 522: otg.FlowSizeWeightPairs.custom:type_name -> otg.FlowSizeWeightPairsCustom - 77, // 523: otg.FlowRate.choice:type_name -> otg.FlowRate.Choice.Enum - 78, // 524: otg.FlowDuration.choice:type_name -> otg.FlowDuration.Choice.Enum - 524, // 525: otg.FlowDuration.fixed_packets:type_name -> otg.FlowFixedPackets - 525, // 526: otg.FlowDuration.fixed_seconds:type_name -> otg.FlowFixedSeconds - 526, // 527: otg.FlowDuration.burst:type_name -> otg.FlowBurst - 522, // 528: otg.FlowDuration.continuous:type_name -> otg.FlowContinuous - 523, // 529: otg.FlowContinuous.delay:type_name -> otg.FlowDelay - 79, // 530: otg.FlowDelay.choice:type_name -> otg.FlowDelay.Choice.Enum - 523, // 531: otg.FlowFixedPackets.delay:type_name -> otg.FlowDelay - 523, // 532: otg.FlowFixedSeconds.delay:type_name -> otg.FlowDelay - 527, // 533: otg.FlowBurst.inter_burst_gap:type_name -> otg.FlowDurationInterBurstGap - 80, // 534: otg.FlowDurationInterBurstGap.choice:type_name -> otg.FlowDurationInterBurstGap.Choice.Enum - 531, // 535: otg.FlowMetrics.rx_tx_ratio:type_name -> otg.FlowRxTxRatio - 529, // 536: otg.FlowMetrics.latency:type_name -> otg.FlowLatencyMetrics - 530, // 537: otg.FlowMetrics.predefined_metric_tags:type_name -> otg.FlowPredefinedTags - 81, // 538: otg.FlowLatencyMetrics.mode:type_name -> otg.FlowLatencyMetrics.Mode.Enum - 82, // 539: otg.FlowRxTxRatio.choice:type_name -> otg.FlowRxTxRatio.Choice.Enum - 532, // 540: otg.FlowRxTxRatio.rx_count:type_name -> otg.FlowRxTxRatioRxCount - 535, // 541: otg.Event.link:type_name -> otg.EventLink - 534, // 542: otg.Event.rx_rate_threshold:type_name -> otg.EventRxRateThreshold - 536, // 543: otg.Event.route_advertise_withdraw:type_name -> otg.EventRouteAdvertiseWithdraw - 83, // 544: otg.EventRequest.type:type_name -> otg.EventRequest.Type.Enum - 537, // 545: otg.EventSubscription.events:type_name -> otg.EventRequest - 540, // 546: otg.Lldp.connection:type_name -> otg.LldpConnection - 541, // 547: otg.Lldp.chassis_id:type_name -> otg.LldpChassisId - 542, // 548: otg.Lldp.port_id:type_name -> otg.LldpPortId - 545, // 549: otg.Lldp.system_name:type_name -> otg.LldpSystemName - 84, // 550: otg.LldpConnection.choice:type_name -> otg.LldpConnection.Choice.Enum - 85, // 551: otg.LldpChassisId.choice:type_name -> otg.LldpChassisId.Choice.Enum - 543, // 552: otg.LldpChassisId.mac_address_subtype:type_name -> otg.LldpChassisMacSubType - 86, // 553: otg.LldpPortId.choice:type_name -> otg.LldpPortId.Choice.Enum - 544, // 554: otg.LldpPortId.interface_name_subtype:type_name -> otg.LldpPortInterfaceNameSubType - 87, // 555: otg.LldpChassisMacSubType.choice:type_name -> otg.LldpChassisMacSubType.Choice.Enum - 88, // 556: otg.LldpPortInterfaceNameSubType.choice:type_name -> otg.LldpPortInterfaceNameSubType.Choice.Enum - 89, // 557: otg.LldpSystemName.choice:type_name -> otg.LldpSystemName.Choice.Enum - 90, // 558: otg.Error.kind:type_name -> otg.Error.Kind.Enum - 91, // 559: otg.ConfigUpdate.choice:type_name -> otg.ConfigUpdate.Choice.Enum - 549, // 560: otg.ConfigUpdate.flows:type_name -> otg.FlowsUpdate - 92, // 561: otg.FlowsUpdate.property_names:type_name -> otg.FlowsUpdate.PropertyNames.Enum - 480, // 562: otg.FlowsUpdate.flows:type_name -> otg.Flow - 93, // 563: otg.ControlState.choice:type_name -> otg.ControlState.Choice.Enum - 551, // 564: otg.ControlState.port:type_name -> otg.StatePort - 553, // 565: otg.ControlState.protocol:type_name -> otg.StateProtocol - 552, // 566: otg.ControlState.traffic:type_name -> otg.StateTraffic - 94, // 567: otg.StatePort.choice:type_name -> otg.StatePort.Choice.Enum - 554, // 568: otg.StatePort.link:type_name -> otg.StatePortLink - 555, // 569: otg.StatePort.capture:type_name -> otg.StatePortCapture - 95, // 570: otg.StateTraffic.choice:type_name -> otg.StateTraffic.Choice.Enum - 556, // 571: otg.StateTraffic.flow_transmit:type_name -> otg.StateTrafficFlowTransmit - 96, // 572: otg.StateProtocol.choice:type_name -> otg.StateProtocol.Choice.Enum - 557, // 573: otg.StateProtocol.all:type_name -> otg.StateProtocolAll - 558, // 574: otg.StateProtocol.route:type_name -> otg.StateProtocolRoute - 559, // 575: otg.StateProtocol.lacp:type_name -> otg.StateProtocolLacp - 562, // 576: otg.StateProtocol.bgp:type_name -> otg.StateProtocolBgp - 564, // 577: otg.StateProtocol.isis:type_name -> otg.StateProtocolIsis - 97, // 578: otg.StatePortLink.state:type_name -> otg.StatePortLink.State.Enum - 98, // 579: otg.StatePortCapture.state:type_name -> otg.StatePortCapture.State.Enum - 99, // 580: otg.StateTrafficFlowTransmit.state:type_name -> otg.StateTrafficFlowTransmit.State.Enum - 100, // 581: otg.StateProtocolAll.state:type_name -> otg.StateProtocolAll.State.Enum - 101, // 582: otg.StateProtocolRoute.state:type_name -> otg.StateProtocolRoute.State.Enum - 102, // 583: otg.StateProtocolLacp.choice:type_name -> otg.StateProtocolLacp.Choice.Enum - 560, // 584: otg.StateProtocolLacp.admin:type_name -> otg.StateProtocolLacpAdmin - 561, // 585: otg.StateProtocolLacp.member_ports:type_name -> otg.StateProtocolLacpMemberPorts - 103, // 586: otg.StateProtocolLacpAdmin.state:type_name -> otg.StateProtocolLacpAdmin.State.Enum - 104, // 587: otg.StateProtocolLacpMemberPorts.state:type_name -> otg.StateProtocolLacpMemberPorts.State.Enum - 105, // 588: otg.StateProtocolBgp.choice:type_name -> otg.StateProtocolBgp.Choice.Enum - 563, // 589: otg.StateProtocolBgp.peers:type_name -> otg.StateProtocolBgpPeers - 106, // 590: otg.StateProtocolBgpPeers.state:type_name -> otg.StateProtocolBgpPeers.State.Enum - 107, // 591: otg.StateProtocolIsis.choice:type_name -> otg.StateProtocolIsis.Choice.Enum - 565, // 592: otg.StateProtocolIsis.routers:type_name -> otg.StateProtocolIsisRouters - 108, // 593: otg.StateProtocolIsisRouters.state:type_name -> otg.StateProtocolIsisRouters.State.Enum - 109, // 594: otg.ControlAction.choice:type_name -> otg.ControlAction.Choice.Enum - 569, // 595: otg.ControlAction.protocol:type_name -> otg.ActionProtocol - 568, // 596: otg.ControlActionResponse.response:type_name -> otg.ActionResponse - 110, // 597: otg.ActionResponse.choice:type_name -> otg.ActionResponse.Choice.Enum - 570, // 598: otg.ActionResponse.protocol:type_name -> otg.ActionResponseProtocol - 111, // 599: otg.ActionProtocol.choice:type_name -> otg.ActionProtocol.Choice.Enum - 571, // 600: otg.ActionProtocol.ipv4:type_name -> otg.ActionProtocolIpv4 - 577, // 601: otg.ActionProtocol.ipv6:type_name -> otg.ActionProtocolIpv6 - 583, // 602: otg.ActionProtocol.bgp:type_name -> otg.ActionProtocolBgp - 112, // 603: otg.ActionResponseProtocol.choice:type_name -> otg.ActionResponseProtocol.Choice.Enum - 572, // 604: otg.ActionResponseProtocol.ipv4:type_name -> otg.ActionResponseProtocolIpv4 - 578, // 605: otg.ActionResponseProtocol.ipv6:type_name -> otg.ActionResponseProtocolIpv6 - 113, // 606: otg.ActionProtocolIpv4.choice:type_name -> otg.ActionProtocolIpv4.Choice.Enum - 573, // 607: otg.ActionProtocolIpv4.ping:type_name -> otg.ActionProtocolIpv4Ping - 114, // 608: otg.ActionResponseProtocolIpv4.choice:type_name -> otg.ActionResponseProtocolIpv4.Choice.Enum - 575, // 609: otg.ActionResponseProtocolIpv4.ping:type_name -> otg.ActionResponseProtocolIpv4Ping - 574, // 610: otg.ActionProtocolIpv4Ping.requests:type_name -> otg.ActionProtocolIpv4PingRequest - 576, // 611: otg.ActionResponseProtocolIpv4Ping.responses:type_name -> otg.ActionResponseProtocolIpv4PingResponse - 115, // 612: otg.ActionResponseProtocolIpv4PingResponse.result:type_name -> otg.ActionResponseProtocolIpv4PingResponse.Result.Enum - 116, // 613: otg.ActionProtocolIpv6.choice:type_name -> otg.ActionProtocolIpv6.Choice.Enum - 579, // 614: otg.ActionProtocolIpv6.ping:type_name -> otg.ActionProtocolIpv6Ping - 117, // 615: otg.ActionResponseProtocolIpv6.choice:type_name -> otg.ActionResponseProtocolIpv6.Choice.Enum - 581, // 616: otg.ActionResponseProtocolIpv6.ping:type_name -> otg.ActionResponseProtocolIpv6Ping - 580, // 617: otg.ActionProtocolIpv6Ping.requests:type_name -> otg.ActionProtocolIpv6PingRequest - 582, // 618: otg.ActionResponseProtocolIpv6Ping.responses:type_name -> otg.ActionResponseProtocolIpv6PingResponse - 118, // 619: otg.ActionResponseProtocolIpv6PingResponse.result:type_name -> otg.ActionResponseProtocolIpv6PingResponse.Result.Enum - 119, // 620: otg.ActionProtocolBgp.choice:type_name -> otg.ActionProtocolBgp.Choice.Enum - 584, // 621: otg.ActionProtocolBgp.notification:type_name -> otg.ActionProtocolBgpNotification - 585, // 622: otg.ActionProtocolBgp.initiate_graceful_restart:type_name -> otg.ActionProtocolBgpInitiateGracefulRestart - 120, // 623: otg.ActionProtocolBgpNotification.choice:type_name -> otg.ActionProtocolBgpNotification.Choice.Enum - 382, // 624: otg.ActionProtocolBgpNotification.cease:type_name -> otg.DeviceBgpCeaseError - 377, // 625: otg.ActionProtocolBgpNotification.message_header_error:type_name -> otg.DeviceBgpMessageHeaderError - 378, // 626: otg.ActionProtocolBgpNotification.open_message_error:type_name -> otg.DeviceBgpOpenMessageError - 379, // 627: otg.ActionProtocolBgpNotification.update_message_error:type_name -> otg.DeviceBgpUpdateMessageError - 380, // 628: otg.ActionProtocolBgpNotification.hold_timer_expired:type_name -> otg.DeviceBgpHoldTimerExpired - 381, // 629: otg.ActionProtocolBgpNotification.finite_state_machine_error:type_name -> otg.DeviceBgpFiniteStateMachineError - 383, // 630: otg.ActionProtocolBgpNotification.custom:type_name -> otg.DeviceBgpCustomError - 121, // 631: otg.MetricsRequest.choice:type_name -> otg.MetricsRequest.Choice.Enum - 588, // 632: otg.MetricsRequest.port:type_name -> otg.PortMetricsRequest - 590, // 633: otg.MetricsRequest.flow:type_name -> otg.FlowMetricsRequest - 599, // 634: otg.MetricsRequest.bgpv4:type_name -> otg.Bgpv4MetricsRequest - 601, // 635: otg.MetricsRequest.bgpv6:type_name -> otg.Bgpv6MetricsRequest - 603, // 636: otg.MetricsRequest.isis:type_name -> otg.IsisMetricsRequest - 605, // 637: otg.MetricsRequest.lag:type_name -> otg.LagMetricsRequest - 607, // 638: otg.MetricsRequest.lacp:type_name -> otg.LacpMetricsRequest - 609, // 639: otg.MetricsRequest.lldp:type_name -> otg.LldpMetricsRequest - 611, // 640: otg.MetricsRequest.rsvp:type_name -> otg.RsvpMetricsRequest - 122, // 641: otg.MetricsResponse.choice:type_name -> otg.MetricsResponse.Choice.Enum - 589, // 642: otg.MetricsResponse.port_metrics:type_name -> otg.PortMetric - 593, // 643: otg.MetricsResponse.flow_metrics:type_name -> otg.FlowMetric - 600, // 644: otg.MetricsResponse.bgpv4_metrics:type_name -> otg.Bgpv4Metric - 602, // 645: otg.MetricsResponse.bgpv6_metrics:type_name -> otg.Bgpv6Metric - 604, // 646: otg.MetricsResponse.isis_metrics:type_name -> otg.IsisMetric - 606, // 647: otg.MetricsResponse.lag_metrics:type_name -> otg.LagMetric - 608, // 648: otg.MetricsResponse.lacp_metrics:type_name -> otg.LacpMetric - 610, // 649: otg.MetricsResponse.lldp_metrics:type_name -> otg.LldpMetric - 612, // 650: otg.MetricsResponse.rsvp_metrics:type_name -> otg.RsvpMetric - 123, // 651: otg.PortMetricsRequest.column_names:type_name -> otg.PortMetricsRequest.ColumnNames.Enum - 124, // 652: otg.PortMetric.link:type_name -> otg.PortMetric.Link.Enum - 125, // 653: otg.PortMetric.capture:type_name -> otg.PortMetric.Capture.Enum - 126, // 654: otg.PortMetric.transmit:type_name -> otg.PortMetric.Transmit.Enum - 127, // 655: otg.FlowMetricsRequest.metric_names:type_name -> otg.FlowMetricsRequest.MetricNames.Enum - 591, // 656: otg.FlowMetricsRequest.tagged_metrics:type_name -> otg.FlowTaggedMetricsFilter - 128, // 657: otg.FlowTaggedMetricsFilter.metric_names:type_name -> otg.FlowTaggedMetricsFilter.MetricNames.Enum - 592, // 658: otg.FlowTaggedMetricsFilter.filters:type_name -> otg.FlowMetricTagFilter - 129, // 659: otg.FlowMetric.transmit:type_name -> otg.FlowMetric.Transmit.Enum - 597, // 660: otg.FlowMetric.timestamps:type_name -> otg.MetricTimestamp - 598, // 661: otg.FlowMetric.latency:type_name -> otg.MetricLatency - 594, // 662: otg.FlowMetric.tagged_metrics:type_name -> otg.FlowTaggedMetric - 595, // 663: otg.FlowTaggedMetric.tags:type_name -> otg.FlowMetricTag - 597, // 664: otg.FlowTaggedMetric.timestamps:type_name -> otg.MetricTimestamp - 598, // 665: otg.FlowTaggedMetric.latency:type_name -> otg.MetricLatency - 596, // 666: otg.FlowMetricTag.value:type_name -> otg.FlowMetricTagValue - 130, // 667: otg.FlowMetricTagValue.choice:type_name -> otg.FlowMetricTagValue.Choice.Enum - 131, // 668: otg.Bgpv4MetricsRequest.column_names:type_name -> otg.Bgpv4MetricsRequest.ColumnNames.Enum - 132, // 669: otg.Bgpv4Metric.session_state:type_name -> otg.Bgpv4Metric.SessionState.Enum - 133, // 670: otg.Bgpv4Metric.fsm_state:type_name -> otg.Bgpv4Metric.FsmState.Enum - 134, // 671: otg.Bgpv6MetricsRequest.column_names:type_name -> otg.Bgpv6MetricsRequest.ColumnNames.Enum - 135, // 672: otg.Bgpv6Metric.session_state:type_name -> otg.Bgpv6Metric.SessionState.Enum - 136, // 673: otg.Bgpv6Metric.fsm_state:type_name -> otg.Bgpv6Metric.FsmState.Enum - 137, // 674: otg.IsisMetricsRequest.column_names:type_name -> otg.IsisMetricsRequest.ColumnNames.Enum - 138, // 675: otg.LagMetricsRequest.column_names:type_name -> otg.LagMetricsRequest.ColumnNames.Enum - 139, // 676: otg.LagMetric.oper_status:type_name -> otg.LagMetric.OperStatus.Enum - 140, // 677: otg.LacpMetricsRequest.column_names:type_name -> otg.LacpMetricsRequest.ColumnNames.Enum - 141, // 678: otg.LacpMetric.activity:type_name -> otg.LacpMetric.Activity.Enum - 142, // 679: otg.LacpMetric.timeout:type_name -> otg.LacpMetric.Timeout.Enum - 143, // 680: otg.LacpMetric.synchronization:type_name -> otg.LacpMetric.Synchronization.Enum - 144, // 681: otg.LldpMetricsRequest.column_names:type_name -> otg.LldpMetricsRequest.ColumnNames.Enum - 145, // 682: otg.RsvpMetricsRequest.column_names:type_name -> otg.RsvpMetricsRequest.ColumnNames.Enum - 146, // 683: otg.StatesRequest.choice:type_name -> otg.StatesRequest.Choice.Enum - 615, // 684: otg.StatesRequest.ipv4_neighbors:type_name -> otg.Neighborsv4StatesRequest - 617, // 685: otg.StatesRequest.ipv6_neighbors:type_name -> otg.Neighborsv6StatesRequest - 619, // 686: otg.StatesRequest.bgp_prefixes:type_name -> otg.BgpPrefixStateRequest - 628, // 687: otg.StatesRequest.isis_lsps:type_name -> otg.IsisLspsStateRequest - 645, // 688: otg.StatesRequest.lldp_neighbors:type_name -> otg.LldpNeighborsStateRequest - 649, // 689: otg.StatesRequest.rsvp_lsps:type_name -> otg.RsvpLspsStateRequest - 147, // 690: otg.StatesResponse.choice:type_name -> otg.StatesResponse.Choice.Enum - 616, // 691: otg.StatesResponse.ipv4_neighbors:type_name -> otg.Neighborsv4State - 618, // 692: otg.StatesResponse.ipv6_neighbors:type_name -> otg.Neighborsv6State - 622, // 693: otg.StatesResponse.bgp_prefixes:type_name -> otg.BgpPrefixesState - 629, // 694: otg.StatesResponse.isis_lsps:type_name -> otg.IsisLspsState - 646, // 695: otg.StatesResponse.lldp_neighbors:type_name -> otg.LldpNeighborsState - 650, // 696: otg.StatesResponse.rsvp_lsps:type_name -> otg.RsvpLspsState - 148, // 697: otg.BgpPrefixStateRequest.prefix_filters:type_name -> otg.BgpPrefixStateRequest.PrefixFilters.Enum - 620, // 698: otg.BgpPrefixStateRequest.ipv4_unicast_filters:type_name -> otg.BgpPrefixIpv4UnicastFilter - 621, // 699: otg.BgpPrefixStateRequest.ipv6_unicast_filters:type_name -> otg.BgpPrefixIpv6UnicastFilter - 149, // 700: otg.BgpPrefixIpv4UnicastFilter.origin:type_name -> otg.BgpPrefixIpv4UnicastFilter.Origin.Enum - 150, // 701: otg.BgpPrefixIpv6UnicastFilter.origin:type_name -> otg.BgpPrefixIpv6UnicastFilter.Origin.Enum - 623, // 702: otg.BgpPrefixesState.ipv4_unicast_prefixes:type_name -> otg.BgpPrefixIpv4UnicastState - 624, // 703: otg.BgpPrefixesState.ipv6_unicast_prefixes:type_name -> otg.BgpPrefixIpv6UnicastState - 151, // 704: otg.BgpPrefixIpv4UnicastState.origin:type_name -> otg.BgpPrefixIpv4UnicastState.Origin.Enum - 625, // 705: otg.BgpPrefixIpv4UnicastState.communities:type_name -> otg.ResultBgpCommunity - 626, // 706: otg.BgpPrefixIpv4UnicastState.as_path:type_name -> otg.ResultBgpAsPath - 152, // 707: otg.BgpPrefixIpv6UnicastState.origin:type_name -> otg.BgpPrefixIpv6UnicastState.Origin.Enum - 625, // 708: otg.BgpPrefixIpv6UnicastState.communities:type_name -> otg.ResultBgpCommunity - 626, // 709: otg.BgpPrefixIpv6UnicastState.as_path:type_name -> otg.ResultBgpAsPath - 153, // 710: otg.ResultBgpCommunity.type:type_name -> otg.ResultBgpCommunity.Type.Enum - 627, // 711: otg.ResultBgpAsPath.segments:type_name -> otg.ResultBgpAsPathSegment - 154, // 712: otg.ResultBgpAsPathSegment.type:type_name -> otg.ResultBgpAsPathSegment.Type.Enum - 630, // 713: otg.IsisLspsState.lsps:type_name -> otg.IsisLspState - 155, // 714: otg.IsisLspState.pdu_type:type_name -> otg.IsisLspState.PduType.Enum - 633, // 715: otg.IsisLspState.flags:type_name -> otg.IsisLspFlags - 631, // 716: otg.IsisLspState.tlvs:type_name -> otg.IsisLspTlvs - 632, // 717: otg.IsisLspTlvs.hostname_tlvs:type_name -> otg.IsisLspHostname - 634, // 718: otg.IsisLspTlvs.is_reachability_tlvs:type_name -> otg.IsisLspIsReachabilityTlv - 635, // 719: otg.IsisLspTlvs.extended_is_reachability_tlvs:type_name -> otg.IsisLspExtendedIsReachabilityTlv - 637, // 720: otg.IsisLspTlvs.ipv4_internal_reachability_tlvs:type_name -> otg.IsisLspIpv4InternalReachabilityTlv - 638, // 721: otg.IsisLspTlvs.ipv4_external_reachability_tlvs:type_name -> otg.IsisLspIpv4ExternalReachabilityTlv - 640, // 722: otg.IsisLspTlvs.extended_ipv4_reachability_tlvs:type_name -> otg.IsisLspExtendedIpv4ReachabilityTlv - 642, // 723: otg.IsisLspTlvs.ipv6_reachability_tlvs:type_name -> otg.IsisLspIpv6ReachabilityTlv - 636, // 724: otg.IsisLspIsReachabilityTlv.neighbors:type_name -> otg.IsisLspneighbor - 636, // 725: otg.IsisLspExtendedIsReachabilityTlv.neighbors:type_name -> otg.IsisLspneighbor - 639, // 726: otg.IsisLspIpv4InternalReachabilityTlv.prefixes:type_name -> otg.IsisLspV4Prefix - 639, // 727: otg.IsisLspIpv4ExternalReachabilityTlv.prefixes:type_name -> otg.IsisLspV4Prefix - 156, // 728: otg.IsisLspV4Prefix.redistribution_type:type_name -> otg.IsisLspV4Prefix.RedistributionType.Enum - 157, // 729: otg.IsisLspV4Prefix.origin_type:type_name -> otg.IsisLspV4Prefix.OriginType.Enum - 641, // 730: otg.IsisLspExtendedIpv4ReachabilityTlv.prefixes:type_name -> otg.IsisLspExtendedV4Prefix - 158, // 731: otg.IsisLspExtendedV4Prefix.redistribution_type:type_name -> otg.IsisLspExtendedV4Prefix.RedistributionType.Enum - 644, // 732: otg.IsisLspExtendedV4Prefix.prefix_attributes:type_name -> otg.IsisLspPrefixAttributes - 643, // 733: otg.IsisLspIpv6ReachabilityTlv.prefixes:type_name -> otg.IsisLspV6Prefix - 159, // 734: otg.IsisLspV6Prefix.redistribution_type:type_name -> otg.IsisLspV6Prefix.RedistributionType.Enum - 160, // 735: otg.IsisLspV6Prefix.origin_type:type_name -> otg.IsisLspV6Prefix.OriginType.Enum - 644, // 736: otg.IsisLspV6Prefix.prefix_attributes:type_name -> otg.IsisLspPrefixAttributes - 161, // 737: otg.LldpNeighborsState.chassis_id_type:type_name -> otg.LldpNeighborsState.ChassisIdType.Enum - 162, // 738: otg.LldpNeighborsState.port_id_type:type_name -> otg.LldpNeighborsState.PortIdType.Enum - 647, // 739: otg.LldpNeighborsState.custom_tlvs:type_name -> otg.LldpCustomTLVState - 648, // 740: otg.LldpNeighborsState.capabilities:type_name -> otg.LldpCapabilityState - 163, // 741: otg.LldpCapabilityState.capability_name:type_name -> otg.LldpCapabilityState.CapabilityName.Enum - 651, // 742: otg.RsvpLspsState.ipv4_lsps:type_name -> otg.RsvpIPv4LspState - 652, // 743: otg.RsvpIPv4LspState.lsp:type_name -> otg.RsvpLspState - 653, // 744: otg.RsvpIPv4LspState.rros:type_name -> otg.RsvpLspIpv4Rro - 654, // 745: otg.RsvpIPv4LspState.eros:type_name -> otg.RsvpLspIpv4Ero - 164, // 746: otg.RsvpLspState.session_status:type_name -> otg.RsvpLspState.SessionStatus.Enum - 165, // 747: otg.RsvpLspState.last_flap_reason:type_name -> otg.RsvpLspState.LastFlapReason.Enum - 166, // 748: otg.RsvpLspIpv4Ero.type:type_name -> otg.RsvpLspIpv4Ero.Type.Enum - 167, // 749: otg.PatternFlowEthernetDst.choice:type_name -> otg.PatternFlowEthernetDst.Choice.Enum - 656, // 750: otg.PatternFlowEthernetDst.increment:type_name -> otg.PatternFlowEthernetDstCounter - 656, // 751: otg.PatternFlowEthernetDst.decrement:type_name -> otg.PatternFlowEthernetDstCounter - 657, // 752: otg.PatternFlowEthernetDst.metric_tags:type_name -> otg.PatternFlowEthernetDstMetricTag - 168, // 753: otg.PatternFlowEthernetSrc.choice:type_name -> otg.PatternFlowEthernetSrc.Choice.Enum - 659, // 754: otg.PatternFlowEthernetSrc.increment:type_name -> otg.PatternFlowEthernetSrcCounter - 659, // 755: otg.PatternFlowEthernetSrc.decrement:type_name -> otg.PatternFlowEthernetSrcCounter - 660, // 756: otg.PatternFlowEthernetSrc.metric_tags:type_name -> otg.PatternFlowEthernetSrcMetricTag - 169, // 757: otg.PatternFlowEthernetEtherType.choice:type_name -> otg.PatternFlowEthernetEtherType.Choice.Enum - 662, // 758: otg.PatternFlowEthernetEtherType.increment:type_name -> otg.PatternFlowEthernetEtherTypeCounter - 662, // 759: otg.PatternFlowEthernetEtherType.decrement:type_name -> otg.PatternFlowEthernetEtherTypeCounter - 663, // 760: otg.PatternFlowEthernetEtherType.metric_tags:type_name -> otg.PatternFlowEthernetEtherTypeMetricTag - 170, // 761: otg.PatternFlowEthernetPfcQueue.choice:type_name -> otg.PatternFlowEthernetPfcQueue.Choice.Enum - 665, // 762: otg.PatternFlowEthernetPfcQueue.increment:type_name -> otg.PatternFlowEthernetPfcQueueCounter - 665, // 763: otg.PatternFlowEthernetPfcQueue.decrement:type_name -> otg.PatternFlowEthernetPfcQueueCounter - 666, // 764: otg.PatternFlowEthernetPfcQueue.metric_tags:type_name -> otg.PatternFlowEthernetPfcQueueMetricTag - 171, // 765: otg.PatternFlowVlanPriority.choice:type_name -> otg.PatternFlowVlanPriority.Choice.Enum - 668, // 766: otg.PatternFlowVlanPriority.increment:type_name -> otg.PatternFlowVlanPriorityCounter - 668, // 767: otg.PatternFlowVlanPriority.decrement:type_name -> otg.PatternFlowVlanPriorityCounter - 669, // 768: otg.PatternFlowVlanPriority.metric_tags:type_name -> otg.PatternFlowVlanPriorityMetricTag - 172, // 769: otg.PatternFlowVlanCfi.choice:type_name -> otg.PatternFlowVlanCfi.Choice.Enum - 671, // 770: otg.PatternFlowVlanCfi.increment:type_name -> otg.PatternFlowVlanCfiCounter - 671, // 771: otg.PatternFlowVlanCfi.decrement:type_name -> otg.PatternFlowVlanCfiCounter - 672, // 772: otg.PatternFlowVlanCfi.metric_tags:type_name -> otg.PatternFlowVlanCfiMetricTag - 173, // 773: otg.PatternFlowVlanId.choice:type_name -> otg.PatternFlowVlanId.Choice.Enum - 674, // 774: otg.PatternFlowVlanId.increment:type_name -> otg.PatternFlowVlanIdCounter - 674, // 775: otg.PatternFlowVlanId.decrement:type_name -> otg.PatternFlowVlanIdCounter - 675, // 776: otg.PatternFlowVlanId.metric_tags:type_name -> otg.PatternFlowVlanIdMetricTag - 174, // 777: otg.PatternFlowVlanTpid.choice:type_name -> otg.PatternFlowVlanTpid.Choice.Enum - 677, // 778: otg.PatternFlowVlanTpid.increment:type_name -> otg.PatternFlowVlanTpidCounter - 677, // 779: otg.PatternFlowVlanTpid.decrement:type_name -> otg.PatternFlowVlanTpidCounter - 678, // 780: otg.PatternFlowVlanTpid.metric_tags:type_name -> otg.PatternFlowVlanTpidMetricTag - 175, // 781: otg.PatternFlowVxlanFlags.choice:type_name -> otg.PatternFlowVxlanFlags.Choice.Enum - 680, // 782: otg.PatternFlowVxlanFlags.increment:type_name -> otg.PatternFlowVxlanFlagsCounter - 680, // 783: otg.PatternFlowVxlanFlags.decrement:type_name -> otg.PatternFlowVxlanFlagsCounter - 681, // 784: otg.PatternFlowVxlanFlags.metric_tags:type_name -> otg.PatternFlowVxlanFlagsMetricTag - 176, // 785: otg.PatternFlowVxlanReserved0.choice:type_name -> otg.PatternFlowVxlanReserved0.Choice.Enum - 683, // 786: otg.PatternFlowVxlanReserved0.increment:type_name -> otg.PatternFlowVxlanReserved0Counter - 683, // 787: otg.PatternFlowVxlanReserved0.decrement:type_name -> otg.PatternFlowVxlanReserved0Counter - 684, // 788: otg.PatternFlowVxlanReserved0.metric_tags:type_name -> otg.PatternFlowVxlanReserved0MetricTag - 177, // 789: otg.PatternFlowVxlanVni.choice:type_name -> otg.PatternFlowVxlanVni.Choice.Enum - 686, // 790: otg.PatternFlowVxlanVni.increment:type_name -> otg.PatternFlowVxlanVniCounter - 686, // 791: otg.PatternFlowVxlanVni.decrement:type_name -> otg.PatternFlowVxlanVniCounter - 687, // 792: otg.PatternFlowVxlanVni.metric_tags:type_name -> otg.PatternFlowVxlanVniMetricTag - 178, // 793: otg.PatternFlowVxlanReserved1.choice:type_name -> otg.PatternFlowVxlanReserved1.Choice.Enum - 689, // 794: otg.PatternFlowVxlanReserved1.increment:type_name -> otg.PatternFlowVxlanReserved1Counter - 689, // 795: otg.PatternFlowVxlanReserved1.decrement:type_name -> otg.PatternFlowVxlanReserved1Counter - 690, // 796: otg.PatternFlowVxlanReserved1.metric_tags:type_name -> otg.PatternFlowVxlanReserved1MetricTag - 179, // 797: otg.PatternFlowIpv4Version.choice:type_name -> otg.PatternFlowIpv4Version.Choice.Enum - 692, // 798: otg.PatternFlowIpv4Version.increment:type_name -> otg.PatternFlowIpv4VersionCounter - 692, // 799: otg.PatternFlowIpv4Version.decrement:type_name -> otg.PatternFlowIpv4VersionCounter - 693, // 800: otg.PatternFlowIpv4Version.metric_tags:type_name -> otg.PatternFlowIpv4VersionMetricTag - 180, // 801: otg.PatternFlowIpv4HeaderLength.choice:type_name -> otg.PatternFlowIpv4HeaderLength.Choice.Enum - 695, // 802: otg.PatternFlowIpv4HeaderLength.increment:type_name -> otg.PatternFlowIpv4HeaderLengthCounter - 695, // 803: otg.PatternFlowIpv4HeaderLength.decrement:type_name -> otg.PatternFlowIpv4HeaderLengthCounter - 696, // 804: otg.PatternFlowIpv4HeaderLength.metric_tags:type_name -> otg.PatternFlowIpv4HeaderLengthMetricTag - 181, // 805: otg.PatternFlowIpv4TotalLength.choice:type_name -> otg.PatternFlowIpv4TotalLength.Choice.Enum - 698, // 806: otg.PatternFlowIpv4TotalLength.increment:type_name -> otg.PatternFlowIpv4TotalLengthCounter - 698, // 807: otg.PatternFlowIpv4TotalLength.decrement:type_name -> otg.PatternFlowIpv4TotalLengthCounter - 699, // 808: otg.PatternFlowIpv4TotalLength.metric_tags:type_name -> otg.PatternFlowIpv4TotalLengthMetricTag - 182, // 809: otg.PatternFlowIpv4Identification.choice:type_name -> otg.PatternFlowIpv4Identification.Choice.Enum - 701, // 810: otg.PatternFlowIpv4Identification.increment:type_name -> otg.PatternFlowIpv4IdentificationCounter - 701, // 811: otg.PatternFlowIpv4Identification.decrement:type_name -> otg.PatternFlowIpv4IdentificationCounter - 702, // 812: otg.PatternFlowIpv4Identification.metric_tags:type_name -> otg.PatternFlowIpv4IdentificationMetricTag - 183, // 813: otg.PatternFlowIpv4Reserved.choice:type_name -> otg.PatternFlowIpv4Reserved.Choice.Enum - 704, // 814: otg.PatternFlowIpv4Reserved.increment:type_name -> otg.PatternFlowIpv4ReservedCounter - 704, // 815: otg.PatternFlowIpv4Reserved.decrement:type_name -> otg.PatternFlowIpv4ReservedCounter - 705, // 816: otg.PatternFlowIpv4Reserved.metric_tags:type_name -> otg.PatternFlowIpv4ReservedMetricTag - 184, // 817: otg.PatternFlowIpv4DontFragment.choice:type_name -> otg.PatternFlowIpv4DontFragment.Choice.Enum - 707, // 818: otg.PatternFlowIpv4DontFragment.increment:type_name -> otg.PatternFlowIpv4DontFragmentCounter - 707, // 819: otg.PatternFlowIpv4DontFragment.decrement:type_name -> otg.PatternFlowIpv4DontFragmentCounter - 708, // 820: otg.PatternFlowIpv4DontFragment.metric_tags:type_name -> otg.PatternFlowIpv4DontFragmentMetricTag - 185, // 821: otg.PatternFlowIpv4MoreFragments.choice:type_name -> otg.PatternFlowIpv4MoreFragments.Choice.Enum - 710, // 822: otg.PatternFlowIpv4MoreFragments.increment:type_name -> otg.PatternFlowIpv4MoreFragmentsCounter - 710, // 823: otg.PatternFlowIpv4MoreFragments.decrement:type_name -> otg.PatternFlowIpv4MoreFragmentsCounter - 711, // 824: otg.PatternFlowIpv4MoreFragments.metric_tags:type_name -> otg.PatternFlowIpv4MoreFragmentsMetricTag - 186, // 825: otg.PatternFlowIpv4FragmentOffset.choice:type_name -> otg.PatternFlowIpv4FragmentOffset.Choice.Enum - 713, // 826: otg.PatternFlowIpv4FragmentOffset.increment:type_name -> otg.PatternFlowIpv4FragmentOffsetCounter - 713, // 827: otg.PatternFlowIpv4FragmentOffset.decrement:type_name -> otg.PatternFlowIpv4FragmentOffsetCounter - 714, // 828: otg.PatternFlowIpv4FragmentOffset.metric_tags:type_name -> otg.PatternFlowIpv4FragmentOffsetMetricTag - 187, // 829: otg.PatternFlowIpv4TimeToLive.choice:type_name -> otg.PatternFlowIpv4TimeToLive.Choice.Enum - 716, // 830: otg.PatternFlowIpv4TimeToLive.increment:type_name -> otg.PatternFlowIpv4TimeToLiveCounter - 716, // 831: otg.PatternFlowIpv4TimeToLive.decrement:type_name -> otg.PatternFlowIpv4TimeToLiveCounter - 717, // 832: otg.PatternFlowIpv4TimeToLive.metric_tags:type_name -> otg.PatternFlowIpv4TimeToLiveMetricTag - 188, // 833: otg.PatternFlowIpv4Protocol.choice:type_name -> otg.PatternFlowIpv4Protocol.Choice.Enum - 719, // 834: otg.PatternFlowIpv4Protocol.increment:type_name -> otg.PatternFlowIpv4ProtocolCounter - 719, // 835: otg.PatternFlowIpv4Protocol.decrement:type_name -> otg.PatternFlowIpv4ProtocolCounter - 720, // 836: otg.PatternFlowIpv4Protocol.metric_tags:type_name -> otg.PatternFlowIpv4ProtocolMetricTag - 189, // 837: otg.PatternFlowIpv4HeaderChecksum.choice:type_name -> otg.PatternFlowIpv4HeaderChecksum.Choice.Enum - 190, // 838: otg.PatternFlowIpv4HeaderChecksum.generated:type_name -> otg.PatternFlowIpv4HeaderChecksum.Generated.Enum - 191, // 839: otg.PatternFlowIpv4Src.choice:type_name -> otg.PatternFlowIpv4Src.Choice.Enum - 723, // 840: otg.PatternFlowIpv4Src.increment:type_name -> otg.PatternFlowIpv4SrcCounter - 723, // 841: otg.PatternFlowIpv4Src.decrement:type_name -> otg.PatternFlowIpv4SrcCounter - 724, // 842: otg.PatternFlowIpv4Src.metric_tags:type_name -> otg.PatternFlowIpv4SrcMetricTag - 192, // 843: otg.PatternFlowIpv4Dst.choice:type_name -> otg.PatternFlowIpv4Dst.Choice.Enum - 726, // 844: otg.PatternFlowIpv4Dst.increment:type_name -> otg.PatternFlowIpv4DstCounter - 726, // 845: otg.PatternFlowIpv4Dst.decrement:type_name -> otg.PatternFlowIpv4DstCounter - 727, // 846: otg.PatternFlowIpv4Dst.metric_tags:type_name -> otg.PatternFlowIpv4DstMetricTag - 193, // 847: otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag.choice:type_name -> otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag.Choice.Enum - 729, // 848: otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag.increment:type_name -> otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter - 729, // 849: otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag.decrement:type_name -> otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter - 194, // 850: otg.PatternFlowIpv4OptionsCustomTypeOptionClass.choice:type_name -> otg.PatternFlowIpv4OptionsCustomTypeOptionClass.Choice.Enum - 731, // 851: otg.PatternFlowIpv4OptionsCustomTypeOptionClass.increment:type_name -> otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter - 731, // 852: otg.PatternFlowIpv4OptionsCustomTypeOptionClass.decrement:type_name -> otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter - 195, // 853: otg.PatternFlowIpv4OptionsCustomTypeOptionNumber.choice:type_name -> otg.PatternFlowIpv4OptionsCustomTypeOptionNumber.Choice.Enum - 733, // 854: otg.PatternFlowIpv4OptionsCustomTypeOptionNumber.increment:type_name -> otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter - 733, // 855: otg.PatternFlowIpv4OptionsCustomTypeOptionNumber.decrement:type_name -> otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter - 196, // 856: otg.PatternFlowIpv4PriorityRaw.choice:type_name -> otg.PatternFlowIpv4PriorityRaw.Choice.Enum - 735, // 857: otg.PatternFlowIpv4PriorityRaw.increment:type_name -> otg.PatternFlowIpv4PriorityRawCounter - 735, // 858: otg.PatternFlowIpv4PriorityRaw.decrement:type_name -> otg.PatternFlowIpv4PriorityRawCounter - 736, // 859: otg.PatternFlowIpv4PriorityRaw.metric_tags:type_name -> otg.PatternFlowIpv4PriorityRawMetricTag - 197, // 860: otg.PatternFlowIpv4DscpPhb.choice:type_name -> otg.PatternFlowIpv4DscpPhb.Choice.Enum - 738, // 861: otg.PatternFlowIpv4DscpPhb.increment:type_name -> otg.PatternFlowIpv4DscpPhbCounter - 738, // 862: otg.PatternFlowIpv4DscpPhb.decrement:type_name -> otg.PatternFlowIpv4DscpPhbCounter - 739, // 863: otg.PatternFlowIpv4DscpPhb.metric_tags:type_name -> otg.PatternFlowIpv4DscpPhbMetricTag - 198, // 864: otg.PatternFlowIpv4DscpEcn.choice:type_name -> otg.PatternFlowIpv4DscpEcn.Choice.Enum - 741, // 865: otg.PatternFlowIpv4DscpEcn.increment:type_name -> otg.PatternFlowIpv4DscpEcnCounter - 741, // 866: otg.PatternFlowIpv4DscpEcn.decrement:type_name -> otg.PatternFlowIpv4DscpEcnCounter - 742, // 867: otg.PatternFlowIpv4DscpEcn.metric_tags:type_name -> otg.PatternFlowIpv4DscpEcnMetricTag - 199, // 868: otg.PatternFlowIpv4TosPrecedence.choice:type_name -> otg.PatternFlowIpv4TosPrecedence.Choice.Enum - 744, // 869: otg.PatternFlowIpv4TosPrecedence.increment:type_name -> otg.PatternFlowIpv4TosPrecedenceCounter - 744, // 870: otg.PatternFlowIpv4TosPrecedence.decrement:type_name -> otg.PatternFlowIpv4TosPrecedenceCounter - 745, // 871: otg.PatternFlowIpv4TosPrecedence.metric_tags:type_name -> otg.PatternFlowIpv4TosPrecedenceMetricTag - 200, // 872: otg.PatternFlowIpv4TosDelay.choice:type_name -> otg.PatternFlowIpv4TosDelay.Choice.Enum - 747, // 873: otg.PatternFlowIpv4TosDelay.increment:type_name -> otg.PatternFlowIpv4TosDelayCounter - 747, // 874: otg.PatternFlowIpv4TosDelay.decrement:type_name -> otg.PatternFlowIpv4TosDelayCounter - 748, // 875: otg.PatternFlowIpv4TosDelay.metric_tags:type_name -> otg.PatternFlowIpv4TosDelayMetricTag - 201, // 876: otg.PatternFlowIpv4TosThroughput.choice:type_name -> otg.PatternFlowIpv4TosThroughput.Choice.Enum - 750, // 877: otg.PatternFlowIpv4TosThroughput.increment:type_name -> otg.PatternFlowIpv4TosThroughputCounter - 750, // 878: otg.PatternFlowIpv4TosThroughput.decrement:type_name -> otg.PatternFlowIpv4TosThroughputCounter - 751, // 879: otg.PatternFlowIpv4TosThroughput.metric_tags:type_name -> otg.PatternFlowIpv4TosThroughputMetricTag - 202, // 880: otg.PatternFlowIpv4TosReliability.choice:type_name -> otg.PatternFlowIpv4TosReliability.Choice.Enum - 753, // 881: otg.PatternFlowIpv4TosReliability.increment:type_name -> otg.PatternFlowIpv4TosReliabilityCounter - 753, // 882: otg.PatternFlowIpv4TosReliability.decrement:type_name -> otg.PatternFlowIpv4TosReliabilityCounter - 754, // 883: otg.PatternFlowIpv4TosReliability.metric_tags:type_name -> otg.PatternFlowIpv4TosReliabilityMetricTag - 203, // 884: otg.PatternFlowIpv4TosMonetary.choice:type_name -> otg.PatternFlowIpv4TosMonetary.Choice.Enum - 756, // 885: otg.PatternFlowIpv4TosMonetary.increment:type_name -> otg.PatternFlowIpv4TosMonetaryCounter - 756, // 886: otg.PatternFlowIpv4TosMonetary.decrement:type_name -> otg.PatternFlowIpv4TosMonetaryCounter - 757, // 887: otg.PatternFlowIpv4TosMonetary.metric_tags:type_name -> otg.PatternFlowIpv4TosMonetaryMetricTag - 204, // 888: otg.PatternFlowIpv4TosUnused.choice:type_name -> otg.PatternFlowIpv4TosUnused.Choice.Enum - 759, // 889: otg.PatternFlowIpv4TosUnused.increment:type_name -> otg.PatternFlowIpv4TosUnusedCounter - 759, // 890: otg.PatternFlowIpv4TosUnused.decrement:type_name -> otg.PatternFlowIpv4TosUnusedCounter - 760, // 891: otg.PatternFlowIpv4TosUnused.metric_tags:type_name -> otg.PatternFlowIpv4TosUnusedMetricTag - 205, // 892: otg.PatternFlowIpv6Version.choice:type_name -> otg.PatternFlowIpv6Version.Choice.Enum - 762, // 893: otg.PatternFlowIpv6Version.increment:type_name -> otg.PatternFlowIpv6VersionCounter - 762, // 894: otg.PatternFlowIpv6Version.decrement:type_name -> otg.PatternFlowIpv6VersionCounter - 763, // 895: otg.PatternFlowIpv6Version.metric_tags:type_name -> otg.PatternFlowIpv6VersionMetricTag - 206, // 896: otg.PatternFlowIpv6TrafficClass.choice:type_name -> otg.PatternFlowIpv6TrafficClass.Choice.Enum - 765, // 897: otg.PatternFlowIpv6TrafficClass.increment:type_name -> otg.PatternFlowIpv6TrafficClassCounter - 765, // 898: otg.PatternFlowIpv6TrafficClass.decrement:type_name -> otg.PatternFlowIpv6TrafficClassCounter - 766, // 899: otg.PatternFlowIpv6TrafficClass.metric_tags:type_name -> otg.PatternFlowIpv6TrafficClassMetricTag - 207, // 900: otg.PatternFlowIpv6FlowLabel.choice:type_name -> otg.PatternFlowIpv6FlowLabel.Choice.Enum - 768, // 901: otg.PatternFlowIpv6FlowLabel.increment:type_name -> otg.PatternFlowIpv6FlowLabelCounter - 768, // 902: otg.PatternFlowIpv6FlowLabel.decrement:type_name -> otg.PatternFlowIpv6FlowLabelCounter - 769, // 903: otg.PatternFlowIpv6FlowLabel.metric_tags:type_name -> otg.PatternFlowIpv6FlowLabelMetricTag - 208, // 904: otg.PatternFlowIpv6PayloadLength.choice:type_name -> otg.PatternFlowIpv6PayloadLength.Choice.Enum - 771, // 905: otg.PatternFlowIpv6PayloadLength.increment:type_name -> otg.PatternFlowIpv6PayloadLengthCounter - 771, // 906: otg.PatternFlowIpv6PayloadLength.decrement:type_name -> otg.PatternFlowIpv6PayloadLengthCounter - 772, // 907: otg.PatternFlowIpv6PayloadLength.metric_tags:type_name -> otg.PatternFlowIpv6PayloadLengthMetricTag - 209, // 908: otg.PatternFlowIpv6NextHeader.choice:type_name -> otg.PatternFlowIpv6NextHeader.Choice.Enum - 774, // 909: otg.PatternFlowIpv6NextHeader.increment:type_name -> otg.PatternFlowIpv6NextHeaderCounter - 774, // 910: otg.PatternFlowIpv6NextHeader.decrement:type_name -> otg.PatternFlowIpv6NextHeaderCounter - 775, // 911: otg.PatternFlowIpv6NextHeader.metric_tags:type_name -> otg.PatternFlowIpv6NextHeaderMetricTag - 210, // 912: otg.PatternFlowIpv6HopLimit.choice:type_name -> otg.PatternFlowIpv6HopLimit.Choice.Enum - 777, // 913: otg.PatternFlowIpv6HopLimit.increment:type_name -> otg.PatternFlowIpv6HopLimitCounter - 777, // 914: otg.PatternFlowIpv6HopLimit.decrement:type_name -> otg.PatternFlowIpv6HopLimitCounter - 778, // 915: otg.PatternFlowIpv6HopLimit.metric_tags:type_name -> otg.PatternFlowIpv6HopLimitMetricTag - 211, // 916: otg.PatternFlowIpv6Src.choice:type_name -> otg.PatternFlowIpv6Src.Choice.Enum - 780, // 917: otg.PatternFlowIpv6Src.increment:type_name -> otg.PatternFlowIpv6SrcCounter - 780, // 918: otg.PatternFlowIpv6Src.decrement:type_name -> otg.PatternFlowIpv6SrcCounter - 781, // 919: otg.PatternFlowIpv6Src.metric_tags:type_name -> otg.PatternFlowIpv6SrcMetricTag - 212, // 920: otg.PatternFlowIpv6Dst.choice:type_name -> otg.PatternFlowIpv6Dst.Choice.Enum - 783, // 921: otg.PatternFlowIpv6Dst.increment:type_name -> otg.PatternFlowIpv6DstCounter - 783, // 922: otg.PatternFlowIpv6Dst.decrement:type_name -> otg.PatternFlowIpv6DstCounter - 784, // 923: otg.PatternFlowIpv6Dst.metric_tags:type_name -> otg.PatternFlowIpv6DstMetricTag - 213, // 924: otg.PatternFlowPfcPauseDst.choice:type_name -> otg.PatternFlowPfcPauseDst.Choice.Enum - 786, // 925: otg.PatternFlowPfcPauseDst.increment:type_name -> otg.PatternFlowPfcPauseDstCounter - 786, // 926: otg.PatternFlowPfcPauseDst.decrement:type_name -> otg.PatternFlowPfcPauseDstCounter - 787, // 927: otg.PatternFlowPfcPauseDst.metric_tags:type_name -> otg.PatternFlowPfcPauseDstMetricTag - 214, // 928: otg.PatternFlowPfcPauseSrc.choice:type_name -> otg.PatternFlowPfcPauseSrc.Choice.Enum - 789, // 929: otg.PatternFlowPfcPauseSrc.increment:type_name -> otg.PatternFlowPfcPauseSrcCounter - 789, // 930: otg.PatternFlowPfcPauseSrc.decrement:type_name -> otg.PatternFlowPfcPauseSrcCounter - 790, // 931: otg.PatternFlowPfcPauseSrc.metric_tags:type_name -> otg.PatternFlowPfcPauseSrcMetricTag - 215, // 932: otg.PatternFlowPfcPauseEtherType.choice:type_name -> otg.PatternFlowPfcPauseEtherType.Choice.Enum - 792, // 933: otg.PatternFlowPfcPauseEtherType.increment:type_name -> otg.PatternFlowPfcPauseEtherTypeCounter - 792, // 934: otg.PatternFlowPfcPauseEtherType.decrement:type_name -> otg.PatternFlowPfcPauseEtherTypeCounter - 793, // 935: otg.PatternFlowPfcPauseEtherType.metric_tags:type_name -> otg.PatternFlowPfcPauseEtherTypeMetricTag - 216, // 936: otg.PatternFlowPfcPauseControlOpCode.choice:type_name -> otg.PatternFlowPfcPauseControlOpCode.Choice.Enum - 795, // 937: otg.PatternFlowPfcPauseControlOpCode.increment:type_name -> otg.PatternFlowPfcPauseControlOpCodeCounter - 795, // 938: otg.PatternFlowPfcPauseControlOpCode.decrement:type_name -> otg.PatternFlowPfcPauseControlOpCodeCounter - 796, // 939: otg.PatternFlowPfcPauseControlOpCode.metric_tags:type_name -> otg.PatternFlowPfcPauseControlOpCodeMetricTag - 217, // 940: otg.PatternFlowPfcPauseClassEnableVector.choice:type_name -> otg.PatternFlowPfcPauseClassEnableVector.Choice.Enum - 798, // 941: otg.PatternFlowPfcPauseClassEnableVector.increment:type_name -> otg.PatternFlowPfcPauseClassEnableVectorCounter - 798, // 942: otg.PatternFlowPfcPauseClassEnableVector.decrement:type_name -> otg.PatternFlowPfcPauseClassEnableVectorCounter - 799, // 943: otg.PatternFlowPfcPauseClassEnableVector.metric_tags:type_name -> otg.PatternFlowPfcPauseClassEnableVectorMetricTag - 218, // 944: otg.PatternFlowPfcPausePauseClass0.choice:type_name -> otg.PatternFlowPfcPausePauseClass0.Choice.Enum - 801, // 945: otg.PatternFlowPfcPausePauseClass0.increment:type_name -> otg.PatternFlowPfcPausePauseClass0Counter - 801, // 946: otg.PatternFlowPfcPausePauseClass0.decrement:type_name -> otg.PatternFlowPfcPausePauseClass0Counter - 802, // 947: otg.PatternFlowPfcPausePauseClass0.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass0MetricTag - 219, // 948: otg.PatternFlowPfcPausePauseClass1.choice:type_name -> otg.PatternFlowPfcPausePauseClass1.Choice.Enum - 804, // 949: otg.PatternFlowPfcPausePauseClass1.increment:type_name -> otg.PatternFlowPfcPausePauseClass1Counter - 804, // 950: otg.PatternFlowPfcPausePauseClass1.decrement:type_name -> otg.PatternFlowPfcPausePauseClass1Counter - 805, // 951: otg.PatternFlowPfcPausePauseClass1.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass1MetricTag - 220, // 952: otg.PatternFlowPfcPausePauseClass2.choice:type_name -> otg.PatternFlowPfcPausePauseClass2.Choice.Enum - 807, // 953: otg.PatternFlowPfcPausePauseClass2.increment:type_name -> otg.PatternFlowPfcPausePauseClass2Counter - 807, // 954: otg.PatternFlowPfcPausePauseClass2.decrement:type_name -> otg.PatternFlowPfcPausePauseClass2Counter - 808, // 955: otg.PatternFlowPfcPausePauseClass2.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass2MetricTag - 221, // 956: otg.PatternFlowPfcPausePauseClass3.choice:type_name -> otg.PatternFlowPfcPausePauseClass3.Choice.Enum - 810, // 957: otg.PatternFlowPfcPausePauseClass3.increment:type_name -> otg.PatternFlowPfcPausePauseClass3Counter - 810, // 958: otg.PatternFlowPfcPausePauseClass3.decrement:type_name -> otg.PatternFlowPfcPausePauseClass3Counter - 811, // 959: otg.PatternFlowPfcPausePauseClass3.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass3MetricTag - 222, // 960: otg.PatternFlowPfcPausePauseClass4.choice:type_name -> otg.PatternFlowPfcPausePauseClass4.Choice.Enum - 813, // 961: otg.PatternFlowPfcPausePauseClass4.increment:type_name -> otg.PatternFlowPfcPausePauseClass4Counter - 813, // 962: otg.PatternFlowPfcPausePauseClass4.decrement:type_name -> otg.PatternFlowPfcPausePauseClass4Counter - 814, // 963: otg.PatternFlowPfcPausePauseClass4.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass4MetricTag - 223, // 964: otg.PatternFlowPfcPausePauseClass5.choice:type_name -> otg.PatternFlowPfcPausePauseClass5.Choice.Enum - 816, // 965: otg.PatternFlowPfcPausePauseClass5.increment:type_name -> otg.PatternFlowPfcPausePauseClass5Counter - 816, // 966: otg.PatternFlowPfcPausePauseClass5.decrement:type_name -> otg.PatternFlowPfcPausePauseClass5Counter - 817, // 967: otg.PatternFlowPfcPausePauseClass5.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass5MetricTag - 224, // 968: otg.PatternFlowPfcPausePauseClass6.choice:type_name -> otg.PatternFlowPfcPausePauseClass6.Choice.Enum - 819, // 969: otg.PatternFlowPfcPausePauseClass6.increment:type_name -> otg.PatternFlowPfcPausePauseClass6Counter - 819, // 970: otg.PatternFlowPfcPausePauseClass6.decrement:type_name -> otg.PatternFlowPfcPausePauseClass6Counter - 820, // 971: otg.PatternFlowPfcPausePauseClass6.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass6MetricTag - 225, // 972: otg.PatternFlowPfcPausePauseClass7.choice:type_name -> otg.PatternFlowPfcPausePauseClass7.Choice.Enum - 822, // 973: otg.PatternFlowPfcPausePauseClass7.increment:type_name -> otg.PatternFlowPfcPausePauseClass7Counter - 822, // 974: otg.PatternFlowPfcPausePauseClass7.decrement:type_name -> otg.PatternFlowPfcPausePauseClass7Counter - 823, // 975: otg.PatternFlowPfcPausePauseClass7.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass7MetricTag - 226, // 976: otg.PatternFlowEthernetPauseDst.choice:type_name -> otg.PatternFlowEthernetPauseDst.Choice.Enum - 825, // 977: otg.PatternFlowEthernetPauseDst.increment:type_name -> otg.PatternFlowEthernetPauseDstCounter - 825, // 978: otg.PatternFlowEthernetPauseDst.decrement:type_name -> otg.PatternFlowEthernetPauseDstCounter - 826, // 979: otg.PatternFlowEthernetPauseDst.metric_tags:type_name -> otg.PatternFlowEthernetPauseDstMetricTag - 227, // 980: otg.PatternFlowEthernetPauseSrc.choice:type_name -> otg.PatternFlowEthernetPauseSrc.Choice.Enum - 828, // 981: otg.PatternFlowEthernetPauseSrc.increment:type_name -> otg.PatternFlowEthernetPauseSrcCounter - 828, // 982: otg.PatternFlowEthernetPauseSrc.decrement:type_name -> otg.PatternFlowEthernetPauseSrcCounter - 829, // 983: otg.PatternFlowEthernetPauseSrc.metric_tags:type_name -> otg.PatternFlowEthernetPauseSrcMetricTag - 228, // 984: otg.PatternFlowEthernetPauseEtherType.choice:type_name -> otg.PatternFlowEthernetPauseEtherType.Choice.Enum - 831, // 985: otg.PatternFlowEthernetPauseEtherType.increment:type_name -> otg.PatternFlowEthernetPauseEtherTypeCounter - 831, // 986: otg.PatternFlowEthernetPauseEtherType.decrement:type_name -> otg.PatternFlowEthernetPauseEtherTypeCounter - 832, // 987: otg.PatternFlowEthernetPauseEtherType.metric_tags:type_name -> otg.PatternFlowEthernetPauseEtherTypeMetricTag - 229, // 988: otg.PatternFlowEthernetPauseControlOpCode.choice:type_name -> otg.PatternFlowEthernetPauseControlOpCode.Choice.Enum - 834, // 989: otg.PatternFlowEthernetPauseControlOpCode.increment:type_name -> otg.PatternFlowEthernetPauseControlOpCodeCounter - 834, // 990: otg.PatternFlowEthernetPauseControlOpCode.decrement:type_name -> otg.PatternFlowEthernetPauseControlOpCodeCounter - 835, // 991: otg.PatternFlowEthernetPauseControlOpCode.metric_tags:type_name -> otg.PatternFlowEthernetPauseControlOpCodeMetricTag - 230, // 992: otg.PatternFlowEthernetPauseTime.choice:type_name -> otg.PatternFlowEthernetPauseTime.Choice.Enum - 837, // 993: otg.PatternFlowEthernetPauseTime.increment:type_name -> otg.PatternFlowEthernetPauseTimeCounter - 837, // 994: otg.PatternFlowEthernetPauseTime.decrement:type_name -> otg.PatternFlowEthernetPauseTimeCounter - 838, // 995: otg.PatternFlowEthernetPauseTime.metric_tags:type_name -> otg.PatternFlowEthernetPauseTimeMetricTag - 231, // 996: otg.PatternFlowTcpSrcPort.choice:type_name -> otg.PatternFlowTcpSrcPort.Choice.Enum - 840, // 997: otg.PatternFlowTcpSrcPort.increment:type_name -> otg.PatternFlowTcpSrcPortCounter - 840, // 998: otg.PatternFlowTcpSrcPort.decrement:type_name -> otg.PatternFlowTcpSrcPortCounter - 841, // 999: otg.PatternFlowTcpSrcPort.metric_tags:type_name -> otg.PatternFlowTcpSrcPortMetricTag - 232, // 1000: otg.PatternFlowTcpDstPort.choice:type_name -> otg.PatternFlowTcpDstPort.Choice.Enum - 843, // 1001: otg.PatternFlowTcpDstPort.increment:type_name -> otg.PatternFlowTcpDstPortCounter - 843, // 1002: otg.PatternFlowTcpDstPort.decrement:type_name -> otg.PatternFlowTcpDstPortCounter - 844, // 1003: otg.PatternFlowTcpDstPort.metric_tags:type_name -> otg.PatternFlowTcpDstPortMetricTag - 233, // 1004: otg.PatternFlowTcpSeqNum.choice:type_name -> otg.PatternFlowTcpSeqNum.Choice.Enum - 846, // 1005: otg.PatternFlowTcpSeqNum.increment:type_name -> otg.PatternFlowTcpSeqNumCounter - 846, // 1006: otg.PatternFlowTcpSeqNum.decrement:type_name -> otg.PatternFlowTcpSeqNumCounter - 847, // 1007: otg.PatternFlowTcpSeqNum.metric_tags:type_name -> otg.PatternFlowTcpSeqNumMetricTag - 234, // 1008: otg.PatternFlowTcpAckNum.choice:type_name -> otg.PatternFlowTcpAckNum.Choice.Enum - 849, // 1009: otg.PatternFlowTcpAckNum.increment:type_name -> otg.PatternFlowTcpAckNumCounter - 849, // 1010: otg.PatternFlowTcpAckNum.decrement:type_name -> otg.PatternFlowTcpAckNumCounter - 850, // 1011: otg.PatternFlowTcpAckNum.metric_tags:type_name -> otg.PatternFlowTcpAckNumMetricTag - 235, // 1012: otg.PatternFlowTcpDataOffset.choice:type_name -> otg.PatternFlowTcpDataOffset.Choice.Enum - 852, // 1013: otg.PatternFlowTcpDataOffset.increment:type_name -> otg.PatternFlowTcpDataOffsetCounter - 852, // 1014: otg.PatternFlowTcpDataOffset.decrement:type_name -> otg.PatternFlowTcpDataOffsetCounter - 853, // 1015: otg.PatternFlowTcpDataOffset.metric_tags:type_name -> otg.PatternFlowTcpDataOffsetMetricTag - 236, // 1016: otg.PatternFlowTcpEcnNs.choice:type_name -> otg.PatternFlowTcpEcnNs.Choice.Enum - 855, // 1017: otg.PatternFlowTcpEcnNs.increment:type_name -> otg.PatternFlowTcpEcnNsCounter - 855, // 1018: otg.PatternFlowTcpEcnNs.decrement:type_name -> otg.PatternFlowTcpEcnNsCounter - 856, // 1019: otg.PatternFlowTcpEcnNs.metric_tags:type_name -> otg.PatternFlowTcpEcnNsMetricTag - 237, // 1020: otg.PatternFlowTcpEcnCwr.choice:type_name -> otg.PatternFlowTcpEcnCwr.Choice.Enum - 858, // 1021: otg.PatternFlowTcpEcnCwr.increment:type_name -> otg.PatternFlowTcpEcnCwrCounter - 858, // 1022: otg.PatternFlowTcpEcnCwr.decrement:type_name -> otg.PatternFlowTcpEcnCwrCounter - 859, // 1023: otg.PatternFlowTcpEcnCwr.metric_tags:type_name -> otg.PatternFlowTcpEcnCwrMetricTag - 238, // 1024: otg.PatternFlowTcpEcnEcho.choice:type_name -> otg.PatternFlowTcpEcnEcho.Choice.Enum - 861, // 1025: otg.PatternFlowTcpEcnEcho.increment:type_name -> otg.PatternFlowTcpEcnEchoCounter - 861, // 1026: otg.PatternFlowTcpEcnEcho.decrement:type_name -> otg.PatternFlowTcpEcnEchoCounter - 862, // 1027: otg.PatternFlowTcpEcnEcho.metric_tags:type_name -> otg.PatternFlowTcpEcnEchoMetricTag - 239, // 1028: otg.PatternFlowTcpCtlUrg.choice:type_name -> otg.PatternFlowTcpCtlUrg.Choice.Enum - 864, // 1029: otg.PatternFlowTcpCtlUrg.increment:type_name -> otg.PatternFlowTcpCtlUrgCounter - 864, // 1030: otg.PatternFlowTcpCtlUrg.decrement:type_name -> otg.PatternFlowTcpCtlUrgCounter - 865, // 1031: otg.PatternFlowTcpCtlUrg.metric_tags:type_name -> otg.PatternFlowTcpCtlUrgMetricTag - 240, // 1032: otg.PatternFlowTcpCtlAck.choice:type_name -> otg.PatternFlowTcpCtlAck.Choice.Enum - 867, // 1033: otg.PatternFlowTcpCtlAck.increment:type_name -> otg.PatternFlowTcpCtlAckCounter - 867, // 1034: otg.PatternFlowTcpCtlAck.decrement:type_name -> otg.PatternFlowTcpCtlAckCounter - 868, // 1035: otg.PatternFlowTcpCtlAck.metric_tags:type_name -> otg.PatternFlowTcpCtlAckMetricTag - 241, // 1036: otg.PatternFlowTcpCtlPsh.choice:type_name -> otg.PatternFlowTcpCtlPsh.Choice.Enum - 870, // 1037: otg.PatternFlowTcpCtlPsh.increment:type_name -> otg.PatternFlowTcpCtlPshCounter - 870, // 1038: otg.PatternFlowTcpCtlPsh.decrement:type_name -> otg.PatternFlowTcpCtlPshCounter - 871, // 1039: otg.PatternFlowTcpCtlPsh.metric_tags:type_name -> otg.PatternFlowTcpCtlPshMetricTag - 242, // 1040: otg.PatternFlowTcpCtlRst.choice:type_name -> otg.PatternFlowTcpCtlRst.Choice.Enum - 873, // 1041: otg.PatternFlowTcpCtlRst.increment:type_name -> otg.PatternFlowTcpCtlRstCounter - 873, // 1042: otg.PatternFlowTcpCtlRst.decrement:type_name -> otg.PatternFlowTcpCtlRstCounter - 874, // 1043: otg.PatternFlowTcpCtlRst.metric_tags:type_name -> otg.PatternFlowTcpCtlRstMetricTag - 243, // 1044: otg.PatternFlowTcpCtlSyn.choice:type_name -> otg.PatternFlowTcpCtlSyn.Choice.Enum - 876, // 1045: otg.PatternFlowTcpCtlSyn.increment:type_name -> otg.PatternFlowTcpCtlSynCounter - 876, // 1046: otg.PatternFlowTcpCtlSyn.decrement:type_name -> otg.PatternFlowTcpCtlSynCounter - 877, // 1047: otg.PatternFlowTcpCtlSyn.metric_tags:type_name -> otg.PatternFlowTcpCtlSynMetricTag - 244, // 1048: otg.PatternFlowTcpCtlFin.choice:type_name -> otg.PatternFlowTcpCtlFin.Choice.Enum - 879, // 1049: otg.PatternFlowTcpCtlFin.increment:type_name -> otg.PatternFlowTcpCtlFinCounter - 879, // 1050: otg.PatternFlowTcpCtlFin.decrement:type_name -> otg.PatternFlowTcpCtlFinCounter - 880, // 1051: otg.PatternFlowTcpCtlFin.metric_tags:type_name -> otg.PatternFlowTcpCtlFinMetricTag - 245, // 1052: otg.PatternFlowTcpWindow.choice:type_name -> otg.PatternFlowTcpWindow.Choice.Enum - 882, // 1053: otg.PatternFlowTcpWindow.increment:type_name -> otg.PatternFlowTcpWindowCounter - 882, // 1054: otg.PatternFlowTcpWindow.decrement:type_name -> otg.PatternFlowTcpWindowCounter - 883, // 1055: otg.PatternFlowTcpWindow.metric_tags:type_name -> otg.PatternFlowTcpWindowMetricTag - 246, // 1056: otg.PatternFlowUdpSrcPort.choice:type_name -> otg.PatternFlowUdpSrcPort.Choice.Enum - 885, // 1057: otg.PatternFlowUdpSrcPort.increment:type_name -> otg.PatternFlowUdpSrcPortCounter - 885, // 1058: otg.PatternFlowUdpSrcPort.decrement:type_name -> otg.PatternFlowUdpSrcPortCounter - 886, // 1059: otg.PatternFlowUdpSrcPort.metric_tags:type_name -> otg.PatternFlowUdpSrcPortMetricTag - 247, // 1060: otg.PatternFlowUdpDstPort.choice:type_name -> otg.PatternFlowUdpDstPort.Choice.Enum - 888, // 1061: otg.PatternFlowUdpDstPort.increment:type_name -> otg.PatternFlowUdpDstPortCounter - 888, // 1062: otg.PatternFlowUdpDstPort.decrement:type_name -> otg.PatternFlowUdpDstPortCounter - 889, // 1063: otg.PatternFlowUdpDstPort.metric_tags:type_name -> otg.PatternFlowUdpDstPortMetricTag - 248, // 1064: otg.PatternFlowUdpLength.choice:type_name -> otg.PatternFlowUdpLength.Choice.Enum - 891, // 1065: otg.PatternFlowUdpLength.increment:type_name -> otg.PatternFlowUdpLengthCounter - 891, // 1066: otg.PatternFlowUdpLength.decrement:type_name -> otg.PatternFlowUdpLengthCounter - 892, // 1067: otg.PatternFlowUdpLength.metric_tags:type_name -> otg.PatternFlowUdpLengthMetricTag - 249, // 1068: otg.PatternFlowUdpChecksum.choice:type_name -> otg.PatternFlowUdpChecksum.Choice.Enum - 250, // 1069: otg.PatternFlowUdpChecksum.generated:type_name -> otg.PatternFlowUdpChecksum.Generated.Enum - 251, // 1070: otg.PatternFlowGreChecksumPresent.choice:type_name -> otg.PatternFlowGreChecksumPresent.Choice.Enum - 895, // 1071: otg.PatternFlowGreChecksumPresent.increment:type_name -> otg.PatternFlowGreChecksumPresentCounter - 895, // 1072: otg.PatternFlowGreChecksumPresent.decrement:type_name -> otg.PatternFlowGreChecksumPresentCounter - 896, // 1073: otg.PatternFlowGreChecksumPresent.metric_tags:type_name -> otg.PatternFlowGreChecksumPresentMetricTag - 252, // 1074: otg.PatternFlowGreReserved0.choice:type_name -> otg.PatternFlowGreReserved0.Choice.Enum - 898, // 1075: otg.PatternFlowGreReserved0.increment:type_name -> otg.PatternFlowGreReserved0Counter - 898, // 1076: otg.PatternFlowGreReserved0.decrement:type_name -> otg.PatternFlowGreReserved0Counter - 899, // 1077: otg.PatternFlowGreReserved0.metric_tags:type_name -> otg.PatternFlowGreReserved0MetricTag - 253, // 1078: otg.PatternFlowGreVersion.choice:type_name -> otg.PatternFlowGreVersion.Choice.Enum - 901, // 1079: otg.PatternFlowGreVersion.increment:type_name -> otg.PatternFlowGreVersionCounter - 901, // 1080: otg.PatternFlowGreVersion.decrement:type_name -> otg.PatternFlowGreVersionCounter - 902, // 1081: otg.PatternFlowGreVersion.metric_tags:type_name -> otg.PatternFlowGreVersionMetricTag - 254, // 1082: otg.PatternFlowGreProtocol.choice:type_name -> otg.PatternFlowGreProtocol.Choice.Enum - 904, // 1083: otg.PatternFlowGreProtocol.increment:type_name -> otg.PatternFlowGreProtocolCounter - 904, // 1084: otg.PatternFlowGreProtocol.decrement:type_name -> otg.PatternFlowGreProtocolCounter - 905, // 1085: otg.PatternFlowGreProtocol.metric_tags:type_name -> otg.PatternFlowGreProtocolMetricTag - 255, // 1086: otg.PatternFlowGreChecksum.choice:type_name -> otg.PatternFlowGreChecksum.Choice.Enum - 256, // 1087: otg.PatternFlowGreChecksum.generated:type_name -> otg.PatternFlowGreChecksum.Generated.Enum - 257, // 1088: otg.PatternFlowGreReserved1.choice:type_name -> otg.PatternFlowGreReserved1.Choice.Enum - 908, // 1089: otg.PatternFlowGreReserved1.increment:type_name -> otg.PatternFlowGreReserved1Counter - 908, // 1090: otg.PatternFlowGreReserved1.decrement:type_name -> otg.PatternFlowGreReserved1Counter - 909, // 1091: otg.PatternFlowGreReserved1.metric_tags:type_name -> otg.PatternFlowGreReserved1MetricTag - 258, // 1092: otg.PatternFlowGtpv1Version.choice:type_name -> otg.PatternFlowGtpv1Version.Choice.Enum - 911, // 1093: otg.PatternFlowGtpv1Version.increment:type_name -> otg.PatternFlowGtpv1VersionCounter - 911, // 1094: otg.PatternFlowGtpv1Version.decrement:type_name -> otg.PatternFlowGtpv1VersionCounter - 912, // 1095: otg.PatternFlowGtpv1Version.metric_tags:type_name -> otg.PatternFlowGtpv1VersionMetricTag - 259, // 1096: otg.PatternFlowGtpv1ProtocolType.choice:type_name -> otg.PatternFlowGtpv1ProtocolType.Choice.Enum - 914, // 1097: otg.PatternFlowGtpv1ProtocolType.increment:type_name -> otg.PatternFlowGtpv1ProtocolTypeCounter - 914, // 1098: otg.PatternFlowGtpv1ProtocolType.decrement:type_name -> otg.PatternFlowGtpv1ProtocolTypeCounter - 915, // 1099: otg.PatternFlowGtpv1ProtocolType.metric_tags:type_name -> otg.PatternFlowGtpv1ProtocolTypeMetricTag - 260, // 1100: otg.PatternFlowGtpv1Reserved.choice:type_name -> otg.PatternFlowGtpv1Reserved.Choice.Enum - 917, // 1101: otg.PatternFlowGtpv1Reserved.increment:type_name -> otg.PatternFlowGtpv1ReservedCounter - 917, // 1102: otg.PatternFlowGtpv1Reserved.decrement:type_name -> otg.PatternFlowGtpv1ReservedCounter - 918, // 1103: otg.PatternFlowGtpv1Reserved.metric_tags:type_name -> otg.PatternFlowGtpv1ReservedMetricTag - 261, // 1104: otg.PatternFlowGtpv1EFlag.choice:type_name -> otg.PatternFlowGtpv1EFlag.Choice.Enum - 920, // 1105: otg.PatternFlowGtpv1EFlag.increment:type_name -> otg.PatternFlowGtpv1EFlagCounter - 920, // 1106: otg.PatternFlowGtpv1EFlag.decrement:type_name -> otg.PatternFlowGtpv1EFlagCounter - 921, // 1107: otg.PatternFlowGtpv1EFlag.metric_tags:type_name -> otg.PatternFlowGtpv1EFlagMetricTag - 262, // 1108: otg.PatternFlowGtpv1SFlag.choice:type_name -> otg.PatternFlowGtpv1SFlag.Choice.Enum - 923, // 1109: otg.PatternFlowGtpv1SFlag.increment:type_name -> otg.PatternFlowGtpv1SFlagCounter - 923, // 1110: otg.PatternFlowGtpv1SFlag.decrement:type_name -> otg.PatternFlowGtpv1SFlagCounter - 924, // 1111: otg.PatternFlowGtpv1SFlag.metric_tags:type_name -> otg.PatternFlowGtpv1SFlagMetricTag - 263, // 1112: otg.PatternFlowGtpv1PnFlag.choice:type_name -> otg.PatternFlowGtpv1PnFlag.Choice.Enum - 926, // 1113: otg.PatternFlowGtpv1PnFlag.increment:type_name -> otg.PatternFlowGtpv1PnFlagCounter - 926, // 1114: otg.PatternFlowGtpv1PnFlag.decrement:type_name -> otg.PatternFlowGtpv1PnFlagCounter - 927, // 1115: otg.PatternFlowGtpv1PnFlag.metric_tags:type_name -> otg.PatternFlowGtpv1PnFlagMetricTag - 264, // 1116: otg.PatternFlowGtpv1MessageType.choice:type_name -> otg.PatternFlowGtpv1MessageType.Choice.Enum - 929, // 1117: otg.PatternFlowGtpv1MessageType.increment:type_name -> otg.PatternFlowGtpv1MessageTypeCounter - 929, // 1118: otg.PatternFlowGtpv1MessageType.decrement:type_name -> otg.PatternFlowGtpv1MessageTypeCounter - 930, // 1119: otg.PatternFlowGtpv1MessageType.metric_tags:type_name -> otg.PatternFlowGtpv1MessageTypeMetricTag - 265, // 1120: otg.PatternFlowGtpv1MessageLength.choice:type_name -> otg.PatternFlowGtpv1MessageLength.Choice.Enum - 932, // 1121: otg.PatternFlowGtpv1MessageLength.increment:type_name -> otg.PatternFlowGtpv1MessageLengthCounter - 932, // 1122: otg.PatternFlowGtpv1MessageLength.decrement:type_name -> otg.PatternFlowGtpv1MessageLengthCounter - 933, // 1123: otg.PatternFlowGtpv1MessageLength.metric_tags:type_name -> otg.PatternFlowGtpv1MessageLengthMetricTag - 266, // 1124: otg.PatternFlowGtpv1Teid.choice:type_name -> otg.PatternFlowGtpv1Teid.Choice.Enum - 935, // 1125: otg.PatternFlowGtpv1Teid.increment:type_name -> otg.PatternFlowGtpv1TeidCounter - 935, // 1126: otg.PatternFlowGtpv1Teid.decrement:type_name -> otg.PatternFlowGtpv1TeidCounter - 936, // 1127: otg.PatternFlowGtpv1Teid.metric_tags:type_name -> otg.PatternFlowGtpv1TeidMetricTag - 267, // 1128: otg.PatternFlowGtpv1SquenceNumber.choice:type_name -> otg.PatternFlowGtpv1SquenceNumber.Choice.Enum - 938, // 1129: otg.PatternFlowGtpv1SquenceNumber.increment:type_name -> otg.PatternFlowGtpv1SquenceNumberCounter - 938, // 1130: otg.PatternFlowGtpv1SquenceNumber.decrement:type_name -> otg.PatternFlowGtpv1SquenceNumberCounter - 939, // 1131: otg.PatternFlowGtpv1SquenceNumber.metric_tags:type_name -> otg.PatternFlowGtpv1SquenceNumberMetricTag - 268, // 1132: otg.PatternFlowGtpv1NPduNumber.choice:type_name -> otg.PatternFlowGtpv1NPduNumber.Choice.Enum - 941, // 1133: otg.PatternFlowGtpv1NPduNumber.increment:type_name -> otg.PatternFlowGtpv1NPduNumberCounter - 941, // 1134: otg.PatternFlowGtpv1NPduNumber.decrement:type_name -> otg.PatternFlowGtpv1NPduNumberCounter - 942, // 1135: otg.PatternFlowGtpv1NPduNumber.metric_tags:type_name -> otg.PatternFlowGtpv1NPduNumberMetricTag - 269, // 1136: otg.PatternFlowGtpv1NextExtensionHeaderType.choice:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderType.Choice.Enum - 944, // 1137: otg.PatternFlowGtpv1NextExtensionHeaderType.increment:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderTypeCounter - 944, // 1138: otg.PatternFlowGtpv1NextExtensionHeaderType.decrement:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderTypeCounter - 945, // 1139: otg.PatternFlowGtpv1NextExtensionHeaderType.metric_tags:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderTypeMetricTag - 270, // 1140: otg.PatternFlowGtpExtensionExtensionLength.choice:type_name -> otg.PatternFlowGtpExtensionExtensionLength.Choice.Enum - 947, // 1141: otg.PatternFlowGtpExtensionExtensionLength.increment:type_name -> otg.PatternFlowGtpExtensionExtensionLengthCounter - 947, // 1142: otg.PatternFlowGtpExtensionExtensionLength.decrement:type_name -> otg.PatternFlowGtpExtensionExtensionLengthCounter - 948, // 1143: otg.PatternFlowGtpExtensionExtensionLength.metric_tags:type_name -> otg.PatternFlowGtpExtensionExtensionLengthMetricTag - 271, // 1144: otg.PatternFlowGtpExtensionContents.choice:type_name -> otg.PatternFlowGtpExtensionContents.Choice.Enum - 950, // 1145: otg.PatternFlowGtpExtensionContents.increment:type_name -> otg.PatternFlowGtpExtensionContentsCounter - 950, // 1146: otg.PatternFlowGtpExtensionContents.decrement:type_name -> otg.PatternFlowGtpExtensionContentsCounter - 951, // 1147: otg.PatternFlowGtpExtensionContents.metric_tags:type_name -> otg.PatternFlowGtpExtensionContentsMetricTag - 272, // 1148: otg.PatternFlowGtpExtensionNextExtensionHeader.choice:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeader.Choice.Enum - 953, // 1149: otg.PatternFlowGtpExtensionNextExtensionHeader.increment:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeaderCounter - 953, // 1150: otg.PatternFlowGtpExtensionNextExtensionHeader.decrement:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeaderCounter - 954, // 1151: otg.PatternFlowGtpExtensionNextExtensionHeader.metric_tags:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeaderMetricTag - 273, // 1152: otg.PatternFlowGtpv2Version.choice:type_name -> otg.PatternFlowGtpv2Version.Choice.Enum - 956, // 1153: otg.PatternFlowGtpv2Version.increment:type_name -> otg.PatternFlowGtpv2VersionCounter - 956, // 1154: otg.PatternFlowGtpv2Version.decrement:type_name -> otg.PatternFlowGtpv2VersionCounter - 957, // 1155: otg.PatternFlowGtpv2Version.metric_tags:type_name -> otg.PatternFlowGtpv2VersionMetricTag - 274, // 1156: otg.PatternFlowGtpv2PiggybackingFlag.choice:type_name -> otg.PatternFlowGtpv2PiggybackingFlag.Choice.Enum - 959, // 1157: otg.PatternFlowGtpv2PiggybackingFlag.increment:type_name -> otg.PatternFlowGtpv2PiggybackingFlagCounter - 959, // 1158: otg.PatternFlowGtpv2PiggybackingFlag.decrement:type_name -> otg.PatternFlowGtpv2PiggybackingFlagCounter - 960, // 1159: otg.PatternFlowGtpv2PiggybackingFlag.metric_tags:type_name -> otg.PatternFlowGtpv2PiggybackingFlagMetricTag - 275, // 1160: otg.PatternFlowGtpv2TeidFlag.choice:type_name -> otg.PatternFlowGtpv2TeidFlag.Choice.Enum - 962, // 1161: otg.PatternFlowGtpv2TeidFlag.increment:type_name -> otg.PatternFlowGtpv2TeidFlagCounter - 962, // 1162: otg.PatternFlowGtpv2TeidFlag.decrement:type_name -> otg.PatternFlowGtpv2TeidFlagCounter - 963, // 1163: otg.PatternFlowGtpv2TeidFlag.metric_tags:type_name -> otg.PatternFlowGtpv2TeidFlagMetricTag - 276, // 1164: otg.PatternFlowGtpv2Spare1.choice:type_name -> otg.PatternFlowGtpv2Spare1.Choice.Enum - 965, // 1165: otg.PatternFlowGtpv2Spare1.increment:type_name -> otg.PatternFlowGtpv2Spare1Counter - 965, // 1166: otg.PatternFlowGtpv2Spare1.decrement:type_name -> otg.PatternFlowGtpv2Spare1Counter - 966, // 1167: otg.PatternFlowGtpv2Spare1.metric_tags:type_name -> otg.PatternFlowGtpv2Spare1MetricTag - 277, // 1168: otg.PatternFlowGtpv2MessageType.choice:type_name -> otg.PatternFlowGtpv2MessageType.Choice.Enum - 968, // 1169: otg.PatternFlowGtpv2MessageType.increment:type_name -> otg.PatternFlowGtpv2MessageTypeCounter - 968, // 1170: otg.PatternFlowGtpv2MessageType.decrement:type_name -> otg.PatternFlowGtpv2MessageTypeCounter - 969, // 1171: otg.PatternFlowGtpv2MessageType.metric_tags:type_name -> otg.PatternFlowGtpv2MessageTypeMetricTag - 278, // 1172: otg.PatternFlowGtpv2MessageLength.choice:type_name -> otg.PatternFlowGtpv2MessageLength.Choice.Enum - 971, // 1173: otg.PatternFlowGtpv2MessageLength.increment:type_name -> otg.PatternFlowGtpv2MessageLengthCounter - 971, // 1174: otg.PatternFlowGtpv2MessageLength.decrement:type_name -> otg.PatternFlowGtpv2MessageLengthCounter - 972, // 1175: otg.PatternFlowGtpv2MessageLength.metric_tags:type_name -> otg.PatternFlowGtpv2MessageLengthMetricTag - 279, // 1176: otg.PatternFlowGtpv2Teid.choice:type_name -> otg.PatternFlowGtpv2Teid.Choice.Enum - 974, // 1177: otg.PatternFlowGtpv2Teid.increment:type_name -> otg.PatternFlowGtpv2TeidCounter - 974, // 1178: otg.PatternFlowGtpv2Teid.decrement:type_name -> otg.PatternFlowGtpv2TeidCounter - 975, // 1179: otg.PatternFlowGtpv2Teid.metric_tags:type_name -> otg.PatternFlowGtpv2TeidMetricTag - 280, // 1180: otg.PatternFlowGtpv2SequenceNumber.choice:type_name -> otg.PatternFlowGtpv2SequenceNumber.Choice.Enum - 977, // 1181: otg.PatternFlowGtpv2SequenceNumber.increment:type_name -> otg.PatternFlowGtpv2SequenceNumberCounter - 977, // 1182: otg.PatternFlowGtpv2SequenceNumber.decrement:type_name -> otg.PatternFlowGtpv2SequenceNumberCounter - 978, // 1183: otg.PatternFlowGtpv2SequenceNumber.metric_tags:type_name -> otg.PatternFlowGtpv2SequenceNumberMetricTag - 281, // 1184: otg.PatternFlowGtpv2Spare2.choice:type_name -> otg.PatternFlowGtpv2Spare2.Choice.Enum - 980, // 1185: otg.PatternFlowGtpv2Spare2.increment:type_name -> otg.PatternFlowGtpv2Spare2Counter - 980, // 1186: otg.PatternFlowGtpv2Spare2.decrement:type_name -> otg.PatternFlowGtpv2Spare2Counter - 981, // 1187: otg.PatternFlowGtpv2Spare2.metric_tags:type_name -> otg.PatternFlowGtpv2Spare2MetricTag - 282, // 1188: otg.PatternFlowArpHardwareType.choice:type_name -> otg.PatternFlowArpHardwareType.Choice.Enum - 983, // 1189: otg.PatternFlowArpHardwareType.increment:type_name -> otg.PatternFlowArpHardwareTypeCounter - 983, // 1190: otg.PatternFlowArpHardwareType.decrement:type_name -> otg.PatternFlowArpHardwareTypeCounter - 984, // 1191: otg.PatternFlowArpHardwareType.metric_tags:type_name -> otg.PatternFlowArpHardwareTypeMetricTag - 283, // 1192: otg.PatternFlowArpProtocolType.choice:type_name -> otg.PatternFlowArpProtocolType.Choice.Enum - 986, // 1193: otg.PatternFlowArpProtocolType.increment:type_name -> otg.PatternFlowArpProtocolTypeCounter - 986, // 1194: otg.PatternFlowArpProtocolType.decrement:type_name -> otg.PatternFlowArpProtocolTypeCounter - 987, // 1195: otg.PatternFlowArpProtocolType.metric_tags:type_name -> otg.PatternFlowArpProtocolTypeMetricTag - 284, // 1196: otg.PatternFlowArpHardwareLength.choice:type_name -> otg.PatternFlowArpHardwareLength.Choice.Enum - 989, // 1197: otg.PatternFlowArpHardwareLength.increment:type_name -> otg.PatternFlowArpHardwareLengthCounter - 989, // 1198: otg.PatternFlowArpHardwareLength.decrement:type_name -> otg.PatternFlowArpHardwareLengthCounter - 990, // 1199: otg.PatternFlowArpHardwareLength.metric_tags:type_name -> otg.PatternFlowArpHardwareLengthMetricTag - 285, // 1200: otg.PatternFlowArpProtocolLength.choice:type_name -> otg.PatternFlowArpProtocolLength.Choice.Enum - 992, // 1201: otg.PatternFlowArpProtocolLength.increment:type_name -> otg.PatternFlowArpProtocolLengthCounter - 992, // 1202: otg.PatternFlowArpProtocolLength.decrement:type_name -> otg.PatternFlowArpProtocolLengthCounter - 993, // 1203: otg.PatternFlowArpProtocolLength.metric_tags:type_name -> otg.PatternFlowArpProtocolLengthMetricTag - 286, // 1204: otg.PatternFlowArpOperation.choice:type_name -> otg.PatternFlowArpOperation.Choice.Enum - 995, // 1205: otg.PatternFlowArpOperation.increment:type_name -> otg.PatternFlowArpOperationCounter - 995, // 1206: otg.PatternFlowArpOperation.decrement:type_name -> otg.PatternFlowArpOperationCounter - 996, // 1207: otg.PatternFlowArpOperation.metric_tags:type_name -> otg.PatternFlowArpOperationMetricTag - 287, // 1208: otg.PatternFlowArpSenderHardwareAddr.choice:type_name -> otg.PatternFlowArpSenderHardwareAddr.Choice.Enum - 998, // 1209: otg.PatternFlowArpSenderHardwareAddr.increment:type_name -> otg.PatternFlowArpSenderHardwareAddrCounter - 998, // 1210: otg.PatternFlowArpSenderHardwareAddr.decrement:type_name -> otg.PatternFlowArpSenderHardwareAddrCounter - 999, // 1211: otg.PatternFlowArpSenderHardwareAddr.metric_tags:type_name -> otg.PatternFlowArpSenderHardwareAddrMetricTag - 288, // 1212: otg.PatternFlowArpSenderProtocolAddr.choice:type_name -> otg.PatternFlowArpSenderProtocolAddr.Choice.Enum - 1001, // 1213: otg.PatternFlowArpSenderProtocolAddr.increment:type_name -> otg.PatternFlowArpSenderProtocolAddrCounter - 1001, // 1214: otg.PatternFlowArpSenderProtocolAddr.decrement:type_name -> otg.PatternFlowArpSenderProtocolAddrCounter - 1002, // 1215: otg.PatternFlowArpSenderProtocolAddr.metric_tags:type_name -> otg.PatternFlowArpSenderProtocolAddrMetricTag - 289, // 1216: otg.PatternFlowArpTargetHardwareAddr.choice:type_name -> otg.PatternFlowArpTargetHardwareAddr.Choice.Enum - 1004, // 1217: otg.PatternFlowArpTargetHardwareAddr.increment:type_name -> otg.PatternFlowArpTargetHardwareAddrCounter - 1004, // 1218: otg.PatternFlowArpTargetHardwareAddr.decrement:type_name -> otg.PatternFlowArpTargetHardwareAddrCounter - 1005, // 1219: otg.PatternFlowArpTargetHardwareAddr.metric_tags:type_name -> otg.PatternFlowArpTargetHardwareAddrMetricTag - 290, // 1220: otg.PatternFlowArpTargetProtocolAddr.choice:type_name -> otg.PatternFlowArpTargetProtocolAddr.Choice.Enum - 1007, // 1221: otg.PatternFlowArpTargetProtocolAddr.increment:type_name -> otg.PatternFlowArpTargetProtocolAddrCounter - 1007, // 1222: otg.PatternFlowArpTargetProtocolAddr.decrement:type_name -> otg.PatternFlowArpTargetProtocolAddrCounter - 1008, // 1223: otg.PatternFlowArpTargetProtocolAddr.metric_tags:type_name -> otg.PatternFlowArpTargetProtocolAddrMetricTag - 291, // 1224: otg.PatternFlowIcmpEchoType.choice:type_name -> otg.PatternFlowIcmpEchoType.Choice.Enum - 1010, // 1225: otg.PatternFlowIcmpEchoType.increment:type_name -> otg.PatternFlowIcmpEchoTypeCounter - 1010, // 1226: otg.PatternFlowIcmpEchoType.decrement:type_name -> otg.PatternFlowIcmpEchoTypeCounter - 1011, // 1227: otg.PatternFlowIcmpEchoType.metric_tags:type_name -> otg.PatternFlowIcmpEchoTypeMetricTag - 292, // 1228: otg.PatternFlowIcmpEchoCode.choice:type_name -> otg.PatternFlowIcmpEchoCode.Choice.Enum - 1013, // 1229: otg.PatternFlowIcmpEchoCode.increment:type_name -> otg.PatternFlowIcmpEchoCodeCounter - 1013, // 1230: otg.PatternFlowIcmpEchoCode.decrement:type_name -> otg.PatternFlowIcmpEchoCodeCounter - 1014, // 1231: otg.PatternFlowIcmpEchoCode.metric_tags:type_name -> otg.PatternFlowIcmpEchoCodeMetricTag - 293, // 1232: otg.PatternFlowIcmpEchoChecksum.choice:type_name -> otg.PatternFlowIcmpEchoChecksum.Choice.Enum - 294, // 1233: otg.PatternFlowIcmpEchoChecksum.generated:type_name -> otg.PatternFlowIcmpEchoChecksum.Generated.Enum - 295, // 1234: otg.PatternFlowIcmpEchoIdentifier.choice:type_name -> otg.PatternFlowIcmpEchoIdentifier.Choice.Enum - 1017, // 1235: otg.PatternFlowIcmpEchoIdentifier.increment:type_name -> otg.PatternFlowIcmpEchoIdentifierCounter - 1017, // 1236: otg.PatternFlowIcmpEchoIdentifier.decrement:type_name -> otg.PatternFlowIcmpEchoIdentifierCounter - 1018, // 1237: otg.PatternFlowIcmpEchoIdentifier.metric_tags:type_name -> otg.PatternFlowIcmpEchoIdentifierMetricTag - 296, // 1238: otg.PatternFlowIcmpEchoSequenceNumber.choice:type_name -> otg.PatternFlowIcmpEchoSequenceNumber.Choice.Enum - 1020, // 1239: otg.PatternFlowIcmpEchoSequenceNumber.increment:type_name -> otg.PatternFlowIcmpEchoSequenceNumberCounter - 1020, // 1240: otg.PatternFlowIcmpEchoSequenceNumber.decrement:type_name -> otg.PatternFlowIcmpEchoSequenceNumberCounter - 1021, // 1241: otg.PatternFlowIcmpEchoSequenceNumber.metric_tags:type_name -> otg.PatternFlowIcmpEchoSequenceNumberMetricTag - 297, // 1242: otg.PatternFlowIcmpCommonChecksum.choice:type_name -> otg.PatternFlowIcmpCommonChecksum.Choice.Enum - 298, // 1243: otg.PatternFlowIcmpCommonChecksum.generated:type_name -> otg.PatternFlowIcmpCommonChecksum.Generated.Enum - 299, // 1244: otg.PatternFlowIcmpNextFieldsIdentifier.choice:type_name -> otg.PatternFlowIcmpNextFieldsIdentifier.Choice.Enum - 1024, // 1245: otg.PatternFlowIcmpNextFieldsIdentifier.increment:type_name -> otg.PatternFlowIcmpNextFieldsIdentifierCounter - 1024, // 1246: otg.PatternFlowIcmpNextFieldsIdentifier.decrement:type_name -> otg.PatternFlowIcmpNextFieldsIdentifierCounter - 1025, // 1247: otg.PatternFlowIcmpNextFieldsIdentifier.metric_tags:type_name -> otg.PatternFlowIcmpNextFieldsIdentifierMetricTag - 300, // 1248: otg.PatternFlowIcmpNextFieldsSequenceNumber.choice:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumber.Choice.Enum - 1027, // 1249: otg.PatternFlowIcmpNextFieldsSequenceNumber.increment:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumberCounter - 1027, // 1250: otg.PatternFlowIcmpNextFieldsSequenceNumber.decrement:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumberCounter - 1028, // 1251: otg.PatternFlowIcmpNextFieldsSequenceNumber.metric_tags:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumberMetricTag - 301, // 1252: otg.PatternFlowIcmpv6EchoType.choice:type_name -> otg.PatternFlowIcmpv6EchoType.Choice.Enum - 1030, // 1253: otg.PatternFlowIcmpv6EchoType.increment:type_name -> otg.PatternFlowIcmpv6EchoTypeCounter - 1030, // 1254: otg.PatternFlowIcmpv6EchoType.decrement:type_name -> otg.PatternFlowIcmpv6EchoTypeCounter - 1031, // 1255: otg.PatternFlowIcmpv6EchoType.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoTypeMetricTag - 302, // 1256: otg.PatternFlowIcmpv6EchoCode.choice:type_name -> otg.PatternFlowIcmpv6EchoCode.Choice.Enum - 1033, // 1257: otg.PatternFlowIcmpv6EchoCode.increment:type_name -> otg.PatternFlowIcmpv6EchoCodeCounter - 1033, // 1258: otg.PatternFlowIcmpv6EchoCode.decrement:type_name -> otg.PatternFlowIcmpv6EchoCodeCounter - 1034, // 1259: otg.PatternFlowIcmpv6EchoCode.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoCodeMetricTag - 303, // 1260: otg.PatternFlowIcmpv6EchoIdentifier.choice:type_name -> otg.PatternFlowIcmpv6EchoIdentifier.Choice.Enum - 1036, // 1261: otg.PatternFlowIcmpv6EchoIdentifier.increment:type_name -> otg.PatternFlowIcmpv6EchoIdentifierCounter - 1036, // 1262: otg.PatternFlowIcmpv6EchoIdentifier.decrement:type_name -> otg.PatternFlowIcmpv6EchoIdentifierCounter - 1037, // 1263: otg.PatternFlowIcmpv6EchoIdentifier.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoIdentifierMetricTag - 304, // 1264: otg.PatternFlowIcmpv6EchoSequenceNumber.choice:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumber.Choice.Enum - 1039, // 1265: otg.PatternFlowIcmpv6EchoSequenceNumber.increment:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumberCounter - 1039, // 1266: otg.PatternFlowIcmpv6EchoSequenceNumber.decrement:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumberCounter - 1040, // 1267: otg.PatternFlowIcmpv6EchoSequenceNumber.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumberMetricTag - 305, // 1268: otg.PatternFlowIcmpv6EchoChecksum.choice:type_name -> otg.PatternFlowIcmpv6EchoChecksum.Choice.Enum - 306, // 1269: otg.PatternFlowIcmpv6EchoChecksum.generated:type_name -> otg.PatternFlowIcmpv6EchoChecksum.Generated.Enum - 307, // 1270: otg.PatternFlowIcmpv6CommonChecksum.choice:type_name -> otg.PatternFlowIcmpv6CommonChecksum.Choice.Enum - 308, // 1271: otg.PatternFlowIcmpv6CommonChecksum.generated:type_name -> otg.PatternFlowIcmpv6CommonChecksum.Generated.Enum - 309, // 1272: otg.PatternFlowPppAddress.choice:type_name -> otg.PatternFlowPppAddress.Choice.Enum - 1044, // 1273: otg.PatternFlowPppAddress.increment:type_name -> otg.PatternFlowPppAddressCounter - 1044, // 1274: otg.PatternFlowPppAddress.decrement:type_name -> otg.PatternFlowPppAddressCounter - 1045, // 1275: otg.PatternFlowPppAddress.metric_tags:type_name -> otg.PatternFlowPppAddressMetricTag - 310, // 1276: otg.PatternFlowPppControl.choice:type_name -> otg.PatternFlowPppControl.Choice.Enum - 1047, // 1277: otg.PatternFlowPppControl.increment:type_name -> otg.PatternFlowPppControlCounter - 1047, // 1278: otg.PatternFlowPppControl.decrement:type_name -> otg.PatternFlowPppControlCounter - 1048, // 1279: otg.PatternFlowPppControl.metric_tags:type_name -> otg.PatternFlowPppControlMetricTag - 311, // 1280: otg.PatternFlowPppProtocolType.choice:type_name -> otg.PatternFlowPppProtocolType.Choice.Enum - 1050, // 1281: otg.PatternFlowPppProtocolType.increment:type_name -> otg.PatternFlowPppProtocolTypeCounter - 1050, // 1282: otg.PatternFlowPppProtocolType.decrement:type_name -> otg.PatternFlowPppProtocolTypeCounter - 1051, // 1283: otg.PatternFlowPppProtocolType.metric_tags:type_name -> otg.PatternFlowPppProtocolTypeMetricTag - 312, // 1284: otg.PatternFlowIgmpv1Version.choice:type_name -> otg.PatternFlowIgmpv1Version.Choice.Enum - 1053, // 1285: otg.PatternFlowIgmpv1Version.increment:type_name -> otg.PatternFlowIgmpv1VersionCounter - 1053, // 1286: otg.PatternFlowIgmpv1Version.decrement:type_name -> otg.PatternFlowIgmpv1VersionCounter - 1054, // 1287: otg.PatternFlowIgmpv1Version.metric_tags:type_name -> otg.PatternFlowIgmpv1VersionMetricTag - 313, // 1288: otg.PatternFlowIgmpv1Type.choice:type_name -> otg.PatternFlowIgmpv1Type.Choice.Enum - 1056, // 1289: otg.PatternFlowIgmpv1Type.increment:type_name -> otg.PatternFlowIgmpv1TypeCounter - 1056, // 1290: otg.PatternFlowIgmpv1Type.decrement:type_name -> otg.PatternFlowIgmpv1TypeCounter - 1057, // 1291: otg.PatternFlowIgmpv1Type.metric_tags:type_name -> otg.PatternFlowIgmpv1TypeMetricTag - 314, // 1292: otg.PatternFlowIgmpv1Unused.choice:type_name -> otg.PatternFlowIgmpv1Unused.Choice.Enum - 1059, // 1293: otg.PatternFlowIgmpv1Unused.increment:type_name -> otg.PatternFlowIgmpv1UnusedCounter - 1059, // 1294: otg.PatternFlowIgmpv1Unused.decrement:type_name -> otg.PatternFlowIgmpv1UnusedCounter - 1060, // 1295: otg.PatternFlowIgmpv1Unused.metric_tags:type_name -> otg.PatternFlowIgmpv1UnusedMetricTag - 315, // 1296: otg.PatternFlowIgmpv1Checksum.choice:type_name -> otg.PatternFlowIgmpv1Checksum.Choice.Enum - 316, // 1297: otg.PatternFlowIgmpv1Checksum.generated:type_name -> otg.PatternFlowIgmpv1Checksum.Generated.Enum - 317, // 1298: otg.PatternFlowIgmpv1GroupAddress.choice:type_name -> otg.PatternFlowIgmpv1GroupAddress.Choice.Enum - 1063, // 1299: otg.PatternFlowIgmpv1GroupAddress.increment:type_name -> otg.PatternFlowIgmpv1GroupAddressCounter - 1063, // 1300: otg.PatternFlowIgmpv1GroupAddress.decrement:type_name -> otg.PatternFlowIgmpv1GroupAddressCounter - 1064, // 1301: otg.PatternFlowIgmpv1GroupAddress.metric_tags:type_name -> otg.PatternFlowIgmpv1GroupAddressMetricTag - 318, // 1302: otg.PatternFlowMplsLabel.choice:type_name -> otg.PatternFlowMplsLabel.Choice.Enum - 1066, // 1303: otg.PatternFlowMplsLabel.increment:type_name -> otg.PatternFlowMplsLabelCounter - 1066, // 1304: otg.PatternFlowMplsLabel.decrement:type_name -> otg.PatternFlowMplsLabelCounter - 1067, // 1305: otg.PatternFlowMplsLabel.metric_tags:type_name -> otg.PatternFlowMplsLabelMetricTag - 319, // 1306: otg.PatternFlowMplsTrafficClass.choice:type_name -> otg.PatternFlowMplsTrafficClass.Choice.Enum - 1069, // 1307: otg.PatternFlowMplsTrafficClass.increment:type_name -> otg.PatternFlowMplsTrafficClassCounter - 1069, // 1308: otg.PatternFlowMplsTrafficClass.decrement:type_name -> otg.PatternFlowMplsTrafficClassCounter - 1070, // 1309: otg.PatternFlowMplsTrafficClass.metric_tags:type_name -> otg.PatternFlowMplsTrafficClassMetricTag - 320, // 1310: otg.PatternFlowMplsBottomOfStack.choice:type_name -> otg.PatternFlowMplsBottomOfStack.Choice.Enum - 1072, // 1311: otg.PatternFlowMplsBottomOfStack.increment:type_name -> otg.PatternFlowMplsBottomOfStackCounter - 1072, // 1312: otg.PatternFlowMplsBottomOfStack.decrement:type_name -> otg.PatternFlowMplsBottomOfStackCounter - 1073, // 1313: otg.PatternFlowMplsBottomOfStack.metric_tags:type_name -> otg.PatternFlowMplsBottomOfStackMetricTag - 321, // 1314: otg.PatternFlowMplsTimeToLive.choice:type_name -> otg.PatternFlowMplsTimeToLive.Choice.Enum - 1075, // 1315: otg.PatternFlowMplsTimeToLive.increment:type_name -> otg.PatternFlowMplsTimeToLiveCounter - 1075, // 1316: otg.PatternFlowMplsTimeToLive.decrement:type_name -> otg.PatternFlowMplsTimeToLiveCounter - 1076, // 1317: otg.PatternFlowMplsTimeToLive.metric_tags:type_name -> otg.PatternFlowMplsTimeToLiveMetricTag - 547, // 1318: otg.Success.warning:type_name -> otg.Warning - 546, // 1319: otg.Failure.error:type_name -> otg.Error - 322, // 1320: otg.SetConfigRequest.config:type_name -> otg.Config - 548, // 1321: otg.UpdateConfigRequest.config_update:type_name -> otg.ConfigUpdate - 547, // 1322: otg.SetConfigResponse.warning:type_name -> otg.Warning - 322, // 1323: otg.GetConfigResponse.config:type_name -> otg.Config - 547, // 1324: otg.UpdateConfigResponse.warning:type_name -> otg.Warning - 550, // 1325: otg.SetControlStateRequest.control_state:type_name -> otg.ControlState - 547, // 1326: otg.SetControlStateResponse.warning:type_name -> otg.Warning - 566, // 1327: otg.SetControlActionRequest.control_action:type_name -> otg.ControlAction - 567, // 1328: otg.SetControlActionResponse.control_action_response:type_name -> otg.ControlActionResponse - 586, // 1329: otg.GetMetricsRequest.metrics_request:type_name -> otg.MetricsRequest - 587, // 1330: otg.GetMetricsResponse.metrics_response:type_name -> otg.MetricsResponse - 613, // 1331: otg.GetStatesRequest.states_request:type_name -> otg.StatesRequest - 614, // 1332: otg.GetStatesResponse.states_response:type_name -> otg.StatesResponse - 655, // 1333: otg.GetCaptureRequest.capture_request:type_name -> otg.CaptureRequest - 1078, // 1334: otg.GetVersionResponse.version:type_name -> otg.Version - 1081, // 1335: otg.Openapi.SetConfig:input_type -> otg.SetConfigRequest - 1419, // 1336: otg.Openapi.GetConfig:input_type -> google.protobuf.Empty - 1082, // 1337: otg.Openapi.UpdateConfig:input_type -> otg.UpdateConfigRequest - 1086, // 1338: otg.Openapi.SetControlState:input_type -> otg.SetControlStateRequest - 1088, // 1339: otg.Openapi.SetControlAction:input_type -> otg.SetControlActionRequest - 1090, // 1340: otg.Openapi.GetMetrics:input_type -> otg.GetMetricsRequest - 1092, // 1341: otg.Openapi.GetStates:input_type -> otg.GetStatesRequest - 1094, // 1342: otg.Openapi.GetCapture:input_type -> otg.GetCaptureRequest - 1419, // 1343: otg.Openapi.GetVersion:input_type -> google.protobuf.Empty - 1083, // 1344: otg.Openapi.SetConfig:output_type -> otg.SetConfigResponse - 1084, // 1345: otg.Openapi.GetConfig:output_type -> otg.GetConfigResponse - 1085, // 1346: otg.Openapi.UpdateConfig:output_type -> otg.UpdateConfigResponse - 1087, // 1347: otg.Openapi.SetControlState:output_type -> otg.SetControlStateResponse - 1089, // 1348: otg.Openapi.SetControlAction:output_type -> otg.SetControlActionResponse - 1091, // 1349: otg.Openapi.GetMetrics:output_type -> otg.GetMetricsResponse - 1093, // 1350: otg.Openapi.GetStates:output_type -> otg.GetStatesResponse - 1095, // 1351: otg.Openapi.GetCapture:output_type -> otg.GetCaptureResponse - 1096, // 1352: otg.Openapi.GetVersion:output_type -> otg.GetVersionResponse - 1344, // [1344:1353] is the sub-list for method output_type - 1335, // [1335:1344] is the sub-list for method input_type - 1335, // [1335:1335] is the sub-list for extension type_name - 1335, // [1335:1335] is the sub-list for extension extendee - 0, // [0:1335] is the sub-list for field type_name + 501, // 338: otg.FlowHeader.custom:type_name -> otg.FlowCustom + 503, // 339: otg.FlowHeader.ethernet:type_name -> otg.FlowEthernet + 504, // 340: otg.FlowHeader.vlan:type_name -> otg.FlowVlan + 505, // 341: otg.FlowHeader.vxlan:type_name -> otg.FlowVxlan + 506, // 342: otg.FlowHeader.ipv4:type_name -> otg.FlowIpv4 + 514, // 343: otg.FlowHeader.ipv6:type_name -> otg.FlowIpv6 + 515, // 344: otg.FlowHeader.pfcpause:type_name -> otg.FlowPfcPause + 516, // 345: otg.FlowHeader.ethernetpause:type_name -> otg.FlowEthernetPause + 517, // 346: otg.FlowHeader.tcp:type_name -> otg.FlowTcp + 518, // 347: otg.FlowHeader.udp:type_name -> otg.FlowUdp + 519, // 348: otg.FlowHeader.gre:type_name -> otg.FlowGre + 520, // 349: otg.FlowHeader.gtpv1:type_name -> otg.FlowGtpv1 + 522, // 350: otg.FlowHeader.gtpv2:type_name -> otg.FlowGtpv2 + 523, // 351: otg.FlowHeader.arp:type_name -> otg.FlowArp + 524, // 352: otg.FlowHeader.icmp:type_name -> otg.FlowIcmp + 526, // 353: otg.FlowHeader.icmpv6:type_name -> otg.FlowIcmpv6 + 528, // 354: otg.FlowHeader.ppp:type_name -> otg.FlowPpp + 529, // 355: otg.FlowHeader.igmpv1:type_name -> otg.FlowIgmpv1 + 530, // 356: otg.FlowHeader.mpls:type_name -> otg.FlowMpls + 531, // 357: otg.FlowHeader.snmpv2c:type_name -> otg.FlowSnmpv2c + 502, // 358: otg.FlowCustom.metric_tags:type_name -> otg.FlowCustomMetricTag + 680, // 359: otg.FlowEthernet.dst:type_name -> otg.PatternFlowEthernetDst + 683, // 360: otg.FlowEthernet.src:type_name -> otg.PatternFlowEthernetSrc + 686, // 361: otg.FlowEthernet.ether_type:type_name -> otg.PatternFlowEthernetEtherType + 689, // 362: otg.FlowEthernet.pfc_queue:type_name -> otg.PatternFlowEthernetPfcQueue + 692, // 363: otg.FlowVlan.priority:type_name -> otg.PatternFlowVlanPriority + 695, // 364: otg.FlowVlan.cfi:type_name -> otg.PatternFlowVlanCfi + 698, // 365: otg.FlowVlan.id:type_name -> otg.PatternFlowVlanId + 701, // 366: otg.FlowVlan.tpid:type_name -> otg.PatternFlowVlanTpid + 704, // 367: otg.FlowVxlan.flags:type_name -> otg.PatternFlowVxlanFlags + 707, // 368: otg.FlowVxlan.reserved0:type_name -> otg.PatternFlowVxlanReserved0 + 710, // 369: otg.FlowVxlan.vni:type_name -> otg.PatternFlowVxlanVni + 713, // 370: otg.FlowVxlan.reserved1:type_name -> otg.PatternFlowVxlanReserved1 + 716, // 371: otg.FlowIpv4.version:type_name -> otg.PatternFlowIpv4Version + 719, // 372: otg.FlowIpv4.header_length:type_name -> otg.PatternFlowIpv4HeaderLength + 511, // 373: otg.FlowIpv4.priority:type_name -> otg.FlowIpv4Priority + 722, // 374: otg.FlowIpv4.total_length:type_name -> otg.PatternFlowIpv4TotalLength + 725, // 375: otg.FlowIpv4.identification:type_name -> otg.PatternFlowIpv4Identification + 728, // 376: otg.FlowIpv4.reserved:type_name -> otg.PatternFlowIpv4Reserved + 731, // 377: otg.FlowIpv4.dont_fragment:type_name -> otg.PatternFlowIpv4DontFragment + 734, // 378: otg.FlowIpv4.more_fragments:type_name -> otg.PatternFlowIpv4MoreFragments + 737, // 379: otg.FlowIpv4.fragment_offset:type_name -> otg.PatternFlowIpv4FragmentOffset + 740, // 380: otg.FlowIpv4.time_to_live:type_name -> otg.PatternFlowIpv4TimeToLive + 743, // 381: otg.FlowIpv4.protocol:type_name -> otg.PatternFlowIpv4Protocol + 744, // 382: otg.FlowIpv4.header_checksum:type_name -> otg.PatternFlowIpv4HeaderChecksum + 747, // 383: otg.FlowIpv4.src:type_name -> otg.PatternFlowIpv4Src + 750, // 384: otg.FlowIpv4.dst:type_name -> otg.PatternFlowIpv4Dst + 507, // 385: otg.FlowIpv4.options:type_name -> otg.FlowIpv4Options + 69, // 386: otg.FlowIpv4Options.choice:type_name -> otg.FlowIpv4Options.Choice.Enum + 508, // 387: otg.FlowIpv4Options.custom:type_name -> otg.FlowIpv4OptionsCustom + 509, // 388: otg.FlowIpv4OptionsCustom.type:type_name -> otg.FlowIpv4OptionsCustomType + 510, // 389: otg.FlowIpv4OptionsCustom.length:type_name -> otg.FlowIpv4OptionsCustomLength + 752, // 390: otg.FlowIpv4OptionsCustomType.copied_flag:type_name -> otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag + 754, // 391: otg.FlowIpv4OptionsCustomType.option_class:type_name -> otg.PatternFlowIpv4OptionsCustomTypeOptionClass + 756, // 392: otg.FlowIpv4OptionsCustomType.option_number:type_name -> otg.PatternFlowIpv4OptionsCustomTypeOptionNumber + 70, // 393: otg.FlowIpv4OptionsCustomLength.choice:type_name -> otg.FlowIpv4OptionsCustomLength.Choice.Enum + 71, // 394: otg.FlowIpv4Priority.choice:type_name -> otg.FlowIpv4Priority.Choice.Enum + 759, // 395: otg.FlowIpv4Priority.raw:type_name -> otg.PatternFlowIpv4PriorityRaw + 513, // 396: otg.FlowIpv4Priority.tos:type_name -> otg.FlowIpv4Tos + 512, // 397: otg.FlowIpv4Priority.dscp:type_name -> otg.FlowIpv4Dscp + 762, // 398: otg.FlowIpv4Dscp.phb:type_name -> otg.PatternFlowIpv4DscpPhb + 765, // 399: otg.FlowIpv4Dscp.ecn:type_name -> otg.PatternFlowIpv4DscpEcn + 768, // 400: otg.FlowIpv4Tos.precedence:type_name -> otg.PatternFlowIpv4TosPrecedence + 771, // 401: otg.FlowIpv4Tos.delay:type_name -> otg.PatternFlowIpv4TosDelay + 774, // 402: otg.FlowIpv4Tos.throughput:type_name -> otg.PatternFlowIpv4TosThroughput + 777, // 403: otg.FlowIpv4Tos.reliability:type_name -> otg.PatternFlowIpv4TosReliability + 780, // 404: otg.FlowIpv4Tos.monetary:type_name -> otg.PatternFlowIpv4TosMonetary + 783, // 405: otg.FlowIpv4Tos.unused:type_name -> otg.PatternFlowIpv4TosUnused + 786, // 406: otg.FlowIpv6.version:type_name -> otg.PatternFlowIpv6Version + 789, // 407: otg.FlowIpv6.traffic_class:type_name -> otg.PatternFlowIpv6TrafficClass + 792, // 408: otg.FlowIpv6.flow_label:type_name -> otg.PatternFlowIpv6FlowLabel + 795, // 409: otg.FlowIpv6.payload_length:type_name -> otg.PatternFlowIpv6PayloadLength + 798, // 410: otg.FlowIpv6.next_header:type_name -> otg.PatternFlowIpv6NextHeader + 801, // 411: otg.FlowIpv6.hop_limit:type_name -> otg.PatternFlowIpv6HopLimit + 804, // 412: otg.FlowIpv6.src:type_name -> otg.PatternFlowIpv6Src + 807, // 413: otg.FlowIpv6.dst:type_name -> otg.PatternFlowIpv6Dst + 810, // 414: otg.FlowPfcPause.dst:type_name -> otg.PatternFlowPfcPauseDst + 813, // 415: otg.FlowPfcPause.src:type_name -> otg.PatternFlowPfcPauseSrc + 816, // 416: otg.FlowPfcPause.ether_type:type_name -> otg.PatternFlowPfcPauseEtherType + 819, // 417: otg.FlowPfcPause.control_op_code:type_name -> otg.PatternFlowPfcPauseControlOpCode + 822, // 418: otg.FlowPfcPause.class_enable_vector:type_name -> otg.PatternFlowPfcPauseClassEnableVector + 825, // 419: otg.FlowPfcPause.pause_class_0:type_name -> otg.PatternFlowPfcPausePauseClass0 + 828, // 420: otg.FlowPfcPause.pause_class_1:type_name -> otg.PatternFlowPfcPausePauseClass1 + 831, // 421: otg.FlowPfcPause.pause_class_2:type_name -> otg.PatternFlowPfcPausePauseClass2 + 834, // 422: otg.FlowPfcPause.pause_class_3:type_name -> otg.PatternFlowPfcPausePauseClass3 + 837, // 423: otg.FlowPfcPause.pause_class_4:type_name -> otg.PatternFlowPfcPausePauseClass4 + 840, // 424: otg.FlowPfcPause.pause_class_5:type_name -> otg.PatternFlowPfcPausePauseClass5 + 843, // 425: otg.FlowPfcPause.pause_class_6:type_name -> otg.PatternFlowPfcPausePauseClass6 + 846, // 426: otg.FlowPfcPause.pause_class_7:type_name -> otg.PatternFlowPfcPausePauseClass7 + 849, // 427: otg.FlowEthernetPause.dst:type_name -> otg.PatternFlowEthernetPauseDst + 852, // 428: otg.FlowEthernetPause.src:type_name -> otg.PatternFlowEthernetPauseSrc + 855, // 429: otg.FlowEthernetPause.ether_type:type_name -> otg.PatternFlowEthernetPauseEtherType + 858, // 430: otg.FlowEthernetPause.control_op_code:type_name -> otg.PatternFlowEthernetPauseControlOpCode + 861, // 431: otg.FlowEthernetPause.time:type_name -> otg.PatternFlowEthernetPauseTime + 864, // 432: otg.FlowTcp.src_port:type_name -> otg.PatternFlowTcpSrcPort + 867, // 433: otg.FlowTcp.dst_port:type_name -> otg.PatternFlowTcpDstPort + 870, // 434: otg.FlowTcp.seq_num:type_name -> otg.PatternFlowTcpSeqNum + 873, // 435: otg.FlowTcp.ack_num:type_name -> otg.PatternFlowTcpAckNum + 876, // 436: otg.FlowTcp.data_offset:type_name -> otg.PatternFlowTcpDataOffset + 879, // 437: otg.FlowTcp.ecn_ns:type_name -> otg.PatternFlowTcpEcnNs + 882, // 438: otg.FlowTcp.ecn_cwr:type_name -> otg.PatternFlowTcpEcnCwr + 885, // 439: otg.FlowTcp.ecn_echo:type_name -> otg.PatternFlowTcpEcnEcho + 888, // 440: otg.FlowTcp.ctl_urg:type_name -> otg.PatternFlowTcpCtlUrg + 891, // 441: otg.FlowTcp.ctl_ack:type_name -> otg.PatternFlowTcpCtlAck + 894, // 442: otg.FlowTcp.ctl_psh:type_name -> otg.PatternFlowTcpCtlPsh + 897, // 443: otg.FlowTcp.ctl_rst:type_name -> otg.PatternFlowTcpCtlRst + 900, // 444: otg.FlowTcp.ctl_syn:type_name -> otg.PatternFlowTcpCtlSyn + 903, // 445: otg.FlowTcp.ctl_fin:type_name -> otg.PatternFlowTcpCtlFin + 906, // 446: otg.FlowTcp.window:type_name -> otg.PatternFlowTcpWindow + 909, // 447: otg.FlowUdp.src_port:type_name -> otg.PatternFlowUdpSrcPort + 912, // 448: otg.FlowUdp.dst_port:type_name -> otg.PatternFlowUdpDstPort + 915, // 449: otg.FlowUdp.length:type_name -> otg.PatternFlowUdpLength + 916, // 450: otg.FlowUdp.checksum:type_name -> otg.PatternFlowUdpChecksum + 919, // 451: otg.FlowGre.checksum_present:type_name -> otg.PatternFlowGreChecksumPresent + 922, // 452: otg.FlowGre.reserved0:type_name -> otg.PatternFlowGreReserved0 + 925, // 453: otg.FlowGre.version:type_name -> otg.PatternFlowGreVersion + 928, // 454: otg.FlowGre.protocol:type_name -> otg.PatternFlowGreProtocol + 929, // 455: otg.FlowGre.checksum:type_name -> otg.PatternFlowGreChecksum + 932, // 456: otg.FlowGre.reserved1:type_name -> otg.PatternFlowGreReserved1 + 935, // 457: otg.FlowGtpv1.version:type_name -> otg.PatternFlowGtpv1Version + 938, // 458: otg.FlowGtpv1.protocol_type:type_name -> otg.PatternFlowGtpv1ProtocolType + 941, // 459: otg.FlowGtpv1.reserved:type_name -> otg.PatternFlowGtpv1Reserved + 944, // 460: otg.FlowGtpv1.e_flag:type_name -> otg.PatternFlowGtpv1EFlag + 947, // 461: otg.FlowGtpv1.s_flag:type_name -> otg.PatternFlowGtpv1SFlag + 950, // 462: otg.FlowGtpv1.pn_flag:type_name -> otg.PatternFlowGtpv1PnFlag + 953, // 463: otg.FlowGtpv1.message_type:type_name -> otg.PatternFlowGtpv1MessageType + 956, // 464: otg.FlowGtpv1.message_length:type_name -> otg.PatternFlowGtpv1MessageLength + 959, // 465: otg.FlowGtpv1.teid:type_name -> otg.PatternFlowGtpv1Teid + 962, // 466: otg.FlowGtpv1.squence_number:type_name -> otg.PatternFlowGtpv1SquenceNumber + 965, // 467: otg.FlowGtpv1.n_pdu_number:type_name -> otg.PatternFlowGtpv1NPduNumber + 968, // 468: otg.FlowGtpv1.next_extension_header_type:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderType + 521, // 469: otg.FlowGtpv1.extension_headers:type_name -> otg.FlowGtpExtension + 971, // 470: otg.FlowGtpExtension.extension_length:type_name -> otg.PatternFlowGtpExtensionExtensionLength + 974, // 471: otg.FlowGtpExtension.contents:type_name -> otg.PatternFlowGtpExtensionContents + 977, // 472: otg.FlowGtpExtension.next_extension_header:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeader + 980, // 473: otg.FlowGtpv2.version:type_name -> otg.PatternFlowGtpv2Version + 983, // 474: otg.FlowGtpv2.piggybacking_flag:type_name -> otg.PatternFlowGtpv2PiggybackingFlag + 986, // 475: otg.FlowGtpv2.teid_flag:type_name -> otg.PatternFlowGtpv2TeidFlag + 989, // 476: otg.FlowGtpv2.spare1:type_name -> otg.PatternFlowGtpv2Spare1 + 992, // 477: otg.FlowGtpv2.message_type:type_name -> otg.PatternFlowGtpv2MessageType + 995, // 478: otg.FlowGtpv2.message_length:type_name -> otg.PatternFlowGtpv2MessageLength + 998, // 479: otg.FlowGtpv2.teid:type_name -> otg.PatternFlowGtpv2Teid + 1001, // 480: otg.FlowGtpv2.sequence_number:type_name -> otg.PatternFlowGtpv2SequenceNumber + 1004, // 481: otg.FlowGtpv2.spare2:type_name -> otg.PatternFlowGtpv2Spare2 + 1007, // 482: otg.FlowArp.hardware_type:type_name -> otg.PatternFlowArpHardwareType + 1010, // 483: otg.FlowArp.protocol_type:type_name -> otg.PatternFlowArpProtocolType + 1013, // 484: otg.FlowArp.hardware_length:type_name -> otg.PatternFlowArpHardwareLength + 1016, // 485: otg.FlowArp.protocol_length:type_name -> otg.PatternFlowArpProtocolLength + 1019, // 486: otg.FlowArp.operation:type_name -> otg.PatternFlowArpOperation + 1022, // 487: otg.FlowArp.sender_hardware_addr:type_name -> otg.PatternFlowArpSenderHardwareAddr + 1025, // 488: otg.FlowArp.sender_protocol_addr:type_name -> otg.PatternFlowArpSenderProtocolAddr + 1028, // 489: otg.FlowArp.target_hardware_addr:type_name -> otg.PatternFlowArpTargetHardwareAddr + 1031, // 490: otg.FlowArp.target_protocol_addr:type_name -> otg.PatternFlowArpTargetProtocolAddr + 72, // 491: otg.FlowIcmp.choice:type_name -> otg.FlowIcmp.Choice.Enum + 525, // 492: otg.FlowIcmp.echo:type_name -> otg.FlowIcmpEcho + 1034, // 493: otg.FlowIcmpEcho.type:type_name -> otg.PatternFlowIcmpEchoType + 1037, // 494: otg.FlowIcmpEcho.code:type_name -> otg.PatternFlowIcmpEchoCode + 1038, // 495: otg.FlowIcmpEcho.checksum:type_name -> otg.PatternFlowIcmpEchoChecksum + 1041, // 496: otg.FlowIcmpEcho.identifier:type_name -> otg.PatternFlowIcmpEchoIdentifier + 1044, // 497: otg.FlowIcmpEcho.sequence_number:type_name -> otg.PatternFlowIcmpEchoSequenceNumber + 73, // 498: otg.FlowIcmpv6.choice:type_name -> otg.FlowIcmpv6.Choice.Enum + 527, // 499: otg.FlowIcmpv6.echo:type_name -> otg.FlowIcmpv6Echo + 1054, // 500: otg.FlowIcmpv6Echo.type:type_name -> otg.PatternFlowIcmpv6EchoType + 1057, // 501: otg.FlowIcmpv6Echo.code:type_name -> otg.PatternFlowIcmpv6EchoCode + 1060, // 502: otg.FlowIcmpv6Echo.identifier:type_name -> otg.PatternFlowIcmpv6EchoIdentifier + 1063, // 503: otg.FlowIcmpv6Echo.sequence_number:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumber + 1064, // 504: otg.FlowIcmpv6Echo.checksum:type_name -> otg.PatternFlowIcmpv6EchoChecksum + 1068, // 505: otg.FlowPpp.address:type_name -> otg.PatternFlowPppAddress + 1071, // 506: otg.FlowPpp.control:type_name -> otg.PatternFlowPppControl + 1074, // 507: otg.FlowPpp.protocol_type:type_name -> otg.PatternFlowPppProtocolType + 1077, // 508: otg.FlowIgmpv1.version:type_name -> otg.PatternFlowIgmpv1Version + 1080, // 509: otg.FlowIgmpv1.type:type_name -> otg.PatternFlowIgmpv1Type + 1083, // 510: otg.FlowIgmpv1.unused:type_name -> otg.PatternFlowIgmpv1Unused + 1084, // 511: otg.FlowIgmpv1.checksum:type_name -> otg.PatternFlowIgmpv1Checksum + 1087, // 512: otg.FlowIgmpv1.group_address:type_name -> otg.PatternFlowIgmpv1GroupAddress + 1090, // 513: otg.FlowMpls.label:type_name -> otg.PatternFlowMplsLabel + 1093, // 514: otg.FlowMpls.traffic_class:type_name -> otg.PatternFlowMplsTrafficClass + 1096, // 515: otg.FlowMpls.bottom_of_stack:type_name -> otg.PatternFlowMplsBottomOfStack + 1099, // 516: otg.FlowMpls.time_to_live:type_name -> otg.PatternFlowMplsTimeToLive + 1101, // 517: otg.FlowSnmpv2c.version:type_name -> otg.PatternFlowSnmpv2cVersion + 532, // 518: otg.FlowSnmpv2c.data:type_name -> otg.FlowSnmpv2cData + 74, // 519: otg.FlowSnmpv2cData.choice:type_name -> otg.FlowSnmpv2cData.Choice.Enum + 533, // 520: otg.FlowSnmpv2cData.get_request:type_name -> otg.FlowSnmpv2cPDU + 533, // 521: otg.FlowSnmpv2cData.get_next_request:type_name -> otg.FlowSnmpv2cPDU + 533, // 522: otg.FlowSnmpv2cData.response:type_name -> otg.FlowSnmpv2cPDU + 533, // 523: otg.FlowSnmpv2cData.set_request:type_name -> otg.FlowSnmpv2cPDU + 534, // 524: otg.FlowSnmpv2cData.get_bulk_request:type_name -> otg.FlowSnmpv2cBulkPDU + 533, // 525: otg.FlowSnmpv2cData.inform_request:type_name -> otg.FlowSnmpv2cPDU + 533, // 526: otg.FlowSnmpv2cData.snmpv2_trap:type_name -> otg.FlowSnmpv2cPDU + 533, // 527: otg.FlowSnmpv2cData.report:type_name -> otg.FlowSnmpv2cPDU + 1103, // 528: otg.FlowSnmpv2cPDU.request_id:type_name -> otg.PatternFlowSnmpv2cPDURequestId + 75, // 529: otg.FlowSnmpv2cPDU.error_status:type_name -> otg.FlowSnmpv2cPDU.ErrorStatus.Enum + 1105, // 530: otg.FlowSnmpv2cPDU.error_index:type_name -> otg.PatternFlowSnmpv2cPDUErrorIndex + 535, // 531: otg.FlowSnmpv2cPDU.variable_bindings:type_name -> otg.FlowSnmpv2cVariableBinding + 1107, // 532: otg.FlowSnmpv2cBulkPDU.request_id:type_name -> otg.PatternFlowSnmpv2cBulkPDURequestId + 1108, // 533: otg.FlowSnmpv2cBulkPDU.non_repeaters:type_name -> otg.PatternFlowSnmpv2cBulkPDUNonRepeaters + 1110, // 534: otg.FlowSnmpv2cBulkPDU.max_repetitions:type_name -> otg.PatternFlowSnmpv2cBulkPDUMaxRepetitions + 535, // 535: otg.FlowSnmpv2cBulkPDU.variable_bindings:type_name -> otg.FlowSnmpv2cVariableBinding + 536, // 536: otg.FlowSnmpv2cVariableBinding.value:type_name -> otg.FlowSnmpv2cVariableBindingValue + 76, // 537: otg.FlowSnmpv2cVariableBindingValue.choice:type_name -> otg.FlowSnmpv2cVariableBindingValue.Choice.Enum + 1112, // 538: otg.FlowSnmpv2cVariableBindingValue.integer_value:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueIntegerValue + 1114, // 539: otg.FlowSnmpv2cVariableBindingValue.ip_address_value:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueIpAddressValue + 1116, // 540: otg.FlowSnmpv2cVariableBindingValue.counter_value:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueCounterValue + 1118, // 541: otg.FlowSnmpv2cVariableBindingValue.timeticks_value:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueTimeticksValue + 1120, // 542: otg.FlowSnmpv2cVariableBindingValue.big_counter_value:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueBigCounterValue + 1122, // 543: otg.FlowSnmpv2cVariableBindingValue.unsigned_integer_value:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValue + 77, // 544: otg.FlowSize.choice:type_name -> otg.FlowSize.Choice.Enum + 538, // 545: otg.FlowSize.increment:type_name -> otg.FlowSizeIncrement + 539, // 546: otg.FlowSize.random:type_name -> otg.FlowSizeRandom + 540, // 547: otg.FlowSize.weight_pairs:type_name -> otg.FlowSizeWeightPairs + 78, // 548: otg.FlowSizeWeightPairs.choice:type_name -> otg.FlowSizeWeightPairs.Choice.Enum + 79, // 549: otg.FlowSizeWeightPairs.predefined:type_name -> otg.FlowSizeWeightPairs.Predefined.Enum + 541, // 550: otg.FlowSizeWeightPairs.custom:type_name -> otg.FlowSizeWeightPairsCustom + 80, // 551: otg.FlowRate.choice:type_name -> otg.FlowRate.Choice.Enum + 81, // 552: otg.FlowDuration.choice:type_name -> otg.FlowDuration.Choice.Enum + 546, // 553: otg.FlowDuration.fixed_packets:type_name -> otg.FlowFixedPackets + 547, // 554: otg.FlowDuration.fixed_seconds:type_name -> otg.FlowFixedSeconds + 548, // 555: otg.FlowDuration.burst:type_name -> otg.FlowBurst + 544, // 556: otg.FlowDuration.continuous:type_name -> otg.FlowContinuous + 545, // 557: otg.FlowContinuous.delay:type_name -> otg.FlowDelay + 82, // 558: otg.FlowDelay.choice:type_name -> otg.FlowDelay.Choice.Enum + 545, // 559: otg.FlowFixedPackets.delay:type_name -> otg.FlowDelay + 545, // 560: otg.FlowFixedSeconds.delay:type_name -> otg.FlowDelay + 549, // 561: otg.FlowBurst.inter_burst_gap:type_name -> otg.FlowDurationInterBurstGap + 83, // 562: otg.FlowDurationInterBurstGap.choice:type_name -> otg.FlowDurationInterBurstGap.Choice.Enum + 553, // 563: otg.FlowMetrics.rx_tx_ratio:type_name -> otg.FlowRxTxRatio + 551, // 564: otg.FlowMetrics.latency:type_name -> otg.FlowLatencyMetrics + 552, // 565: otg.FlowMetrics.predefined_metric_tags:type_name -> otg.FlowPredefinedTags + 84, // 566: otg.FlowLatencyMetrics.mode:type_name -> otg.FlowLatencyMetrics.Mode.Enum + 85, // 567: otg.FlowRxTxRatio.choice:type_name -> otg.FlowRxTxRatio.Choice.Enum + 554, // 568: otg.FlowRxTxRatio.rx_count:type_name -> otg.FlowRxTxRatioRxCount + 557, // 569: otg.Event.link:type_name -> otg.EventLink + 556, // 570: otg.Event.rx_rate_threshold:type_name -> otg.EventRxRateThreshold + 558, // 571: otg.Event.route_advertise_withdraw:type_name -> otg.EventRouteAdvertiseWithdraw + 86, // 572: otg.EventRequest.type:type_name -> otg.EventRequest.Type.Enum + 559, // 573: otg.EventSubscription.events:type_name -> otg.EventRequest + 562, // 574: otg.Lldp.connection:type_name -> otg.LldpConnection + 563, // 575: otg.Lldp.chassis_id:type_name -> otg.LldpChassisId + 564, // 576: otg.Lldp.port_id:type_name -> otg.LldpPortId + 567, // 577: otg.Lldp.system_name:type_name -> otg.LldpSystemName + 87, // 578: otg.LldpConnection.choice:type_name -> otg.LldpConnection.Choice.Enum + 88, // 579: otg.LldpChassisId.choice:type_name -> otg.LldpChassisId.Choice.Enum + 565, // 580: otg.LldpChassisId.mac_address_subtype:type_name -> otg.LldpChassisMacSubType + 89, // 581: otg.LldpPortId.choice:type_name -> otg.LldpPortId.Choice.Enum + 566, // 582: otg.LldpPortId.interface_name_subtype:type_name -> otg.LldpPortInterfaceNameSubType + 90, // 583: otg.LldpChassisMacSubType.choice:type_name -> otg.LldpChassisMacSubType.Choice.Enum + 91, // 584: otg.LldpPortInterfaceNameSubType.choice:type_name -> otg.LldpPortInterfaceNameSubType.Choice.Enum + 92, // 585: otg.LldpSystemName.choice:type_name -> otg.LldpSystemName.Choice.Enum + 93, // 586: otg.Error.kind:type_name -> otg.Error.Kind.Enum + 94, // 587: otg.ConfigUpdate.choice:type_name -> otg.ConfigUpdate.Choice.Enum + 571, // 588: otg.ConfigUpdate.flows:type_name -> otg.FlowsUpdate + 95, // 589: otg.FlowsUpdate.property_names:type_name -> otg.FlowsUpdate.PropertyNames.Enum + 496, // 590: otg.FlowsUpdate.flows:type_name -> otg.Flow + 96, // 591: otg.ControlState.choice:type_name -> otg.ControlState.Choice.Enum + 573, // 592: otg.ControlState.port:type_name -> otg.StatePort + 575, // 593: otg.ControlState.protocol:type_name -> otg.StateProtocol + 574, // 594: otg.ControlState.traffic:type_name -> otg.StateTraffic + 97, // 595: otg.StatePort.choice:type_name -> otg.StatePort.Choice.Enum + 576, // 596: otg.StatePort.link:type_name -> otg.StatePortLink + 577, // 597: otg.StatePort.capture:type_name -> otg.StatePortCapture + 98, // 598: otg.StateTraffic.choice:type_name -> otg.StateTraffic.Choice.Enum + 578, // 599: otg.StateTraffic.flow_transmit:type_name -> otg.StateTrafficFlowTransmit + 99, // 600: otg.StateProtocol.choice:type_name -> otg.StateProtocol.Choice.Enum + 579, // 601: otg.StateProtocol.all:type_name -> otg.StateProtocolAll + 580, // 602: otg.StateProtocol.route:type_name -> otg.StateProtocolRoute + 581, // 603: otg.StateProtocol.lacp:type_name -> otg.StateProtocolLacp + 584, // 604: otg.StateProtocol.bgp:type_name -> otg.StateProtocolBgp + 586, // 605: otg.StateProtocol.isis:type_name -> otg.StateProtocolIsis + 100, // 606: otg.StatePortLink.state:type_name -> otg.StatePortLink.State.Enum + 101, // 607: otg.StatePortCapture.state:type_name -> otg.StatePortCapture.State.Enum + 102, // 608: otg.StateTrafficFlowTransmit.state:type_name -> otg.StateTrafficFlowTransmit.State.Enum + 103, // 609: otg.StateProtocolAll.state:type_name -> otg.StateProtocolAll.State.Enum + 104, // 610: otg.StateProtocolRoute.state:type_name -> otg.StateProtocolRoute.State.Enum + 105, // 611: otg.StateProtocolLacp.choice:type_name -> otg.StateProtocolLacp.Choice.Enum + 582, // 612: otg.StateProtocolLacp.admin:type_name -> otg.StateProtocolLacpAdmin + 583, // 613: otg.StateProtocolLacp.member_ports:type_name -> otg.StateProtocolLacpMemberPorts + 106, // 614: otg.StateProtocolLacpAdmin.state:type_name -> otg.StateProtocolLacpAdmin.State.Enum + 107, // 615: otg.StateProtocolLacpMemberPorts.state:type_name -> otg.StateProtocolLacpMemberPorts.State.Enum + 108, // 616: otg.StateProtocolBgp.choice:type_name -> otg.StateProtocolBgp.Choice.Enum + 585, // 617: otg.StateProtocolBgp.peers:type_name -> otg.StateProtocolBgpPeers + 109, // 618: otg.StateProtocolBgpPeers.state:type_name -> otg.StateProtocolBgpPeers.State.Enum + 110, // 619: otg.StateProtocolIsis.choice:type_name -> otg.StateProtocolIsis.Choice.Enum + 587, // 620: otg.StateProtocolIsis.routers:type_name -> otg.StateProtocolIsisRouters + 111, // 621: otg.StateProtocolIsisRouters.state:type_name -> otg.StateProtocolIsisRouters.State.Enum + 112, // 622: otg.ControlAction.choice:type_name -> otg.ControlAction.Choice.Enum + 591, // 623: otg.ControlAction.protocol:type_name -> otg.ActionProtocol + 590, // 624: otg.ControlActionResponse.response:type_name -> otg.ActionResponse + 113, // 625: otg.ActionResponse.choice:type_name -> otg.ActionResponse.Choice.Enum + 592, // 626: otg.ActionResponse.protocol:type_name -> otg.ActionResponseProtocol + 114, // 627: otg.ActionProtocol.choice:type_name -> otg.ActionProtocol.Choice.Enum + 593, // 628: otg.ActionProtocol.ipv4:type_name -> otg.ActionProtocolIpv4 + 599, // 629: otg.ActionProtocol.ipv6:type_name -> otg.ActionProtocolIpv6 + 605, // 630: otg.ActionProtocol.bgp:type_name -> otg.ActionProtocolBgp + 115, // 631: otg.ActionResponseProtocol.choice:type_name -> otg.ActionResponseProtocol.Choice.Enum + 594, // 632: otg.ActionResponseProtocol.ipv4:type_name -> otg.ActionResponseProtocolIpv4 + 600, // 633: otg.ActionResponseProtocol.ipv6:type_name -> otg.ActionResponseProtocolIpv6 + 116, // 634: otg.ActionProtocolIpv4.choice:type_name -> otg.ActionProtocolIpv4.Choice.Enum + 595, // 635: otg.ActionProtocolIpv4.ping:type_name -> otg.ActionProtocolIpv4Ping + 117, // 636: otg.ActionResponseProtocolIpv4.choice:type_name -> otg.ActionResponseProtocolIpv4.Choice.Enum + 597, // 637: otg.ActionResponseProtocolIpv4.ping:type_name -> otg.ActionResponseProtocolIpv4Ping + 596, // 638: otg.ActionProtocolIpv4Ping.requests:type_name -> otg.ActionProtocolIpv4PingRequest + 598, // 639: otg.ActionResponseProtocolIpv4Ping.responses:type_name -> otg.ActionResponseProtocolIpv4PingResponse + 118, // 640: otg.ActionResponseProtocolIpv4PingResponse.result:type_name -> otg.ActionResponseProtocolIpv4PingResponse.Result.Enum + 119, // 641: otg.ActionProtocolIpv6.choice:type_name -> otg.ActionProtocolIpv6.Choice.Enum + 601, // 642: otg.ActionProtocolIpv6.ping:type_name -> otg.ActionProtocolIpv6Ping + 120, // 643: otg.ActionResponseProtocolIpv6.choice:type_name -> otg.ActionResponseProtocolIpv6.Choice.Enum + 603, // 644: otg.ActionResponseProtocolIpv6.ping:type_name -> otg.ActionResponseProtocolIpv6Ping + 602, // 645: otg.ActionProtocolIpv6Ping.requests:type_name -> otg.ActionProtocolIpv6PingRequest + 604, // 646: otg.ActionResponseProtocolIpv6Ping.responses:type_name -> otg.ActionResponseProtocolIpv6PingResponse + 121, // 647: otg.ActionResponseProtocolIpv6PingResponse.result:type_name -> otg.ActionResponseProtocolIpv6PingResponse.Result.Enum + 122, // 648: otg.ActionProtocolBgp.choice:type_name -> otg.ActionProtocolBgp.Choice.Enum + 606, // 649: otg.ActionProtocolBgp.notification:type_name -> otg.ActionProtocolBgpNotification + 607, // 650: otg.ActionProtocolBgp.initiate_graceful_restart:type_name -> otg.ActionProtocolBgpInitiateGracefulRestart + 123, // 651: otg.ActionProtocolBgpNotification.choice:type_name -> otg.ActionProtocolBgpNotification.Choice.Enum + 398, // 652: otg.ActionProtocolBgpNotification.cease:type_name -> otg.DeviceBgpCeaseError + 393, // 653: otg.ActionProtocolBgpNotification.message_header_error:type_name -> otg.DeviceBgpMessageHeaderError + 394, // 654: otg.ActionProtocolBgpNotification.open_message_error:type_name -> otg.DeviceBgpOpenMessageError + 395, // 655: otg.ActionProtocolBgpNotification.update_message_error:type_name -> otg.DeviceBgpUpdateMessageError + 396, // 656: otg.ActionProtocolBgpNotification.hold_timer_expired:type_name -> otg.DeviceBgpHoldTimerExpired + 397, // 657: otg.ActionProtocolBgpNotification.finite_state_machine_error:type_name -> otg.DeviceBgpFiniteStateMachineError + 399, // 658: otg.ActionProtocolBgpNotification.custom:type_name -> otg.DeviceBgpCustomError + 124, // 659: otg.MetricsRequest.choice:type_name -> otg.MetricsRequest.Choice.Enum + 610, // 660: otg.MetricsRequest.port:type_name -> otg.PortMetricsRequest + 612, // 661: otg.MetricsRequest.flow:type_name -> otg.FlowMetricsRequest + 621, // 662: otg.MetricsRequest.bgpv4:type_name -> otg.Bgpv4MetricsRequest + 623, // 663: otg.MetricsRequest.bgpv6:type_name -> otg.Bgpv6MetricsRequest + 625, // 664: otg.MetricsRequest.isis:type_name -> otg.IsisMetricsRequest + 627, // 665: otg.MetricsRequest.lag:type_name -> otg.LagMetricsRequest + 629, // 666: otg.MetricsRequest.lacp:type_name -> otg.LacpMetricsRequest + 631, // 667: otg.MetricsRequest.lldp:type_name -> otg.LldpMetricsRequest + 633, // 668: otg.MetricsRequest.rsvp:type_name -> otg.RsvpMetricsRequest + 125, // 669: otg.MetricsResponse.choice:type_name -> otg.MetricsResponse.Choice.Enum + 611, // 670: otg.MetricsResponse.port_metrics:type_name -> otg.PortMetric + 615, // 671: otg.MetricsResponse.flow_metrics:type_name -> otg.FlowMetric + 622, // 672: otg.MetricsResponse.bgpv4_metrics:type_name -> otg.Bgpv4Metric + 624, // 673: otg.MetricsResponse.bgpv6_metrics:type_name -> otg.Bgpv6Metric + 626, // 674: otg.MetricsResponse.isis_metrics:type_name -> otg.IsisMetric + 628, // 675: otg.MetricsResponse.lag_metrics:type_name -> otg.LagMetric + 630, // 676: otg.MetricsResponse.lacp_metrics:type_name -> otg.LacpMetric + 632, // 677: otg.MetricsResponse.lldp_metrics:type_name -> otg.LldpMetric + 634, // 678: otg.MetricsResponse.rsvp_metrics:type_name -> otg.RsvpMetric + 126, // 679: otg.PortMetricsRequest.column_names:type_name -> otg.PortMetricsRequest.ColumnNames.Enum + 127, // 680: otg.PortMetric.link:type_name -> otg.PortMetric.Link.Enum + 128, // 681: otg.PortMetric.capture:type_name -> otg.PortMetric.Capture.Enum + 129, // 682: otg.PortMetric.transmit:type_name -> otg.PortMetric.Transmit.Enum + 130, // 683: otg.FlowMetricsRequest.metric_names:type_name -> otg.FlowMetricsRequest.MetricNames.Enum + 613, // 684: otg.FlowMetricsRequest.tagged_metrics:type_name -> otg.FlowTaggedMetricsFilter + 131, // 685: otg.FlowTaggedMetricsFilter.metric_names:type_name -> otg.FlowTaggedMetricsFilter.MetricNames.Enum + 614, // 686: otg.FlowTaggedMetricsFilter.filters:type_name -> otg.FlowMetricTagFilter + 132, // 687: otg.FlowMetric.transmit:type_name -> otg.FlowMetric.Transmit.Enum + 619, // 688: otg.FlowMetric.timestamps:type_name -> otg.MetricTimestamp + 620, // 689: otg.FlowMetric.latency:type_name -> otg.MetricLatency + 616, // 690: otg.FlowMetric.tagged_metrics:type_name -> otg.FlowTaggedMetric + 617, // 691: otg.FlowTaggedMetric.tags:type_name -> otg.FlowMetricTag + 619, // 692: otg.FlowTaggedMetric.timestamps:type_name -> otg.MetricTimestamp + 620, // 693: otg.FlowTaggedMetric.latency:type_name -> otg.MetricLatency + 618, // 694: otg.FlowMetricTag.value:type_name -> otg.FlowMetricTagValue + 133, // 695: otg.FlowMetricTagValue.choice:type_name -> otg.FlowMetricTagValue.Choice.Enum + 134, // 696: otg.Bgpv4MetricsRequest.column_names:type_name -> otg.Bgpv4MetricsRequest.ColumnNames.Enum + 135, // 697: otg.Bgpv4Metric.session_state:type_name -> otg.Bgpv4Metric.SessionState.Enum + 136, // 698: otg.Bgpv4Metric.fsm_state:type_name -> otg.Bgpv4Metric.FsmState.Enum + 137, // 699: otg.Bgpv6MetricsRequest.column_names:type_name -> otg.Bgpv6MetricsRequest.ColumnNames.Enum + 138, // 700: otg.Bgpv6Metric.session_state:type_name -> otg.Bgpv6Metric.SessionState.Enum + 139, // 701: otg.Bgpv6Metric.fsm_state:type_name -> otg.Bgpv6Metric.FsmState.Enum + 140, // 702: otg.IsisMetricsRequest.column_names:type_name -> otg.IsisMetricsRequest.ColumnNames.Enum + 141, // 703: otg.LagMetricsRequest.column_names:type_name -> otg.LagMetricsRequest.ColumnNames.Enum + 142, // 704: otg.LagMetric.oper_status:type_name -> otg.LagMetric.OperStatus.Enum + 143, // 705: otg.LacpMetricsRequest.column_names:type_name -> otg.LacpMetricsRequest.ColumnNames.Enum + 144, // 706: otg.LacpMetric.activity:type_name -> otg.LacpMetric.Activity.Enum + 145, // 707: otg.LacpMetric.timeout:type_name -> otg.LacpMetric.Timeout.Enum + 146, // 708: otg.LacpMetric.synchronization:type_name -> otg.LacpMetric.Synchronization.Enum + 147, // 709: otg.LldpMetricsRequest.column_names:type_name -> otg.LldpMetricsRequest.ColumnNames.Enum + 148, // 710: otg.RsvpMetricsRequest.column_names:type_name -> otg.RsvpMetricsRequest.ColumnNames.Enum + 149, // 711: otg.StatesRequest.choice:type_name -> otg.StatesRequest.Choice.Enum + 637, // 712: otg.StatesRequest.ipv4_neighbors:type_name -> otg.Neighborsv4StatesRequest + 639, // 713: otg.StatesRequest.ipv6_neighbors:type_name -> otg.Neighborsv6StatesRequest + 641, // 714: otg.StatesRequest.bgp_prefixes:type_name -> otg.BgpPrefixStateRequest + 650, // 715: otg.StatesRequest.isis_lsps:type_name -> otg.IsisLspsStateRequest + 667, // 716: otg.StatesRequest.lldp_neighbors:type_name -> otg.LldpNeighborsStateRequest + 671, // 717: otg.StatesRequest.rsvp_lsps:type_name -> otg.RsvpLspsStateRequest + 150, // 718: otg.StatesResponse.choice:type_name -> otg.StatesResponse.Choice.Enum + 638, // 719: otg.StatesResponse.ipv4_neighbors:type_name -> otg.Neighborsv4State + 640, // 720: otg.StatesResponse.ipv6_neighbors:type_name -> otg.Neighborsv6State + 644, // 721: otg.StatesResponse.bgp_prefixes:type_name -> otg.BgpPrefixesState + 651, // 722: otg.StatesResponse.isis_lsps:type_name -> otg.IsisLspsState + 668, // 723: otg.StatesResponse.lldp_neighbors:type_name -> otg.LldpNeighborsState + 672, // 724: otg.StatesResponse.rsvp_lsps:type_name -> otg.RsvpLspsState + 151, // 725: otg.BgpPrefixStateRequest.prefix_filters:type_name -> otg.BgpPrefixStateRequest.PrefixFilters.Enum + 642, // 726: otg.BgpPrefixStateRequest.ipv4_unicast_filters:type_name -> otg.BgpPrefixIpv4UnicastFilter + 643, // 727: otg.BgpPrefixStateRequest.ipv6_unicast_filters:type_name -> otg.BgpPrefixIpv6UnicastFilter + 152, // 728: otg.BgpPrefixIpv4UnicastFilter.origin:type_name -> otg.BgpPrefixIpv4UnicastFilter.Origin.Enum + 153, // 729: otg.BgpPrefixIpv6UnicastFilter.origin:type_name -> otg.BgpPrefixIpv6UnicastFilter.Origin.Enum + 645, // 730: otg.BgpPrefixesState.ipv4_unicast_prefixes:type_name -> otg.BgpPrefixIpv4UnicastState + 646, // 731: otg.BgpPrefixesState.ipv6_unicast_prefixes:type_name -> otg.BgpPrefixIpv6UnicastState + 154, // 732: otg.BgpPrefixIpv4UnicastState.origin:type_name -> otg.BgpPrefixIpv4UnicastState.Origin.Enum + 647, // 733: otg.BgpPrefixIpv4UnicastState.communities:type_name -> otg.ResultBgpCommunity + 648, // 734: otg.BgpPrefixIpv4UnicastState.as_path:type_name -> otg.ResultBgpAsPath + 155, // 735: otg.BgpPrefixIpv6UnicastState.origin:type_name -> otg.BgpPrefixIpv6UnicastState.Origin.Enum + 647, // 736: otg.BgpPrefixIpv6UnicastState.communities:type_name -> otg.ResultBgpCommunity + 648, // 737: otg.BgpPrefixIpv6UnicastState.as_path:type_name -> otg.ResultBgpAsPath + 156, // 738: otg.ResultBgpCommunity.type:type_name -> otg.ResultBgpCommunity.Type.Enum + 649, // 739: otg.ResultBgpAsPath.segments:type_name -> otg.ResultBgpAsPathSegment + 157, // 740: otg.ResultBgpAsPathSegment.type:type_name -> otg.ResultBgpAsPathSegment.Type.Enum + 652, // 741: otg.IsisLspsState.lsps:type_name -> otg.IsisLspState + 158, // 742: otg.IsisLspState.pdu_type:type_name -> otg.IsisLspState.PduType.Enum + 655, // 743: otg.IsisLspState.flags:type_name -> otg.IsisLspFlags + 653, // 744: otg.IsisLspState.tlvs:type_name -> otg.IsisLspTlvs + 654, // 745: otg.IsisLspTlvs.hostname_tlvs:type_name -> otg.IsisLspHostname + 656, // 746: otg.IsisLspTlvs.is_reachability_tlvs:type_name -> otg.IsisLspIsReachabilityTlv + 657, // 747: otg.IsisLspTlvs.extended_is_reachability_tlvs:type_name -> otg.IsisLspExtendedIsReachabilityTlv + 659, // 748: otg.IsisLspTlvs.ipv4_internal_reachability_tlvs:type_name -> otg.IsisLspIpv4InternalReachabilityTlv + 660, // 749: otg.IsisLspTlvs.ipv4_external_reachability_tlvs:type_name -> otg.IsisLspIpv4ExternalReachabilityTlv + 662, // 750: otg.IsisLspTlvs.extended_ipv4_reachability_tlvs:type_name -> otg.IsisLspExtendedIpv4ReachabilityTlv + 664, // 751: otg.IsisLspTlvs.ipv6_reachability_tlvs:type_name -> otg.IsisLspIpv6ReachabilityTlv + 658, // 752: otg.IsisLspIsReachabilityTlv.neighbors:type_name -> otg.IsisLspneighbor + 658, // 753: otg.IsisLspExtendedIsReachabilityTlv.neighbors:type_name -> otg.IsisLspneighbor + 661, // 754: otg.IsisLspIpv4InternalReachabilityTlv.prefixes:type_name -> otg.IsisLspV4Prefix + 661, // 755: otg.IsisLspIpv4ExternalReachabilityTlv.prefixes:type_name -> otg.IsisLspV4Prefix + 159, // 756: otg.IsisLspV4Prefix.redistribution_type:type_name -> otg.IsisLspV4Prefix.RedistributionType.Enum + 160, // 757: otg.IsisLspV4Prefix.origin_type:type_name -> otg.IsisLspV4Prefix.OriginType.Enum + 663, // 758: otg.IsisLspExtendedIpv4ReachabilityTlv.prefixes:type_name -> otg.IsisLspExtendedV4Prefix + 161, // 759: otg.IsisLspExtendedV4Prefix.redistribution_type:type_name -> otg.IsisLspExtendedV4Prefix.RedistributionType.Enum + 666, // 760: otg.IsisLspExtendedV4Prefix.prefix_attributes:type_name -> otg.IsisLspPrefixAttributes + 665, // 761: otg.IsisLspIpv6ReachabilityTlv.prefixes:type_name -> otg.IsisLspV6Prefix + 162, // 762: otg.IsisLspV6Prefix.redistribution_type:type_name -> otg.IsisLspV6Prefix.RedistributionType.Enum + 163, // 763: otg.IsisLspV6Prefix.origin_type:type_name -> otg.IsisLspV6Prefix.OriginType.Enum + 666, // 764: otg.IsisLspV6Prefix.prefix_attributes:type_name -> otg.IsisLspPrefixAttributes + 164, // 765: otg.LldpNeighborsState.chassis_id_type:type_name -> otg.LldpNeighborsState.ChassisIdType.Enum + 165, // 766: otg.LldpNeighborsState.port_id_type:type_name -> otg.LldpNeighborsState.PortIdType.Enum + 669, // 767: otg.LldpNeighborsState.custom_tlvs:type_name -> otg.LldpCustomTLVState + 670, // 768: otg.LldpNeighborsState.capabilities:type_name -> otg.LldpCapabilityState + 166, // 769: otg.LldpCapabilityState.capability_name:type_name -> otg.LldpCapabilityState.CapabilityName.Enum + 673, // 770: otg.RsvpLspsState.ipv4_lsps:type_name -> otg.RsvpIPv4LspState + 674, // 771: otg.RsvpIPv4LspState.lsp:type_name -> otg.RsvpLspState + 675, // 772: otg.RsvpIPv4LspState.rros:type_name -> otg.RsvpLspIpv4Rro + 676, // 773: otg.RsvpIPv4LspState.eros:type_name -> otg.RsvpLspIpv4Ero + 167, // 774: otg.RsvpLspState.session_status:type_name -> otg.RsvpLspState.SessionStatus.Enum + 168, // 775: otg.RsvpLspState.last_flap_reason:type_name -> otg.RsvpLspState.LastFlapReason.Enum + 169, // 776: otg.RsvpLspIpv4Ero.type:type_name -> otg.RsvpLspIpv4Ero.Type.Enum + 170, // 777: otg.PatternFlowEthernetDst.choice:type_name -> otg.PatternFlowEthernetDst.Choice.Enum + 678, // 778: otg.PatternFlowEthernetDst.increment:type_name -> otg.PatternFlowEthernetDstCounter + 678, // 779: otg.PatternFlowEthernetDst.decrement:type_name -> otg.PatternFlowEthernetDstCounter + 679, // 780: otg.PatternFlowEthernetDst.metric_tags:type_name -> otg.PatternFlowEthernetDstMetricTag + 171, // 781: otg.PatternFlowEthernetSrc.choice:type_name -> otg.PatternFlowEthernetSrc.Choice.Enum + 681, // 782: otg.PatternFlowEthernetSrc.increment:type_name -> otg.PatternFlowEthernetSrcCounter + 681, // 783: otg.PatternFlowEthernetSrc.decrement:type_name -> otg.PatternFlowEthernetSrcCounter + 682, // 784: otg.PatternFlowEthernetSrc.metric_tags:type_name -> otg.PatternFlowEthernetSrcMetricTag + 172, // 785: otg.PatternFlowEthernetEtherType.choice:type_name -> otg.PatternFlowEthernetEtherType.Choice.Enum + 684, // 786: otg.PatternFlowEthernetEtherType.increment:type_name -> otg.PatternFlowEthernetEtherTypeCounter + 684, // 787: otg.PatternFlowEthernetEtherType.decrement:type_name -> otg.PatternFlowEthernetEtherTypeCounter + 685, // 788: otg.PatternFlowEthernetEtherType.metric_tags:type_name -> otg.PatternFlowEthernetEtherTypeMetricTag + 173, // 789: otg.PatternFlowEthernetPfcQueue.choice:type_name -> otg.PatternFlowEthernetPfcQueue.Choice.Enum + 687, // 790: otg.PatternFlowEthernetPfcQueue.increment:type_name -> otg.PatternFlowEthernetPfcQueueCounter + 687, // 791: otg.PatternFlowEthernetPfcQueue.decrement:type_name -> otg.PatternFlowEthernetPfcQueueCounter + 688, // 792: otg.PatternFlowEthernetPfcQueue.metric_tags:type_name -> otg.PatternFlowEthernetPfcQueueMetricTag + 174, // 793: otg.PatternFlowVlanPriority.choice:type_name -> otg.PatternFlowVlanPriority.Choice.Enum + 690, // 794: otg.PatternFlowVlanPriority.increment:type_name -> otg.PatternFlowVlanPriorityCounter + 690, // 795: otg.PatternFlowVlanPriority.decrement:type_name -> otg.PatternFlowVlanPriorityCounter + 691, // 796: otg.PatternFlowVlanPriority.metric_tags:type_name -> otg.PatternFlowVlanPriorityMetricTag + 175, // 797: otg.PatternFlowVlanCfi.choice:type_name -> otg.PatternFlowVlanCfi.Choice.Enum + 693, // 798: otg.PatternFlowVlanCfi.increment:type_name -> otg.PatternFlowVlanCfiCounter + 693, // 799: otg.PatternFlowVlanCfi.decrement:type_name -> otg.PatternFlowVlanCfiCounter + 694, // 800: otg.PatternFlowVlanCfi.metric_tags:type_name -> otg.PatternFlowVlanCfiMetricTag + 176, // 801: otg.PatternFlowVlanId.choice:type_name -> otg.PatternFlowVlanId.Choice.Enum + 696, // 802: otg.PatternFlowVlanId.increment:type_name -> otg.PatternFlowVlanIdCounter + 696, // 803: otg.PatternFlowVlanId.decrement:type_name -> otg.PatternFlowVlanIdCounter + 697, // 804: otg.PatternFlowVlanId.metric_tags:type_name -> otg.PatternFlowVlanIdMetricTag + 177, // 805: otg.PatternFlowVlanTpid.choice:type_name -> otg.PatternFlowVlanTpid.Choice.Enum + 699, // 806: otg.PatternFlowVlanTpid.increment:type_name -> otg.PatternFlowVlanTpidCounter + 699, // 807: otg.PatternFlowVlanTpid.decrement:type_name -> otg.PatternFlowVlanTpidCounter + 700, // 808: otg.PatternFlowVlanTpid.metric_tags:type_name -> otg.PatternFlowVlanTpidMetricTag + 178, // 809: otg.PatternFlowVxlanFlags.choice:type_name -> otg.PatternFlowVxlanFlags.Choice.Enum + 702, // 810: otg.PatternFlowVxlanFlags.increment:type_name -> otg.PatternFlowVxlanFlagsCounter + 702, // 811: otg.PatternFlowVxlanFlags.decrement:type_name -> otg.PatternFlowVxlanFlagsCounter + 703, // 812: otg.PatternFlowVxlanFlags.metric_tags:type_name -> otg.PatternFlowVxlanFlagsMetricTag + 179, // 813: otg.PatternFlowVxlanReserved0.choice:type_name -> otg.PatternFlowVxlanReserved0.Choice.Enum + 705, // 814: otg.PatternFlowVxlanReserved0.increment:type_name -> otg.PatternFlowVxlanReserved0Counter + 705, // 815: otg.PatternFlowVxlanReserved0.decrement:type_name -> otg.PatternFlowVxlanReserved0Counter + 706, // 816: otg.PatternFlowVxlanReserved0.metric_tags:type_name -> otg.PatternFlowVxlanReserved0MetricTag + 180, // 817: otg.PatternFlowVxlanVni.choice:type_name -> otg.PatternFlowVxlanVni.Choice.Enum + 708, // 818: otg.PatternFlowVxlanVni.increment:type_name -> otg.PatternFlowVxlanVniCounter + 708, // 819: otg.PatternFlowVxlanVni.decrement:type_name -> otg.PatternFlowVxlanVniCounter + 709, // 820: otg.PatternFlowVxlanVni.metric_tags:type_name -> otg.PatternFlowVxlanVniMetricTag + 181, // 821: otg.PatternFlowVxlanReserved1.choice:type_name -> otg.PatternFlowVxlanReserved1.Choice.Enum + 711, // 822: otg.PatternFlowVxlanReserved1.increment:type_name -> otg.PatternFlowVxlanReserved1Counter + 711, // 823: otg.PatternFlowVxlanReserved1.decrement:type_name -> otg.PatternFlowVxlanReserved1Counter + 712, // 824: otg.PatternFlowVxlanReserved1.metric_tags:type_name -> otg.PatternFlowVxlanReserved1MetricTag + 182, // 825: otg.PatternFlowIpv4Version.choice:type_name -> otg.PatternFlowIpv4Version.Choice.Enum + 714, // 826: otg.PatternFlowIpv4Version.increment:type_name -> otg.PatternFlowIpv4VersionCounter + 714, // 827: otg.PatternFlowIpv4Version.decrement:type_name -> otg.PatternFlowIpv4VersionCounter + 715, // 828: otg.PatternFlowIpv4Version.metric_tags:type_name -> otg.PatternFlowIpv4VersionMetricTag + 183, // 829: otg.PatternFlowIpv4HeaderLength.choice:type_name -> otg.PatternFlowIpv4HeaderLength.Choice.Enum + 717, // 830: otg.PatternFlowIpv4HeaderLength.increment:type_name -> otg.PatternFlowIpv4HeaderLengthCounter + 717, // 831: otg.PatternFlowIpv4HeaderLength.decrement:type_name -> otg.PatternFlowIpv4HeaderLengthCounter + 718, // 832: otg.PatternFlowIpv4HeaderLength.metric_tags:type_name -> otg.PatternFlowIpv4HeaderLengthMetricTag + 184, // 833: otg.PatternFlowIpv4TotalLength.choice:type_name -> otg.PatternFlowIpv4TotalLength.Choice.Enum + 720, // 834: otg.PatternFlowIpv4TotalLength.increment:type_name -> otg.PatternFlowIpv4TotalLengthCounter + 720, // 835: otg.PatternFlowIpv4TotalLength.decrement:type_name -> otg.PatternFlowIpv4TotalLengthCounter + 721, // 836: otg.PatternFlowIpv4TotalLength.metric_tags:type_name -> otg.PatternFlowIpv4TotalLengthMetricTag + 185, // 837: otg.PatternFlowIpv4Identification.choice:type_name -> otg.PatternFlowIpv4Identification.Choice.Enum + 723, // 838: otg.PatternFlowIpv4Identification.increment:type_name -> otg.PatternFlowIpv4IdentificationCounter + 723, // 839: otg.PatternFlowIpv4Identification.decrement:type_name -> otg.PatternFlowIpv4IdentificationCounter + 724, // 840: otg.PatternFlowIpv4Identification.metric_tags:type_name -> otg.PatternFlowIpv4IdentificationMetricTag + 186, // 841: otg.PatternFlowIpv4Reserved.choice:type_name -> otg.PatternFlowIpv4Reserved.Choice.Enum + 726, // 842: otg.PatternFlowIpv4Reserved.increment:type_name -> otg.PatternFlowIpv4ReservedCounter + 726, // 843: otg.PatternFlowIpv4Reserved.decrement:type_name -> otg.PatternFlowIpv4ReservedCounter + 727, // 844: otg.PatternFlowIpv4Reserved.metric_tags:type_name -> otg.PatternFlowIpv4ReservedMetricTag + 187, // 845: otg.PatternFlowIpv4DontFragment.choice:type_name -> otg.PatternFlowIpv4DontFragment.Choice.Enum + 729, // 846: otg.PatternFlowIpv4DontFragment.increment:type_name -> otg.PatternFlowIpv4DontFragmentCounter + 729, // 847: otg.PatternFlowIpv4DontFragment.decrement:type_name -> otg.PatternFlowIpv4DontFragmentCounter + 730, // 848: otg.PatternFlowIpv4DontFragment.metric_tags:type_name -> otg.PatternFlowIpv4DontFragmentMetricTag + 188, // 849: otg.PatternFlowIpv4MoreFragments.choice:type_name -> otg.PatternFlowIpv4MoreFragments.Choice.Enum + 732, // 850: otg.PatternFlowIpv4MoreFragments.increment:type_name -> otg.PatternFlowIpv4MoreFragmentsCounter + 732, // 851: otg.PatternFlowIpv4MoreFragments.decrement:type_name -> otg.PatternFlowIpv4MoreFragmentsCounter + 733, // 852: otg.PatternFlowIpv4MoreFragments.metric_tags:type_name -> otg.PatternFlowIpv4MoreFragmentsMetricTag + 189, // 853: otg.PatternFlowIpv4FragmentOffset.choice:type_name -> otg.PatternFlowIpv4FragmentOffset.Choice.Enum + 735, // 854: otg.PatternFlowIpv4FragmentOffset.increment:type_name -> otg.PatternFlowIpv4FragmentOffsetCounter + 735, // 855: otg.PatternFlowIpv4FragmentOffset.decrement:type_name -> otg.PatternFlowIpv4FragmentOffsetCounter + 736, // 856: otg.PatternFlowIpv4FragmentOffset.metric_tags:type_name -> otg.PatternFlowIpv4FragmentOffsetMetricTag + 190, // 857: otg.PatternFlowIpv4TimeToLive.choice:type_name -> otg.PatternFlowIpv4TimeToLive.Choice.Enum + 738, // 858: otg.PatternFlowIpv4TimeToLive.increment:type_name -> otg.PatternFlowIpv4TimeToLiveCounter + 738, // 859: otg.PatternFlowIpv4TimeToLive.decrement:type_name -> otg.PatternFlowIpv4TimeToLiveCounter + 739, // 860: otg.PatternFlowIpv4TimeToLive.metric_tags:type_name -> otg.PatternFlowIpv4TimeToLiveMetricTag + 191, // 861: otg.PatternFlowIpv4Protocol.choice:type_name -> otg.PatternFlowIpv4Protocol.Choice.Enum + 741, // 862: otg.PatternFlowIpv4Protocol.increment:type_name -> otg.PatternFlowIpv4ProtocolCounter + 741, // 863: otg.PatternFlowIpv4Protocol.decrement:type_name -> otg.PatternFlowIpv4ProtocolCounter + 742, // 864: otg.PatternFlowIpv4Protocol.metric_tags:type_name -> otg.PatternFlowIpv4ProtocolMetricTag + 192, // 865: otg.PatternFlowIpv4HeaderChecksum.choice:type_name -> otg.PatternFlowIpv4HeaderChecksum.Choice.Enum + 193, // 866: otg.PatternFlowIpv4HeaderChecksum.generated:type_name -> otg.PatternFlowIpv4HeaderChecksum.Generated.Enum + 194, // 867: otg.PatternFlowIpv4Src.choice:type_name -> otg.PatternFlowIpv4Src.Choice.Enum + 745, // 868: otg.PatternFlowIpv4Src.increment:type_name -> otg.PatternFlowIpv4SrcCounter + 745, // 869: otg.PatternFlowIpv4Src.decrement:type_name -> otg.PatternFlowIpv4SrcCounter + 746, // 870: otg.PatternFlowIpv4Src.metric_tags:type_name -> otg.PatternFlowIpv4SrcMetricTag + 195, // 871: otg.PatternFlowIpv4Dst.choice:type_name -> otg.PatternFlowIpv4Dst.Choice.Enum + 748, // 872: otg.PatternFlowIpv4Dst.increment:type_name -> otg.PatternFlowIpv4DstCounter + 748, // 873: otg.PatternFlowIpv4Dst.decrement:type_name -> otg.PatternFlowIpv4DstCounter + 749, // 874: otg.PatternFlowIpv4Dst.metric_tags:type_name -> otg.PatternFlowIpv4DstMetricTag + 196, // 875: otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag.choice:type_name -> otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag.Choice.Enum + 751, // 876: otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag.increment:type_name -> otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter + 751, // 877: otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag.decrement:type_name -> otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter + 197, // 878: otg.PatternFlowIpv4OptionsCustomTypeOptionClass.choice:type_name -> otg.PatternFlowIpv4OptionsCustomTypeOptionClass.Choice.Enum + 753, // 879: otg.PatternFlowIpv4OptionsCustomTypeOptionClass.increment:type_name -> otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter + 753, // 880: otg.PatternFlowIpv4OptionsCustomTypeOptionClass.decrement:type_name -> otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter + 198, // 881: otg.PatternFlowIpv4OptionsCustomTypeOptionNumber.choice:type_name -> otg.PatternFlowIpv4OptionsCustomTypeOptionNumber.Choice.Enum + 755, // 882: otg.PatternFlowIpv4OptionsCustomTypeOptionNumber.increment:type_name -> otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter + 755, // 883: otg.PatternFlowIpv4OptionsCustomTypeOptionNumber.decrement:type_name -> otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter + 199, // 884: otg.PatternFlowIpv4PriorityRaw.choice:type_name -> otg.PatternFlowIpv4PriorityRaw.Choice.Enum + 757, // 885: otg.PatternFlowIpv4PriorityRaw.increment:type_name -> otg.PatternFlowIpv4PriorityRawCounter + 757, // 886: otg.PatternFlowIpv4PriorityRaw.decrement:type_name -> otg.PatternFlowIpv4PriorityRawCounter + 758, // 887: otg.PatternFlowIpv4PriorityRaw.metric_tags:type_name -> otg.PatternFlowIpv4PriorityRawMetricTag + 200, // 888: otg.PatternFlowIpv4DscpPhb.choice:type_name -> otg.PatternFlowIpv4DscpPhb.Choice.Enum + 760, // 889: otg.PatternFlowIpv4DscpPhb.increment:type_name -> otg.PatternFlowIpv4DscpPhbCounter + 760, // 890: otg.PatternFlowIpv4DscpPhb.decrement:type_name -> otg.PatternFlowIpv4DscpPhbCounter + 761, // 891: otg.PatternFlowIpv4DscpPhb.metric_tags:type_name -> otg.PatternFlowIpv4DscpPhbMetricTag + 201, // 892: otg.PatternFlowIpv4DscpEcn.choice:type_name -> otg.PatternFlowIpv4DscpEcn.Choice.Enum + 763, // 893: otg.PatternFlowIpv4DscpEcn.increment:type_name -> otg.PatternFlowIpv4DscpEcnCounter + 763, // 894: otg.PatternFlowIpv4DscpEcn.decrement:type_name -> otg.PatternFlowIpv4DscpEcnCounter + 764, // 895: otg.PatternFlowIpv4DscpEcn.metric_tags:type_name -> otg.PatternFlowIpv4DscpEcnMetricTag + 202, // 896: otg.PatternFlowIpv4TosPrecedence.choice:type_name -> otg.PatternFlowIpv4TosPrecedence.Choice.Enum + 766, // 897: otg.PatternFlowIpv4TosPrecedence.increment:type_name -> otg.PatternFlowIpv4TosPrecedenceCounter + 766, // 898: otg.PatternFlowIpv4TosPrecedence.decrement:type_name -> otg.PatternFlowIpv4TosPrecedenceCounter + 767, // 899: otg.PatternFlowIpv4TosPrecedence.metric_tags:type_name -> otg.PatternFlowIpv4TosPrecedenceMetricTag + 203, // 900: otg.PatternFlowIpv4TosDelay.choice:type_name -> otg.PatternFlowIpv4TosDelay.Choice.Enum + 769, // 901: otg.PatternFlowIpv4TosDelay.increment:type_name -> otg.PatternFlowIpv4TosDelayCounter + 769, // 902: otg.PatternFlowIpv4TosDelay.decrement:type_name -> otg.PatternFlowIpv4TosDelayCounter + 770, // 903: otg.PatternFlowIpv4TosDelay.metric_tags:type_name -> otg.PatternFlowIpv4TosDelayMetricTag + 204, // 904: otg.PatternFlowIpv4TosThroughput.choice:type_name -> otg.PatternFlowIpv4TosThroughput.Choice.Enum + 772, // 905: otg.PatternFlowIpv4TosThroughput.increment:type_name -> otg.PatternFlowIpv4TosThroughputCounter + 772, // 906: otg.PatternFlowIpv4TosThroughput.decrement:type_name -> otg.PatternFlowIpv4TosThroughputCounter + 773, // 907: otg.PatternFlowIpv4TosThroughput.metric_tags:type_name -> otg.PatternFlowIpv4TosThroughputMetricTag + 205, // 908: otg.PatternFlowIpv4TosReliability.choice:type_name -> otg.PatternFlowIpv4TosReliability.Choice.Enum + 775, // 909: otg.PatternFlowIpv4TosReliability.increment:type_name -> otg.PatternFlowIpv4TosReliabilityCounter + 775, // 910: otg.PatternFlowIpv4TosReliability.decrement:type_name -> otg.PatternFlowIpv4TosReliabilityCounter + 776, // 911: otg.PatternFlowIpv4TosReliability.metric_tags:type_name -> otg.PatternFlowIpv4TosReliabilityMetricTag + 206, // 912: otg.PatternFlowIpv4TosMonetary.choice:type_name -> otg.PatternFlowIpv4TosMonetary.Choice.Enum + 778, // 913: otg.PatternFlowIpv4TosMonetary.increment:type_name -> otg.PatternFlowIpv4TosMonetaryCounter + 778, // 914: otg.PatternFlowIpv4TosMonetary.decrement:type_name -> otg.PatternFlowIpv4TosMonetaryCounter + 779, // 915: otg.PatternFlowIpv4TosMonetary.metric_tags:type_name -> otg.PatternFlowIpv4TosMonetaryMetricTag + 207, // 916: otg.PatternFlowIpv4TosUnused.choice:type_name -> otg.PatternFlowIpv4TosUnused.Choice.Enum + 781, // 917: otg.PatternFlowIpv4TosUnused.increment:type_name -> otg.PatternFlowIpv4TosUnusedCounter + 781, // 918: otg.PatternFlowIpv4TosUnused.decrement:type_name -> otg.PatternFlowIpv4TosUnusedCounter + 782, // 919: otg.PatternFlowIpv4TosUnused.metric_tags:type_name -> otg.PatternFlowIpv4TosUnusedMetricTag + 208, // 920: otg.PatternFlowIpv6Version.choice:type_name -> otg.PatternFlowIpv6Version.Choice.Enum + 784, // 921: otg.PatternFlowIpv6Version.increment:type_name -> otg.PatternFlowIpv6VersionCounter + 784, // 922: otg.PatternFlowIpv6Version.decrement:type_name -> otg.PatternFlowIpv6VersionCounter + 785, // 923: otg.PatternFlowIpv6Version.metric_tags:type_name -> otg.PatternFlowIpv6VersionMetricTag + 209, // 924: otg.PatternFlowIpv6TrafficClass.choice:type_name -> otg.PatternFlowIpv6TrafficClass.Choice.Enum + 787, // 925: otg.PatternFlowIpv6TrafficClass.increment:type_name -> otg.PatternFlowIpv6TrafficClassCounter + 787, // 926: otg.PatternFlowIpv6TrafficClass.decrement:type_name -> otg.PatternFlowIpv6TrafficClassCounter + 788, // 927: otg.PatternFlowIpv6TrafficClass.metric_tags:type_name -> otg.PatternFlowIpv6TrafficClassMetricTag + 210, // 928: otg.PatternFlowIpv6FlowLabel.choice:type_name -> otg.PatternFlowIpv6FlowLabel.Choice.Enum + 790, // 929: otg.PatternFlowIpv6FlowLabel.increment:type_name -> otg.PatternFlowIpv6FlowLabelCounter + 790, // 930: otg.PatternFlowIpv6FlowLabel.decrement:type_name -> otg.PatternFlowIpv6FlowLabelCounter + 791, // 931: otg.PatternFlowIpv6FlowLabel.metric_tags:type_name -> otg.PatternFlowIpv6FlowLabelMetricTag + 211, // 932: otg.PatternFlowIpv6PayloadLength.choice:type_name -> otg.PatternFlowIpv6PayloadLength.Choice.Enum + 793, // 933: otg.PatternFlowIpv6PayloadLength.increment:type_name -> otg.PatternFlowIpv6PayloadLengthCounter + 793, // 934: otg.PatternFlowIpv6PayloadLength.decrement:type_name -> otg.PatternFlowIpv6PayloadLengthCounter + 794, // 935: otg.PatternFlowIpv6PayloadLength.metric_tags:type_name -> otg.PatternFlowIpv6PayloadLengthMetricTag + 212, // 936: otg.PatternFlowIpv6NextHeader.choice:type_name -> otg.PatternFlowIpv6NextHeader.Choice.Enum + 796, // 937: otg.PatternFlowIpv6NextHeader.increment:type_name -> otg.PatternFlowIpv6NextHeaderCounter + 796, // 938: otg.PatternFlowIpv6NextHeader.decrement:type_name -> otg.PatternFlowIpv6NextHeaderCounter + 797, // 939: otg.PatternFlowIpv6NextHeader.metric_tags:type_name -> otg.PatternFlowIpv6NextHeaderMetricTag + 213, // 940: otg.PatternFlowIpv6HopLimit.choice:type_name -> otg.PatternFlowIpv6HopLimit.Choice.Enum + 799, // 941: otg.PatternFlowIpv6HopLimit.increment:type_name -> otg.PatternFlowIpv6HopLimitCounter + 799, // 942: otg.PatternFlowIpv6HopLimit.decrement:type_name -> otg.PatternFlowIpv6HopLimitCounter + 800, // 943: otg.PatternFlowIpv6HopLimit.metric_tags:type_name -> otg.PatternFlowIpv6HopLimitMetricTag + 214, // 944: otg.PatternFlowIpv6Src.choice:type_name -> otg.PatternFlowIpv6Src.Choice.Enum + 802, // 945: otg.PatternFlowIpv6Src.increment:type_name -> otg.PatternFlowIpv6SrcCounter + 802, // 946: otg.PatternFlowIpv6Src.decrement:type_name -> otg.PatternFlowIpv6SrcCounter + 803, // 947: otg.PatternFlowIpv6Src.metric_tags:type_name -> otg.PatternFlowIpv6SrcMetricTag + 215, // 948: otg.PatternFlowIpv6Dst.choice:type_name -> otg.PatternFlowIpv6Dst.Choice.Enum + 805, // 949: otg.PatternFlowIpv6Dst.increment:type_name -> otg.PatternFlowIpv6DstCounter + 805, // 950: otg.PatternFlowIpv6Dst.decrement:type_name -> otg.PatternFlowIpv6DstCounter + 806, // 951: otg.PatternFlowIpv6Dst.metric_tags:type_name -> otg.PatternFlowIpv6DstMetricTag + 216, // 952: otg.PatternFlowPfcPauseDst.choice:type_name -> otg.PatternFlowPfcPauseDst.Choice.Enum + 808, // 953: otg.PatternFlowPfcPauseDst.increment:type_name -> otg.PatternFlowPfcPauseDstCounter + 808, // 954: otg.PatternFlowPfcPauseDst.decrement:type_name -> otg.PatternFlowPfcPauseDstCounter + 809, // 955: otg.PatternFlowPfcPauseDst.metric_tags:type_name -> otg.PatternFlowPfcPauseDstMetricTag + 217, // 956: otg.PatternFlowPfcPauseSrc.choice:type_name -> otg.PatternFlowPfcPauseSrc.Choice.Enum + 811, // 957: otg.PatternFlowPfcPauseSrc.increment:type_name -> otg.PatternFlowPfcPauseSrcCounter + 811, // 958: otg.PatternFlowPfcPauseSrc.decrement:type_name -> otg.PatternFlowPfcPauseSrcCounter + 812, // 959: otg.PatternFlowPfcPauseSrc.metric_tags:type_name -> otg.PatternFlowPfcPauseSrcMetricTag + 218, // 960: otg.PatternFlowPfcPauseEtherType.choice:type_name -> otg.PatternFlowPfcPauseEtherType.Choice.Enum + 814, // 961: otg.PatternFlowPfcPauseEtherType.increment:type_name -> otg.PatternFlowPfcPauseEtherTypeCounter + 814, // 962: otg.PatternFlowPfcPauseEtherType.decrement:type_name -> otg.PatternFlowPfcPauseEtherTypeCounter + 815, // 963: otg.PatternFlowPfcPauseEtherType.metric_tags:type_name -> otg.PatternFlowPfcPauseEtherTypeMetricTag + 219, // 964: otg.PatternFlowPfcPauseControlOpCode.choice:type_name -> otg.PatternFlowPfcPauseControlOpCode.Choice.Enum + 817, // 965: otg.PatternFlowPfcPauseControlOpCode.increment:type_name -> otg.PatternFlowPfcPauseControlOpCodeCounter + 817, // 966: otg.PatternFlowPfcPauseControlOpCode.decrement:type_name -> otg.PatternFlowPfcPauseControlOpCodeCounter + 818, // 967: otg.PatternFlowPfcPauseControlOpCode.metric_tags:type_name -> otg.PatternFlowPfcPauseControlOpCodeMetricTag + 220, // 968: otg.PatternFlowPfcPauseClassEnableVector.choice:type_name -> otg.PatternFlowPfcPauseClassEnableVector.Choice.Enum + 820, // 969: otg.PatternFlowPfcPauseClassEnableVector.increment:type_name -> otg.PatternFlowPfcPauseClassEnableVectorCounter + 820, // 970: otg.PatternFlowPfcPauseClassEnableVector.decrement:type_name -> otg.PatternFlowPfcPauseClassEnableVectorCounter + 821, // 971: otg.PatternFlowPfcPauseClassEnableVector.metric_tags:type_name -> otg.PatternFlowPfcPauseClassEnableVectorMetricTag + 221, // 972: otg.PatternFlowPfcPausePauseClass0.choice:type_name -> otg.PatternFlowPfcPausePauseClass0.Choice.Enum + 823, // 973: otg.PatternFlowPfcPausePauseClass0.increment:type_name -> otg.PatternFlowPfcPausePauseClass0Counter + 823, // 974: otg.PatternFlowPfcPausePauseClass0.decrement:type_name -> otg.PatternFlowPfcPausePauseClass0Counter + 824, // 975: otg.PatternFlowPfcPausePauseClass0.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass0MetricTag + 222, // 976: otg.PatternFlowPfcPausePauseClass1.choice:type_name -> otg.PatternFlowPfcPausePauseClass1.Choice.Enum + 826, // 977: otg.PatternFlowPfcPausePauseClass1.increment:type_name -> otg.PatternFlowPfcPausePauseClass1Counter + 826, // 978: otg.PatternFlowPfcPausePauseClass1.decrement:type_name -> otg.PatternFlowPfcPausePauseClass1Counter + 827, // 979: otg.PatternFlowPfcPausePauseClass1.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass1MetricTag + 223, // 980: otg.PatternFlowPfcPausePauseClass2.choice:type_name -> otg.PatternFlowPfcPausePauseClass2.Choice.Enum + 829, // 981: otg.PatternFlowPfcPausePauseClass2.increment:type_name -> otg.PatternFlowPfcPausePauseClass2Counter + 829, // 982: otg.PatternFlowPfcPausePauseClass2.decrement:type_name -> otg.PatternFlowPfcPausePauseClass2Counter + 830, // 983: otg.PatternFlowPfcPausePauseClass2.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass2MetricTag + 224, // 984: otg.PatternFlowPfcPausePauseClass3.choice:type_name -> otg.PatternFlowPfcPausePauseClass3.Choice.Enum + 832, // 985: otg.PatternFlowPfcPausePauseClass3.increment:type_name -> otg.PatternFlowPfcPausePauseClass3Counter + 832, // 986: otg.PatternFlowPfcPausePauseClass3.decrement:type_name -> otg.PatternFlowPfcPausePauseClass3Counter + 833, // 987: otg.PatternFlowPfcPausePauseClass3.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass3MetricTag + 225, // 988: otg.PatternFlowPfcPausePauseClass4.choice:type_name -> otg.PatternFlowPfcPausePauseClass4.Choice.Enum + 835, // 989: otg.PatternFlowPfcPausePauseClass4.increment:type_name -> otg.PatternFlowPfcPausePauseClass4Counter + 835, // 990: otg.PatternFlowPfcPausePauseClass4.decrement:type_name -> otg.PatternFlowPfcPausePauseClass4Counter + 836, // 991: otg.PatternFlowPfcPausePauseClass4.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass4MetricTag + 226, // 992: otg.PatternFlowPfcPausePauseClass5.choice:type_name -> otg.PatternFlowPfcPausePauseClass5.Choice.Enum + 838, // 993: otg.PatternFlowPfcPausePauseClass5.increment:type_name -> otg.PatternFlowPfcPausePauseClass5Counter + 838, // 994: otg.PatternFlowPfcPausePauseClass5.decrement:type_name -> otg.PatternFlowPfcPausePauseClass5Counter + 839, // 995: otg.PatternFlowPfcPausePauseClass5.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass5MetricTag + 227, // 996: otg.PatternFlowPfcPausePauseClass6.choice:type_name -> otg.PatternFlowPfcPausePauseClass6.Choice.Enum + 841, // 997: otg.PatternFlowPfcPausePauseClass6.increment:type_name -> otg.PatternFlowPfcPausePauseClass6Counter + 841, // 998: otg.PatternFlowPfcPausePauseClass6.decrement:type_name -> otg.PatternFlowPfcPausePauseClass6Counter + 842, // 999: otg.PatternFlowPfcPausePauseClass6.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass6MetricTag + 228, // 1000: otg.PatternFlowPfcPausePauseClass7.choice:type_name -> otg.PatternFlowPfcPausePauseClass7.Choice.Enum + 844, // 1001: otg.PatternFlowPfcPausePauseClass7.increment:type_name -> otg.PatternFlowPfcPausePauseClass7Counter + 844, // 1002: otg.PatternFlowPfcPausePauseClass7.decrement:type_name -> otg.PatternFlowPfcPausePauseClass7Counter + 845, // 1003: otg.PatternFlowPfcPausePauseClass7.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass7MetricTag + 229, // 1004: otg.PatternFlowEthernetPauseDst.choice:type_name -> otg.PatternFlowEthernetPauseDst.Choice.Enum + 847, // 1005: otg.PatternFlowEthernetPauseDst.increment:type_name -> otg.PatternFlowEthernetPauseDstCounter + 847, // 1006: otg.PatternFlowEthernetPauseDst.decrement:type_name -> otg.PatternFlowEthernetPauseDstCounter + 848, // 1007: otg.PatternFlowEthernetPauseDst.metric_tags:type_name -> otg.PatternFlowEthernetPauseDstMetricTag + 230, // 1008: otg.PatternFlowEthernetPauseSrc.choice:type_name -> otg.PatternFlowEthernetPauseSrc.Choice.Enum + 850, // 1009: otg.PatternFlowEthernetPauseSrc.increment:type_name -> otg.PatternFlowEthernetPauseSrcCounter + 850, // 1010: otg.PatternFlowEthernetPauseSrc.decrement:type_name -> otg.PatternFlowEthernetPauseSrcCounter + 851, // 1011: otg.PatternFlowEthernetPauseSrc.metric_tags:type_name -> otg.PatternFlowEthernetPauseSrcMetricTag + 231, // 1012: otg.PatternFlowEthernetPauseEtherType.choice:type_name -> otg.PatternFlowEthernetPauseEtherType.Choice.Enum + 853, // 1013: otg.PatternFlowEthernetPauseEtherType.increment:type_name -> otg.PatternFlowEthernetPauseEtherTypeCounter + 853, // 1014: otg.PatternFlowEthernetPauseEtherType.decrement:type_name -> otg.PatternFlowEthernetPauseEtherTypeCounter + 854, // 1015: otg.PatternFlowEthernetPauseEtherType.metric_tags:type_name -> otg.PatternFlowEthernetPauseEtherTypeMetricTag + 232, // 1016: otg.PatternFlowEthernetPauseControlOpCode.choice:type_name -> otg.PatternFlowEthernetPauseControlOpCode.Choice.Enum + 856, // 1017: otg.PatternFlowEthernetPauseControlOpCode.increment:type_name -> otg.PatternFlowEthernetPauseControlOpCodeCounter + 856, // 1018: otg.PatternFlowEthernetPauseControlOpCode.decrement:type_name -> otg.PatternFlowEthernetPauseControlOpCodeCounter + 857, // 1019: otg.PatternFlowEthernetPauseControlOpCode.metric_tags:type_name -> otg.PatternFlowEthernetPauseControlOpCodeMetricTag + 233, // 1020: otg.PatternFlowEthernetPauseTime.choice:type_name -> otg.PatternFlowEthernetPauseTime.Choice.Enum + 859, // 1021: otg.PatternFlowEthernetPauseTime.increment:type_name -> otg.PatternFlowEthernetPauseTimeCounter + 859, // 1022: otg.PatternFlowEthernetPauseTime.decrement:type_name -> otg.PatternFlowEthernetPauseTimeCounter + 860, // 1023: otg.PatternFlowEthernetPauseTime.metric_tags:type_name -> otg.PatternFlowEthernetPauseTimeMetricTag + 234, // 1024: otg.PatternFlowTcpSrcPort.choice:type_name -> otg.PatternFlowTcpSrcPort.Choice.Enum + 862, // 1025: otg.PatternFlowTcpSrcPort.increment:type_name -> otg.PatternFlowTcpSrcPortCounter + 862, // 1026: otg.PatternFlowTcpSrcPort.decrement:type_name -> otg.PatternFlowTcpSrcPortCounter + 863, // 1027: otg.PatternFlowTcpSrcPort.metric_tags:type_name -> otg.PatternFlowTcpSrcPortMetricTag + 235, // 1028: otg.PatternFlowTcpDstPort.choice:type_name -> otg.PatternFlowTcpDstPort.Choice.Enum + 865, // 1029: otg.PatternFlowTcpDstPort.increment:type_name -> otg.PatternFlowTcpDstPortCounter + 865, // 1030: otg.PatternFlowTcpDstPort.decrement:type_name -> otg.PatternFlowTcpDstPortCounter + 866, // 1031: otg.PatternFlowTcpDstPort.metric_tags:type_name -> otg.PatternFlowTcpDstPortMetricTag + 236, // 1032: otg.PatternFlowTcpSeqNum.choice:type_name -> otg.PatternFlowTcpSeqNum.Choice.Enum + 868, // 1033: otg.PatternFlowTcpSeqNum.increment:type_name -> otg.PatternFlowTcpSeqNumCounter + 868, // 1034: otg.PatternFlowTcpSeqNum.decrement:type_name -> otg.PatternFlowTcpSeqNumCounter + 869, // 1035: otg.PatternFlowTcpSeqNum.metric_tags:type_name -> otg.PatternFlowTcpSeqNumMetricTag + 237, // 1036: otg.PatternFlowTcpAckNum.choice:type_name -> otg.PatternFlowTcpAckNum.Choice.Enum + 871, // 1037: otg.PatternFlowTcpAckNum.increment:type_name -> otg.PatternFlowTcpAckNumCounter + 871, // 1038: otg.PatternFlowTcpAckNum.decrement:type_name -> otg.PatternFlowTcpAckNumCounter + 872, // 1039: otg.PatternFlowTcpAckNum.metric_tags:type_name -> otg.PatternFlowTcpAckNumMetricTag + 238, // 1040: otg.PatternFlowTcpDataOffset.choice:type_name -> otg.PatternFlowTcpDataOffset.Choice.Enum + 874, // 1041: otg.PatternFlowTcpDataOffset.increment:type_name -> otg.PatternFlowTcpDataOffsetCounter + 874, // 1042: otg.PatternFlowTcpDataOffset.decrement:type_name -> otg.PatternFlowTcpDataOffsetCounter + 875, // 1043: otg.PatternFlowTcpDataOffset.metric_tags:type_name -> otg.PatternFlowTcpDataOffsetMetricTag + 239, // 1044: otg.PatternFlowTcpEcnNs.choice:type_name -> otg.PatternFlowTcpEcnNs.Choice.Enum + 877, // 1045: otg.PatternFlowTcpEcnNs.increment:type_name -> otg.PatternFlowTcpEcnNsCounter + 877, // 1046: otg.PatternFlowTcpEcnNs.decrement:type_name -> otg.PatternFlowTcpEcnNsCounter + 878, // 1047: otg.PatternFlowTcpEcnNs.metric_tags:type_name -> otg.PatternFlowTcpEcnNsMetricTag + 240, // 1048: otg.PatternFlowTcpEcnCwr.choice:type_name -> otg.PatternFlowTcpEcnCwr.Choice.Enum + 880, // 1049: otg.PatternFlowTcpEcnCwr.increment:type_name -> otg.PatternFlowTcpEcnCwrCounter + 880, // 1050: otg.PatternFlowTcpEcnCwr.decrement:type_name -> otg.PatternFlowTcpEcnCwrCounter + 881, // 1051: otg.PatternFlowTcpEcnCwr.metric_tags:type_name -> otg.PatternFlowTcpEcnCwrMetricTag + 241, // 1052: otg.PatternFlowTcpEcnEcho.choice:type_name -> otg.PatternFlowTcpEcnEcho.Choice.Enum + 883, // 1053: otg.PatternFlowTcpEcnEcho.increment:type_name -> otg.PatternFlowTcpEcnEchoCounter + 883, // 1054: otg.PatternFlowTcpEcnEcho.decrement:type_name -> otg.PatternFlowTcpEcnEchoCounter + 884, // 1055: otg.PatternFlowTcpEcnEcho.metric_tags:type_name -> otg.PatternFlowTcpEcnEchoMetricTag + 242, // 1056: otg.PatternFlowTcpCtlUrg.choice:type_name -> otg.PatternFlowTcpCtlUrg.Choice.Enum + 886, // 1057: otg.PatternFlowTcpCtlUrg.increment:type_name -> otg.PatternFlowTcpCtlUrgCounter + 886, // 1058: otg.PatternFlowTcpCtlUrg.decrement:type_name -> otg.PatternFlowTcpCtlUrgCounter + 887, // 1059: otg.PatternFlowTcpCtlUrg.metric_tags:type_name -> otg.PatternFlowTcpCtlUrgMetricTag + 243, // 1060: otg.PatternFlowTcpCtlAck.choice:type_name -> otg.PatternFlowTcpCtlAck.Choice.Enum + 889, // 1061: otg.PatternFlowTcpCtlAck.increment:type_name -> otg.PatternFlowTcpCtlAckCounter + 889, // 1062: otg.PatternFlowTcpCtlAck.decrement:type_name -> otg.PatternFlowTcpCtlAckCounter + 890, // 1063: otg.PatternFlowTcpCtlAck.metric_tags:type_name -> otg.PatternFlowTcpCtlAckMetricTag + 244, // 1064: otg.PatternFlowTcpCtlPsh.choice:type_name -> otg.PatternFlowTcpCtlPsh.Choice.Enum + 892, // 1065: otg.PatternFlowTcpCtlPsh.increment:type_name -> otg.PatternFlowTcpCtlPshCounter + 892, // 1066: otg.PatternFlowTcpCtlPsh.decrement:type_name -> otg.PatternFlowTcpCtlPshCounter + 893, // 1067: otg.PatternFlowTcpCtlPsh.metric_tags:type_name -> otg.PatternFlowTcpCtlPshMetricTag + 245, // 1068: otg.PatternFlowTcpCtlRst.choice:type_name -> otg.PatternFlowTcpCtlRst.Choice.Enum + 895, // 1069: otg.PatternFlowTcpCtlRst.increment:type_name -> otg.PatternFlowTcpCtlRstCounter + 895, // 1070: otg.PatternFlowTcpCtlRst.decrement:type_name -> otg.PatternFlowTcpCtlRstCounter + 896, // 1071: otg.PatternFlowTcpCtlRst.metric_tags:type_name -> otg.PatternFlowTcpCtlRstMetricTag + 246, // 1072: otg.PatternFlowTcpCtlSyn.choice:type_name -> otg.PatternFlowTcpCtlSyn.Choice.Enum + 898, // 1073: otg.PatternFlowTcpCtlSyn.increment:type_name -> otg.PatternFlowTcpCtlSynCounter + 898, // 1074: otg.PatternFlowTcpCtlSyn.decrement:type_name -> otg.PatternFlowTcpCtlSynCounter + 899, // 1075: otg.PatternFlowTcpCtlSyn.metric_tags:type_name -> otg.PatternFlowTcpCtlSynMetricTag + 247, // 1076: otg.PatternFlowTcpCtlFin.choice:type_name -> otg.PatternFlowTcpCtlFin.Choice.Enum + 901, // 1077: otg.PatternFlowTcpCtlFin.increment:type_name -> otg.PatternFlowTcpCtlFinCounter + 901, // 1078: otg.PatternFlowTcpCtlFin.decrement:type_name -> otg.PatternFlowTcpCtlFinCounter + 902, // 1079: otg.PatternFlowTcpCtlFin.metric_tags:type_name -> otg.PatternFlowTcpCtlFinMetricTag + 248, // 1080: otg.PatternFlowTcpWindow.choice:type_name -> otg.PatternFlowTcpWindow.Choice.Enum + 904, // 1081: otg.PatternFlowTcpWindow.increment:type_name -> otg.PatternFlowTcpWindowCounter + 904, // 1082: otg.PatternFlowTcpWindow.decrement:type_name -> otg.PatternFlowTcpWindowCounter + 905, // 1083: otg.PatternFlowTcpWindow.metric_tags:type_name -> otg.PatternFlowTcpWindowMetricTag + 249, // 1084: otg.PatternFlowUdpSrcPort.choice:type_name -> otg.PatternFlowUdpSrcPort.Choice.Enum + 907, // 1085: otg.PatternFlowUdpSrcPort.increment:type_name -> otg.PatternFlowUdpSrcPortCounter + 907, // 1086: otg.PatternFlowUdpSrcPort.decrement:type_name -> otg.PatternFlowUdpSrcPortCounter + 908, // 1087: otg.PatternFlowUdpSrcPort.metric_tags:type_name -> otg.PatternFlowUdpSrcPortMetricTag + 250, // 1088: otg.PatternFlowUdpDstPort.choice:type_name -> otg.PatternFlowUdpDstPort.Choice.Enum + 910, // 1089: otg.PatternFlowUdpDstPort.increment:type_name -> otg.PatternFlowUdpDstPortCounter + 910, // 1090: otg.PatternFlowUdpDstPort.decrement:type_name -> otg.PatternFlowUdpDstPortCounter + 911, // 1091: otg.PatternFlowUdpDstPort.metric_tags:type_name -> otg.PatternFlowUdpDstPortMetricTag + 251, // 1092: otg.PatternFlowUdpLength.choice:type_name -> otg.PatternFlowUdpLength.Choice.Enum + 913, // 1093: otg.PatternFlowUdpLength.increment:type_name -> otg.PatternFlowUdpLengthCounter + 913, // 1094: otg.PatternFlowUdpLength.decrement:type_name -> otg.PatternFlowUdpLengthCounter + 914, // 1095: otg.PatternFlowUdpLength.metric_tags:type_name -> otg.PatternFlowUdpLengthMetricTag + 252, // 1096: otg.PatternFlowUdpChecksum.choice:type_name -> otg.PatternFlowUdpChecksum.Choice.Enum + 253, // 1097: otg.PatternFlowUdpChecksum.generated:type_name -> otg.PatternFlowUdpChecksum.Generated.Enum + 254, // 1098: otg.PatternFlowGreChecksumPresent.choice:type_name -> otg.PatternFlowGreChecksumPresent.Choice.Enum + 917, // 1099: otg.PatternFlowGreChecksumPresent.increment:type_name -> otg.PatternFlowGreChecksumPresentCounter + 917, // 1100: otg.PatternFlowGreChecksumPresent.decrement:type_name -> otg.PatternFlowGreChecksumPresentCounter + 918, // 1101: otg.PatternFlowGreChecksumPresent.metric_tags:type_name -> otg.PatternFlowGreChecksumPresentMetricTag + 255, // 1102: otg.PatternFlowGreReserved0.choice:type_name -> otg.PatternFlowGreReserved0.Choice.Enum + 920, // 1103: otg.PatternFlowGreReserved0.increment:type_name -> otg.PatternFlowGreReserved0Counter + 920, // 1104: otg.PatternFlowGreReserved0.decrement:type_name -> otg.PatternFlowGreReserved0Counter + 921, // 1105: otg.PatternFlowGreReserved0.metric_tags:type_name -> otg.PatternFlowGreReserved0MetricTag + 256, // 1106: otg.PatternFlowGreVersion.choice:type_name -> otg.PatternFlowGreVersion.Choice.Enum + 923, // 1107: otg.PatternFlowGreVersion.increment:type_name -> otg.PatternFlowGreVersionCounter + 923, // 1108: otg.PatternFlowGreVersion.decrement:type_name -> otg.PatternFlowGreVersionCounter + 924, // 1109: otg.PatternFlowGreVersion.metric_tags:type_name -> otg.PatternFlowGreVersionMetricTag + 257, // 1110: otg.PatternFlowGreProtocol.choice:type_name -> otg.PatternFlowGreProtocol.Choice.Enum + 926, // 1111: otg.PatternFlowGreProtocol.increment:type_name -> otg.PatternFlowGreProtocolCounter + 926, // 1112: otg.PatternFlowGreProtocol.decrement:type_name -> otg.PatternFlowGreProtocolCounter + 927, // 1113: otg.PatternFlowGreProtocol.metric_tags:type_name -> otg.PatternFlowGreProtocolMetricTag + 258, // 1114: otg.PatternFlowGreChecksum.choice:type_name -> otg.PatternFlowGreChecksum.Choice.Enum + 259, // 1115: otg.PatternFlowGreChecksum.generated:type_name -> otg.PatternFlowGreChecksum.Generated.Enum + 260, // 1116: otg.PatternFlowGreReserved1.choice:type_name -> otg.PatternFlowGreReserved1.Choice.Enum + 930, // 1117: otg.PatternFlowGreReserved1.increment:type_name -> otg.PatternFlowGreReserved1Counter + 930, // 1118: otg.PatternFlowGreReserved1.decrement:type_name -> otg.PatternFlowGreReserved1Counter + 931, // 1119: otg.PatternFlowGreReserved1.metric_tags:type_name -> otg.PatternFlowGreReserved1MetricTag + 261, // 1120: otg.PatternFlowGtpv1Version.choice:type_name -> otg.PatternFlowGtpv1Version.Choice.Enum + 933, // 1121: otg.PatternFlowGtpv1Version.increment:type_name -> otg.PatternFlowGtpv1VersionCounter + 933, // 1122: otg.PatternFlowGtpv1Version.decrement:type_name -> otg.PatternFlowGtpv1VersionCounter + 934, // 1123: otg.PatternFlowGtpv1Version.metric_tags:type_name -> otg.PatternFlowGtpv1VersionMetricTag + 262, // 1124: otg.PatternFlowGtpv1ProtocolType.choice:type_name -> otg.PatternFlowGtpv1ProtocolType.Choice.Enum + 936, // 1125: otg.PatternFlowGtpv1ProtocolType.increment:type_name -> otg.PatternFlowGtpv1ProtocolTypeCounter + 936, // 1126: otg.PatternFlowGtpv1ProtocolType.decrement:type_name -> otg.PatternFlowGtpv1ProtocolTypeCounter + 937, // 1127: otg.PatternFlowGtpv1ProtocolType.metric_tags:type_name -> otg.PatternFlowGtpv1ProtocolTypeMetricTag + 263, // 1128: otg.PatternFlowGtpv1Reserved.choice:type_name -> otg.PatternFlowGtpv1Reserved.Choice.Enum + 939, // 1129: otg.PatternFlowGtpv1Reserved.increment:type_name -> otg.PatternFlowGtpv1ReservedCounter + 939, // 1130: otg.PatternFlowGtpv1Reserved.decrement:type_name -> otg.PatternFlowGtpv1ReservedCounter + 940, // 1131: otg.PatternFlowGtpv1Reserved.metric_tags:type_name -> otg.PatternFlowGtpv1ReservedMetricTag + 264, // 1132: otg.PatternFlowGtpv1EFlag.choice:type_name -> otg.PatternFlowGtpv1EFlag.Choice.Enum + 942, // 1133: otg.PatternFlowGtpv1EFlag.increment:type_name -> otg.PatternFlowGtpv1EFlagCounter + 942, // 1134: otg.PatternFlowGtpv1EFlag.decrement:type_name -> otg.PatternFlowGtpv1EFlagCounter + 943, // 1135: otg.PatternFlowGtpv1EFlag.metric_tags:type_name -> otg.PatternFlowGtpv1EFlagMetricTag + 265, // 1136: otg.PatternFlowGtpv1SFlag.choice:type_name -> otg.PatternFlowGtpv1SFlag.Choice.Enum + 945, // 1137: otg.PatternFlowGtpv1SFlag.increment:type_name -> otg.PatternFlowGtpv1SFlagCounter + 945, // 1138: otg.PatternFlowGtpv1SFlag.decrement:type_name -> otg.PatternFlowGtpv1SFlagCounter + 946, // 1139: otg.PatternFlowGtpv1SFlag.metric_tags:type_name -> otg.PatternFlowGtpv1SFlagMetricTag + 266, // 1140: otg.PatternFlowGtpv1PnFlag.choice:type_name -> otg.PatternFlowGtpv1PnFlag.Choice.Enum + 948, // 1141: otg.PatternFlowGtpv1PnFlag.increment:type_name -> otg.PatternFlowGtpv1PnFlagCounter + 948, // 1142: otg.PatternFlowGtpv1PnFlag.decrement:type_name -> otg.PatternFlowGtpv1PnFlagCounter + 949, // 1143: otg.PatternFlowGtpv1PnFlag.metric_tags:type_name -> otg.PatternFlowGtpv1PnFlagMetricTag + 267, // 1144: otg.PatternFlowGtpv1MessageType.choice:type_name -> otg.PatternFlowGtpv1MessageType.Choice.Enum + 951, // 1145: otg.PatternFlowGtpv1MessageType.increment:type_name -> otg.PatternFlowGtpv1MessageTypeCounter + 951, // 1146: otg.PatternFlowGtpv1MessageType.decrement:type_name -> otg.PatternFlowGtpv1MessageTypeCounter + 952, // 1147: otg.PatternFlowGtpv1MessageType.metric_tags:type_name -> otg.PatternFlowGtpv1MessageTypeMetricTag + 268, // 1148: otg.PatternFlowGtpv1MessageLength.choice:type_name -> otg.PatternFlowGtpv1MessageLength.Choice.Enum + 954, // 1149: otg.PatternFlowGtpv1MessageLength.increment:type_name -> otg.PatternFlowGtpv1MessageLengthCounter + 954, // 1150: otg.PatternFlowGtpv1MessageLength.decrement:type_name -> otg.PatternFlowGtpv1MessageLengthCounter + 955, // 1151: otg.PatternFlowGtpv1MessageLength.metric_tags:type_name -> otg.PatternFlowGtpv1MessageLengthMetricTag + 269, // 1152: otg.PatternFlowGtpv1Teid.choice:type_name -> otg.PatternFlowGtpv1Teid.Choice.Enum + 957, // 1153: otg.PatternFlowGtpv1Teid.increment:type_name -> otg.PatternFlowGtpv1TeidCounter + 957, // 1154: otg.PatternFlowGtpv1Teid.decrement:type_name -> otg.PatternFlowGtpv1TeidCounter + 958, // 1155: otg.PatternFlowGtpv1Teid.metric_tags:type_name -> otg.PatternFlowGtpv1TeidMetricTag + 270, // 1156: otg.PatternFlowGtpv1SquenceNumber.choice:type_name -> otg.PatternFlowGtpv1SquenceNumber.Choice.Enum + 960, // 1157: otg.PatternFlowGtpv1SquenceNumber.increment:type_name -> otg.PatternFlowGtpv1SquenceNumberCounter + 960, // 1158: otg.PatternFlowGtpv1SquenceNumber.decrement:type_name -> otg.PatternFlowGtpv1SquenceNumberCounter + 961, // 1159: otg.PatternFlowGtpv1SquenceNumber.metric_tags:type_name -> otg.PatternFlowGtpv1SquenceNumberMetricTag + 271, // 1160: otg.PatternFlowGtpv1NPduNumber.choice:type_name -> otg.PatternFlowGtpv1NPduNumber.Choice.Enum + 963, // 1161: otg.PatternFlowGtpv1NPduNumber.increment:type_name -> otg.PatternFlowGtpv1NPduNumberCounter + 963, // 1162: otg.PatternFlowGtpv1NPduNumber.decrement:type_name -> otg.PatternFlowGtpv1NPduNumberCounter + 964, // 1163: otg.PatternFlowGtpv1NPduNumber.metric_tags:type_name -> otg.PatternFlowGtpv1NPduNumberMetricTag + 272, // 1164: otg.PatternFlowGtpv1NextExtensionHeaderType.choice:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderType.Choice.Enum + 966, // 1165: otg.PatternFlowGtpv1NextExtensionHeaderType.increment:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderTypeCounter + 966, // 1166: otg.PatternFlowGtpv1NextExtensionHeaderType.decrement:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderTypeCounter + 967, // 1167: otg.PatternFlowGtpv1NextExtensionHeaderType.metric_tags:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderTypeMetricTag + 273, // 1168: otg.PatternFlowGtpExtensionExtensionLength.choice:type_name -> otg.PatternFlowGtpExtensionExtensionLength.Choice.Enum + 969, // 1169: otg.PatternFlowGtpExtensionExtensionLength.increment:type_name -> otg.PatternFlowGtpExtensionExtensionLengthCounter + 969, // 1170: otg.PatternFlowGtpExtensionExtensionLength.decrement:type_name -> otg.PatternFlowGtpExtensionExtensionLengthCounter + 970, // 1171: otg.PatternFlowGtpExtensionExtensionLength.metric_tags:type_name -> otg.PatternFlowGtpExtensionExtensionLengthMetricTag + 274, // 1172: otg.PatternFlowGtpExtensionContents.choice:type_name -> otg.PatternFlowGtpExtensionContents.Choice.Enum + 972, // 1173: otg.PatternFlowGtpExtensionContents.increment:type_name -> otg.PatternFlowGtpExtensionContentsCounter + 972, // 1174: otg.PatternFlowGtpExtensionContents.decrement:type_name -> otg.PatternFlowGtpExtensionContentsCounter + 973, // 1175: otg.PatternFlowGtpExtensionContents.metric_tags:type_name -> otg.PatternFlowGtpExtensionContentsMetricTag + 275, // 1176: otg.PatternFlowGtpExtensionNextExtensionHeader.choice:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeader.Choice.Enum + 975, // 1177: otg.PatternFlowGtpExtensionNextExtensionHeader.increment:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeaderCounter + 975, // 1178: otg.PatternFlowGtpExtensionNextExtensionHeader.decrement:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeaderCounter + 976, // 1179: otg.PatternFlowGtpExtensionNextExtensionHeader.metric_tags:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeaderMetricTag + 276, // 1180: otg.PatternFlowGtpv2Version.choice:type_name -> otg.PatternFlowGtpv2Version.Choice.Enum + 978, // 1181: otg.PatternFlowGtpv2Version.increment:type_name -> otg.PatternFlowGtpv2VersionCounter + 978, // 1182: otg.PatternFlowGtpv2Version.decrement:type_name -> otg.PatternFlowGtpv2VersionCounter + 979, // 1183: otg.PatternFlowGtpv2Version.metric_tags:type_name -> otg.PatternFlowGtpv2VersionMetricTag + 277, // 1184: otg.PatternFlowGtpv2PiggybackingFlag.choice:type_name -> otg.PatternFlowGtpv2PiggybackingFlag.Choice.Enum + 981, // 1185: otg.PatternFlowGtpv2PiggybackingFlag.increment:type_name -> otg.PatternFlowGtpv2PiggybackingFlagCounter + 981, // 1186: otg.PatternFlowGtpv2PiggybackingFlag.decrement:type_name -> otg.PatternFlowGtpv2PiggybackingFlagCounter + 982, // 1187: otg.PatternFlowGtpv2PiggybackingFlag.metric_tags:type_name -> otg.PatternFlowGtpv2PiggybackingFlagMetricTag + 278, // 1188: otg.PatternFlowGtpv2TeidFlag.choice:type_name -> otg.PatternFlowGtpv2TeidFlag.Choice.Enum + 984, // 1189: otg.PatternFlowGtpv2TeidFlag.increment:type_name -> otg.PatternFlowGtpv2TeidFlagCounter + 984, // 1190: otg.PatternFlowGtpv2TeidFlag.decrement:type_name -> otg.PatternFlowGtpv2TeidFlagCounter + 985, // 1191: otg.PatternFlowGtpv2TeidFlag.metric_tags:type_name -> otg.PatternFlowGtpv2TeidFlagMetricTag + 279, // 1192: otg.PatternFlowGtpv2Spare1.choice:type_name -> otg.PatternFlowGtpv2Spare1.Choice.Enum + 987, // 1193: otg.PatternFlowGtpv2Spare1.increment:type_name -> otg.PatternFlowGtpv2Spare1Counter + 987, // 1194: otg.PatternFlowGtpv2Spare1.decrement:type_name -> otg.PatternFlowGtpv2Spare1Counter + 988, // 1195: otg.PatternFlowGtpv2Spare1.metric_tags:type_name -> otg.PatternFlowGtpv2Spare1MetricTag + 280, // 1196: otg.PatternFlowGtpv2MessageType.choice:type_name -> otg.PatternFlowGtpv2MessageType.Choice.Enum + 990, // 1197: otg.PatternFlowGtpv2MessageType.increment:type_name -> otg.PatternFlowGtpv2MessageTypeCounter + 990, // 1198: otg.PatternFlowGtpv2MessageType.decrement:type_name -> otg.PatternFlowGtpv2MessageTypeCounter + 991, // 1199: otg.PatternFlowGtpv2MessageType.metric_tags:type_name -> otg.PatternFlowGtpv2MessageTypeMetricTag + 281, // 1200: otg.PatternFlowGtpv2MessageLength.choice:type_name -> otg.PatternFlowGtpv2MessageLength.Choice.Enum + 993, // 1201: otg.PatternFlowGtpv2MessageLength.increment:type_name -> otg.PatternFlowGtpv2MessageLengthCounter + 993, // 1202: otg.PatternFlowGtpv2MessageLength.decrement:type_name -> otg.PatternFlowGtpv2MessageLengthCounter + 994, // 1203: otg.PatternFlowGtpv2MessageLength.metric_tags:type_name -> otg.PatternFlowGtpv2MessageLengthMetricTag + 282, // 1204: otg.PatternFlowGtpv2Teid.choice:type_name -> otg.PatternFlowGtpv2Teid.Choice.Enum + 996, // 1205: otg.PatternFlowGtpv2Teid.increment:type_name -> otg.PatternFlowGtpv2TeidCounter + 996, // 1206: otg.PatternFlowGtpv2Teid.decrement:type_name -> otg.PatternFlowGtpv2TeidCounter + 997, // 1207: otg.PatternFlowGtpv2Teid.metric_tags:type_name -> otg.PatternFlowGtpv2TeidMetricTag + 283, // 1208: otg.PatternFlowGtpv2SequenceNumber.choice:type_name -> otg.PatternFlowGtpv2SequenceNumber.Choice.Enum + 999, // 1209: otg.PatternFlowGtpv2SequenceNumber.increment:type_name -> otg.PatternFlowGtpv2SequenceNumberCounter + 999, // 1210: otg.PatternFlowGtpv2SequenceNumber.decrement:type_name -> otg.PatternFlowGtpv2SequenceNumberCounter + 1000, // 1211: otg.PatternFlowGtpv2SequenceNumber.metric_tags:type_name -> otg.PatternFlowGtpv2SequenceNumberMetricTag + 284, // 1212: otg.PatternFlowGtpv2Spare2.choice:type_name -> otg.PatternFlowGtpv2Spare2.Choice.Enum + 1002, // 1213: otg.PatternFlowGtpv2Spare2.increment:type_name -> otg.PatternFlowGtpv2Spare2Counter + 1002, // 1214: otg.PatternFlowGtpv2Spare2.decrement:type_name -> otg.PatternFlowGtpv2Spare2Counter + 1003, // 1215: otg.PatternFlowGtpv2Spare2.metric_tags:type_name -> otg.PatternFlowGtpv2Spare2MetricTag + 285, // 1216: otg.PatternFlowArpHardwareType.choice:type_name -> otg.PatternFlowArpHardwareType.Choice.Enum + 1005, // 1217: otg.PatternFlowArpHardwareType.increment:type_name -> otg.PatternFlowArpHardwareTypeCounter + 1005, // 1218: otg.PatternFlowArpHardwareType.decrement:type_name -> otg.PatternFlowArpHardwareTypeCounter + 1006, // 1219: otg.PatternFlowArpHardwareType.metric_tags:type_name -> otg.PatternFlowArpHardwareTypeMetricTag + 286, // 1220: otg.PatternFlowArpProtocolType.choice:type_name -> otg.PatternFlowArpProtocolType.Choice.Enum + 1008, // 1221: otg.PatternFlowArpProtocolType.increment:type_name -> otg.PatternFlowArpProtocolTypeCounter + 1008, // 1222: otg.PatternFlowArpProtocolType.decrement:type_name -> otg.PatternFlowArpProtocolTypeCounter + 1009, // 1223: otg.PatternFlowArpProtocolType.metric_tags:type_name -> otg.PatternFlowArpProtocolTypeMetricTag + 287, // 1224: otg.PatternFlowArpHardwareLength.choice:type_name -> otg.PatternFlowArpHardwareLength.Choice.Enum + 1011, // 1225: otg.PatternFlowArpHardwareLength.increment:type_name -> otg.PatternFlowArpHardwareLengthCounter + 1011, // 1226: otg.PatternFlowArpHardwareLength.decrement:type_name -> otg.PatternFlowArpHardwareLengthCounter + 1012, // 1227: otg.PatternFlowArpHardwareLength.metric_tags:type_name -> otg.PatternFlowArpHardwareLengthMetricTag + 288, // 1228: otg.PatternFlowArpProtocolLength.choice:type_name -> otg.PatternFlowArpProtocolLength.Choice.Enum + 1014, // 1229: otg.PatternFlowArpProtocolLength.increment:type_name -> otg.PatternFlowArpProtocolLengthCounter + 1014, // 1230: otg.PatternFlowArpProtocolLength.decrement:type_name -> otg.PatternFlowArpProtocolLengthCounter + 1015, // 1231: otg.PatternFlowArpProtocolLength.metric_tags:type_name -> otg.PatternFlowArpProtocolLengthMetricTag + 289, // 1232: otg.PatternFlowArpOperation.choice:type_name -> otg.PatternFlowArpOperation.Choice.Enum + 1017, // 1233: otg.PatternFlowArpOperation.increment:type_name -> otg.PatternFlowArpOperationCounter + 1017, // 1234: otg.PatternFlowArpOperation.decrement:type_name -> otg.PatternFlowArpOperationCounter + 1018, // 1235: otg.PatternFlowArpOperation.metric_tags:type_name -> otg.PatternFlowArpOperationMetricTag + 290, // 1236: otg.PatternFlowArpSenderHardwareAddr.choice:type_name -> otg.PatternFlowArpSenderHardwareAddr.Choice.Enum + 1020, // 1237: otg.PatternFlowArpSenderHardwareAddr.increment:type_name -> otg.PatternFlowArpSenderHardwareAddrCounter + 1020, // 1238: otg.PatternFlowArpSenderHardwareAddr.decrement:type_name -> otg.PatternFlowArpSenderHardwareAddrCounter + 1021, // 1239: otg.PatternFlowArpSenderHardwareAddr.metric_tags:type_name -> otg.PatternFlowArpSenderHardwareAddrMetricTag + 291, // 1240: otg.PatternFlowArpSenderProtocolAddr.choice:type_name -> otg.PatternFlowArpSenderProtocolAddr.Choice.Enum + 1023, // 1241: otg.PatternFlowArpSenderProtocolAddr.increment:type_name -> otg.PatternFlowArpSenderProtocolAddrCounter + 1023, // 1242: otg.PatternFlowArpSenderProtocolAddr.decrement:type_name -> otg.PatternFlowArpSenderProtocolAddrCounter + 1024, // 1243: otg.PatternFlowArpSenderProtocolAddr.metric_tags:type_name -> otg.PatternFlowArpSenderProtocolAddrMetricTag + 292, // 1244: otg.PatternFlowArpTargetHardwareAddr.choice:type_name -> otg.PatternFlowArpTargetHardwareAddr.Choice.Enum + 1026, // 1245: otg.PatternFlowArpTargetHardwareAddr.increment:type_name -> otg.PatternFlowArpTargetHardwareAddrCounter + 1026, // 1246: otg.PatternFlowArpTargetHardwareAddr.decrement:type_name -> otg.PatternFlowArpTargetHardwareAddrCounter + 1027, // 1247: otg.PatternFlowArpTargetHardwareAddr.metric_tags:type_name -> otg.PatternFlowArpTargetHardwareAddrMetricTag + 293, // 1248: otg.PatternFlowArpTargetProtocolAddr.choice:type_name -> otg.PatternFlowArpTargetProtocolAddr.Choice.Enum + 1029, // 1249: otg.PatternFlowArpTargetProtocolAddr.increment:type_name -> otg.PatternFlowArpTargetProtocolAddrCounter + 1029, // 1250: otg.PatternFlowArpTargetProtocolAddr.decrement:type_name -> otg.PatternFlowArpTargetProtocolAddrCounter + 1030, // 1251: otg.PatternFlowArpTargetProtocolAddr.metric_tags:type_name -> otg.PatternFlowArpTargetProtocolAddrMetricTag + 294, // 1252: otg.PatternFlowIcmpEchoType.choice:type_name -> otg.PatternFlowIcmpEchoType.Choice.Enum + 1032, // 1253: otg.PatternFlowIcmpEchoType.increment:type_name -> otg.PatternFlowIcmpEchoTypeCounter + 1032, // 1254: otg.PatternFlowIcmpEchoType.decrement:type_name -> otg.PatternFlowIcmpEchoTypeCounter + 1033, // 1255: otg.PatternFlowIcmpEchoType.metric_tags:type_name -> otg.PatternFlowIcmpEchoTypeMetricTag + 295, // 1256: otg.PatternFlowIcmpEchoCode.choice:type_name -> otg.PatternFlowIcmpEchoCode.Choice.Enum + 1035, // 1257: otg.PatternFlowIcmpEchoCode.increment:type_name -> otg.PatternFlowIcmpEchoCodeCounter + 1035, // 1258: otg.PatternFlowIcmpEchoCode.decrement:type_name -> otg.PatternFlowIcmpEchoCodeCounter + 1036, // 1259: otg.PatternFlowIcmpEchoCode.metric_tags:type_name -> otg.PatternFlowIcmpEchoCodeMetricTag + 296, // 1260: otg.PatternFlowIcmpEchoChecksum.choice:type_name -> otg.PatternFlowIcmpEchoChecksum.Choice.Enum + 297, // 1261: otg.PatternFlowIcmpEchoChecksum.generated:type_name -> otg.PatternFlowIcmpEchoChecksum.Generated.Enum + 298, // 1262: otg.PatternFlowIcmpEchoIdentifier.choice:type_name -> otg.PatternFlowIcmpEchoIdentifier.Choice.Enum + 1039, // 1263: otg.PatternFlowIcmpEchoIdentifier.increment:type_name -> otg.PatternFlowIcmpEchoIdentifierCounter + 1039, // 1264: otg.PatternFlowIcmpEchoIdentifier.decrement:type_name -> otg.PatternFlowIcmpEchoIdentifierCounter + 1040, // 1265: otg.PatternFlowIcmpEchoIdentifier.metric_tags:type_name -> otg.PatternFlowIcmpEchoIdentifierMetricTag + 299, // 1266: otg.PatternFlowIcmpEchoSequenceNumber.choice:type_name -> otg.PatternFlowIcmpEchoSequenceNumber.Choice.Enum + 1042, // 1267: otg.PatternFlowIcmpEchoSequenceNumber.increment:type_name -> otg.PatternFlowIcmpEchoSequenceNumberCounter + 1042, // 1268: otg.PatternFlowIcmpEchoSequenceNumber.decrement:type_name -> otg.PatternFlowIcmpEchoSequenceNumberCounter + 1043, // 1269: otg.PatternFlowIcmpEchoSequenceNumber.metric_tags:type_name -> otg.PatternFlowIcmpEchoSequenceNumberMetricTag + 300, // 1270: otg.PatternFlowIcmpCommonChecksum.choice:type_name -> otg.PatternFlowIcmpCommonChecksum.Choice.Enum + 301, // 1271: otg.PatternFlowIcmpCommonChecksum.generated:type_name -> otg.PatternFlowIcmpCommonChecksum.Generated.Enum + 302, // 1272: otg.PatternFlowIcmpNextFieldsIdentifier.choice:type_name -> otg.PatternFlowIcmpNextFieldsIdentifier.Choice.Enum + 1046, // 1273: otg.PatternFlowIcmpNextFieldsIdentifier.increment:type_name -> otg.PatternFlowIcmpNextFieldsIdentifierCounter + 1046, // 1274: otg.PatternFlowIcmpNextFieldsIdentifier.decrement:type_name -> otg.PatternFlowIcmpNextFieldsIdentifierCounter + 1047, // 1275: otg.PatternFlowIcmpNextFieldsIdentifier.metric_tags:type_name -> otg.PatternFlowIcmpNextFieldsIdentifierMetricTag + 303, // 1276: otg.PatternFlowIcmpNextFieldsSequenceNumber.choice:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumber.Choice.Enum + 1049, // 1277: otg.PatternFlowIcmpNextFieldsSequenceNumber.increment:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumberCounter + 1049, // 1278: otg.PatternFlowIcmpNextFieldsSequenceNumber.decrement:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumberCounter + 1050, // 1279: otg.PatternFlowIcmpNextFieldsSequenceNumber.metric_tags:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumberMetricTag + 304, // 1280: otg.PatternFlowIcmpv6EchoType.choice:type_name -> otg.PatternFlowIcmpv6EchoType.Choice.Enum + 1052, // 1281: otg.PatternFlowIcmpv6EchoType.increment:type_name -> otg.PatternFlowIcmpv6EchoTypeCounter + 1052, // 1282: otg.PatternFlowIcmpv6EchoType.decrement:type_name -> otg.PatternFlowIcmpv6EchoTypeCounter + 1053, // 1283: otg.PatternFlowIcmpv6EchoType.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoTypeMetricTag + 305, // 1284: otg.PatternFlowIcmpv6EchoCode.choice:type_name -> otg.PatternFlowIcmpv6EchoCode.Choice.Enum + 1055, // 1285: otg.PatternFlowIcmpv6EchoCode.increment:type_name -> otg.PatternFlowIcmpv6EchoCodeCounter + 1055, // 1286: otg.PatternFlowIcmpv6EchoCode.decrement:type_name -> otg.PatternFlowIcmpv6EchoCodeCounter + 1056, // 1287: otg.PatternFlowIcmpv6EchoCode.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoCodeMetricTag + 306, // 1288: otg.PatternFlowIcmpv6EchoIdentifier.choice:type_name -> otg.PatternFlowIcmpv6EchoIdentifier.Choice.Enum + 1058, // 1289: otg.PatternFlowIcmpv6EchoIdentifier.increment:type_name -> otg.PatternFlowIcmpv6EchoIdentifierCounter + 1058, // 1290: otg.PatternFlowIcmpv6EchoIdentifier.decrement:type_name -> otg.PatternFlowIcmpv6EchoIdentifierCounter + 1059, // 1291: otg.PatternFlowIcmpv6EchoIdentifier.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoIdentifierMetricTag + 307, // 1292: otg.PatternFlowIcmpv6EchoSequenceNumber.choice:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumber.Choice.Enum + 1061, // 1293: otg.PatternFlowIcmpv6EchoSequenceNumber.increment:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumberCounter + 1061, // 1294: otg.PatternFlowIcmpv6EchoSequenceNumber.decrement:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumberCounter + 1062, // 1295: otg.PatternFlowIcmpv6EchoSequenceNumber.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumberMetricTag + 308, // 1296: otg.PatternFlowIcmpv6EchoChecksum.choice:type_name -> otg.PatternFlowIcmpv6EchoChecksum.Choice.Enum + 309, // 1297: otg.PatternFlowIcmpv6EchoChecksum.generated:type_name -> otg.PatternFlowIcmpv6EchoChecksum.Generated.Enum + 310, // 1298: otg.PatternFlowIcmpv6CommonChecksum.choice:type_name -> otg.PatternFlowIcmpv6CommonChecksum.Choice.Enum + 311, // 1299: otg.PatternFlowIcmpv6CommonChecksum.generated:type_name -> otg.PatternFlowIcmpv6CommonChecksum.Generated.Enum + 312, // 1300: otg.PatternFlowPppAddress.choice:type_name -> otg.PatternFlowPppAddress.Choice.Enum + 1066, // 1301: otg.PatternFlowPppAddress.increment:type_name -> otg.PatternFlowPppAddressCounter + 1066, // 1302: otg.PatternFlowPppAddress.decrement:type_name -> otg.PatternFlowPppAddressCounter + 1067, // 1303: otg.PatternFlowPppAddress.metric_tags:type_name -> otg.PatternFlowPppAddressMetricTag + 313, // 1304: otg.PatternFlowPppControl.choice:type_name -> otg.PatternFlowPppControl.Choice.Enum + 1069, // 1305: otg.PatternFlowPppControl.increment:type_name -> otg.PatternFlowPppControlCounter + 1069, // 1306: otg.PatternFlowPppControl.decrement:type_name -> otg.PatternFlowPppControlCounter + 1070, // 1307: otg.PatternFlowPppControl.metric_tags:type_name -> otg.PatternFlowPppControlMetricTag + 314, // 1308: otg.PatternFlowPppProtocolType.choice:type_name -> otg.PatternFlowPppProtocolType.Choice.Enum + 1072, // 1309: otg.PatternFlowPppProtocolType.increment:type_name -> otg.PatternFlowPppProtocolTypeCounter + 1072, // 1310: otg.PatternFlowPppProtocolType.decrement:type_name -> otg.PatternFlowPppProtocolTypeCounter + 1073, // 1311: otg.PatternFlowPppProtocolType.metric_tags:type_name -> otg.PatternFlowPppProtocolTypeMetricTag + 315, // 1312: otg.PatternFlowIgmpv1Version.choice:type_name -> otg.PatternFlowIgmpv1Version.Choice.Enum + 1075, // 1313: otg.PatternFlowIgmpv1Version.increment:type_name -> otg.PatternFlowIgmpv1VersionCounter + 1075, // 1314: otg.PatternFlowIgmpv1Version.decrement:type_name -> otg.PatternFlowIgmpv1VersionCounter + 1076, // 1315: otg.PatternFlowIgmpv1Version.metric_tags:type_name -> otg.PatternFlowIgmpv1VersionMetricTag + 316, // 1316: otg.PatternFlowIgmpv1Type.choice:type_name -> otg.PatternFlowIgmpv1Type.Choice.Enum + 1078, // 1317: otg.PatternFlowIgmpv1Type.increment:type_name -> otg.PatternFlowIgmpv1TypeCounter + 1078, // 1318: otg.PatternFlowIgmpv1Type.decrement:type_name -> otg.PatternFlowIgmpv1TypeCounter + 1079, // 1319: otg.PatternFlowIgmpv1Type.metric_tags:type_name -> otg.PatternFlowIgmpv1TypeMetricTag + 317, // 1320: otg.PatternFlowIgmpv1Unused.choice:type_name -> otg.PatternFlowIgmpv1Unused.Choice.Enum + 1081, // 1321: otg.PatternFlowIgmpv1Unused.increment:type_name -> otg.PatternFlowIgmpv1UnusedCounter + 1081, // 1322: otg.PatternFlowIgmpv1Unused.decrement:type_name -> otg.PatternFlowIgmpv1UnusedCounter + 1082, // 1323: otg.PatternFlowIgmpv1Unused.metric_tags:type_name -> otg.PatternFlowIgmpv1UnusedMetricTag + 318, // 1324: otg.PatternFlowIgmpv1Checksum.choice:type_name -> otg.PatternFlowIgmpv1Checksum.Choice.Enum + 319, // 1325: otg.PatternFlowIgmpv1Checksum.generated:type_name -> otg.PatternFlowIgmpv1Checksum.Generated.Enum + 320, // 1326: otg.PatternFlowIgmpv1GroupAddress.choice:type_name -> otg.PatternFlowIgmpv1GroupAddress.Choice.Enum + 1085, // 1327: otg.PatternFlowIgmpv1GroupAddress.increment:type_name -> otg.PatternFlowIgmpv1GroupAddressCounter + 1085, // 1328: otg.PatternFlowIgmpv1GroupAddress.decrement:type_name -> otg.PatternFlowIgmpv1GroupAddressCounter + 1086, // 1329: otg.PatternFlowIgmpv1GroupAddress.metric_tags:type_name -> otg.PatternFlowIgmpv1GroupAddressMetricTag + 321, // 1330: otg.PatternFlowMplsLabel.choice:type_name -> otg.PatternFlowMplsLabel.Choice.Enum + 1088, // 1331: otg.PatternFlowMplsLabel.increment:type_name -> otg.PatternFlowMplsLabelCounter + 1088, // 1332: otg.PatternFlowMplsLabel.decrement:type_name -> otg.PatternFlowMplsLabelCounter + 1089, // 1333: otg.PatternFlowMplsLabel.metric_tags:type_name -> otg.PatternFlowMplsLabelMetricTag + 322, // 1334: otg.PatternFlowMplsTrafficClass.choice:type_name -> otg.PatternFlowMplsTrafficClass.Choice.Enum + 1091, // 1335: otg.PatternFlowMplsTrafficClass.increment:type_name -> otg.PatternFlowMplsTrafficClassCounter + 1091, // 1336: otg.PatternFlowMplsTrafficClass.decrement:type_name -> otg.PatternFlowMplsTrafficClassCounter + 1092, // 1337: otg.PatternFlowMplsTrafficClass.metric_tags:type_name -> otg.PatternFlowMplsTrafficClassMetricTag + 323, // 1338: otg.PatternFlowMplsBottomOfStack.choice:type_name -> otg.PatternFlowMplsBottomOfStack.Choice.Enum + 1094, // 1339: otg.PatternFlowMplsBottomOfStack.increment:type_name -> otg.PatternFlowMplsBottomOfStackCounter + 1094, // 1340: otg.PatternFlowMplsBottomOfStack.decrement:type_name -> otg.PatternFlowMplsBottomOfStackCounter + 1095, // 1341: otg.PatternFlowMplsBottomOfStack.metric_tags:type_name -> otg.PatternFlowMplsBottomOfStackMetricTag + 324, // 1342: otg.PatternFlowMplsTimeToLive.choice:type_name -> otg.PatternFlowMplsTimeToLive.Choice.Enum + 1097, // 1343: otg.PatternFlowMplsTimeToLive.increment:type_name -> otg.PatternFlowMplsTimeToLiveCounter + 1097, // 1344: otg.PatternFlowMplsTimeToLive.decrement:type_name -> otg.PatternFlowMplsTimeToLiveCounter + 1098, // 1345: otg.PatternFlowMplsTimeToLive.metric_tags:type_name -> otg.PatternFlowMplsTimeToLiveMetricTag + 325, // 1346: otg.PatternFlowSnmpv2cVersion.choice:type_name -> otg.PatternFlowSnmpv2cVersion.Choice.Enum + 1100, // 1347: otg.PatternFlowSnmpv2cVersion.increment:type_name -> otg.PatternFlowSnmpv2cVersionCounter + 1100, // 1348: otg.PatternFlowSnmpv2cVersion.decrement:type_name -> otg.PatternFlowSnmpv2cVersionCounter + 326, // 1349: otg.PatternFlowSnmpv2cPDURequestId.choice:type_name -> otg.PatternFlowSnmpv2cPDURequestId.Choice.Enum + 1102, // 1350: otg.PatternFlowSnmpv2cPDURequestId.increment:type_name -> otg.PatternFlowSnmpv2cPDURequestIdCounter + 1102, // 1351: otg.PatternFlowSnmpv2cPDURequestId.decrement:type_name -> otg.PatternFlowSnmpv2cPDURequestIdCounter + 327, // 1352: otg.PatternFlowSnmpv2cPDUErrorIndex.choice:type_name -> otg.PatternFlowSnmpv2cPDUErrorIndex.Choice.Enum + 1104, // 1353: otg.PatternFlowSnmpv2cPDUErrorIndex.increment:type_name -> otg.PatternFlowSnmpv2cPDUErrorIndexCounter + 1104, // 1354: otg.PatternFlowSnmpv2cPDUErrorIndex.decrement:type_name -> otg.PatternFlowSnmpv2cPDUErrorIndexCounter + 328, // 1355: otg.PatternFlowSnmpv2cBulkPDURequestId.choice:type_name -> otg.PatternFlowSnmpv2cBulkPDURequestId.Choice.Enum + 1106, // 1356: otg.PatternFlowSnmpv2cBulkPDURequestId.increment:type_name -> otg.PatternFlowSnmpv2cBulkPDURequestIdCounter + 1106, // 1357: otg.PatternFlowSnmpv2cBulkPDURequestId.decrement:type_name -> otg.PatternFlowSnmpv2cBulkPDURequestIdCounter + 329, // 1358: otg.PatternFlowSnmpv2cBulkPDUNonRepeaters.choice:type_name -> otg.PatternFlowSnmpv2cBulkPDUNonRepeaters.Choice.Enum + 330, // 1359: otg.PatternFlowSnmpv2cBulkPDUMaxRepetitions.choice:type_name -> otg.PatternFlowSnmpv2cBulkPDUMaxRepetitions.Choice.Enum + 1109, // 1360: otg.PatternFlowSnmpv2cBulkPDUMaxRepetitions.increment:type_name -> otg.PatternFlowSnmpv2cBulkPDUMaxRepetitionsCounter + 1109, // 1361: otg.PatternFlowSnmpv2cBulkPDUMaxRepetitions.decrement:type_name -> otg.PatternFlowSnmpv2cBulkPDUMaxRepetitionsCounter + 331, // 1362: otg.PatternFlowSnmpv2cVariableBindingValueIntegerValue.choice:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueIntegerValue.Choice.Enum + 1111, // 1363: otg.PatternFlowSnmpv2cVariableBindingValueIntegerValue.increment:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueIntegerValueCounter + 1111, // 1364: otg.PatternFlowSnmpv2cVariableBindingValueIntegerValue.decrement:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueIntegerValueCounter + 332, // 1365: otg.PatternFlowSnmpv2cVariableBindingValueIpAddressValue.choice:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueIpAddressValue.Choice.Enum + 1113, // 1366: otg.PatternFlowSnmpv2cVariableBindingValueIpAddressValue.increment:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueIpAddressValueCounter + 1113, // 1367: otg.PatternFlowSnmpv2cVariableBindingValueIpAddressValue.decrement:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueIpAddressValueCounter + 333, // 1368: otg.PatternFlowSnmpv2cVariableBindingValueCounterValue.choice:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueCounterValue.Choice.Enum + 1115, // 1369: otg.PatternFlowSnmpv2cVariableBindingValueCounterValue.increment:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueCounterValueCounter + 1115, // 1370: otg.PatternFlowSnmpv2cVariableBindingValueCounterValue.decrement:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueCounterValueCounter + 334, // 1371: otg.PatternFlowSnmpv2cVariableBindingValueTimeticksValue.choice:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueTimeticksValue.Choice.Enum + 1117, // 1372: otg.PatternFlowSnmpv2cVariableBindingValueTimeticksValue.increment:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueTimeticksValueCounter + 1117, // 1373: otg.PatternFlowSnmpv2cVariableBindingValueTimeticksValue.decrement:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueTimeticksValueCounter + 335, // 1374: otg.PatternFlowSnmpv2cVariableBindingValueBigCounterValue.choice:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueBigCounterValue.Choice.Enum + 1119, // 1375: otg.PatternFlowSnmpv2cVariableBindingValueBigCounterValue.increment:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueBigCounterValueCounter + 1119, // 1376: otg.PatternFlowSnmpv2cVariableBindingValueBigCounterValue.decrement:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueBigCounterValueCounter + 336, // 1377: otg.PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValue.choice:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValue.Choice.Enum + 1121, // 1378: otg.PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValue.increment:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValueCounter + 1121, // 1379: otg.PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValue.decrement:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValueCounter + 337, // 1380: otg.PatternFlowSnmpv2cCommonRequestId.choice:type_name -> otg.PatternFlowSnmpv2cCommonRequestId.Choice.Enum + 1123, // 1381: otg.PatternFlowSnmpv2cCommonRequestId.increment:type_name -> otg.PatternFlowSnmpv2cCommonRequestIdCounter + 1123, // 1382: otg.PatternFlowSnmpv2cCommonRequestId.decrement:type_name -> otg.PatternFlowSnmpv2cCommonRequestIdCounter + 569, // 1383: otg.Success.warning:type_name -> otg.Warning + 568, // 1384: otg.Failure.error:type_name -> otg.Error + 338, // 1385: otg.SetConfigRequest.config:type_name -> otg.Config + 570, // 1386: otg.UpdateConfigRequest.config_update:type_name -> otg.ConfigUpdate + 569, // 1387: otg.SetConfigResponse.warning:type_name -> otg.Warning + 338, // 1388: otg.GetConfigResponse.config:type_name -> otg.Config + 569, // 1389: otg.UpdateConfigResponse.warning:type_name -> otg.Warning + 572, // 1390: otg.SetControlStateRequest.control_state:type_name -> otg.ControlState + 569, // 1391: otg.SetControlStateResponse.warning:type_name -> otg.Warning + 588, // 1392: otg.SetControlActionRequest.control_action:type_name -> otg.ControlAction + 589, // 1393: otg.SetControlActionResponse.control_action_response:type_name -> otg.ControlActionResponse + 608, // 1394: otg.GetMetricsRequest.metrics_request:type_name -> otg.MetricsRequest + 609, // 1395: otg.GetMetricsResponse.metrics_response:type_name -> otg.MetricsResponse + 635, // 1396: otg.GetStatesRequest.states_request:type_name -> otg.StatesRequest + 636, // 1397: otg.GetStatesResponse.states_response:type_name -> otg.StatesResponse + 677, // 1398: otg.GetCaptureRequest.capture_request:type_name -> otg.CaptureRequest + 1125, // 1399: otg.GetVersionResponse.version:type_name -> otg.Version + 1128, // 1400: otg.Openapi.SetConfig:input_type -> otg.SetConfigRequest + 1482, // 1401: otg.Openapi.GetConfig:input_type -> google.protobuf.Empty + 1129, // 1402: otg.Openapi.UpdateConfig:input_type -> otg.UpdateConfigRequest + 1133, // 1403: otg.Openapi.SetControlState:input_type -> otg.SetControlStateRequest + 1135, // 1404: otg.Openapi.SetControlAction:input_type -> otg.SetControlActionRequest + 1137, // 1405: otg.Openapi.GetMetrics:input_type -> otg.GetMetricsRequest + 1139, // 1406: otg.Openapi.GetStates:input_type -> otg.GetStatesRequest + 1141, // 1407: otg.Openapi.GetCapture:input_type -> otg.GetCaptureRequest + 1482, // 1408: otg.Openapi.GetVersion:input_type -> google.protobuf.Empty + 1130, // 1409: otg.Openapi.SetConfig:output_type -> otg.SetConfigResponse + 1131, // 1410: otg.Openapi.GetConfig:output_type -> otg.GetConfigResponse + 1132, // 1411: otg.Openapi.UpdateConfig:output_type -> otg.UpdateConfigResponse + 1134, // 1412: otg.Openapi.SetControlState:output_type -> otg.SetControlStateResponse + 1136, // 1413: otg.Openapi.SetControlAction:output_type -> otg.SetControlActionResponse + 1138, // 1414: otg.Openapi.GetMetrics:output_type -> otg.GetMetricsResponse + 1140, // 1415: otg.Openapi.GetStates:output_type -> otg.GetStatesResponse + 1142, // 1416: otg.Openapi.GetCapture:output_type -> otg.GetCaptureResponse + 1143, // 1417: otg.Openapi.GetVersion:output_type -> otg.GetVersionResponse + 1409, // [1409:1418] is the sub-list for method output_type + 1400, // [1400:1409] is the sub-list for method input_type + 1400, // [1400:1400] is the sub-list for extension type_name + 1400, // [1400:1400] is the sub-list for extension extendee + 0, // [0:1400] is the sub-list for field type_name } func init() { file_otg_proto_init() } @@ -113898,8 +118878,380 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[185].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowArp); i { + file_otg_proto_msgTypes[185].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowArp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[186].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowIcmp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[187].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowIcmpEcho); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[188].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowIcmpv6); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[189].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowIcmpv6Echo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[190].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowPpp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[191].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowIgmpv1); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[192].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowMpls); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[193].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowSnmpv2C); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[194].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowSnmpv2CData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[195].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowSnmpv2CPDU); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[196].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowSnmpv2CBulkPDU); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[197].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowSnmpv2CVariableBinding); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[198].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowSnmpv2CVariableBindingValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[199].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowSize); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[200].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowSizeIncrement); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[201].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowSizeRandom); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[202].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowSizeWeightPairs); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[203].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowSizeWeightPairsCustom); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[204].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowRate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[205].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowDuration); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[206].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowContinuous); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[207].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowDelay); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[208].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowFixedPackets); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[209].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowFixedSeconds); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[210].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowBurst); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[211].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowDurationInterBurstGap); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[212].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowMetrics); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[213].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowLatencyMetrics); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[214].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowPredefinedTags); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[215].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowRxTxRatio); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[216].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowRxTxRatioRxCount); i { case 0: return &v.state case 1: @@ -113910,8 +119262,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[186].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowIcmp); i { + file_otg_proto_msgTypes[217].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Event); i { case 0: return &v.state case 1: @@ -113922,8 +119274,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[187].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowIcmpEcho); i { + file_otg_proto_msgTypes[218].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EventRxRateThreshold); i { case 0: return &v.state case 1: @@ -113934,8 +119286,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[188].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowIcmpv6); i { + file_otg_proto_msgTypes[219].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EventLink); i { case 0: return &v.state case 1: @@ -113946,8 +119298,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[189].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowIcmpv6Echo); i { + file_otg_proto_msgTypes[220].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EventRouteAdvertiseWithdraw); i { case 0: return &v.state case 1: @@ -113958,8 +119310,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[190].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowPpp); i { + file_otg_proto_msgTypes[221].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EventRequest); i { case 0: return &v.state case 1: @@ -113970,8 +119322,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[191].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowIgmpv1); i { + file_otg_proto_msgTypes[222].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EventSubscription); i { case 0: return &v.state case 1: @@ -113982,8 +119334,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[192].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowMpls); i { + file_otg_proto_msgTypes[223].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Lldp); i { case 0: return &v.state case 1: @@ -113994,8 +119346,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[193].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowSize); i { + file_otg_proto_msgTypes[224].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LldpConnection); i { case 0: return &v.state case 1: @@ -114006,8 +119358,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[194].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowSizeIncrement); i { + file_otg_proto_msgTypes[225].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LldpChassisId); i { case 0: return &v.state case 1: @@ -114018,8 +119370,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[195].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowSizeRandom); i { + file_otg_proto_msgTypes[226].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LldpPortId); i { case 0: return &v.state case 1: @@ -114030,8 +119382,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[196].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowSizeWeightPairs); i { + file_otg_proto_msgTypes[227].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LldpChassisMacSubType); i { case 0: return &v.state case 1: @@ -114042,8 +119394,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[197].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowSizeWeightPairsCustom); i { + file_otg_proto_msgTypes[228].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LldpPortInterfaceNameSubType); i { case 0: return &v.state case 1: @@ -114054,8 +119406,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[198].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowRate); i { + file_otg_proto_msgTypes[229].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LldpSystemName); i { case 0: return &v.state case 1: @@ -114066,8 +119418,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[199].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowDuration); i { + file_otg_proto_msgTypes[230].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Error); i { case 0: return &v.state case 1: @@ -114078,8 +119430,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[200].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowContinuous); i { + file_otg_proto_msgTypes[231].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Warning); i { case 0: return &v.state case 1: @@ -114090,8 +119442,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[201].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowDelay); i { + file_otg_proto_msgTypes[232].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConfigUpdate); i { case 0: return &v.state case 1: @@ -114102,8 +119454,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[202].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowFixedPackets); i { + file_otg_proto_msgTypes[233].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowsUpdate); i { case 0: return &v.state case 1: @@ -114114,8 +119466,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[203].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowFixedSeconds); i { + file_otg_proto_msgTypes[234].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ControlState); i { case 0: return &v.state case 1: @@ -114126,8 +119478,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[204].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowBurst); i { + file_otg_proto_msgTypes[235].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StatePort); i { case 0: return &v.state case 1: @@ -114138,8 +119490,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[205].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowDurationInterBurstGap); i { + file_otg_proto_msgTypes[236].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StateTraffic); i { case 0: return &v.state case 1: @@ -114150,8 +119502,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[206].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowMetrics); i { + file_otg_proto_msgTypes[237].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StateProtocol); i { case 0: return &v.state case 1: @@ -114162,8 +119514,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[207].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowLatencyMetrics); i { + file_otg_proto_msgTypes[238].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StatePortLink); i { case 0: return &v.state case 1: @@ -114174,8 +119526,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[208].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowPredefinedTags); i { + file_otg_proto_msgTypes[239].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StatePortCapture); i { case 0: return &v.state case 1: @@ -114186,8 +119538,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[209].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowRxTxRatio); i { + file_otg_proto_msgTypes[240].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StateTrafficFlowTransmit); i { case 0: return &v.state case 1: @@ -114198,8 +119550,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[210].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowRxTxRatioRxCount); i { + file_otg_proto_msgTypes[241].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StateProtocolAll); i { case 0: return &v.state case 1: @@ -114210,8 +119562,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[211].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Event); i { + file_otg_proto_msgTypes[242].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StateProtocolRoute); i { case 0: return &v.state case 1: @@ -114222,8 +119574,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[212].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EventRxRateThreshold); i { + file_otg_proto_msgTypes[243].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StateProtocolLacp); i { case 0: return &v.state case 1: @@ -114234,8 +119586,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[213].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EventLink); i { + file_otg_proto_msgTypes[244].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StateProtocolLacpAdmin); i { case 0: return &v.state case 1: @@ -114246,8 +119598,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[214].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EventRouteAdvertiseWithdraw); i { + file_otg_proto_msgTypes[245].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StateProtocolLacpMemberPorts); i { case 0: return &v.state case 1: @@ -114258,8 +119610,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[215].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EventRequest); i { + file_otg_proto_msgTypes[246].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StateProtocolBgp); i { case 0: return &v.state case 1: @@ -114270,8 +119622,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[216].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EventSubscription); i { + file_otg_proto_msgTypes[247].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StateProtocolBgpPeers); i { case 0: return &v.state case 1: @@ -114282,8 +119634,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[217].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Lldp); i { + file_otg_proto_msgTypes[248].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StateProtocolIsis); i { case 0: return &v.state case 1: @@ -114294,8 +119646,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[218].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LldpConnection); i { + file_otg_proto_msgTypes[249].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StateProtocolIsisRouters); i { case 0: return &v.state case 1: @@ -114306,8 +119658,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[219].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LldpChassisId); i { + file_otg_proto_msgTypes[250].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ControlAction); i { case 0: return &v.state case 1: @@ -114318,8 +119670,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[220].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LldpPortId); i { + file_otg_proto_msgTypes[251].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ControlActionResponse); i { case 0: return &v.state case 1: @@ -114330,8 +119682,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[221].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LldpChassisMacSubType); i { + file_otg_proto_msgTypes[252].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ActionResponse); i { case 0: return &v.state case 1: @@ -114342,8 +119694,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[222].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LldpPortInterfaceNameSubType); i { + file_otg_proto_msgTypes[253].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ActionProtocol); i { case 0: return &v.state case 1: @@ -114354,8 +119706,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[223].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LldpSystemName); i { + file_otg_proto_msgTypes[254].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ActionResponseProtocol); i { case 0: return &v.state case 1: @@ -114366,8 +119718,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[224].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Error); i { + file_otg_proto_msgTypes[255].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ActionProtocolIpv4); i { case 0: return &v.state case 1: @@ -114378,8 +119730,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[225].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Warning); i { + file_otg_proto_msgTypes[256].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ActionResponseProtocolIpv4); i { case 0: return &v.state case 1: @@ -114390,8 +119742,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[226].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ConfigUpdate); i { + file_otg_proto_msgTypes[257].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ActionProtocolIpv4Ping); i { case 0: return &v.state case 1: @@ -114402,8 +119754,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[227].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowsUpdate); i { + file_otg_proto_msgTypes[258].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ActionProtocolIpv4PingRequest); i { case 0: return &v.state case 1: @@ -114414,8 +119766,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[228].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ControlState); i { + file_otg_proto_msgTypes[259].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ActionResponseProtocolIpv4Ping); i { case 0: return &v.state case 1: @@ -114426,8 +119778,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[229].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatePort); i { + file_otg_proto_msgTypes[260].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ActionResponseProtocolIpv4PingResponse); i { case 0: return &v.state case 1: @@ -114438,8 +119790,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[230].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StateTraffic); i { + file_otg_proto_msgTypes[261].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ActionProtocolIpv6); i { case 0: return &v.state case 1: @@ -114450,8 +119802,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[231].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StateProtocol); i { + file_otg_proto_msgTypes[262].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ActionResponseProtocolIpv6); i { case 0: return &v.state case 1: @@ -114462,8 +119814,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[232].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatePortLink); i { + file_otg_proto_msgTypes[263].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ActionProtocolIpv6Ping); i { case 0: return &v.state case 1: @@ -114474,8 +119826,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[233].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatePortCapture); i { + file_otg_proto_msgTypes[264].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ActionProtocolIpv6PingRequest); i { case 0: return &v.state case 1: @@ -114486,8 +119838,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[234].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StateTrafficFlowTransmit); i { + file_otg_proto_msgTypes[265].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ActionResponseProtocolIpv6Ping); i { case 0: return &v.state case 1: @@ -114498,8 +119850,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[235].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StateProtocolAll); i { + file_otg_proto_msgTypes[266].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ActionResponseProtocolIpv6PingResponse); i { case 0: return &v.state case 1: @@ -114510,8 +119862,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[236].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StateProtocolRoute); i { + file_otg_proto_msgTypes[267].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ActionProtocolBgp); i { case 0: return &v.state case 1: @@ -114522,8 +119874,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[237].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StateProtocolLacp); i { + file_otg_proto_msgTypes[268].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ActionProtocolBgpNotification); i { case 0: return &v.state case 1: @@ -114534,8 +119886,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[238].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StateProtocolLacpAdmin); i { + file_otg_proto_msgTypes[269].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ActionProtocolBgpInitiateGracefulRestart); i { case 0: return &v.state case 1: @@ -114546,8 +119898,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[239].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StateProtocolLacpMemberPorts); i { + file_otg_proto_msgTypes[270].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MetricsRequest); i { case 0: return &v.state case 1: @@ -114558,8 +119910,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[240].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StateProtocolBgp); i { + file_otg_proto_msgTypes[271].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MetricsResponse); i { case 0: return &v.state case 1: @@ -114570,8 +119922,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[241].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StateProtocolBgpPeers); i { + file_otg_proto_msgTypes[272].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PortMetricsRequest); i { case 0: return &v.state case 1: @@ -114582,8 +119934,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[242].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StateProtocolIsis); i { + file_otg_proto_msgTypes[273].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PortMetric); i { case 0: return &v.state case 1: @@ -114594,8 +119946,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[243].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StateProtocolIsisRouters); i { + file_otg_proto_msgTypes[274].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowMetricsRequest); i { case 0: return &v.state case 1: @@ -114606,8 +119958,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[244].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ControlAction); i { + file_otg_proto_msgTypes[275].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowTaggedMetricsFilter); i { case 0: return &v.state case 1: @@ -114618,8 +119970,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[245].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ControlActionResponse); i { + file_otg_proto_msgTypes[276].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowMetricTagFilter); i { case 0: return &v.state case 1: @@ -114630,8 +119982,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[246].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ActionResponse); i { + file_otg_proto_msgTypes[277].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowMetric); i { case 0: return &v.state case 1: @@ -114642,8 +119994,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[247].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ActionProtocol); i { + file_otg_proto_msgTypes[278].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowTaggedMetric); i { case 0: return &v.state case 1: @@ -114654,8 +120006,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[248].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ActionResponseProtocol); i { + file_otg_proto_msgTypes[279].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowMetricTag); i { case 0: return &v.state case 1: @@ -114666,8 +120018,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[249].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ActionProtocolIpv4); i { + file_otg_proto_msgTypes[280].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowMetricTagValue); i { case 0: return &v.state case 1: @@ -114678,8 +120030,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[250].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ActionResponseProtocolIpv4); i { + file_otg_proto_msgTypes[281].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MetricTimestamp); i { case 0: return &v.state case 1: @@ -114690,8 +120042,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[251].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ActionProtocolIpv4Ping); i { + file_otg_proto_msgTypes[282].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MetricLatency); i { case 0: return &v.state case 1: @@ -114702,8 +120054,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[252].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ActionProtocolIpv4PingRequest); i { + file_otg_proto_msgTypes[283].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Bgpv4MetricsRequest); i { case 0: return &v.state case 1: @@ -114714,8 +120066,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[253].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ActionResponseProtocolIpv4Ping); i { + file_otg_proto_msgTypes[284].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Bgpv4Metric); i { case 0: return &v.state case 1: @@ -114726,8 +120078,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[254].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ActionResponseProtocolIpv4PingResponse); i { + file_otg_proto_msgTypes[285].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Bgpv6MetricsRequest); i { case 0: return &v.state case 1: @@ -114738,8 +120090,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[255].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ActionProtocolIpv6); i { + file_otg_proto_msgTypes[286].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Bgpv6Metric); i { case 0: return &v.state case 1: @@ -114750,8 +120102,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[256].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ActionResponseProtocolIpv6); i { + file_otg_proto_msgTypes[287].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IsisMetricsRequest); i { case 0: return &v.state case 1: @@ -114762,8 +120114,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[257].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ActionProtocolIpv6Ping); i { + file_otg_proto_msgTypes[288].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IsisMetric); i { case 0: return &v.state case 1: @@ -114774,8 +120126,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[258].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ActionProtocolIpv6PingRequest); i { + file_otg_proto_msgTypes[289].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LagMetricsRequest); i { case 0: return &v.state case 1: @@ -114786,8 +120138,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[259].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ActionResponseProtocolIpv6Ping); i { + file_otg_proto_msgTypes[290].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LagMetric); i { case 0: return &v.state case 1: @@ -114798,8 +120150,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[260].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ActionResponseProtocolIpv6PingResponse); i { + file_otg_proto_msgTypes[291].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LacpMetricsRequest); i { case 0: return &v.state case 1: @@ -114810,8 +120162,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[261].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ActionProtocolBgp); i { + file_otg_proto_msgTypes[292].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LacpMetric); i { case 0: return &v.state case 1: @@ -114822,8 +120174,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[262].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ActionProtocolBgpNotification); i { + file_otg_proto_msgTypes[293].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LldpMetricsRequest); i { case 0: return &v.state case 1: @@ -114834,8 +120186,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[263].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ActionProtocolBgpInitiateGracefulRestart); i { + file_otg_proto_msgTypes[294].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LldpMetric); i { case 0: return &v.state case 1: @@ -114846,8 +120198,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[264].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MetricsRequest); i { + file_otg_proto_msgTypes[295].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RsvpMetricsRequest); i { case 0: return &v.state case 1: @@ -114858,8 +120210,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[265].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MetricsResponse); i { + file_otg_proto_msgTypes[296].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RsvpMetric); i { case 0: return &v.state case 1: @@ -114870,8 +120222,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[266].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PortMetricsRequest); i { + file_otg_proto_msgTypes[297].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StatesRequest); i { case 0: return &v.state case 1: @@ -114882,8 +120234,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[267].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PortMetric); i { + file_otg_proto_msgTypes[298].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StatesResponse); i { case 0: return &v.state case 1: @@ -114894,8 +120246,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[268].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowMetricsRequest); i { + file_otg_proto_msgTypes[299].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Neighborsv4StatesRequest); i { case 0: return &v.state case 1: @@ -114906,8 +120258,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[269].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowTaggedMetricsFilter); i { + file_otg_proto_msgTypes[300].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Neighborsv4State); i { case 0: return &v.state case 1: @@ -114918,8 +120270,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[270].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowMetricTagFilter); i { + file_otg_proto_msgTypes[301].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Neighborsv6StatesRequest); i { case 0: return &v.state case 1: @@ -114930,8 +120282,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[271].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowMetric); i { + file_otg_proto_msgTypes[302].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Neighborsv6State); i { case 0: return &v.state case 1: @@ -114942,8 +120294,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[272].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowTaggedMetric); i { + file_otg_proto_msgTypes[303].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpPrefixStateRequest); i { case 0: return &v.state case 1: @@ -114954,8 +120306,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[273].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowMetricTag); i { + file_otg_proto_msgTypes[304].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpPrefixIpv4UnicastFilter); i { case 0: return &v.state case 1: @@ -114966,8 +120318,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[274].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FlowMetricTagValue); i { + file_otg_proto_msgTypes[305].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpPrefixIpv6UnicastFilter); i { case 0: return &v.state case 1: @@ -114978,8 +120330,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[275].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MetricTimestamp); i { + file_otg_proto_msgTypes[306].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpPrefixesState); i { case 0: return &v.state case 1: @@ -114990,8 +120342,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[276].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MetricLatency); i { + file_otg_proto_msgTypes[307].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpPrefixIpv4UnicastState); i { case 0: return &v.state case 1: @@ -115002,8 +120354,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[277].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Bgpv4MetricsRequest); i { + file_otg_proto_msgTypes[308].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpPrefixIpv6UnicastState); i { case 0: return &v.state case 1: @@ -115014,8 +120366,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[278].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Bgpv4Metric); i { + file_otg_proto_msgTypes[309].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResultBgpCommunity); i { case 0: return &v.state case 1: @@ -115026,8 +120378,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[279].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Bgpv6MetricsRequest); i { + file_otg_proto_msgTypes[310].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResultBgpAsPath); i { case 0: return &v.state case 1: @@ -115038,8 +120390,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[280].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Bgpv6Metric); i { + file_otg_proto_msgTypes[311].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResultBgpAsPathSegment); i { case 0: return &v.state case 1: @@ -115050,8 +120402,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[281].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsisMetricsRequest); i { + file_otg_proto_msgTypes[312].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IsisLspsStateRequest); i { case 0: return &v.state case 1: @@ -115062,8 +120414,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[282].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsisMetric); i { + file_otg_proto_msgTypes[313].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IsisLspsState); i { case 0: return &v.state case 1: @@ -115074,8 +120426,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[283].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LagMetricsRequest); i { + file_otg_proto_msgTypes[314].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IsisLspState); i { case 0: return &v.state case 1: @@ -115086,8 +120438,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[284].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LagMetric); i { + file_otg_proto_msgTypes[315].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IsisLspTlvs); i { case 0: return &v.state case 1: @@ -115098,8 +120450,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[285].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LacpMetricsRequest); i { + file_otg_proto_msgTypes[316].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IsisLspHostname); i { case 0: return &v.state case 1: @@ -115110,8 +120462,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[286].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LacpMetric); i { + file_otg_proto_msgTypes[317].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IsisLspFlags); i { case 0: return &v.state case 1: @@ -115122,8 +120474,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[287].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LldpMetricsRequest); i { + file_otg_proto_msgTypes[318].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IsisLspIsReachabilityTlv); i { case 0: return &v.state case 1: @@ -115134,8 +120486,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[288].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LldpMetric); i { + file_otg_proto_msgTypes[319].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IsisLspExtendedIsReachabilityTlv); i { case 0: return &v.state case 1: @@ -115146,8 +120498,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[289].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RsvpMetricsRequest); i { + file_otg_proto_msgTypes[320].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IsisLspneighbor); i { case 0: return &v.state case 1: @@ -115158,8 +120510,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[290].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RsvpMetric); i { + file_otg_proto_msgTypes[321].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IsisLspIpv4InternalReachabilityTlv); i { case 0: return &v.state case 1: @@ -115170,8 +120522,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[291].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatesRequest); i { + file_otg_proto_msgTypes[322].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IsisLspIpv4ExternalReachabilityTlv); i { case 0: return &v.state case 1: @@ -115182,8 +120534,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[292].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatesResponse); i { + file_otg_proto_msgTypes[323].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IsisLspV4Prefix); i { case 0: return &v.state case 1: @@ -115194,8 +120546,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[293].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Neighborsv4StatesRequest); i { + file_otg_proto_msgTypes[324].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IsisLspExtendedIpv4ReachabilityTlv); i { case 0: return &v.state case 1: @@ -115206,8 +120558,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[294].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Neighborsv4State); i { + file_otg_proto_msgTypes[325].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IsisLspExtendedV4Prefix); i { case 0: return &v.state case 1: @@ -115218,8 +120570,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[295].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Neighborsv6StatesRequest); i { + file_otg_proto_msgTypes[326].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IsisLspIpv6ReachabilityTlv); i { case 0: return &v.state case 1: @@ -115230,8 +120582,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[296].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Neighborsv6State); i { + file_otg_proto_msgTypes[327].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IsisLspV6Prefix); i { case 0: return &v.state case 1: @@ -115242,8 +120594,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[297].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpPrefixStateRequest); i { + file_otg_proto_msgTypes[328].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IsisLspPrefixAttributes); i { case 0: return &v.state case 1: @@ -115254,8 +120606,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[298].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpPrefixIpv4UnicastFilter); i { + file_otg_proto_msgTypes[329].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LldpNeighborsStateRequest); i { case 0: return &v.state case 1: @@ -115266,8 +120618,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[299].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpPrefixIpv6UnicastFilter); i { + file_otg_proto_msgTypes[330].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LldpNeighborsState); i { case 0: return &v.state case 1: @@ -115278,8 +120630,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[300].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpPrefixesState); i { + file_otg_proto_msgTypes[331].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LldpCustomTLVState); i { case 0: return &v.state case 1: @@ -115290,8 +120642,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[301].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpPrefixIpv4UnicastState); i { + file_otg_proto_msgTypes[332].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LldpCapabilityState); i { case 0: return &v.state case 1: @@ -115302,8 +120654,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[302].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpPrefixIpv6UnicastState); i { + file_otg_proto_msgTypes[333].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RsvpLspsStateRequest); i { case 0: return &v.state case 1: @@ -115314,8 +120666,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[303].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ResultBgpCommunity); i { + file_otg_proto_msgTypes[334].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RsvpLspsState); i { case 0: return &v.state case 1: @@ -115326,8 +120678,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[304].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ResultBgpAsPath); i { + file_otg_proto_msgTypes[335].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RsvpIPv4LspState); i { case 0: return &v.state case 1: @@ -115338,8 +120690,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[305].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ResultBgpAsPathSegment); i { + file_otg_proto_msgTypes[336].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RsvpLspState); i { case 0: return &v.state case 1: @@ -115350,8 +120702,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[306].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsisLspsStateRequest); i { + file_otg_proto_msgTypes[337].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RsvpLspIpv4Rro); i { case 0: return &v.state case 1: @@ -115362,8 +120714,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[307].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsisLspsState); i { + file_otg_proto_msgTypes[338].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RsvpLspIpv4Ero); i { case 0: return &v.state case 1: @@ -115374,8 +120726,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[308].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsisLspState); i { + file_otg_proto_msgTypes[339].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CaptureRequest); i { case 0: return &v.state case 1: @@ -115386,8 +120738,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[309].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsisLspTlvs); i { + file_otg_proto_msgTypes[340].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowEthernetDstCounter); i { case 0: return &v.state case 1: @@ -115398,8 +120750,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[310].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsisLspHostname); i { + file_otg_proto_msgTypes[341].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowEthernetDstMetricTag); i { case 0: return &v.state case 1: @@ -115410,8 +120762,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[311].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsisLspFlags); i { + file_otg_proto_msgTypes[342].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowEthernetDst); i { case 0: return &v.state case 1: @@ -115422,8 +120774,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[312].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsisLspIsReachabilityTlv); i { + file_otg_proto_msgTypes[343].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowEthernetSrcCounter); i { case 0: return &v.state case 1: @@ -115434,8 +120786,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[313].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsisLspExtendedIsReachabilityTlv); i { + file_otg_proto_msgTypes[344].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowEthernetSrcMetricTag); i { case 0: return &v.state case 1: @@ -115446,8 +120798,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[314].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsisLspneighbor); i { + file_otg_proto_msgTypes[345].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowEthernetSrc); i { case 0: return &v.state case 1: @@ -115458,8 +120810,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[315].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsisLspIpv4InternalReachabilityTlv); i { + file_otg_proto_msgTypes[346].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowEthernetEtherTypeCounter); i { case 0: return &v.state case 1: @@ -115470,8 +120822,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[316].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsisLspIpv4ExternalReachabilityTlv); i { + file_otg_proto_msgTypes[347].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowEthernetEtherTypeMetricTag); i { case 0: return &v.state case 1: @@ -115482,8 +120834,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[317].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsisLspV4Prefix); i { + file_otg_proto_msgTypes[348].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowEthernetEtherType); i { case 0: return &v.state case 1: @@ -115494,8 +120846,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[318].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsisLspExtendedIpv4ReachabilityTlv); i { + file_otg_proto_msgTypes[349].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowEthernetPfcQueueCounter); i { case 0: return &v.state case 1: @@ -115506,8 +120858,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[319].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsisLspExtendedV4Prefix); i { + file_otg_proto_msgTypes[350].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowEthernetPfcQueueMetricTag); i { case 0: return &v.state case 1: @@ -115518,8 +120870,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[320].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsisLspIpv6ReachabilityTlv); i { + file_otg_proto_msgTypes[351].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowEthernetPfcQueue); i { case 0: return &v.state case 1: @@ -115530,8 +120882,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[321].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsisLspV6Prefix); i { + file_otg_proto_msgTypes[352].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowVlanPriorityCounter); i { case 0: return &v.state case 1: @@ -115542,8 +120894,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[322].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsisLspPrefixAttributes); i { + file_otg_proto_msgTypes[353].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowVlanPriorityMetricTag); i { case 0: return &v.state case 1: @@ -115554,8 +120906,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[323].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LldpNeighborsStateRequest); i { + file_otg_proto_msgTypes[354].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowVlanPriority); i { case 0: return &v.state case 1: @@ -115566,8 +120918,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[324].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LldpNeighborsState); i { + file_otg_proto_msgTypes[355].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowVlanCfiCounter); i { case 0: return &v.state case 1: @@ -115578,8 +120930,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[325].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LldpCustomTLVState); i { + file_otg_proto_msgTypes[356].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowVlanCfiMetricTag); i { case 0: return &v.state case 1: @@ -115590,8 +120942,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[326].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LldpCapabilityState); i { + file_otg_proto_msgTypes[357].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowVlanCfi); i { case 0: return &v.state case 1: @@ -115602,8 +120954,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[327].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RsvpLspsStateRequest); i { + file_otg_proto_msgTypes[358].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowVlanIdCounter); i { case 0: return &v.state case 1: @@ -115614,8 +120966,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[328].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RsvpLspsState); i { + file_otg_proto_msgTypes[359].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowVlanIdMetricTag); i { case 0: return &v.state case 1: @@ -115626,8 +120978,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[329].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RsvpIPv4LspState); i { + file_otg_proto_msgTypes[360].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowVlanId); i { case 0: return &v.state case 1: @@ -115638,8 +120990,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[330].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RsvpLspState); i { + file_otg_proto_msgTypes[361].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowVlanTpidCounter); i { case 0: return &v.state case 1: @@ -115650,8 +121002,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[331].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RsvpLspIpv4Rro); i { + file_otg_proto_msgTypes[362].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowVlanTpidMetricTag); i { case 0: return &v.state case 1: @@ -115662,8 +121014,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[332].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RsvpLspIpv4Ero); i { + file_otg_proto_msgTypes[363].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowVlanTpid); i { case 0: return &v.state case 1: @@ -115674,8 +121026,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[333].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CaptureRequest); i { + file_otg_proto_msgTypes[364].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowVxlanFlagsCounter); i { case 0: return &v.state case 1: @@ -115686,8 +121038,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[334].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowEthernetDstCounter); i { + file_otg_proto_msgTypes[365].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowVxlanFlagsMetricTag); i { case 0: return &v.state case 1: @@ -115698,8 +121050,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[335].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowEthernetDstMetricTag); i { + file_otg_proto_msgTypes[366].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowVxlanFlags); i { case 0: return &v.state case 1: @@ -115710,8 +121062,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[336].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowEthernetDst); i { + file_otg_proto_msgTypes[367].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowVxlanReserved0Counter); i { case 0: return &v.state case 1: @@ -115722,8 +121074,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[337].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowEthernetSrcCounter); i { + file_otg_proto_msgTypes[368].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowVxlanReserved0MetricTag); i { case 0: return &v.state case 1: @@ -115734,8 +121086,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[338].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowEthernetSrcMetricTag); i { + file_otg_proto_msgTypes[369].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowVxlanReserved0); i { case 0: return &v.state case 1: @@ -115746,8 +121098,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[339].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowEthernetSrc); i { + file_otg_proto_msgTypes[370].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowVxlanVniCounter); i { case 0: return &v.state case 1: @@ -115758,8 +121110,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[340].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowEthernetEtherTypeCounter); i { + file_otg_proto_msgTypes[371].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowVxlanVniMetricTag); i { case 0: return &v.state case 1: @@ -115770,8 +121122,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[341].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowEthernetEtherTypeMetricTag); i { + file_otg_proto_msgTypes[372].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowVxlanVni); i { case 0: return &v.state case 1: @@ -115782,8 +121134,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[342].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowEthernetEtherType); i { + file_otg_proto_msgTypes[373].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowVxlanReserved1Counter); i { case 0: return &v.state case 1: @@ -115794,8 +121146,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[343].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowEthernetPfcQueueCounter); i { + file_otg_proto_msgTypes[374].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowVxlanReserved1MetricTag); i { case 0: return &v.state case 1: @@ -115806,8 +121158,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[344].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowEthernetPfcQueueMetricTag); i { + file_otg_proto_msgTypes[375].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowVxlanReserved1); i { case 0: return &v.state case 1: @@ -115818,8 +121170,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[345].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowEthernetPfcQueue); i { + file_otg_proto_msgTypes[376].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4VersionCounter); i { case 0: return &v.state case 1: @@ -115830,8 +121182,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[346].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowVlanPriorityCounter); i { + file_otg_proto_msgTypes[377].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4VersionMetricTag); i { case 0: return &v.state case 1: @@ -115842,8 +121194,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[347].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowVlanPriorityMetricTag); i { + file_otg_proto_msgTypes[378].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4Version); i { case 0: return &v.state case 1: @@ -115854,8 +121206,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[348].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowVlanPriority); i { + file_otg_proto_msgTypes[379].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4HeaderLengthCounter); i { case 0: return &v.state case 1: @@ -115866,8 +121218,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[349].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowVlanCfiCounter); i { + file_otg_proto_msgTypes[380].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4HeaderLengthMetricTag); i { case 0: return &v.state case 1: @@ -115878,8 +121230,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[350].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowVlanCfiMetricTag); i { + file_otg_proto_msgTypes[381].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4HeaderLength); i { case 0: return &v.state case 1: @@ -115890,8 +121242,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[351].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowVlanCfi); i { + file_otg_proto_msgTypes[382].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4TotalLengthCounter); i { case 0: return &v.state case 1: @@ -115902,8 +121254,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[352].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowVlanIdCounter); i { + file_otg_proto_msgTypes[383].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4TotalLengthMetricTag); i { case 0: return &v.state case 1: @@ -115914,8 +121266,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[353].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowVlanIdMetricTag); i { + file_otg_proto_msgTypes[384].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4TotalLength); i { case 0: return &v.state case 1: @@ -115926,8 +121278,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[354].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowVlanId); i { + file_otg_proto_msgTypes[385].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4IdentificationCounter); i { case 0: return &v.state case 1: @@ -115938,8 +121290,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[355].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowVlanTpidCounter); i { + file_otg_proto_msgTypes[386].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4IdentificationMetricTag); i { case 0: return &v.state case 1: @@ -115950,8 +121302,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[356].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowVlanTpidMetricTag); i { + file_otg_proto_msgTypes[387].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4Identification); i { case 0: return &v.state case 1: @@ -115962,8 +121314,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[357].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowVlanTpid); i { + file_otg_proto_msgTypes[388].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4ReservedCounter); i { case 0: return &v.state case 1: @@ -115974,8 +121326,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[358].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowVxlanFlagsCounter); i { + file_otg_proto_msgTypes[389].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4ReservedMetricTag); i { case 0: return &v.state case 1: @@ -115986,8 +121338,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[359].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowVxlanFlagsMetricTag); i { + file_otg_proto_msgTypes[390].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4Reserved); i { case 0: return &v.state case 1: @@ -115998,8 +121350,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[360].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowVxlanFlags); i { + file_otg_proto_msgTypes[391].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4DontFragmentCounter); i { case 0: return &v.state case 1: @@ -116010,8 +121362,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[361].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowVxlanReserved0Counter); i { + file_otg_proto_msgTypes[392].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4DontFragmentMetricTag); i { case 0: return &v.state case 1: @@ -116022,8 +121374,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[362].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowVxlanReserved0MetricTag); i { + file_otg_proto_msgTypes[393].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4DontFragment); i { case 0: return &v.state case 1: @@ -116034,8 +121386,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[363].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowVxlanReserved0); i { + file_otg_proto_msgTypes[394].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4MoreFragmentsCounter); i { case 0: return &v.state case 1: @@ -116046,8 +121398,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[364].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowVxlanVniCounter); i { + file_otg_proto_msgTypes[395].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4MoreFragmentsMetricTag); i { case 0: return &v.state case 1: @@ -116058,8 +121410,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[365].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowVxlanVniMetricTag); i { + file_otg_proto_msgTypes[396].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4MoreFragments); i { case 0: return &v.state case 1: @@ -116070,8 +121422,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[366].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowVxlanVni); i { + file_otg_proto_msgTypes[397].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4FragmentOffsetCounter); i { case 0: return &v.state case 1: @@ -116082,8 +121434,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[367].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowVxlanReserved1Counter); i { + file_otg_proto_msgTypes[398].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4FragmentOffsetMetricTag); i { case 0: return &v.state case 1: @@ -116094,8 +121446,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[368].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowVxlanReserved1MetricTag); i { + file_otg_proto_msgTypes[399].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4FragmentOffset); i { case 0: return &v.state case 1: @@ -116106,8 +121458,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[369].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowVxlanReserved1); i { + file_otg_proto_msgTypes[400].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4TimeToLiveCounter); i { case 0: return &v.state case 1: @@ -116118,8 +121470,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[370].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4VersionCounter); i { + file_otg_proto_msgTypes[401].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4TimeToLiveMetricTag); i { case 0: return &v.state case 1: @@ -116130,8 +121482,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[371].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4VersionMetricTag); i { + file_otg_proto_msgTypes[402].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4TimeToLive); i { case 0: return &v.state case 1: @@ -116142,8 +121494,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[372].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4Version); i { + file_otg_proto_msgTypes[403].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4ProtocolCounter); i { case 0: return &v.state case 1: @@ -116154,8 +121506,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[373].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4HeaderLengthCounter); i { + file_otg_proto_msgTypes[404].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4ProtocolMetricTag); i { case 0: return &v.state case 1: @@ -116166,8 +121518,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[374].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4HeaderLengthMetricTag); i { + file_otg_proto_msgTypes[405].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4Protocol); i { case 0: return &v.state case 1: @@ -116178,8 +121530,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[375].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4HeaderLength); i { + file_otg_proto_msgTypes[406].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4HeaderChecksum); i { case 0: return &v.state case 1: @@ -116190,8 +121542,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[376].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4TotalLengthCounter); i { + file_otg_proto_msgTypes[407].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4SrcCounter); i { case 0: return &v.state case 1: @@ -116202,8 +121554,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[377].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4TotalLengthMetricTag); i { + file_otg_proto_msgTypes[408].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4SrcMetricTag); i { case 0: return &v.state case 1: @@ -116214,8 +121566,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[378].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4TotalLength); i { + file_otg_proto_msgTypes[409].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4Src); i { case 0: return &v.state case 1: @@ -116226,8 +121578,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[379].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4IdentificationCounter); i { + file_otg_proto_msgTypes[410].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4DstCounter); i { case 0: return &v.state case 1: @@ -116238,8 +121590,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[380].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4IdentificationMetricTag); i { + file_otg_proto_msgTypes[411].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4DstMetricTag); i { case 0: return &v.state case 1: @@ -116250,8 +121602,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[381].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4Identification); i { + file_otg_proto_msgTypes[412].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4Dst); i { case 0: return &v.state case 1: @@ -116262,8 +121614,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[382].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4ReservedCounter); i { + file_otg_proto_msgTypes[413].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter); i { case 0: return &v.state case 1: @@ -116274,8 +121626,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[383].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4ReservedMetricTag); i { + file_otg_proto_msgTypes[414].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4OptionsCustomTypeCopiedFlag); i { case 0: return &v.state case 1: @@ -116286,8 +121638,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[384].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4Reserved); i { + file_otg_proto_msgTypes[415].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4OptionsCustomTypeOptionClassCounter); i { case 0: return &v.state case 1: @@ -116298,8 +121650,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[385].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4DontFragmentCounter); i { + file_otg_proto_msgTypes[416].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4OptionsCustomTypeOptionClass); i { case 0: return &v.state case 1: @@ -116310,8 +121662,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[386].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4DontFragmentMetricTag); i { + file_otg_proto_msgTypes[417].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4OptionsCustomTypeOptionNumberCounter); i { case 0: return &v.state case 1: @@ -116322,8 +121674,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[387].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4DontFragment); i { + file_otg_proto_msgTypes[418].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4OptionsCustomTypeOptionNumber); i { case 0: return &v.state case 1: @@ -116334,8 +121686,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[388].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4MoreFragmentsCounter); i { + file_otg_proto_msgTypes[419].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4PriorityRawCounter); i { case 0: return &v.state case 1: @@ -116346,8 +121698,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[389].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4MoreFragmentsMetricTag); i { + file_otg_proto_msgTypes[420].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4PriorityRawMetricTag); i { case 0: return &v.state case 1: @@ -116358,8 +121710,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[390].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4MoreFragments); i { + file_otg_proto_msgTypes[421].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4PriorityRaw); i { case 0: return &v.state case 1: @@ -116370,8 +121722,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[391].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4FragmentOffsetCounter); i { + file_otg_proto_msgTypes[422].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4DscpPhbCounter); i { case 0: return &v.state case 1: @@ -116382,8 +121734,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[392].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4FragmentOffsetMetricTag); i { + file_otg_proto_msgTypes[423].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4DscpPhbMetricTag); i { case 0: return &v.state case 1: @@ -116394,8 +121746,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[393].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4FragmentOffset); i { + file_otg_proto_msgTypes[424].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4DscpPhb); i { case 0: return &v.state case 1: @@ -116406,8 +121758,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[394].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4TimeToLiveCounter); i { + file_otg_proto_msgTypes[425].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4DscpEcnCounter); i { case 0: return &v.state case 1: @@ -116418,8 +121770,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[395].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4TimeToLiveMetricTag); i { + file_otg_proto_msgTypes[426].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4DscpEcnMetricTag); i { case 0: return &v.state case 1: @@ -116430,8 +121782,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[396].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4TimeToLive); i { + file_otg_proto_msgTypes[427].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4DscpEcn); i { case 0: return &v.state case 1: @@ -116442,8 +121794,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[397].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4ProtocolCounter); i { + file_otg_proto_msgTypes[428].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4TosPrecedenceCounter); i { case 0: return &v.state case 1: @@ -116454,8 +121806,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[398].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4ProtocolMetricTag); i { + file_otg_proto_msgTypes[429].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4TosPrecedenceMetricTag); i { case 0: return &v.state case 1: @@ -116466,8 +121818,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[399].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4Protocol); i { + file_otg_proto_msgTypes[430].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4TosPrecedence); i { case 0: return &v.state case 1: @@ -116478,8 +121830,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[400].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4HeaderChecksum); i { + file_otg_proto_msgTypes[431].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4TosDelayCounter); i { case 0: return &v.state case 1: @@ -116490,8 +121842,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[401].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4SrcCounter); i { + file_otg_proto_msgTypes[432].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4TosDelayMetricTag); i { case 0: return &v.state case 1: @@ -116502,8 +121854,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[402].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4SrcMetricTag); i { + file_otg_proto_msgTypes[433].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4TosDelay); i { case 0: return &v.state case 1: @@ -116514,8 +121866,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[403].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4Src); i { + file_otg_proto_msgTypes[434].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4TosThroughputCounter); i { case 0: return &v.state case 1: @@ -116526,8 +121878,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[404].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4DstCounter); i { + file_otg_proto_msgTypes[435].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4TosThroughputMetricTag); i { case 0: return &v.state case 1: @@ -116538,8 +121890,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[405].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4DstMetricTag); i { + file_otg_proto_msgTypes[436].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4TosThroughput); i { case 0: return &v.state case 1: @@ -116550,8 +121902,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[406].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4Dst); i { + file_otg_proto_msgTypes[437].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4TosReliabilityCounter); i { case 0: return &v.state case 1: @@ -116562,8 +121914,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[407].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter); i { + file_otg_proto_msgTypes[438].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4TosReliabilityMetricTag); i { case 0: return &v.state case 1: @@ -116574,8 +121926,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[408].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4OptionsCustomTypeCopiedFlag); i { + file_otg_proto_msgTypes[439].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4TosReliability); i { case 0: return &v.state case 1: @@ -116586,8 +121938,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[409].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4OptionsCustomTypeOptionClassCounter); i { + file_otg_proto_msgTypes[440].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4TosMonetaryCounter); i { case 0: return &v.state case 1: @@ -116598,8 +121950,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[410].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4OptionsCustomTypeOptionClass); i { + file_otg_proto_msgTypes[441].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4TosMonetaryMetricTag); i { case 0: return &v.state case 1: @@ -116610,8 +121962,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[411].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4OptionsCustomTypeOptionNumberCounter); i { + file_otg_proto_msgTypes[442].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4TosMonetary); i { case 0: return &v.state case 1: @@ -116622,8 +121974,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[412].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4OptionsCustomTypeOptionNumber); i { + file_otg_proto_msgTypes[443].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4TosUnusedCounter); i { case 0: return &v.state case 1: @@ -116634,8 +121986,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[413].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4PriorityRawCounter); i { + file_otg_proto_msgTypes[444].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4TosUnusedMetricTag); i { case 0: return &v.state case 1: @@ -116646,8 +121998,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[414].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4PriorityRawMetricTag); i { + file_otg_proto_msgTypes[445].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv4TosUnused); i { case 0: return &v.state case 1: @@ -116658,8 +122010,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[415].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4PriorityRaw); i { + file_otg_proto_msgTypes[446].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv6VersionCounter); i { case 0: return &v.state case 1: @@ -116670,8 +122022,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[416].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4DscpPhbCounter); i { + file_otg_proto_msgTypes[447].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv6VersionMetricTag); i { case 0: return &v.state case 1: @@ -116682,8 +122034,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[417].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4DscpPhbMetricTag); i { + file_otg_proto_msgTypes[448].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv6Version); i { case 0: return &v.state case 1: @@ -116694,8 +122046,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[418].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4DscpPhb); i { + file_otg_proto_msgTypes[449].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv6TrafficClassCounter); i { case 0: return &v.state case 1: @@ -116706,8 +122058,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[419].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4DscpEcnCounter); i { + file_otg_proto_msgTypes[450].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv6TrafficClassMetricTag); i { case 0: return &v.state case 1: @@ -116718,8 +122070,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[420].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4DscpEcnMetricTag); i { + file_otg_proto_msgTypes[451].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv6TrafficClass); i { case 0: return &v.state case 1: @@ -116730,8 +122082,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[421].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4DscpEcn); i { + file_otg_proto_msgTypes[452].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv6FlowLabelCounter); i { case 0: return &v.state case 1: @@ -116742,8 +122094,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[422].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4TosPrecedenceCounter); i { + file_otg_proto_msgTypes[453].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv6FlowLabelMetricTag); i { case 0: return &v.state case 1: @@ -116754,8 +122106,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[423].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4TosPrecedenceMetricTag); i { + file_otg_proto_msgTypes[454].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv6FlowLabel); i { case 0: return &v.state case 1: @@ -116766,8 +122118,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[424].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4TosPrecedence); i { + file_otg_proto_msgTypes[455].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv6PayloadLengthCounter); i { case 0: return &v.state case 1: @@ -116778,8 +122130,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[425].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4TosDelayCounter); i { + file_otg_proto_msgTypes[456].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv6PayloadLengthMetricTag); i { case 0: return &v.state case 1: @@ -116790,8 +122142,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[426].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4TosDelayMetricTag); i { + file_otg_proto_msgTypes[457].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv6PayloadLength); i { case 0: return &v.state case 1: @@ -116802,8 +122154,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[427].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4TosDelay); i { + file_otg_proto_msgTypes[458].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv6NextHeaderCounter); i { case 0: return &v.state case 1: @@ -116814,8 +122166,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[428].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4TosThroughputCounter); i { + file_otg_proto_msgTypes[459].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv6NextHeaderMetricTag); i { case 0: return &v.state case 1: @@ -116826,8 +122178,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[429].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4TosThroughputMetricTag); i { + file_otg_proto_msgTypes[460].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv6NextHeader); i { case 0: return &v.state case 1: @@ -116838,8 +122190,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[430].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4TosThroughput); i { + file_otg_proto_msgTypes[461].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv6HopLimitCounter); i { case 0: return &v.state case 1: @@ -116850,8 +122202,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[431].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4TosReliabilityCounter); i { + file_otg_proto_msgTypes[462].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv6HopLimitMetricTag); i { case 0: return &v.state case 1: @@ -116862,8 +122214,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[432].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4TosReliabilityMetricTag); i { + file_otg_proto_msgTypes[463].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv6HopLimit); i { case 0: return &v.state case 1: @@ -116874,8 +122226,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[433].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4TosReliability); i { + file_otg_proto_msgTypes[464].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv6SrcCounter); i { case 0: return &v.state case 1: @@ -116886,8 +122238,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[434].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4TosMonetaryCounter); i { + file_otg_proto_msgTypes[465].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv6SrcMetricTag); i { case 0: return &v.state case 1: @@ -116898,8 +122250,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[435].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4TosMonetaryMetricTag); i { + file_otg_proto_msgTypes[466].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv6Src); i { case 0: return &v.state case 1: @@ -116910,8 +122262,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[436].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4TosMonetary); i { + file_otg_proto_msgTypes[467].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv6DstCounter); i { case 0: return &v.state case 1: @@ -116922,8 +122274,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[437].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4TosUnusedCounter); i { + file_otg_proto_msgTypes[468].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv6DstMetricTag); i { case 0: return &v.state case 1: @@ -116934,8 +122286,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[438].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4TosUnusedMetricTag); i { + file_otg_proto_msgTypes[469].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIpv6Dst); i { case 0: return &v.state case 1: @@ -116946,8 +122298,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[439].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv4TosUnused); i { + file_otg_proto_msgTypes[470].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPfcPauseDstCounter); i { case 0: return &v.state case 1: @@ -116958,8 +122310,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[440].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv6VersionCounter); i { + file_otg_proto_msgTypes[471].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPfcPauseDstMetricTag); i { case 0: return &v.state case 1: @@ -116970,8 +122322,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[441].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv6VersionMetricTag); i { + file_otg_proto_msgTypes[472].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPfcPauseDst); i { case 0: return &v.state case 1: @@ -116982,8 +122334,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[442].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv6Version); i { + file_otg_proto_msgTypes[473].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPfcPauseSrcCounter); i { case 0: return &v.state case 1: @@ -116994,8 +122346,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[443].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv6TrafficClassCounter); i { + file_otg_proto_msgTypes[474].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPfcPauseSrcMetricTag); i { case 0: return &v.state case 1: @@ -117006,8 +122358,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[444].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv6TrafficClassMetricTag); i { + file_otg_proto_msgTypes[475].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPfcPauseSrc); i { case 0: return &v.state case 1: @@ -117018,8 +122370,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[445].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv6TrafficClass); i { + file_otg_proto_msgTypes[476].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPfcPauseEtherTypeCounter); i { case 0: return &v.state case 1: @@ -117030,8 +122382,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[446].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv6FlowLabelCounter); i { + file_otg_proto_msgTypes[477].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPfcPauseEtherTypeMetricTag); i { case 0: return &v.state case 1: @@ -117042,8 +122394,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[447].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv6FlowLabelMetricTag); i { + file_otg_proto_msgTypes[478].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPfcPauseEtherType); i { case 0: return &v.state case 1: @@ -117054,8 +122406,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[448].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv6FlowLabel); i { + file_otg_proto_msgTypes[479].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPfcPauseControlOpCodeCounter); i { case 0: return &v.state case 1: @@ -117066,8 +122418,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[449].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv6PayloadLengthCounter); i { + file_otg_proto_msgTypes[480].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPfcPauseControlOpCodeMetricTag); i { case 0: return &v.state case 1: @@ -117078,8 +122430,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[450].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv6PayloadLengthMetricTag); i { + file_otg_proto_msgTypes[481].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPfcPauseControlOpCode); i { case 0: return &v.state case 1: @@ -117090,8 +122442,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[451].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv6PayloadLength); i { + file_otg_proto_msgTypes[482].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPfcPauseClassEnableVectorCounter); i { case 0: return &v.state case 1: @@ -117102,8 +122454,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[452].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv6NextHeaderCounter); i { + file_otg_proto_msgTypes[483].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPfcPauseClassEnableVectorMetricTag); i { case 0: return &v.state case 1: @@ -117114,8 +122466,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[453].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv6NextHeaderMetricTag); i { + file_otg_proto_msgTypes[484].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPfcPauseClassEnableVector); i { case 0: return &v.state case 1: @@ -117126,8 +122478,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[454].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv6NextHeader); i { + file_otg_proto_msgTypes[485].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPfcPausePauseClass0Counter); i { case 0: return &v.state case 1: @@ -117138,8 +122490,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[455].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv6HopLimitCounter); i { + file_otg_proto_msgTypes[486].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPfcPausePauseClass0MetricTag); i { case 0: return &v.state case 1: @@ -117150,8 +122502,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[456].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv6HopLimitMetricTag); i { + file_otg_proto_msgTypes[487].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPfcPausePauseClass0); i { case 0: return &v.state case 1: @@ -117162,8 +122514,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[457].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv6HopLimit); i { + file_otg_proto_msgTypes[488].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPfcPausePauseClass1Counter); i { case 0: return &v.state case 1: @@ -117174,8 +122526,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[458].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv6SrcCounter); i { + file_otg_proto_msgTypes[489].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPfcPausePauseClass1MetricTag); i { case 0: return &v.state case 1: @@ -117186,8 +122538,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[459].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv6SrcMetricTag); i { + file_otg_proto_msgTypes[490].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPfcPausePauseClass1); i { case 0: return &v.state case 1: @@ -117198,8 +122550,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[460].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv6Src); i { + file_otg_proto_msgTypes[491].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPfcPausePauseClass2Counter); i { case 0: return &v.state case 1: @@ -117210,8 +122562,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[461].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv6DstCounter); i { + file_otg_proto_msgTypes[492].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPfcPausePauseClass2MetricTag); i { case 0: return &v.state case 1: @@ -117222,8 +122574,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[462].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv6DstMetricTag); i { + file_otg_proto_msgTypes[493].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPfcPausePauseClass2); i { case 0: return &v.state case 1: @@ -117234,8 +122586,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[463].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIpv6Dst); i { + file_otg_proto_msgTypes[494].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPfcPausePauseClass3Counter); i { case 0: return &v.state case 1: @@ -117246,8 +122598,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[464].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPfcPauseDstCounter); i { + file_otg_proto_msgTypes[495].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPfcPausePauseClass3MetricTag); i { case 0: return &v.state case 1: @@ -117258,8 +122610,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[465].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPfcPauseDstMetricTag); i { + file_otg_proto_msgTypes[496].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPfcPausePauseClass3); i { case 0: return &v.state case 1: @@ -117270,8 +122622,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[466].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPfcPauseDst); i { + file_otg_proto_msgTypes[497].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPfcPausePauseClass4Counter); i { case 0: return &v.state case 1: @@ -117282,8 +122634,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[467].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPfcPauseSrcCounter); i { + file_otg_proto_msgTypes[498].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPfcPausePauseClass4MetricTag); i { case 0: return &v.state case 1: @@ -117294,8 +122646,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[468].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPfcPauseSrcMetricTag); i { + file_otg_proto_msgTypes[499].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPfcPausePauseClass4); i { case 0: return &v.state case 1: @@ -117306,8 +122658,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[469].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPfcPauseSrc); i { + file_otg_proto_msgTypes[500].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPfcPausePauseClass5Counter); i { case 0: return &v.state case 1: @@ -117318,8 +122670,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[470].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPfcPauseEtherTypeCounter); i { + file_otg_proto_msgTypes[501].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPfcPausePauseClass5MetricTag); i { case 0: return &v.state case 1: @@ -117330,8 +122682,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[471].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPfcPauseEtherTypeMetricTag); i { + file_otg_proto_msgTypes[502].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPfcPausePauseClass5); i { case 0: return &v.state case 1: @@ -117342,8 +122694,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[472].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPfcPauseEtherType); i { + file_otg_proto_msgTypes[503].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPfcPausePauseClass6Counter); i { case 0: return &v.state case 1: @@ -117354,8 +122706,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[473].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPfcPauseControlOpCodeCounter); i { + file_otg_proto_msgTypes[504].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPfcPausePauseClass6MetricTag); i { case 0: return &v.state case 1: @@ -117366,8 +122718,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[474].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPfcPauseControlOpCodeMetricTag); i { + file_otg_proto_msgTypes[505].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPfcPausePauseClass6); i { case 0: return &v.state case 1: @@ -117378,8 +122730,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[475].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPfcPauseControlOpCode); i { + file_otg_proto_msgTypes[506].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPfcPausePauseClass7Counter); i { case 0: return &v.state case 1: @@ -117390,8 +122742,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[476].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPfcPauseClassEnableVectorCounter); i { + file_otg_proto_msgTypes[507].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPfcPausePauseClass7MetricTag); i { case 0: return &v.state case 1: @@ -117402,8 +122754,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[477].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPfcPauseClassEnableVectorMetricTag); i { + file_otg_proto_msgTypes[508].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPfcPausePauseClass7); i { case 0: return &v.state case 1: @@ -117414,8 +122766,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[478].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPfcPauseClassEnableVector); i { + file_otg_proto_msgTypes[509].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowEthernetPauseDstCounter); i { case 0: return &v.state case 1: @@ -117426,8 +122778,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[479].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPfcPausePauseClass0Counter); i { + file_otg_proto_msgTypes[510].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowEthernetPauseDstMetricTag); i { case 0: return &v.state case 1: @@ -117438,8 +122790,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[480].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPfcPausePauseClass0MetricTag); i { + file_otg_proto_msgTypes[511].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowEthernetPauseDst); i { case 0: return &v.state case 1: @@ -117450,8 +122802,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[481].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPfcPausePauseClass0); i { + file_otg_proto_msgTypes[512].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowEthernetPauseSrcCounter); i { case 0: return &v.state case 1: @@ -117462,8 +122814,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[482].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPfcPausePauseClass1Counter); i { + file_otg_proto_msgTypes[513].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowEthernetPauseSrcMetricTag); i { case 0: return &v.state case 1: @@ -117474,8 +122826,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[483].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPfcPausePauseClass1MetricTag); i { + file_otg_proto_msgTypes[514].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowEthernetPauseSrc); i { case 0: return &v.state case 1: @@ -117486,8 +122838,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[484].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPfcPausePauseClass1); i { + file_otg_proto_msgTypes[515].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowEthernetPauseEtherTypeCounter); i { case 0: return &v.state case 1: @@ -117498,8 +122850,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[485].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPfcPausePauseClass2Counter); i { + file_otg_proto_msgTypes[516].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowEthernetPauseEtherTypeMetricTag); i { case 0: return &v.state case 1: @@ -117510,8 +122862,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[486].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPfcPausePauseClass2MetricTag); i { + file_otg_proto_msgTypes[517].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowEthernetPauseEtherType); i { case 0: return &v.state case 1: @@ -117522,8 +122874,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[487].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPfcPausePauseClass2); i { + file_otg_proto_msgTypes[518].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowEthernetPauseControlOpCodeCounter); i { case 0: return &v.state case 1: @@ -117534,8 +122886,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[488].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPfcPausePauseClass3Counter); i { + file_otg_proto_msgTypes[519].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowEthernetPauseControlOpCodeMetricTag); i { case 0: return &v.state case 1: @@ -117546,8 +122898,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[489].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPfcPausePauseClass3MetricTag); i { + file_otg_proto_msgTypes[520].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowEthernetPauseControlOpCode); i { case 0: return &v.state case 1: @@ -117558,8 +122910,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[490].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPfcPausePauseClass3); i { + file_otg_proto_msgTypes[521].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowEthernetPauseTimeCounter); i { case 0: return &v.state case 1: @@ -117570,8 +122922,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[491].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPfcPausePauseClass4Counter); i { + file_otg_proto_msgTypes[522].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowEthernetPauseTimeMetricTag); i { case 0: return &v.state case 1: @@ -117582,8 +122934,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[492].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPfcPausePauseClass4MetricTag); i { + file_otg_proto_msgTypes[523].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowEthernetPauseTime); i { case 0: return &v.state case 1: @@ -117594,8 +122946,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[493].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPfcPausePauseClass4); i { + file_otg_proto_msgTypes[524].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpSrcPortCounter); i { case 0: return &v.state case 1: @@ -117606,8 +122958,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[494].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPfcPausePauseClass5Counter); i { + file_otg_proto_msgTypes[525].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpSrcPortMetricTag); i { case 0: return &v.state case 1: @@ -117618,8 +122970,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[495].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPfcPausePauseClass5MetricTag); i { + file_otg_proto_msgTypes[526].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpSrcPort); i { case 0: return &v.state case 1: @@ -117630,8 +122982,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[496].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPfcPausePauseClass5); i { + file_otg_proto_msgTypes[527].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpDstPortCounter); i { case 0: return &v.state case 1: @@ -117642,8 +122994,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[497].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPfcPausePauseClass6Counter); i { + file_otg_proto_msgTypes[528].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpDstPortMetricTag); i { case 0: return &v.state case 1: @@ -117654,8 +123006,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[498].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPfcPausePauseClass6MetricTag); i { + file_otg_proto_msgTypes[529].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpDstPort); i { case 0: return &v.state case 1: @@ -117666,8 +123018,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[499].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPfcPausePauseClass6); i { + file_otg_proto_msgTypes[530].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpSeqNumCounter); i { case 0: return &v.state case 1: @@ -117678,8 +123030,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[500].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPfcPausePauseClass7Counter); i { + file_otg_proto_msgTypes[531].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpSeqNumMetricTag); i { case 0: return &v.state case 1: @@ -117690,8 +123042,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[501].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPfcPausePauseClass7MetricTag); i { + file_otg_proto_msgTypes[532].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpSeqNum); i { case 0: return &v.state case 1: @@ -117702,8 +123054,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[502].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPfcPausePauseClass7); i { + file_otg_proto_msgTypes[533].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpAckNumCounter); i { case 0: return &v.state case 1: @@ -117714,8 +123066,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[503].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowEthernetPauseDstCounter); i { + file_otg_proto_msgTypes[534].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpAckNumMetricTag); i { case 0: return &v.state case 1: @@ -117726,8 +123078,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[504].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowEthernetPauseDstMetricTag); i { + file_otg_proto_msgTypes[535].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpAckNum); i { case 0: return &v.state case 1: @@ -117738,8 +123090,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[505].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowEthernetPauseDst); i { + file_otg_proto_msgTypes[536].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpDataOffsetCounter); i { case 0: return &v.state case 1: @@ -117750,8 +123102,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[506].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowEthernetPauseSrcCounter); i { + file_otg_proto_msgTypes[537].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpDataOffsetMetricTag); i { case 0: return &v.state case 1: @@ -117762,8 +123114,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[507].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowEthernetPauseSrcMetricTag); i { + file_otg_proto_msgTypes[538].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpDataOffset); i { case 0: return &v.state case 1: @@ -117774,8 +123126,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[508].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowEthernetPauseSrc); i { + file_otg_proto_msgTypes[539].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpEcnNsCounter); i { case 0: return &v.state case 1: @@ -117786,8 +123138,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[509].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowEthernetPauseEtherTypeCounter); i { + file_otg_proto_msgTypes[540].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpEcnNsMetricTag); i { case 0: return &v.state case 1: @@ -117798,8 +123150,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[510].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowEthernetPauseEtherTypeMetricTag); i { + file_otg_proto_msgTypes[541].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpEcnNs); i { case 0: return &v.state case 1: @@ -117810,8 +123162,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[511].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowEthernetPauseEtherType); i { + file_otg_proto_msgTypes[542].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpEcnCwrCounter); i { case 0: return &v.state case 1: @@ -117822,8 +123174,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[512].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowEthernetPauseControlOpCodeCounter); i { + file_otg_proto_msgTypes[543].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpEcnCwrMetricTag); i { case 0: return &v.state case 1: @@ -117834,8 +123186,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[513].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowEthernetPauseControlOpCodeMetricTag); i { + file_otg_proto_msgTypes[544].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpEcnCwr); i { case 0: return &v.state case 1: @@ -117846,8 +123198,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[514].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowEthernetPauseControlOpCode); i { + file_otg_proto_msgTypes[545].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpEcnEchoCounter); i { case 0: return &v.state case 1: @@ -117858,8 +123210,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[515].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowEthernetPauseTimeCounter); i { + file_otg_proto_msgTypes[546].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpEcnEchoMetricTag); i { case 0: return &v.state case 1: @@ -117870,8 +123222,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[516].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowEthernetPauseTimeMetricTag); i { + file_otg_proto_msgTypes[547].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpEcnEcho); i { case 0: return &v.state case 1: @@ -117882,8 +123234,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[517].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowEthernetPauseTime); i { + file_otg_proto_msgTypes[548].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpCtlUrgCounter); i { case 0: return &v.state case 1: @@ -117894,8 +123246,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[518].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpSrcPortCounter); i { + file_otg_proto_msgTypes[549].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpCtlUrgMetricTag); i { case 0: return &v.state case 1: @@ -117906,8 +123258,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[519].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpSrcPortMetricTag); i { + file_otg_proto_msgTypes[550].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpCtlUrg); i { case 0: return &v.state case 1: @@ -117918,8 +123270,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[520].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpSrcPort); i { + file_otg_proto_msgTypes[551].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpCtlAckCounter); i { case 0: return &v.state case 1: @@ -117930,8 +123282,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[521].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpDstPortCounter); i { + file_otg_proto_msgTypes[552].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpCtlAckMetricTag); i { case 0: return &v.state case 1: @@ -117942,8 +123294,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[522].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpDstPortMetricTag); i { + file_otg_proto_msgTypes[553].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpCtlAck); i { case 0: return &v.state case 1: @@ -117954,8 +123306,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[523].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpDstPort); i { + file_otg_proto_msgTypes[554].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpCtlPshCounter); i { case 0: return &v.state case 1: @@ -117966,8 +123318,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[524].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpSeqNumCounter); i { + file_otg_proto_msgTypes[555].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpCtlPshMetricTag); i { case 0: return &v.state case 1: @@ -117978,8 +123330,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[525].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpSeqNumMetricTag); i { + file_otg_proto_msgTypes[556].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpCtlPsh); i { case 0: return &v.state case 1: @@ -117990,8 +123342,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[526].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpSeqNum); i { + file_otg_proto_msgTypes[557].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpCtlRstCounter); i { case 0: return &v.state case 1: @@ -118002,8 +123354,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[527].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpAckNumCounter); i { + file_otg_proto_msgTypes[558].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpCtlRstMetricTag); i { case 0: return &v.state case 1: @@ -118014,8 +123366,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[528].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpAckNumMetricTag); i { + file_otg_proto_msgTypes[559].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpCtlRst); i { case 0: return &v.state case 1: @@ -118026,8 +123378,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[529].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpAckNum); i { + file_otg_proto_msgTypes[560].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpCtlSynCounter); i { case 0: return &v.state case 1: @@ -118038,8 +123390,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[530].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpDataOffsetCounter); i { + file_otg_proto_msgTypes[561].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpCtlSynMetricTag); i { case 0: return &v.state case 1: @@ -118050,8 +123402,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[531].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpDataOffsetMetricTag); i { + file_otg_proto_msgTypes[562].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpCtlSyn); i { case 0: return &v.state case 1: @@ -118062,8 +123414,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[532].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpDataOffset); i { + file_otg_proto_msgTypes[563].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpCtlFinCounter); i { case 0: return &v.state case 1: @@ -118074,8 +123426,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[533].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpEcnNsCounter); i { + file_otg_proto_msgTypes[564].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpCtlFinMetricTag); i { case 0: return &v.state case 1: @@ -118086,8 +123438,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[534].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpEcnNsMetricTag); i { + file_otg_proto_msgTypes[565].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpCtlFin); i { case 0: return &v.state case 1: @@ -118098,8 +123450,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[535].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpEcnNs); i { + file_otg_proto_msgTypes[566].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpWindowCounter); i { case 0: return &v.state case 1: @@ -118110,8 +123462,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[536].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpEcnCwrCounter); i { + file_otg_proto_msgTypes[567].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpWindowMetricTag); i { case 0: return &v.state case 1: @@ -118122,8 +123474,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[537].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpEcnCwrMetricTag); i { + file_otg_proto_msgTypes[568].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowTcpWindow); i { case 0: return &v.state case 1: @@ -118134,8 +123486,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[538].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpEcnCwr); i { + file_otg_proto_msgTypes[569].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowUdpSrcPortCounter); i { case 0: return &v.state case 1: @@ -118146,8 +123498,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[539].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpEcnEchoCounter); i { + file_otg_proto_msgTypes[570].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowUdpSrcPortMetricTag); i { case 0: return &v.state case 1: @@ -118158,8 +123510,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[540].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpEcnEchoMetricTag); i { + file_otg_proto_msgTypes[571].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowUdpSrcPort); i { case 0: return &v.state case 1: @@ -118170,8 +123522,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[541].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpEcnEcho); i { + file_otg_proto_msgTypes[572].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowUdpDstPortCounter); i { case 0: return &v.state case 1: @@ -118182,8 +123534,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[542].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpCtlUrgCounter); i { + file_otg_proto_msgTypes[573].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowUdpDstPortMetricTag); i { case 0: return &v.state case 1: @@ -118194,8 +123546,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[543].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpCtlUrgMetricTag); i { + file_otg_proto_msgTypes[574].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowUdpDstPort); i { case 0: return &v.state case 1: @@ -118206,8 +123558,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[544].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpCtlUrg); i { + file_otg_proto_msgTypes[575].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowUdpLengthCounter); i { case 0: return &v.state case 1: @@ -118218,8 +123570,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[545].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpCtlAckCounter); i { + file_otg_proto_msgTypes[576].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowUdpLengthMetricTag); i { case 0: return &v.state case 1: @@ -118230,8 +123582,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[546].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpCtlAckMetricTag); i { + file_otg_proto_msgTypes[577].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowUdpLength); i { case 0: return &v.state case 1: @@ -118242,8 +123594,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[547].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpCtlAck); i { + file_otg_proto_msgTypes[578].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowUdpChecksum); i { case 0: return &v.state case 1: @@ -118254,8 +123606,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[548].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpCtlPshCounter); i { + file_otg_proto_msgTypes[579].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGreChecksumPresentCounter); i { case 0: return &v.state case 1: @@ -118266,8 +123618,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[549].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpCtlPshMetricTag); i { + file_otg_proto_msgTypes[580].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGreChecksumPresentMetricTag); i { case 0: return &v.state case 1: @@ -118278,8 +123630,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[550].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpCtlPsh); i { + file_otg_proto_msgTypes[581].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGreChecksumPresent); i { case 0: return &v.state case 1: @@ -118290,8 +123642,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[551].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpCtlRstCounter); i { + file_otg_proto_msgTypes[582].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGreReserved0Counter); i { case 0: return &v.state case 1: @@ -118302,8 +123654,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[552].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpCtlRstMetricTag); i { + file_otg_proto_msgTypes[583].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGreReserved0MetricTag); i { case 0: return &v.state case 1: @@ -118314,8 +123666,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[553].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpCtlRst); i { + file_otg_proto_msgTypes[584].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGreReserved0); i { case 0: return &v.state case 1: @@ -118326,8 +123678,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[554].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpCtlSynCounter); i { + file_otg_proto_msgTypes[585].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGreVersionCounter); i { case 0: return &v.state case 1: @@ -118338,8 +123690,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[555].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpCtlSynMetricTag); i { + file_otg_proto_msgTypes[586].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGreVersionMetricTag); i { case 0: return &v.state case 1: @@ -118350,8 +123702,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[556].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpCtlSyn); i { + file_otg_proto_msgTypes[587].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGreVersion); i { case 0: return &v.state case 1: @@ -118362,8 +123714,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[557].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpCtlFinCounter); i { + file_otg_proto_msgTypes[588].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGreProtocolCounter); i { case 0: return &v.state case 1: @@ -118374,8 +123726,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[558].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpCtlFinMetricTag); i { + file_otg_proto_msgTypes[589].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGreProtocolMetricTag); i { case 0: return &v.state case 1: @@ -118386,8 +123738,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[559].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpCtlFin); i { + file_otg_proto_msgTypes[590].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGreProtocol); i { case 0: return &v.state case 1: @@ -118398,8 +123750,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[560].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpWindowCounter); i { + file_otg_proto_msgTypes[591].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGreChecksum); i { case 0: return &v.state case 1: @@ -118410,8 +123762,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[561].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpWindowMetricTag); i { + file_otg_proto_msgTypes[592].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGreReserved1Counter); i { case 0: return &v.state case 1: @@ -118422,8 +123774,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[562].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowTcpWindow); i { + file_otg_proto_msgTypes[593].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGreReserved1MetricTag); i { case 0: return &v.state case 1: @@ -118434,8 +123786,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[563].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowUdpSrcPortCounter); i { + file_otg_proto_msgTypes[594].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGreReserved1); i { case 0: return &v.state case 1: @@ -118446,8 +123798,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[564].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowUdpSrcPortMetricTag); i { + file_otg_proto_msgTypes[595].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv1VersionCounter); i { case 0: return &v.state case 1: @@ -118458,8 +123810,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[565].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowUdpSrcPort); i { + file_otg_proto_msgTypes[596].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv1VersionMetricTag); i { case 0: return &v.state case 1: @@ -118470,8 +123822,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[566].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowUdpDstPortCounter); i { + file_otg_proto_msgTypes[597].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv1Version); i { case 0: return &v.state case 1: @@ -118482,8 +123834,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[567].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowUdpDstPortMetricTag); i { + file_otg_proto_msgTypes[598].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv1ProtocolTypeCounter); i { case 0: return &v.state case 1: @@ -118494,8 +123846,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[568].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowUdpDstPort); i { + file_otg_proto_msgTypes[599].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv1ProtocolTypeMetricTag); i { case 0: return &v.state case 1: @@ -118506,8 +123858,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[569].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowUdpLengthCounter); i { + file_otg_proto_msgTypes[600].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv1ProtocolType); i { case 0: return &v.state case 1: @@ -118518,8 +123870,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[570].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowUdpLengthMetricTag); i { + file_otg_proto_msgTypes[601].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv1ReservedCounter); i { case 0: return &v.state case 1: @@ -118530,8 +123882,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[571].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowUdpLength); i { + file_otg_proto_msgTypes[602].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv1ReservedMetricTag); i { case 0: return &v.state case 1: @@ -118542,8 +123894,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[572].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowUdpChecksum); i { + file_otg_proto_msgTypes[603].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv1Reserved); i { case 0: return &v.state case 1: @@ -118554,8 +123906,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[573].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGreChecksumPresentCounter); i { + file_otg_proto_msgTypes[604].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv1EFlagCounter); i { case 0: return &v.state case 1: @@ -118566,8 +123918,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[574].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGreChecksumPresentMetricTag); i { + file_otg_proto_msgTypes[605].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv1EFlagMetricTag); i { case 0: return &v.state case 1: @@ -118578,8 +123930,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[575].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGreChecksumPresent); i { + file_otg_proto_msgTypes[606].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv1EFlag); i { case 0: return &v.state case 1: @@ -118590,8 +123942,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[576].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGreReserved0Counter); i { + file_otg_proto_msgTypes[607].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv1SFlagCounter); i { case 0: return &v.state case 1: @@ -118602,8 +123954,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[577].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGreReserved0MetricTag); i { + file_otg_proto_msgTypes[608].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv1SFlagMetricTag); i { case 0: return &v.state case 1: @@ -118614,8 +123966,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[578].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGreReserved0); i { + file_otg_proto_msgTypes[609].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv1SFlag); i { case 0: return &v.state case 1: @@ -118626,8 +123978,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[579].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGreVersionCounter); i { + file_otg_proto_msgTypes[610].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv1PnFlagCounter); i { case 0: return &v.state case 1: @@ -118638,8 +123990,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[580].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGreVersionMetricTag); i { + file_otg_proto_msgTypes[611].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv1PnFlagMetricTag); i { case 0: return &v.state case 1: @@ -118650,8 +124002,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[581].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGreVersion); i { + file_otg_proto_msgTypes[612].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv1PnFlag); i { case 0: return &v.state case 1: @@ -118662,8 +124014,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[582].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGreProtocolCounter); i { + file_otg_proto_msgTypes[613].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv1MessageTypeCounter); i { case 0: return &v.state case 1: @@ -118674,8 +124026,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[583].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGreProtocolMetricTag); i { + file_otg_proto_msgTypes[614].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv1MessageTypeMetricTag); i { case 0: return &v.state case 1: @@ -118686,8 +124038,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[584].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGreProtocol); i { + file_otg_proto_msgTypes[615].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv1MessageType); i { case 0: return &v.state case 1: @@ -118698,8 +124050,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[585].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGreChecksum); i { + file_otg_proto_msgTypes[616].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv1MessageLengthCounter); i { case 0: return &v.state case 1: @@ -118710,8 +124062,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[586].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGreReserved1Counter); i { + file_otg_proto_msgTypes[617].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv1MessageLengthMetricTag); i { case 0: return &v.state case 1: @@ -118722,8 +124074,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[587].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGreReserved1MetricTag); i { + file_otg_proto_msgTypes[618].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv1MessageLength); i { case 0: return &v.state case 1: @@ -118734,8 +124086,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[588].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGreReserved1); i { + file_otg_proto_msgTypes[619].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv1TeidCounter); i { case 0: return &v.state case 1: @@ -118746,8 +124098,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[589].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv1VersionCounter); i { + file_otg_proto_msgTypes[620].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv1TeidMetricTag); i { case 0: return &v.state case 1: @@ -118758,8 +124110,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[590].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv1VersionMetricTag); i { + file_otg_proto_msgTypes[621].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv1Teid); i { case 0: return &v.state case 1: @@ -118770,8 +124122,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[591].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv1Version); i { + file_otg_proto_msgTypes[622].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv1SquenceNumberCounter); i { case 0: return &v.state case 1: @@ -118782,8 +124134,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[592].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv1ProtocolTypeCounter); i { + file_otg_proto_msgTypes[623].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv1SquenceNumberMetricTag); i { case 0: return &v.state case 1: @@ -118794,8 +124146,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[593].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv1ProtocolTypeMetricTag); i { + file_otg_proto_msgTypes[624].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv1SquenceNumber); i { case 0: return &v.state case 1: @@ -118806,8 +124158,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[594].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv1ProtocolType); i { + file_otg_proto_msgTypes[625].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv1NPduNumberCounter); i { case 0: return &v.state case 1: @@ -118818,8 +124170,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[595].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv1ReservedCounter); i { + file_otg_proto_msgTypes[626].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv1NPduNumberMetricTag); i { case 0: return &v.state case 1: @@ -118830,8 +124182,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[596].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv1ReservedMetricTag); i { + file_otg_proto_msgTypes[627].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv1NPduNumber); i { case 0: return &v.state case 1: @@ -118842,8 +124194,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[597].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv1Reserved); i { + file_otg_proto_msgTypes[628].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv1NextExtensionHeaderTypeCounter); i { case 0: return &v.state case 1: @@ -118854,8 +124206,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[598].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv1EFlagCounter); i { + file_otg_proto_msgTypes[629].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag); i { case 0: return &v.state case 1: @@ -118866,8 +124218,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[599].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv1EFlagMetricTag); i { + file_otg_proto_msgTypes[630].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv1NextExtensionHeaderType); i { case 0: return &v.state case 1: @@ -118878,8 +124230,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[600].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv1EFlag); i { + file_otg_proto_msgTypes[631].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpExtensionExtensionLengthCounter); i { case 0: return &v.state case 1: @@ -118890,8 +124242,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[601].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv1SFlagCounter); i { + file_otg_proto_msgTypes[632].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpExtensionExtensionLengthMetricTag); i { case 0: return &v.state case 1: @@ -118902,8 +124254,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[602].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv1SFlagMetricTag); i { + file_otg_proto_msgTypes[633].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpExtensionExtensionLength); i { case 0: return &v.state case 1: @@ -118914,8 +124266,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[603].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv1SFlag); i { + file_otg_proto_msgTypes[634].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpExtensionContentsCounter); i { case 0: return &v.state case 1: @@ -118926,8 +124278,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[604].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv1PnFlagCounter); i { + file_otg_proto_msgTypes[635].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpExtensionContentsMetricTag); i { case 0: return &v.state case 1: @@ -118938,8 +124290,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[605].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv1PnFlagMetricTag); i { + file_otg_proto_msgTypes[636].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpExtensionContents); i { case 0: return &v.state case 1: @@ -118950,8 +124302,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[606].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv1PnFlag); i { + file_otg_proto_msgTypes[637].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpExtensionNextExtensionHeaderCounter); i { case 0: return &v.state case 1: @@ -118962,8 +124314,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[607].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv1MessageTypeCounter); i { + file_otg_proto_msgTypes[638].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpExtensionNextExtensionHeaderMetricTag); i { case 0: return &v.state case 1: @@ -118974,8 +124326,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[608].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv1MessageTypeMetricTag); i { + file_otg_proto_msgTypes[639].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpExtensionNextExtensionHeader); i { case 0: return &v.state case 1: @@ -118986,8 +124338,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[609].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv1MessageType); i { + file_otg_proto_msgTypes[640].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv2VersionCounter); i { case 0: return &v.state case 1: @@ -118998,8 +124350,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[610].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv1MessageLengthCounter); i { + file_otg_proto_msgTypes[641].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv2VersionMetricTag); i { case 0: return &v.state case 1: @@ -119010,8 +124362,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[611].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv1MessageLengthMetricTag); i { + file_otg_proto_msgTypes[642].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv2Version); i { case 0: return &v.state case 1: @@ -119022,8 +124374,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[612].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv1MessageLength); i { + file_otg_proto_msgTypes[643].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv2PiggybackingFlagCounter); i { case 0: return &v.state case 1: @@ -119034,8 +124386,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[613].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv1TeidCounter); i { + file_otg_proto_msgTypes[644].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv2PiggybackingFlagMetricTag); i { case 0: return &v.state case 1: @@ -119046,8 +124398,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[614].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv1TeidMetricTag); i { + file_otg_proto_msgTypes[645].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv2PiggybackingFlag); i { case 0: return &v.state case 1: @@ -119058,8 +124410,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[615].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv1Teid); i { + file_otg_proto_msgTypes[646].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv2TeidFlagCounter); i { case 0: return &v.state case 1: @@ -119070,8 +124422,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[616].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv1SquenceNumberCounter); i { + file_otg_proto_msgTypes[647].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv2TeidFlagMetricTag); i { case 0: return &v.state case 1: @@ -119082,8 +124434,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[617].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv1SquenceNumberMetricTag); i { + file_otg_proto_msgTypes[648].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv2TeidFlag); i { case 0: return &v.state case 1: @@ -119094,8 +124446,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[618].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv1SquenceNumber); i { + file_otg_proto_msgTypes[649].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv2Spare1Counter); i { case 0: return &v.state case 1: @@ -119106,8 +124458,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[619].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv1NPduNumberCounter); i { + file_otg_proto_msgTypes[650].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv2Spare1MetricTag); i { case 0: return &v.state case 1: @@ -119118,8 +124470,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[620].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv1NPduNumberMetricTag); i { + file_otg_proto_msgTypes[651].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv2Spare1); i { case 0: return &v.state case 1: @@ -119130,8 +124482,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[621].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv1NPduNumber); i { + file_otg_proto_msgTypes[652].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv2MessageTypeCounter); i { case 0: return &v.state case 1: @@ -119142,8 +124494,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[622].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv1NextExtensionHeaderTypeCounter); i { + file_otg_proto_msgTypes[653].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv2MessageTypeMetricTag); i { case 0: return &v.state case 1: @@ -119154,8 +124506,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[623].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag); i { + file_otg_proto_msgTypes[654].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv2MessageType); i { case 0: return &v.state case 1: @@ -119166,8 +124518,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[624].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv1NextExtensionHeaderType); i { + file_otg_proto_msgTypes[655].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv2MessageLengthCounter); i { case 0: return &v.state case 1: @@ -119178,8 +124530,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[625].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpExtensionExtensionLengthCounter); i { + file_otg_proto_msgTypes[656].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv2MessageLengthMetricTag); i { case 0: return &v.state case 1: @@ -119190,8 +124542,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[626].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpExtensionExtensionLengthMetricTag); i { + file_otg_proto_msgTypes[657].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv2MessageLength); i { case 0: return &v.state case 1: @@ -119202,8 +124554,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[627].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpExtensionExtensionLength); i { + file_otg_proto_msgTypes[658].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv2TeidCounter); i { case 0: return &v.state case 1: @@ -119214,8 +124566,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[628].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpExtensionContentsCounter); i { + file_otg_proto_msgTypes[659].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv2TeidMetricTag); i { case 0: return &v.state case 1: @@ -119226,8 +124578,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[629].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpExtensionContentsMetricTag); i { + file_otg_proto_msgTypes[660].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv2Teid); i { case 0: return &v.state case 1: @@ -119238,8 +124590,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[630].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpExtensionContents); i { + file_otg_proto_msgTypes[661].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv2SequenceNumberCounter); i { case 0: return &v.state case 1: @@ -119250,8 +124602,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[631].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpExtensionNextExtensionHeaderCounter); i { + file_otg_proto_msgTypes[662].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv2SequenceNumberMetricTag); i { case 0: return &v.state case 1: @@ -119262,8 +124614,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[632].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpExtensionNextExtensionHeaderMetricTag); i { + file_otg_proto_msgTypes[663].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv2SequenceNumber); i { case 0: return &v.state case 1: @@ -119274,8 +124626,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[633].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpExtensionNextExtensionHeader); i { + file_otg_proto_msgTypes[664].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv2Spare2Counter); i { case 0: return &v.state case 1: @@ -119286,8 +124638,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[634].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv2VersionCounter); i { + file_otg_proto_msgTypes[665].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv2Spare2MetricTag); i { case 0: return &v.state case 1: @@ -119298,8 +124650,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[635].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv2VersionMetricTag); i { + file_otg_proto_msgTypes[666].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowGtpv2Spare2); i { case 0: return &v.state case 1: @@ -119310,8 +124662,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[636].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv2Version); i { + file_otg_proto_msgTypes[667].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowArpHardwareTypeCounter); i { case 0: return &v.state case 1: @@ -119322,8 +124674,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[637].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv2PiggybackingFlagCounter); i { + file_otg_proto_msgTypes[668].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowArpHardwareTypeMetricTag); i { case 0: return &v.state case 1: @@ -119334,8 +124686,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[638].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv2PiggybackingFlagMetricTag); i { + file_otg_proto_msgTypes[669].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowArpHardwareType); i { case 0: return &v.state case 1: @@ -119346,8 +124698,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[639].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv2PiggybackingFlag); i { + file_otg_proto_msgTypes[670].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowArpProtocolTypeCounter); i { case 0: return &v.state case 1: @@ -119358,8 +124710,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[640].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv2TeidFlagCounter); i { + file_otg_proto_msgTypes[671].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowArpProtocolTypeMetricTag); i { case 0: return &v.state case 1: @@ -119370,8 +124722,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[641].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv2TeidFlagMetricTag); i { + file_otg_proto_msgTypes[672].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowArpProtocolType); i { case 0: return &v.state case 1: @@ -119382,8 +124734,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[642].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv2TeidFlag); i { + file_otg_proto_msgTypes[673].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowArpHardwareLengthCounter); i { case 0: return &v.state case 1: @@ -119394,8 +124746,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[643].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv2Spare1Counter); i { + file_otg_proto_msgTypes[674].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowArpHardwareLengthMetricTag); i { case 0: return &v.state case 1: @@ -119406,8 +124758,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[644].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv2Spare1MetricTag); i { + file_otg_proto_msgTypes[675].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowArpHardwareLength); i { case 0: return &v.state case 1: @@ -119418,8 +124770,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[645].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv2Spare1); i { + file_otg_proto_msgTypes[676].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowArpProtocolLengthCounter); i { case 0: return &v.state case 1: @@ -119430,8 +124782,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[646].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv2MessageTypeCounter); i { + file_otg_proto_msgTypes[677].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowArpProtocolLengthMetricTag); i { case 0: return &v.state case 1: @@ -119442,8 +124794,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[647].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv2MessageTypeMetricTag); i { + file_otg_proto_msgTypes[678].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowArpProtocolLength); i { case 0: return &v.state case 1: @@ -119454,8 +124806,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[648].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv2MessageType); i { + file_otg_proto_msgTypes[679].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowArpOperationCounter); i { case 0: return &v.state case 1: @@ -119466,8 +124818,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[649].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv2MessageLengthCounter); i { + file_otg_proto_msgTypes[680].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowArpOperationMetricTag); i { case 0: return &v.state case 1: @@ -119478,8 +124830,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[650].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv2MessageLengthMetricTag); i { + file_otg_proto_msgTypes[681].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowArpOperation); i { case 0: return &v.state case 1: @@ -119490,8 +124842,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[651].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv2MessageLength); i { + file_otg_proto_msgTypes[682].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowArpSenderHardwareAddrCounter); i { case 0: return &v.state case 1: @@ -119502,8 +124854,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[652].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv2TeidCounter); i { + file_otg_proto_msgTypes[683].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowArpSenderHardwareAddrMetricTag); i { case 0: return &v.state case 1: @@ -119514,8 +124866,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[653].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv2TeidMetricTag); i { + file_otg_proto_msgTypes[684].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowArpSenderHardwareAddr); i { case 0: return &v.state case 1: @@ -119526,8 +124878,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[654].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv2Teid); i { + file_otg_proto_msgTypes[685].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowArpSenderProtocolAddrCounter); i { case 0: return &v.state case 1: @@ -119538,8 +124890,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[655].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv2SequenceNumberCounter); i { + file_otg_proto_msgTypes[686].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowArpSenderProtocolAddrMetricTag); i { case 0: return &v.state case 1: @@ -119550,8 +124902,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[656].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv2SequenceNumberMetricTag); i { + file_otg_proto_msgTypes[687].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowArpSenderProtocolAddr); i { case 0: return &v.state case 1: @@ -119562,8 +124914,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[657].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv2SequenceNumber); i { + file_otg_proto_msgTypes[688].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowArpTargetHardwareAddrCounter); i { case 0: return &v.state case 1: @@ -119574,8 +124926,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[658].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv2Spare2Counter); i { + file_otg_proto_msgTypes[689].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowArpTargetHardwareAddrMetricTag); i { case 0: return &v.state case 1: @@ -119586,8 +124938,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[659].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv2Spare2MetricTag); i { + file_otg_proto_msgTypes[690].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowArpTargetHardwareAddr); i { case 0: return &v.state case 1: @@ -119598,8 +124950,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[660].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowGtpv2Spare2); i { + file_otg_proto_msgTypes[691].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowArpTargetProtocolAddrCounter); i { case 0: return &v.state case 1: @@ -119610,8 +124962,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[661].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowArpHardwareTypeCounter); i { + file_otg_proto_msgTypes[692].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowArpTargetProtocolAddrMetricTag); i { case 0: return &v.state case 1: @@ -119622,8 +124974,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[662].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowArpHardwareTypeMetricTag); i { + file_otg_proto_msgTypes[693].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowArpTargetProtocolAddr); i { case 0: return &v.state case 1: @@ -119634,8 +124986,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[663].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowArpHardwareType); i { + file_otg_proto_msgTypes[694].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIcmpEchoTypeCounter); i { case 0: return &v.state case 1: @@ -119646,8 +124998,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[664].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowArpProtocolTypeCounter); i { + file_otg_proto_msgTypes[695].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIcmpEchoTypeMetricTag); i { case 0: return &v.state case 1: @@ -119658,8 +125010,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[665].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowArpProtocolTypeMetricTag); i { + file_otg_proto_msgTypes[696].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIcmpEchoType); i { case 0: return &v.state case 1: @@ -119670,8 +125022,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[666].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowArpProtocolType); i { + file_otg_proto_msgTypes[697].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIcmpEchoCodeCounter); i { case 0: return &v.state case 1: @@ -119682,8 +125034,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[667].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowArpHardwareLengthCounter); i { + file_otg_proto_msgTypes[698].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIcmpEchoCodeMetricTag); i { case 0: return &v.state case 1: @@ -119694,8 +125046,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[668].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowArpHardwareLengthMetricTag); i { + file_otg_proto_msgTypes[699].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIcmpEchoCode); i { case 0: return &v.state case 1: @@ -119706,8 +125058,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[669].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowArpHardwareLength); i { + file_otg_proto_msgTypes[700].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIcmpEchoChecksum); i { case 0: return &v.state case 1: @@ -119718,8 +125070,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[670].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowArpProtocolLengthCounter); i { + file_otg_proto_msgTypes[701].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIcmpEchoIdentifierCounter); i { case 0: return &v.state case 1: @@ -119730,8 +125082,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[671].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowArpProtocolLengthMetricTag); i { + file_otg_proto_msgTypes[702].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIcmpEchoIdentifierMetricTag); i { case 0: return &v.state case 1: @@ -119742,8 +125094,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[672].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowArpProtocolLength); i { + file_otg_proto_msgTypes[703].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIcmpEchoIdentifier); i { case 0: return &v.state case 1: @@ -119754,8 +125106,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[673].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowArpOperationCounter); i { + file_otg_proto_msgTypes[704].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIcmpEchoSequenceNumberCounter); i { case 0: return &v.state case 1: @@ -119766,8 +125118,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[674].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowArpOperationMetricTag); i { + file_otg_proto_msgTypes[705].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIcmpEchoSequenceNumberMetricTag); i { case 0: return &v.state case 1: @@ -119778,8 +125130,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[675].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowArpOperation); i { + file_otg_proto_msgTypes[706].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIcmpEchoSequenceNumber); i { case 0: return &v.state case 1: @@ -119790,8 +125142,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[676].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowArpSenderHardwareAddrCounter); i { + file_otg_proto_msgTypes[707].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIcmpCommonChecksum); i { case 0: return &v.state case 1: @@ -119802,8 +125154,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[677].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowArpSenderHardwareAddrMetricTag); i { + file_otg_proto_msgTypes[708].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIcmpNextFieldsIdentifierCounter); i { case 0: return &v.state case 1: @@ -119814,8 +125166,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[678].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowArpSenderHardwareAddr); i { + file_otg_proto_msgTypes[709].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIcmpNextFieldsIdentifierMetricTag); i { case 0: return &v.state case 1: @@ -119826,8 +125178,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[679].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowArpSenderProtocolAddrCounter); i { + file_otg_proto_msgTypes[710].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIcmpNextFieldsIdentifier); i { case 0: return &v.state case 1: @@ -119838,8 +125190,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[680].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowArpSenderProtocolAddrMetricTag); i { + file_otg_proto_msgTypes[711].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIcmpNextFieldsSequenceNumberCounter); i { case 0: return &v.state case 1: @@ -119850,8 +125202,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[681].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowArpSenderProtocolAddr); i { + file_otg_proto_msgTypes[712].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIcmpNextFieldsSequenceNumberMetricTag); i { case 0: return &v.state case 1: @@ -119862,8 +125214,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[682].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowArpTargetHardwareAddrCounter); i { + file_otg_proto_msgTypes[713].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIcmpNextFieldsSequenceNumber); i { case 0: return &v.state case 1: @@ -119874,8 +125226,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[683].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowArpTargetHardwareAddrMetricTag); i { + file_otg_proto_msgTypes[714].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIcmpv6EchoTypeCounter); i { case 0: return &v.state case 1: @@ -119886,8 +125238,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[684].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowArpTargetHardwareAddr); i { + file_otg_proto_msgTypes[715].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIcmpv6EchoTypeMetricTag); i { case 0: return &v.state case 1: @@ -119898,8 +125250,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[685].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowArpTargetProtocolAddrCounter); i { + file_otg_proto_msgTypes[716].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIcmpv6EchoType); i { case 0: return &v.state case 1: @@ -119910,8 +125262,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[686].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowArpTargetProtocolAddrMetricTag); i { + file_otg_proto_msgTypes[717].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIcmpv6EchoCodeCounter); i { case 0: return &v.state case 1: @@ -119922,8 +125274,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[687].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowArpTargetProtocolAddr); i { + file_otg_proto_msgTypes[718].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIcmpv6EchoCodeMetricTag); i { case 0: return &v.state case 1: @@ -119934,8 +125286,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[688].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIcmpEchoTypeCounter); i { + file_otg_proto_msgTypes[719].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIcmpv6EchoCode); i { case 0: return &v.state case 1: @@ -119946,8 +125298,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[689].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIcmpEchoTypeMetricTag); i { + file_otg_proto_msgTypes[720].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIcmpv6EchoIdentifierCounter); i { case 0: return &v.state case 1: @@ -119958,8 +125310,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[690].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIcmpEchoType); i { + file_otg_proto_msgTypes[721].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIcmpv6EchoIdentifierMetricTag); i { case 0: return &v.state case 1: @@ -119970,8 +125322,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[691].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIcmpEchoCodeCounter); i { + file_otg_proto_msgTypes[722].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIcmpv6EchoIdentifier); i { case 0: return &v.state case 1: @@ -119982,8 +125334,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[692].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIcmpEchoCodeMetricTag); i { + file_otg_proto_msgTypes[723].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIcmpv6EchoSequenceNumberCounter); i { case 0: return &v.state case 1: @@ -119994,8 +125346,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[693].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIcmpEchoCode); i { + file_otg_proto_msgTypes[724].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIcmpv6EchoSequenceNumberMetricTag); i { case 0: return &v.state case 1: @@ -120006,8 +125358,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[694].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIcmpEchoChecksum); i { + file_otg_proto_msgTypes[725].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIcmpv6EchoSequenceNumber); i { case 0: return &v.state case 1: @@ -120018,8 +125370,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[695].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIcmpEchoIdentifierCounter); i { + file_otg_proto_msgTypes[726].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIcmpv6EchoChecksum); i { case 0: return &v.state case 1: @@ -120030,8 +125382,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[696].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIcmpEchoIdentifierMetricTag); i { + file_otg_proto_msgTypes[727].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIcmpv6CommonChecksum); i { case 0: return &v.state case 1: @@ -120042,8 +125394,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[697].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIcmpEchoIdentifier); i { + file_otg_proto_msgTypes[728].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPppAddressCounter); i { case 0: return &v.state case 1: @@ -120054,8 +125406,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[698].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIcmpEchoSequenceNumberCounter); i { + file_otg_proto_msgTypes[729].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPppAddressMetricTag); i { case 0: return &v.state case 1: @@ -120066,8 +125418,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[699].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIcmpEchoSequenceNumberMetricTag); i { + file_otg_proto_msgTypes[730].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPppAddress); i { case 0: return &v.state case 1: @@ -120078,8 +125430,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[700].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIcmpEchoSequenceNumber); i { + file_otg_proto_msgTypes[731].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPppControlCounter); i { case 0: return &v.state case 1: @@ -120090,8 +125442,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[701].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIcmpCommonChecksum); i { + file_otg_proto_msgTypes[732].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPppControlMetricTag); i { case 0: return &v.state case 1: @@ -120102,8 +125454,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[702].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIcmpNextFieldsIdentifierCounter); i { + file_otg_proto_msgTypes[733].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPppControl); i { case 0: return &v.state case 1: @@ -120114,8 +125466,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[703].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIcmpNextFieldsIdentifierMetricTag); i { + file_otg_proto_msgTypes[734].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPppProtocolTypeCounter); i { case 0: return &v.state case 1: @@ -120126,8 +125478,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[704].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIcmpNextFieldsIdentifier); i { + file_otg_proto_msgTypes[735].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPppProtocolTypeMetricTag); i { case 0: return &v.state case 1: @@ -120138,8 +125490,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[705].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIcmpNextFieldsSequenceNumberCounter); i { + file_otg_proto_msgTypes[736].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowPppProtocolType); i { case 0: return &v.state case 1: @@ -120150,8 +125502,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[706].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIcmpNextFieldsSequenceNumberMetricTag); i { + file_otg_proto_msgTypes[737].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIgmpv1VersionCounter); i { case 0: return &v.state case 1: @@ -120162,8 +125514,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[707].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIcmpNextFieldsSequenceNumber); i { + file_otg_proto_msgTypes[738].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIgmpv1VersionMetricTag); i { case 0: return &v.state case 1: @@ -120174,8 +125526,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[708].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIcmpv6EchoTypeCounter); i { + file_otg_proto_msgTypes[739].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIgmpv1Version); i { case 0: return &v.state case 1: @@ -120186,8 +125538,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[709].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIcmpv6EchoTypeMetricTag); i { + file_otg_proto_msgTypes[740].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIgmpv1TypeCounter); i { case 0: return &v.state case 1: @@ -120198,8 +125550,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[710].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIcmpv6EchoType); i { + file_otg_proto_msgTypes[741].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIgmpv1TypeMetricTag); i { case 0: return &v.state case 1: @@ -120210,8 +125562,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[711].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIcmpv6EchoCodeCounter); i { + file_otg_proto_msgTypes[742].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIgmpv1Type); i { case 0: return &v.state case 1: @@ -120222,8 +125574,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[712].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIcmpv6EchoCodeMetricTag); i { + file_otg_proto_msgTypes[743].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIgmpv1UnusedCounter); i { case 0: return &v.state case 1: @@ -120234,8 +125586,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[713].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIcmpv6EchoCode); i { + file_otg_proto_msgTypes[744].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIgmpv1UnusedMetricTag); i { case 0: return &v.state case 1: @@ -120246,8 +125598,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[714].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIcmpv6EchoIdentifierCounter); i { + file_otg_proto_msgTypes[745].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIgmpv1Unused); i { case 0: return &v.state case 1: @@ -120258,8 +125610,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[715].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIcmpv6EchoIdentifierMetricTag); i { + file_otg_proto_msgTypes[746].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIgmpv1Checksum); i { case 0: return &v.state case 1: @@ -120270,8 +125622,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[716].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIcmpv6EchoIdentifier); i { + file_otg_proto_msgTypes[747].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIgmpv1GroupAddressCounter); i { case 0: return &v.state case 1: @@ -120282,8 +125634,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[717].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIcmpv6EchoSequenceNumberCounter); i { + file_otg_proto_msgTypes[748].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIgmpv1GroupAddressMetricTag); i { case 0: return &v.state case 1: @@ -120294,8 +125646,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[718].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIcmpv6EchoSequenceNumberMetricTag); i { + file_otg_proto_msgTypes[749].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowIgmpv1GroupAddress); i { case 0: return &v.state case 1: @@ -120306,8 +125658,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[719].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIcmpv6EchoSequenceNumber); i { + file_otg_proto_msgTypes[750].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowMplsLabelCounter); i { case 0: return &v.state case 1: @@ -120318,8 +125670,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[720].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIcmpv6EchoChecksum); i { + file_otg_proto_msgTypes[751].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowMplsLabelMetricTag); i { case 0: return &v.state case 1: @@ -120330,8 +125682,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[721].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIcmpv6CommonChecksum); i { + file_otg_proto_msgTypes[752].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowMplsLabel); i { case 0: return &v.state case 1: @@ -120342,8 +125694,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[722].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPppAddressCounter); i { + file_otg_proto_msgTypes[753].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowMplsTrafficClassCounter); i { case 0: return &v.state case 1: @@ -120354,8 +125706,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[723].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPppAddressMetricTag); i { + file_otg_proto_msgTypes[754].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowMplsTrafficClassMetricTag); i { case 0: return &v.state case 1: @@ -120366,8 +125718,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[724].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPppAddress); i { + file_otg_proto_msgTypes[755].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowMplsTrafficClass); i { case 0: return &v.state case 1: @@ -120378,8 +125730,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[725].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPppControlCounter); i { + file_otg_proto_msgTypes[756].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowMplsBottomOfStackCounter); i { case 0: return &v.state case 1: @@ -120390,8 +125742,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[726].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPppControlMetricTag); i { + file_otg_proto_msgTypes[757].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowMplsBottomOfStackMetricTag); i { case 0: return &v.state case 1: @@ -120402,8 +125754,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[727].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPppControl); i { + file_otg_proto_msgTypes[758].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowMplsBottomOfStack); i { case 0: return &v.state case 1: @@ -120414,8 +125766,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[728].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPppProtocolTypeCounter); i { + file_otg_proto_msgTypes[759].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowMplsTimeToLiveCounter); i { case 0: return &v.state case 1: @@ -120426,8 +125778,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[729].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPppProtocolTypeMetricTag); i { + file_otg_proto_msgTypes[760].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowMplsTimeToLiveMetricTag); i { case 0: return &v.state case 1: @@ -120438,8 +125790,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[730].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowPppProtocolType); i { + file_otg_proto_msgTypes[761].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowMplsTimeToLive); i { case 0: return &v.state case 1: @@ -120450,8 +125802,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[731].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIgmpv1VersionCounter); i { + file_otg_proto_msgTypes[762].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowSnmpv2CVersionCounter); i { case 0: return &v.state case 1: @@ -120462,8 +125814,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[732].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIgmpv1VersionMetricTag); i { + file_otg_proto_msgTypes[763].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowSnmpv2CVersion); i { case 0: return &v.state case 1: @@ -120474,8 +125826,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[733].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIgmpv1Version); i { + file_otg_proto_msgTypes[764].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowSnmpv2CPDURequestIdCounter); i { case 0: return &v.state case 1: @@ -120486,8 +125838,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[734].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIgmpv1TypeCounter); i { + file_otg_proto_msgTypes[765].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowSnmpv2CPDURequestId); i { case 0: return &v.state case 1: @@ -120498,8 +125850,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[735].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIgmpv1TypeMetricTag); i { + file_otg_proto_msgTypes[766].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowSnmpv2CPDUErrorIndexCounter); i { case 0: return &v.state case 1: @@ -120510,8 +125862,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[736].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIgmpv1Type); i { + file_otg_proto_msgTypes[767].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowSnmpv2CPDUErrorIndex); i { case 0: return &v.state case 1: @@ -120522,8 +125874,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[737].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIgmpv1UnusedCounter); i { + file_otg_proto_msgTypes[768].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowSnmpv2CBulkPDURequestIdCounter); i { case 0: return &v.state case 1: @@ -120534,8 +125886,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[738].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIgmpv1UnusedMetricTag); i { + file_otg_proto_msgTypes[769].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowSnmpv2CBulkPDURequestId); i { case 0: return &v.state case 1: @@ -120546,8 +125898,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[739].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIgmpv1Unused); i { + file_otg_proto_msgTypes[770].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowSnmpv2CBulkPDUNonRepeaters); i { case 0: return &v.state case 1: @@ -120558,8 +125910,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[740].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIgmpv1Checksum); i { + file_otg_proto_msgTypes[771].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter); i { case 0: return &v.state case 1: @@ -120570,8 +125922,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[741].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIgmpv1GroupAddressCounter); i { + file_otg_proto_msgTypes[772].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowSnmpv2CBulkPDUMaxRepetitions); i { case 0: return &v.state case 1: @@ -120582,8 +125934,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[742].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIgmpv1GroupAddressMetricTag); i { + file_otg_proto_msgTypes[773].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter); i { case 0: return &v.state case 1: @@ -120594,8 +125946,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[743].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowIgmpv1GroupAddress); i { + file_otg_proto_msgTypes[774].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowSnmpv2CVariableBindingValueIntegerValue); i { case 0: return &v.state case 1: @@ -120606,8 +125958,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[744].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowMplsLabelCounter); i { + file_otg_proto_msgTypes[775].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter); i { case 0: return &v.state case 1: @@ -120618,8 +125970,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[745].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowMplsLabelMetricTag); i { + file_otg_proto_msgTypes[776].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowSnmpv2CVariableBindingValueIpAddressValue); i { case 0: return &v.state case 1: @@ -120630,8 +125982,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[746].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowMplsLabel); i { + file_otg_proto_msgTypes[777].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowSnmpv2CVariableBindingValueCounterValueCounter); i { case 0: return &v.state case 1: @@ -120642,8 +125994,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[747].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowMplsTrafficClassCounter); i { + file_otg_proto_msgTypes[778].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowSnmpv2CVariableBindingValueCounterValue); i { case 0: return &v.state case 1: @@ -120654,8 +126006,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[748].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowMplsTrafficClassMetricTag); i { + file_otg_proto_msgTypes[779].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter); i { case 0: return &v.state case 1: @@ -120666,8 +126018,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[749].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowMplsTrafficClass); i { + file_otg_proto_msgTypes[780].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowSnmpv2CVariableBindingValueTimeticksValue); i { case 0: return &v.state case 1: @@ -120678,8 +126030,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[750].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowMplsBottomOfStackCounter); i { + file_otg_proto_msgTypes[781].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter); i { case 0: return &v.state case 1: @@ -120690,8 +126042,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[751].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowMplsBottomOfStackMetricTag); i { + file_otg_proto_msgTypes[782].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowSnmpv2CVariableBindingValueBigCounterValue); i { case 0: return &v.state case 1: @@ -120702,8 +126054,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[752].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowMplsBottomOfStack); i { + file_otg_proto_msgTypes[783].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter); i { case 0: return &v.state case 1: @@ -120714,8 +126066,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[753].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowMplsTimeToLiveCounter); i { + file_otg_proto_msgTypes[784].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue); i { case 0: return &v.state case 1: @@ -120726,8 +126078,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[754].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowMplsTimeToLiveMetricTag); i { + file_otg_proto_msgTypes[785].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowSnmpv2CCommonRequestIdCounter); i { case 0: return &v.state case 1: @@ -120738,8 +126090,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[755].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowMplsTimeToLive); i { + file_otg_proto_msgTypes[786].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowSnmpv2CCommonRequestId); i { case 0: return &v.state case 1: @@ -120750,7 +126102,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[756].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[787].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Version); i { case 0: return &v.state @@ -120762,7 +126114,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[757].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[788].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Success); i { case 0: return &v.state @@ -120774,7 +126126,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[758].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[789].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Failure); i { case 0: return &v.state @@ -120786,7 +126138,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[759].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[790].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetConfigRequest); i { case 0: return &v.state @@ -120798,7 +126150,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[760].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[791].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateConfigRequest); i { case 0: return &v.state @@ -120810,7 +126162,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[761].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[792].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetConfigResponse); i { case 0: return &v.state @@ -120822,7 +126174,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[762].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[793].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetConfigResponse); i { case 0: return &v.state @@ -120834,7 +126186,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[763].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[794].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateConfigResponse); i { case 0: return &v.state @@ -120846,7 +126198,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[764].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[795].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetControlStateRequest); i { case 0: return &v.state @@ -120858,7 +126210,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[765].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[796].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetControlStateResponse); i { case 0: return &v.state @@ -120870,7 +126222,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[766].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[797].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetControlActionRequest); i { case 0: return &v.state @@ -120882,7 +126234,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[767].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[798].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetControlActionResponse); i { case 0: return &v.state @@ -120894,7 +126246,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[768].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[799].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetMetricsRequest); i { case 0: return &v.state @@ -120906,7 +126258,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[769].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[800].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetMetricsResponse); i { case 0: return &v.state @@ -120918,7 +126270,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[770].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[801].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetStatesRequest); i { case 0: return &v.state @@ -120930,7 +126282,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[771].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[802].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetStatesResponse); i { case 0: return &v.state @@ -120942,7 +126294,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[772].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[803].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetCaptureRequest); i { case 0: return &v.state @@ -120954,7 +126306,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[773].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[804].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetCaptureResponse); i { case 0: return &v.state @@ -120966,7 +126318,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[774].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[805].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetVersionResponse); i { case 0: return &v.state @@ -120978,7 +126330,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[775].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[806].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LagProtocol_Choice); i { case 0: return &v.state @@ -120990,7 +126342,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[776].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[807].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LagPortLacp_ActorActivity); i { case 0: return &v.state @@ -121002,7 +126354,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[777].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[808].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EthernetConnection_Choice); i { case 0: return &v.state @@ -121014,7 +126366,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[778].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[809].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceVlan_Tpid); i { case 0: return &v.state @@ -121026,7 +126378,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[779].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[810].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceIpv4GatewayMAC_Choice); i { case 0: return &v.state @@ -121038,7 +126390,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[780].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[811].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceIpv6GatewayMAC_Choice); i { case 0: return &v.state @@ -121050,7 +126402,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[781].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[812].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Layer1_Speed); i { case 0: return &v.state @@ -121062,7 +126414,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[782].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[813].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Layer1_Media); i { case 0: return &v.state @@ -121074,7 +126426,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[783].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[814].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Layer1FlowControl_Choice); i { case 0: return &v.state @@ -121086,7 +126438,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[784].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[815].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Capture_Format); i { case 0: return &v.state @@ -121098,7 +126450,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[785].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[816].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CaptureFilter_Choice); i { case 0: return &v.state @@ -121110,7 +126462,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[786].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[817].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisInterface_NetworkType); i { case 0: return &v.state @@ -121122,7 +126474,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[787].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[818].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisInterface_LevelType); i { case 0: return &v.state @@ -121134,7 +126486,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[788].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[819].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisInterfaceAuthentication_AuthType); i { case 0: return &v.state @@ -121146,7 +126498,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[789].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[820].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisAuthenticationBase_AuthType); i { case 0: return &v.state @@ -121158,7 +126510,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[790].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[821].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisV4RouteRange_OriginType); i { case 0: return &v.state @@ -121170,7 +126522,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[791].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[822].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisV4RouteRange_RedistributionType); i { case 0: return &v.state @@ -121182,7 +126534,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[792].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[823].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisV6RouteRange_OriginType); i { case 0: return &v.state @@ -121194,7 +126546,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[793].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[824].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisV6RouteRange_RedistributionType); i { case 0: return &v.state @@ -121206,7 +126558,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[794].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[825].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceBgpMessageHeaderError_Subcode); i { case 0: return &v.state @@ -121218,7 +126570,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[795].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[826].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceBgpOpenMessageError_Subcode); i { case 0: return &v.state @@ -121230,7 +126582,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[796].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[827].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceBgpUpdateMessageError_Subcode); i { case 0: return &v.state @@ -121242,7 +126594,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[797].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[828].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceBgpCeaseError_Subcode); i { case 0: return &v.state @@ -121254,7 +126606,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[798].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[829].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV4Peer_AsType); i { case 0: return &v.state @@ -121266,7 +126618,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[799].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[830].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV4Peer_AsNumberWidth); i { case 0: return &v.state @@ -121278,7 +126630,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[800].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[831].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV4EthernetSegment_ActiveMode); i { case 0: return &v.state @@ -121290,7 +126642,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[801].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[832].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpRouteAdvanced_Origin); i { case 0: return &v.state @@ -121302,7 +126654,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[802].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[833].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpCommunity_Type); i { case 0: return &v.state @@ -121314,7 +126666,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[803].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[834].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpExtCommunity_Type); i { case 0: return &v.state @@ -121326,7 +126678,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[804].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[835].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpExtCommunity_Subtype); i { case 0: return &v.state @@ -121338,7 +126690,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[805].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[836].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAsPath_AsSetMode); i { case 0: return &v.state @@ -121350,7 +126702,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[806].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[837].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAsPathSegment_Type); i { case 0: return &v.state @@ -121362,7 +126714,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[807].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[838].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV4EvpnEvis_Choice); i { case 0: return &v.state @@ -121374,7 +126726,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[808].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[839].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV4EviVxlan_ReplicationType); i { case 0: return &v.state @@ -121386,7 +126738,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[809].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[840].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpRouteDistinguisher_RdType); i { case 0: return &v.state @@ -121398,7 +126750,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[810].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[841].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpRouteTarget_RtType); i { case 0: return &v.state @@ -121410,7 +126762,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[811].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[842].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV4RouteRange_NextHopMode); i { case 0: return &v.state @@ -121422,7 +126774,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[812].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[843].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV4RouteRange_NextHopAddressType); i { case 0: return &v.state @@ -121434,7 +126786,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[813].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[844].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpExtendedCommunity_Choice); i { case 0: return &v.state @@ -121446,7 +126798,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[814].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[845].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpExtendedCommunityTransitive2OctetAsType_Choice); i { case 0: return &v.state @@ -121458,7 +126810,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[815].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[846].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpExtendedCommunityTransitiveIpv4AddressType_Choice); i { case 0: return &v.state @@ -121470,7 +126822,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[816].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[847].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpExtendedCommunityTransitive4OctetAsType_Choice); i { case 0: return &v.state @@ -121482,7 +126834,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[817].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[848].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpExtendedCommunityTransitiveOpaqueType_Choice); i { case 0: return &v.state @@ -121494,7 +126846,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[818].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[849].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpExtendedCommunityTransitiveEvpnType_Choice); i { case 0: return &v.state @@ -121506,7 +126858,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[819].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[850].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpExtendedCommunityNonTransitive2OctetAsType_Choice); i { case 0: return &v.state @@ -121518,7 +126870,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[820].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[851].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6RouteRange_NextHopMode); i { case 0: return &v.state @@ -121530,7 +126882,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[821].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[852].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6RouteRange_NextHopAddressType); i { case 0: return &v.state @@ -121542,7 +126894,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[822].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[853].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteV4Policy_NextHopMode); i { case 0: return &v.state @@ -121554,7 +126906,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[823].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[854].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteV4Policy_NextHopAddressType); i { case 0: return &v.state @@ -121566,7 +126918,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[824].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[855].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteRemoteEndpointSubTlv_AddressFamily); i { case 0: return &v.state @@ -121578,7 +126930,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[825].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[856].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteBindingSubTlv_BindingSidType); i { case 0: return &v.state @@ -121590,7 +126942,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[826].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[857].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy); i { case 0: return &v.state @@ -121602,7 +126954,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[827].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[858].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteSegment_SegmentType); i { case 0: return &v.state @@ -121614,7 +126966,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[828].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[859].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteV6Policy_NextHopMode); i { case 0: return &v.state @@ -121626,7 +126978,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[829].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[860].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteV6Policy_NextHopAddressType); i { case 0: return &v.state @@ -121638,7 +126990,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[830].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[861].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6Peer_AsType); i { case 0: return &v.state @@ -121650,7 +127002,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[831].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[862].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6Peer_AsNumberWidth); i { case 0: return &v.state @@ -121662,7 +127014,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[832].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[863].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6EthernetSegment_ActiveMode); i { case 0: return &v.state @@ -121674,7 +127026,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[833].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[864].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6EvpnEvis_Choice); i { case 0: return &v.state @@ -121686,7 +127038,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[834].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[865].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6EviVxlan_ReplicationType); i { case 0: return &v.state @@ -121698,7 +127050,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[835].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[866].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanV4TunnelDestinationIPMode_Choice); i { case 0: return &v.state @@ -121710,7 +127062,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[836].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[867].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanV6TunnelDestinationIPMode_Choice); i { case 0: return &v.state @@ -121722,7 +127074,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[837].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[868].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle); i { case 0: return &v.state @@ -121734,7 +127086,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[838].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[869].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpEro_PrependNeighborIp); i { case 0: return &v.state @@ -121746,7 +127098,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[839].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[870].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpEroSubobject_Type); i { case 0: return &v.state @@ -121758,7 +127110,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[840].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[871].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpEroSubobject_HopType); i { case 0: return &v.state @@ -121770,7 +127122,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[841].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[872].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowTxRx_Choice); i { case 0: return &v.state @@ -121782,7 +127134,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[842].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[873].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRouter_Mode); i { case 0: return &v.state @@ -121794,7 +127146,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[843].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[874].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowHeader_Choice); i { case 0: return &v.state @@ -121806,7 +127158,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[844].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[875].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIpv4Options_Choice); i { case 0: return &v.state @@ -121818,7 +127170,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[845].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[876].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIpv4OptionsCustomLength_Choice); i { case 0: return &v.state @@ -121830,7 +127182,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[846].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[877].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIpv4Priority_Choice); i { case 0: return &v.state @@ -121842,7 +127194,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[847].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[878].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIcmp_Choice); i { case 0: return &v.state @@ -121854,7 +127206,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[848].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[879].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIcmpv6_Choice); i { case 0: return &v.state @@ -121866,7 +127218,43 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[849].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[880].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowSnmpv2CData_Choice); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[881].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowSnmpv2CPDU_ErrorStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[882].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowSnmpv2CVariableBindingValue_Choice); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[883].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowSize_Choice); i { case 0: return &v.state @@ -121878,7 +127266,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[850].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[884].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowSizeWeightPairs_Choice); i { case 0: return &v.state @@ -121890,7 +127278,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[851].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[885].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowSizeWeightPairs_Predefined); i { case 0: return &v.state @@ -121902,7 +127290,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[852].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[886].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRate_Choice); i { case 0: return &v.state @@ -121914,7 +127302,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[853].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[887].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowDuration_Choice); i { case 0: return &v.state @@ -121926,7 +127314,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[854].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[888].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowDelay_Choice); i { case 0: return &v.state @@ -121938,7 +127326,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[855].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[889].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowDurationInterBurstGap_Choice); i { case 0: return &v.state @@ -121950,7 +127338,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[856].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[890].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowLatencyMetrics_Mode); i { case 0: return &v.state @@ -121962,7 +127350,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[857].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[891].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRxTxRatio_Choice); i { case 0: return &v.state @@ -121974,7 +127362,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[858].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[892].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EventRequest_Type); i { case 0: return &v.state @@ -121986,7 +127374,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[859].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[893].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpConnection_Choice); i { case 0: return &v.state @@ -121998,7 +127386,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[860].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[894].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpChassisId_Choice); i { case 0: return &v.state @@ -122010,7 +127398,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[861].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[895].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpPortId_Choice); i { case 0: return &v.state @@ -122022,7 +127410,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[862].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[896].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpChassisMacSubType_Choice); i { case 0: return &v.state @@ -122034,7 +127422,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[863].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[897].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpPortInterfaceNameSubType_Choice); i { case 0: return &v.state @@ -122046,7 +127434,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[864].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[898].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpSystemName_Choice); i { case 0: return &v.state @@ -122058,7 +127446,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[865].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[899].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Error_Kind); i { case 0: return &v.state @@ -122070,7 +127458,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[866].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[900].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConfigUpdate_Choice); i { case 0: return &v.state @@ -122082,7 +127470,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[867].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[901].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowsUpdate_PropertyNames); i { case 0: return &v.state @@ -122094,7 +127482,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[868].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[902].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ControlState_Choice); i { case 0: return &v.state @@ -122106,7 +127494,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[869].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[903].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatePort_Choice); i { case 0: return &v.state @@ -122118,7 +127506,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[870].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[904].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateTraffic_Choice); i { case 0: return &v.state @@ -122130,7 +127518,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[871].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[905].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocol_Choice); i { case 0: return &v.state @@ -122142,7 +127530,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[872].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[906].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatePortLink_State); i { case 0: return &v.state @@ -122154,7 +127542,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[873].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[907].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatePortCapture_State); i { case 0: return &v.state @@ -122166,7 +127554,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[874].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[908].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateTrafficFlowTransmit_State); i { case 0: return &v.state @@ -122178,7 +127566,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[875].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[909].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolAll_State); i { case 0: return &v.state @@ -122190,7 +127578,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[876].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[910].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolRoute_State); i { case 0: return &v.state @@ -122202,7 +127590,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[877].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[911].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolLacp_Choice); i { case 0: return &v.state @@ -122214,7 +127602,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[878].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[912].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolLacpAdmin_State); i { case 0: return &v.state @@ -122226,7 +127614,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[879].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[913].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolLacpMemberPorts_State); i { case 0: return &v.state @@ -122238,7 +127626,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[880].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[914].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolBgp_Choice); i { case 0: return &v.state @@ -122250,7 +127638,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[881].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[915].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolBgpPeers_State); i { case 0: return &v.state @@ -122262,7 +127650,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[882].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[916].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolIsis_Choice); i { case 0: return &v.state @@ -122274,7 +127662,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[883].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[917].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolIsisRouters_State); i { case 0: return &v.state @@ -122286,7 +127674,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[884].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[918].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ControlAction_Choice); i { case 0: return &v.state @@ -122298,7 +127686,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[885].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[919].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponse_Choice); i { case 0: return &v.state @@ -122310,7 +127698,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[886].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[920].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocol_Choice); i { case 0: return &v.state @@ -122322,7 +127710,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[887].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[921].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocol_Choice); i { case 0: return &v.state @@ -122334,7 +127722,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[888].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[922].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolIpv4_Choice); i { case 0: return &v.state @@ -122346,7 +127734,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[889].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[923].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocolIpv4_Choice); i { case 0: return &v.state @@ -122358,7 +127746,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[890].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[924].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocolIpv4PingResponse_Result); i { case 0: return &v.state @@ -122370,7 +127758,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[891].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[925].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolIpv6_Choice); i { case 0: return &v.state @@ -122382,7 +127770,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[892].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[926].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocolIpv6_Choice); i { case 0: return &v.state @@ -122394,7 +127782,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[893].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[927].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocolIpv6PingResponse_Result); i { case 0: return &v.state @@ -122406,7 +127794,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[894].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[928].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolBgp_Choice); i { case 0: return &v.state @@ -122418,7 +127806,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[895].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[929].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolBgpNotification_Choice); i { case 0: return &v.state @@ -122430,7 +127818,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[896].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[930].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetricsRequest_Choice); i { case 0: return &v.state @@ -122442,7 +127830,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[897].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[931].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetricsResponse_Choice); i { case 0: return &v.state @@ -122454,7 +127842,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[898].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[932].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PortMetricsRequest_ColumnNames); i { case 0: return &v.state @@ -122466,7 +127854,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[899].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[933].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PortMetric_Link); i { case 0: return &v.state @@ -122478,7 +127866,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[900].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[934].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PortMetric_Capture); i { case 0: return &v.state @@ -122490,7 +127878,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[901].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[935].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PortMetric_Transmit); i { case 0: return &v.state @@ -122502,7 +127890,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[902].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[936].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowMetricsRequest_MetricNames); i { case 0: return &v.state @@ -122514,7 +127902,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[903].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[937].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowTaggedMetricsFilter_MetricNames); i { case 0: return &v.state @@ -122526,7 +127914,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[904].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[938].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowMetric_Transmit); i { case 0: return &v.state @@ -122538,7 +127926,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[905].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[939].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowMetricTagValue_Choice); i { case 0: return &v.state @@ -122550,7 +127938,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[906].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[940].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bgpv4MetricsRequest_ColumnNames); i { case 0: return &v.state @@ -122562,7 +127950,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[907].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[941].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bgpv4Metric_SessionState); i { case 0: return &v.state @@ -122574,7 +127962,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[908].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[942].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bgpv4Metric_FsmState); i { case 0: return &v.state @@ -122586,7 +127974,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[909].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[943].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bgpv6MetricsRequest_ColumnNames); i { case 0: return &v.state @@ -122598,7 +127986,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[910].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[944].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bgpv6Metric_SessionState); i { case 0: return &v.state @@ -122610,7 +127998,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[911].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[945].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bgpv6Metric_FsmState); i { case 0: return &v.state @@ -122622,7 +128010,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[912].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[946].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisMetricsRequest_ColumnNames); i { case 0: return &v.state @@ -122634,7 +128022,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[913].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[947].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LagMetricsRequest_ColumnNames); i { case 0: return &v.state @@ -122646,7 +128034,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[914].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[948].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LagMetric_OperStatus); i { case 0: return &v.state @@ -122658,7 +128046,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[915].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[949].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LacpMetricsRequest_ColumnNames); i { case 0: return &v.state @@ -122670,7 +128058,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[916].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[950].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LacpMetric_Activity); i { case 0: return &v.state @@ -122682,7 +128070,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[917].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[951].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LacpMetric_Timeout); i { case 0: return &v.state @@ -122694,7 +128082,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[918].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[952].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LacpMetric_Synchronization); i { case 0: return &v.state @@ -122706,7 +128094,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[919].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[953].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpMetricsRequest_ColumnNames); i { case 0: return &v.state @@ -122718,7 +128106,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[920].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[954].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpMetricsRequest_ColumnNames); i { case 0: return &v.state @@ -122730,7 +128118,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[921].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[955].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatesRequest_Choice); i { case 0: return &v.state @@ -122742,7 +128130,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[922].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[956].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatesResponse_Choice); i { case 0: return &v.state @@ -122754,7 +128142,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[923].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[957].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpPrefixStateRequest_PrefixFilters); i { case 0: return &v.state @@ -122766,7 +128154,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[924].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[958].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpPrefixIpv4UnicastFilter_Origin); i { case 0: return &v.state @@ -122778,7 +128166,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[925].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[959].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpPrefixIpv6UnicastFilter_Origin); i { case 0: return &v.state @@ -122790,7 +128178,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[926].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[960].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpPrefixIpv4UnicastState_Origin); i { case 0: return &v.state @@ -122802,7 +128190,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[927].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[961].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpPrefixIpv6UnicastState_Origin); i { case 0: return &v.state @@ -122814,7 +128202,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[928].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[962].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResultBgpCommunity_Type); i { case 0: return &v.state @@ -122826,7 +128214,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[929].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[963].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResultBgpAsPathSegment_Type); i { case 0: return &v.state @@ -122838,7 +128226,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[930].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[964].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspState_PduType); i { case 0: return &v.state @@ -122850,7 +128238,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[931].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[965].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspV4Prefix_RedistributionType); i { case 0: return &v.state @@ -122862,7 +128250,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[932].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[966].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspV4Prefix_OriginType); i { case 0: return &v.state @@ -122874,7 +128262,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[933].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[967].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspExtendedV4Prefix_RedistributionType); i { case 0: return &v.state @@ -122886,7 +128274,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[934].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[968].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspV6Prefix_RedistributionType); i { case 0: return &v.state @@ -122898,7 +128286,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[935].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[969].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspV6Prefix_OriginType); i { case 0: return &v.state @@ -122910,7 +128298,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[936].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[970].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpNeighborsState_ChassisIdType); i { case 0: return &v.state @@ -122922,7 +128310,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[937].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[971].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpNeighborsState_PortIdType); i { case 0: return &v.state @@ -122934,7 +128322,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[938].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[972].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpCapabilityState_CapabilityName); i { case 0: return &v.state @@ -122946,7 +128334,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[939].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[973].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspState_SessionStatus); i { case 0: return &v.state @@ -122958,7 +128346,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[940].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[974].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspState_LastFlapReason); i { case 0: return &v.state @@ -122970,7 +128358,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[941].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[975].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspIpv4Ero_Type); i { case 0: return &v.state @@ -122982,7 +128370,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[942].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[976].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetDst_Choice); i { case 0: return &v.state @@ -122994,7 +128382,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[943].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[977].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetSrc_Choice); i { case 0: return &v.state @@ -123006,7 +128394,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[944].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[978].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetEtherType_Choice); i { case 0: return &v.state @@ -123018,7 +128406,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[945].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[979].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPfcQueue_Choice); i { case 0: return &v.state @@ -123030,7 +128418,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[946].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[980].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanPriority_Choice); i { case 0: return &v.state @@ -123042,7 +128430,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[947].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[981].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanCfi_Choice); i { case 0: return &v.state @@ -123054,7 +128442,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[948].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[982].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanId_Choice); i { case 0: return &v.state @@ -123066,7 +128454,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[949].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[983].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanTpid_Choice); i { case 0: return &v.state @@ -123078,7 +128466,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[950].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[984].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanFlags_Choice); i { case 0: return &v.state @@ -123090,7 +128478,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[951].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[985].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanReserved0_Choice); i { case 0: return &v.state @@ -123102,7 +128490,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[952].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[986].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanVni_Choice); i { case 0: return &v.state @@ -123114,7 +128502,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[953].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[987].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanReserved1_Choice); i { case 0: return &v.state @@ -123126,7 +128514,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[954].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[988].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Version_Choice); i { case 0: return &v.state @@ -123138,7 +128526,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[955].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[989].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4HeaderLength_Choice); i { case 0: return &v.state @@ -123150,7 +128538,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[956].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[990].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TotalLength_Choice); i { case 0: return &v.state @@ -123162,7 +128550,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[957].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[991].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Identification_Choice); i { case 0: return &v.state @@ -123174,7 +128562,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[958].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[992].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Reserved_Choice); i { case 0: return &v.state @@ -123186,7 +128574,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[959].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[993].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DontFragment_Choice); i { case 0: return &v.state @@ -123198,7 +128586,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[960].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[994].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4MoreFragments_Choice); i { case 0: return &v.state @@ -123210,7 +128598,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[961].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[995].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4FragmentOffset_Choice); i { case 0: return &v.state @@ -123222,7 +128610,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[962].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[996].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TimeToLive_Choice); i { case 0: return &v.state @@ -123234,7 +128622,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[963].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[997].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Protocol_Choice); i { case 0: return &v.state @@ -123246,7 +128634,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[964].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[998].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4HeaderChecksum_Choice); i { case 0: return &v.state @@ -123258,7 +128646,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[965].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[999].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4HeaderChecksum_Generated); i { case 0: return &v.state @@ -123270,7 +128658,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[966].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1000].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Src_Choice); i { case 0: return &v.state @@ -123282,7 +128670,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[967].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1001].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Dst_Choice); i { case 0: return &v.state @@ -123294,7 +128682,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[968].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1002].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice); i { case 0: return &v.state @@ -123306,7 +128694,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[969].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1003].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4OptionsCustomTypeOptionClass_Choice); i { case 0: return &v.state @@ -123318,7 +128706,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[970].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1004].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice); i { case 0: return &v.state @@ -123330,7 +128718,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[971].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1005].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4PriorityRaw_Choice); i { case 0: return &v.state @@ -123342,7 +128730,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[972].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1006].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DscpPhb_Choice); i { case 0: return &v.state @@ -123354,7 +128742,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[973].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1007].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DscpEcn_Choice); i { case 0: return &v.state @@ -123366,7 +128754,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[974].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1008].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosPrecedence_Choice); i { case 0: return &v.state @@ -123378,7 +128766,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[975].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1009].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosDelay_Choice); i { case 0: return &v.state @@ -123390,7 +128778,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[976].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1010].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosThroughput_Choice); i { case 0: return &v.state @@ -123402,7 +128790,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[977].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1011].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosReliability_Choice); i { case 0: return &v.state @@ -123414,7 +128802,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[978].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1012].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosMonetary_Choice); i { case 0: return &v.state @@ -123426,7 +128814,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[979].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1013].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosUnused_Choice); i { case 0: return &v.state @@ -123438,7 +128826,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[980].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1014].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6Version_Choice); i { case 0: return &v.state @@ -123450,7 +128838,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[981].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1015].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6TrafficClass_Choice); i { case 0: return &v.state @@ -123462,7 +128850,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[982].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1016].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6FlowLabel_Choice); i { case 0: return &v.state @@ -123474,7 +128862,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[983].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1017].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6PayloadLength_Choice); i { case 0: return &v.state @@ -123486,7 +128874,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[984].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1018].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6NextHeader_Choice); i { case 0: return &v.state @@ -123498,7 +128886,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[985].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1019].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6HopLimit_Choice); i { case 0: return &v.state @@ -123510,7 +128898,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[986].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1020].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6Src_Choice); i { case 0: return &v.state @@ -123522,7 +128910,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[987].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1021].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6Dst_Choice); i { case 0: return &v.state @@ -123534,7 +128922,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[988].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1022].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseDst_Choice); i { case 0: return &v.state @@ -123546,7 +128934,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[989].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1023].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseSrc_Choice); i { case 0: return &v.state @@ -123558,7 +128946,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[990].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1024].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseEtherType_Choice); i { case 0: return &v.state @@ -123570,7 +128958,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[991].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1025].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseControlOpCode_Choice); i { case 0: return &v.state @@ -123582,7 +128970,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[992].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1026].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseClassEnableVector_Choice); i { case 0: return &v.state @@ -123594,7 +128982,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[993].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1027].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass0_Choice); i { case 0: return &v.state @@ -123606,7 +128994,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[994].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1028].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass1_Choice); i { case 0: return &v.state @@ -123618,7 +129006,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[995].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1029].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass2_Choice); i { case 0: return &v.state @@ -123630,7 +129018,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[996].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1030].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass3_Choice); i { case 0: return &v.state @@ -123642,7 +129030,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[997].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1031].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass4_Choice); i { case 0: return &v.state @@ -123654,7 +129042,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[998].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1032].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass5_Choice); i { case 0: return &v.state @@ -123666,7 +129054,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[999].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1033].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass6_Choice); i { case 0: return &v.state @@ -123678,7 +129066,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1000].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1034].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass7_Choice); i { case 0: return &v.state @@ -123690,7 +129078,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1001].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1035].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseDst_Choice); i { case 0: return &v.state @@ -123702,7 +129090,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1002].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1036].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseSrc_Choice); i { case 0: return &v.state @@ -123714,7 +129102,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1003].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1037].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseEtherType_Choice); i { case 0: return &v.state @@ -123726,7 +129114,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1004].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1038].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseControlOpCode_Choice); i { case 0: return &v.state @@ -123738,7 +129126,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1005].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1039].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseTime_Choice); i { case 0: return &v.state @@ -123750,7 +129138,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1006].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1040].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpSrcPort_Choice); i { case 0: return &v.state @@ -123762,7 +129150,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1007].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1041].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpDstPort_Choice); i { case 0: return &v.state @@ -123774,7 +129162,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1008].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1042].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpSeqNum_Choice); i { case 0: return &v.state @@ -123786,7 +129174,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1009].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1043].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpAckNum_Choice); i { case 0: return &v.state @@ -123798,7 +129186,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1010].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1044].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpDataOffset_Choice); i { case 0: return &v.state @@ -123810,7 +129198,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1011].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1045].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpEcnNs_Choice); i { case 0: return &v.state @@ -123822,7 +129210,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1012].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1046].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpEcnCwr_Choice); i { case 0: return &v.state @@ -123834,7 +129222,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1013].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1047].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpEcnEcho_Choice); i { case 0: return &v.state @@ -123846,7 +129234,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1014].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1048].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlUrg_Choice); i { case 0: return &v.state @@ -123858,7 +129246,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1015].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1049].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlAck_Choice); i { case 0: return &v.state @@ -123870,7 +129258,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1016].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1050].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlPsh_Choice); i { case 0: return &v.state @@ -123882,7 +129270,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1017].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1051].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlRst_Choice); i { case 0: return &v.state @@ -123894,7 +129282,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1018].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1052].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlSyn_Choice); i { case 0: return &v.state @@ -123906,7 +129294,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1019].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1053].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlFin_Choice); i { case 0: return &v.state @@ -123918,7 +129306,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1020].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1054].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpWindow_Choice); i { case 0: return &v.state @@ -123930,7 +129318,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1021].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1055].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpSrcPort_Choice); i { case 0: return &v.state @@ -123942,7 +129330,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1022].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1056].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpDstPort_Choice); i { case 0: return &v.state @@ -123954,7 +129342,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1023].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1057].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpLength_Choice); i { case 0: return &v.state @@ -123966,7 +129354,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1024].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1058].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpChecksum_Choice); i { case 0: return &v.state @@ -123978,7 +129366,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1025].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1059].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpChecksum_Generated); i { case 0: return &v.state @@ -123990,7 +129378,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1026].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1060].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreChecksumPresent_Choice); i { case 0: return &v.state @@ -124002,7 +129390,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1027].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1061].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreReserved0_Choice); i { case 0: return &v.state @@ -124014,7 +129402,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1028].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1062].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreVersion_Choice); i { case 0: return &v.state @@ -124026,7 +129414,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1029].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1063].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreProtocol_Choice); i { case 0: return &v.state @@ -124038,7 +129426,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1030].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1064].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreChecksum_Choice); i { case 0: return &v.state @@ -124050,7 +129438,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1031].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1065].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreChecksum_Generated); i { case 0: return &v.state @@ -124062,7 +129450,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1032].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1066].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreReserved1_Choice); i { case 0: return &v.state @@ -124074,7 +129462,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1033].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1067].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1Version_Choice); i { case 0: return &v.state @@ -124086,7 +129474,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1034].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1068].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1ProtocolType_Choice); i { case 0: return &v.state @@ -124098,7 +129486,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1035].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1069].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1Reserved_Choice); i { case 0: return &v.state @@ -124110,7 +129498,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1036].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1070].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1EFlag_Choice); i { case 0: return &v.state @@ -124122,7 +129510,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1037].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1071].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1SFlag_Choice); i { case 0: return &v.state @@ -124134,7 +129522,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1038].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1072].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1PnFlag_Choice); i { case 0: return &v.state @@ -124146,7 +129534,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1039].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1073].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1MessageType_Choice); i { case 0: return &v.state @@ -124158,7 +129546,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1040].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1074].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1MessageLength_Choice); i { case 0: return &v.state @@ -124170,7 +129558,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1041].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1075].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1Teid_Choice); i { case 0: return &v.state @@ -124182,7 +129570,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1042].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1076].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1SquenceNumber_Choice); i { case 0: return &v.state @@ -124194,7 +129582,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1043].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1077].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1NPduNumber_Choice); i { case 0: return &v.state @@ -124206,7 +129594,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1044].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1078].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1NextExtensionHeaderType_Choice); i { case 0: return &v.state @@ -124218,7 +129606,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1045].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1079].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpExtensionExtensionLength_Choice); i { case 0: return &v.state @@ -124230,7 +129618,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1046].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1080].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpExtensionContents_Choice); i { case 0: return &v.state @@ -124242,7 +129630,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1047].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1081].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpExtensionNextExtensionHeader_Choice); i { case 0: return &v.state @@ -124254,7 +129642,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1048].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1082].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Version_Choice); i { case 0: return &v.state @@ -124266,7 +129654,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1049].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1083].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2PiggybackingFlag_Choice); i { case 0: return &v.state @@ -124278,7 +129666,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1050].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1084].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2TeidFlag_Choice); i { case 0: return &v.state @@ -124290,7 +129678,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1051].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1085].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Spare1_Choice); i { case 0: return &v.state @@ -124302,7 +129690,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1052].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1086].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2MessageType_Choice); i { case 0: return &v.state @@ -124314,7 +129702,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1053].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1087].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2MessageLength_Choice); i { case 0: return &v.state @@ -124326,7 +129714,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1054].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1088].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Teid_Choice); i { case 0: return &v.state @@ -124338,7 +129726,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1055].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1089].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2SequenceNumber_Choice); i { case 0: return &v.state @@ -124350,7 +129738,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1056].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1090].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Spare2_Choice); i { case 0: return &v.state @@ -124362,7 +129750,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1057].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1091].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpHardwareType_Choice); i { case 0: return &v.state @@ -124374,7 +129762,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1058].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1092].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpProtocolType_Choice); i { case 0: return &v.state @@ -124386,7 +129774,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1059].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1093].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpHardwareLength_Choice); i { case 0: return &v.state @@ -124398,7 +129786,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1060].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1094].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpProtocolLength_Choice); i { case 0: return &v.state @@ -124410,7 +129798,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1061].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1095].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpOperation_Choice); i { case 0: return &v.state @@ -124422,7 +129810,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1062].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1096].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpSenderHardwareAddr_Choice); i { case 0: return &v.state @@ -124434,7 +129822,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1063].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1097].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpSenderProtocolAddr_Choice); i { case 0: return &v.state @@ -124446,7 +129834,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1064].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1098].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpTargetHardwareAddr_Choice); i { case 0: return &v.state @@ -124458,7 +129846,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1065].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1099].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpTargetProtocolAddr_Choice); i { case 0: return &v.state @@ -124470,7 +129858,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1066].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1100].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoType_Choice); i { case 0: return &v.state @@ -124482,7 +129870,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1067].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1101].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoCode_Choice); i { case 0: return &v.state @@ -124494,7 +129882,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1068].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1102].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoChecksum_Choice); i { case 0: return &v.state @@ -124506,7 +129894,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1069].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1103].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoChecksum_Generated); i { case 0: return &v.state @@ -124518,7 +129906,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1070].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1104].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoIdentifier_Choice); i { case 0: return &v.state @@ -124530,7 +129918,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1071].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1105].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoSequenceNumber_Choice); i { case 0: return &v.state @@ -124542,7 +129930,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1072].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1106].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpCommonChecksum_Choice); i { case 0: return &v.state @@ -124554,7 +129942,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1073].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1107].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpCommonChecksum_Generated); i { case 0: return &v.state @@ -124566,7 +129954,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1074].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1108].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpNextFieldsIdentifier_Choice); i { case 0: return &v.state @@ -124578,7 +129966,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1075].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1109].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpNextFieldsSequenceNumber_Choice); i { case 0: return &v.state @@ -124590,7 +129978,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1076].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1110].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoType_Choice); i { case 0: return &v.state @@ -124602,7 +129990,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1077].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1111].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoCode_Choice); i { case 0: return &v.state @@ -124614,7 +130002,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1078].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1112].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoIdentifier_Choice); i { case 0: return &v.state @@ -124626,7 +130014,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1079].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1113].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoSequenceNumber_Choice); i { case 0: return &v.state @@ -124638,7 +130026,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1080].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1114].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoChecksum_Choice); i { case 0: return &v.state @@ -124650,7 +130038,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1081].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1115].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoChecksum_Generated); i { case 0: return &v.state @@ -124662,7 +130050,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1082].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1116].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6CommonChecksum_Choice); i { case 0: return &v.state @@ -124674,7 +130062,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1083].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1117].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6CommonChecksum_Generated); i { case 0: return &v.state @@ -124686,7 +130074,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1084].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1118].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPppAddress_Choice); i { case 0: return &v.state @@ -124698,7 +130086,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1085].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1119].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPppControl_Choice); i { case 0: return &v.state @@ -124710,7 +130098,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1086].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1120].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPppProtocolType_Choice); i { case 0: return &v.state @@ -124722,7 +130110,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1087].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1121].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1Version_Choice); i { case 0: return &v.state @@ -124734,7 +130122,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1088].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1122].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1Type_Choice); i { case 0: return &v.state @@ -124746,7 +130134,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1089].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1123].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1Unused_Choice); i { case 0: return &v.state @@ -124758,7 +130146,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1090].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1124].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1Checksum_Choice); i { case 0: return &v.state @@ -124770,7 +130158,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1091].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1125].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1Checksum_Generated); i { case 0: return &v.state @@ -124782,7 +130170,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1092].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1126].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1GroupAddress_Choice); i { case 0: return &v.state @@ -124794,7 +130182,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1093].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1127].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsLabel_Choice); i { case 0: return &v.state @@ -124806,7 +130194,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1094].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1128].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsTrafficClass_Choice); i { case 0: return &v.state @@ -124818,7 +130206,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1095].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1129].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsBottomOfStack_Choice); i { case 0: return &v.state @@ -124830,7 +130218,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1096].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1130].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsTimeToLive_Choice); i { case 0: return &v.state @@ -124842,6 +130230,162 @@ func file_otg_proto_init() { return nil } } + file_otg_proto_msgTypes[1131].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowSnmpv2CVersion_Choice); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[1132].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowSnmpv2CPDURequestId_Choice); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[1133].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowSnmpv2CPDUErrorIndex_Choice); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[1134].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowSnmpv2CBulkPDURequestId_Choice); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[1135].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[1136].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[1137].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[1138].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[1139].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[1140].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[1141].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[1142].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[1143].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowSnmpv2CCommonRequestId_Choice); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } file_otg_proto_msgTypes[2].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[3].OneofWrappers = []interface{}{} @@ -125005,7 +130549,6 @@ func file_otg_proto_init() { file_otg_proto_msgTypes[193].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[194].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[195].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[196].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[197].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[198].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[199].OneofWrappers = []interface{}{} @@ -125019,26 +130562,26 @@ func file_otg_proto_init() { file_otg_proto_msgTypes[207].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[208].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[209].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[210].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[211].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[212].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[213].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[214].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[216].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[215].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[217].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[218].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[219].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[220].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[221].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[222].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[223].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[224].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[225].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[226].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[227].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[228].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[229].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[230].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[231].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[232].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[233].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[234].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[235].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[236].OneofWrappers = []interface{}{} @@ -125050,12 +130593,14 @@ func file_otg_proto_init() { file_otg_proto_msgTypes[242].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[243].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[244].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[245].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[246].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[247].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[248].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[249].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[250].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[252].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[253].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[254].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[255].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[256].OneofWrappers = []interface{}{} @@ -125063,54 +130608,52 @@ func file_otg_proto_init() { file_otg_proto_msgTypes[260].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[261].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[262].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[263].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[264].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[265].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[266].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[267].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[268].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[269].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[270].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[271].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[272].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[273].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[274].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[275].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[276].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[277].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[278].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[279].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[280].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[281].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[282].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[284].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[286].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[288].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[290].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[291].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[292].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[294].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[296].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[297].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[298].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[299].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[300].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[301].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[302].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[303].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[304].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[305].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[306].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[307].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[308].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[310].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[309].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[311].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[313].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[314].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[316].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[317].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[319].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[321].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[322].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[324].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[320].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[323].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[325].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[326].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[327].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[328].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[329].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[330].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[331].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[332].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[333].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[334].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[335].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[336].OneofWrappers = []interface{}{} @@ -125534,13 +131077,44 @@ func file_otg_proto_init() { file_otg_proto_msgTypes[754].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[755].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[756].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[757].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[758].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[759].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[760].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[761].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[762].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[763].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[764].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[765].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[766].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[767].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[768].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[769].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[770].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[771].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[772].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[773].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[774].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[775].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[776].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[777].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[778].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[779].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[780].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[781].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[782].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[783].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[784].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[785].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[786].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[787].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_otg_proto_rawDesc, - NumEnums: 322, - NumMessages: 1097, + NumEnums: 338, + NumMessages: 1144, NumExtensions: 0, NumServices: 1, }, diff --git a/gosnappi/otg/otg.proto b/gosnappi/otg/otg.proto index 9aa46ae2..890af86b 100644 --- a/gosnappi/otg/otg.proto +++ b/gosnappi/otg/otg.proto @@ -1,4 +1,4 @@ -/* Open Traffic Generator API 0.13.5 +/* Open Traffic Generator API 0.13.6 * Open Traffic Generator API defines a model-driven, vendor-neutral and standard * interface for emulating layer 2-7 network devices and generating test traffic. * @@ -5285,6 +5285,7 @@ message FlowHeader { ppp = 17; igmpv1 = 18; mpls = 19; + snmpv2c = 20; } } // The available types of flow headers. If one is not provided the @@ -5348,6 +5349,9 @@ message FlowHeader { // Description missing in models FlowMpls mpls = 20; + + // Description missing in models + FlowSnmpv2c snmpv2c = 21; } // Custom packet header @@ -6037,6 +6041,247 @@ message FlowMpls { PatternFlowMplsTimeToLive time_to_live = 4; } +// SNMPv2C packet header as defined in RFC1901 and RFC3416. +message FlowSnmpv2c { + + // Description missing in models + PatternFlowSnmpv2cVersion version = 1; + + // It is an ASCII based octet string which identifies the SNMP community in which the + // sender and recipient of this message are located. It should match the read-only or + // read-write community string configured on the recipient for the PDU to be accepted. + // default = community + optional string community = 2; + + // Description missing in models + // required = true + FlowSnmpv2cData data = 3; +} + +// This contains the body of the SNMPv2C message. +// +// - Encoding of subsequent fields follow ASN.1 specification. +// Refer: http://www.itu.int/ITU-T/asn1/ +message FlowSnmpv2cData { + + message Choice { + enum Enum { + unspecified = 0; + get_request = 1; + get_next_request = 2; + response = 3; + set_request = 4; + get_bulk_request = 5; + inform_request = 6; + snmpv2_trap = 7; + report = 8; + } + } + // Description missing in models + // required = true + optional Choice.Enum choice = 1; + + // Description missing in models + FlowSnmpv2cPDU get_request = 2; + + // Description missing in models + FlowSnmpv2cPDU get_next_request = 3; + + // Description missing in models + FlowSnmpv2cPDU response = 4; + + // Description missing in models + FlowSnmpv2cPDU set_request = 5; + + // Description missing in models + FlowSnmpv2cBulkPDU get_bulk_request = 6; + + // Description missing in models + FlowSnmpv2cPDU inform_request = 7; + + // Description missing in models + FlowSnmpv2cPDU snmpv2_trap = 8; + + // Description missing in models + FlowSnmpv2cPDU report = 9; +} + +// This contains the body of the SNMPv2C PDU. +message FlowSnmpv2cPDU { + + // Description missing in models + PatternFlowSnmpv2cPDURequestId request_id = 1; + + message ErrorStatus { + enum Enum { + unspecified = 0; + no_error = 1; + too_big = 2; + no_such_name = 3; + bad_value = 4; + read_only = 5; + gen_err = 6; + no_access = 7; + wrong_type = 8; + wrong_length = 9; + wrong_encoding = 10; + wrong_value = 11; + no_creation = 12; + inconsistent_value = 13; + resource_unavailable = 14; + commit_failed = 15; + undo_failed = 16; + authorization_error = 17; + not_writable = 18; + inconsistent_name = 19; + } + } + // The SNMP agent places an error code in this field in the response message if an error + // occurred processing the request. + // default = ErrorStatus.Enum.no_error + optional ErrorStatus.Enum error_status = 2; + + // Description missing in models + PatternFlowSnmpv2cPDUErrorIndex error_index = 3; + + // A Sequence of variable_bindings. + repeated FlowSnmpv2cVariableBinding variable_bindings = 4; +} + +// The purpose of the GetBulkRequest-PDU is to request the transfer of a potentially +// large amount of data, including, but not limited to, the efficient and rapid retrieval +// of large tables. +message FlowSnmpv2cBulkPDU { + + // Description missing in models + PatternFlowSnmpv2cBulkPDURequestId request_id = 1; + + // Description missing in models + PatternFlowSnmpv2cBulkPDUNonRepeaters non_repeaters = 2; + + // Description missing in models + PatternFlowSnmpv2cBulkPDUMaxRepetitions max_repetitions = 3; + + // A Sequence of variable_bindings. + repeated FlowSnmpv2cVariableBinding variable_bindings = 4; +} + +// A Sequence of two fields, an object_identifier and the value for/from that object_identifier. +message FlowSnmpv2cVariableBinding { + + // The Object Identifier points to a particular parameter in the SNMP agent. + // - Encoding of this field follows RFC2578(section 3.5) and ASN.1 X.690(section 8.1.3.6) + // specification. + // Refer: http://www.itu.int/ITU-T/asn1/ + // - According to BER, the first two numbers of any OID (x.y) are encoded as one value + // using the formula (40*x)+y. + // Example, the first two numbers of an SNMP OID 1.3... are encoded as 43 or 0x2B, + // because (40*1)+3 = 43. + // - After the first two numbers are encoded, the subsequent numbers in the OID are + // each encoded as a byte. + // - However, a special rule is required for large numbers because one byte can only + // represent a number from 0-127. + // - The rule for large numbers states that only the lower 7 bits in the byte are used + // for holding the value (0-127). + // - The highest order bit(8th) is used as a flag to indicate that this number spans + // more than one byte. Therefore, any number over 127 must be encoded using more than + // one byte. + // - Example, the number 2680 in the OID '1.3.6.1.4.1.2680.1.2.7.3.2.0' cannot be + // encoded using a single byte. + // According to this rule, the number 2680 must be encoded as 0x94 0x78. + // Since the most significant bit is set in the first byte (0x94), it indicates + // that number spans to the next byte. + // Since the most significant bit is not set in the next byte (0x78), it indicates + // that the number ends at the second byte. + // The value is derived by appending 7 bits from each of the concatenated bytes + // i.e (0x14 *128^1) + (0x78 * 128^0) = 2680. + // default = 0.1 + optional string object_identifier = 1; + + // Description missing in models + FlowSnmpv2cVariableBindingValue value = 2; +} + +// The value for the object_identifier as per RFC2578. +message FlowSnmpv2cVariableBindingValue { + + message Choice { + enum Enum { + unspecified = 0; + no_value = 1; + integer_value = 2; + string_value = 3; + object_identifier_value = 4; + ip_address_value = 5; + counter_value = 6; + timeticks_value = 7; + arbitrary_value = 8; + big_counter_value = 9; + unsigned_integer_value = 10; + } + } + // Description missing in models + // default = Choice.Enum.no_value + optional Choice.Enum choice = 1; + + // Description missing in models + PatternFlowSnmpv2cVariableBindingValueIntegerValue integer_value = 2; + + // It contains the hex bytes of the value to be sent. As of now it is restricted to + // 5000 bytes. + // default = string + optional string string_value = 3; + + // The Object Identifier points to a particular parameter in the SNMP agent. + // - Encoding of this field follows RFC2578(section 3.5) and ASN.1 X.690(section 8.1.3.6) + // specification. + // Refer: http://www.itu.int/ITU-T/asn1/ + // - According to BER, the first two numbers of any OID (x.y) are encoded as one value + // using the formula (40*x)+y. + // Example, the first two numbers of an SNMP OID 1.3... are encoded as 43 or 0x2B, + // because (40*1)+3 = 43. + // - After the first two numbers are encoded, the subsequent numbers in the OID are + // each encoded as a byte. + // - However, a special rule is required for large numbers because one byte can only + // represent a number from 0-127. + // - The rule for large numbers states that only the lower 7 bits in the byte are used + // for holding the value (0-127). + // - The highest order bit(8th) is used as a flag to indicate that this number spans + // more than one byte. Therefore, any number over 127 must be encoded using more than + // one byte. + // - Example, the number 2680 in the OID '1.3.6.1.4.1.2680.1.2.7.3.2.0' cannot be + // encoded using a single byte. + // According to this rule, the number 2680 must be encoded as 0x94 0x78. + // Since the most significant bit is set in the first byte (0x94), it indicates + // that number spans to the next byte. + // Since the most significant bit is not set in the next byte (0x78), it indicates + // that the number ends at the second byte. + // The value is derived by appending 7 bits from each of the concatenated bytes + // i.e (0x14 *128^1) + (0x78 * 128^0) = 2680. + // default = 0.1 + optional string object_identifier_value = 4; + + // Description missing in models + PatternFlowSnmpv2cVariableBindingValueIpAddressValue ip_address_value = 5; + + // Description missing in models + PatternFlowSnmpv2cVariableBindingValueCounterValue counter_value = 6; + + // Description missing in models + PatternFlowSnmpv2cVariableBindingValueTimeticksValue timeticks_value = 7; + + // It contains the hex bytes of the value to be sent. As of now it is restricted to + // 5000 bytes. + // default = 00 + optional string arbitrary_value = 8; + + // Description missing in models + PatternFlowSnmpv2cVariableBindingValueBigCounterValue big_counter_value = 9; + + // Description missing in models + PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValue unsigned_integer_value = 10; +} + // The frame size which overrides the total length of the packet message FlowSize { @@ -20224,6 +20469,612 @@ message PatternFlowMplsTimeToLive { repeated PatternFlowMplsTimeToLiveMetricTag metric_tags = 7; } +// integer counter pattern +message PatternFlowSnmpv2cVersionCounter { + + // Description missing in models + // default = 1 + optional uint32 start = 1; + + // Description missing in models + // default = 1 + optional uint32 step = 2; + + // Description missing in models + // default = 1 + optional uint32 count = 3; +} + +// Version +message PatternFlowSnmpv2cVersion { + + message Choice { + enum Enum { + unspecified = 0; + value = 2; + values = 3; + increment = 4; + decrement = 5; + } + } + // Description missing in models + // default = Choice.Enum.value + optional Choice.Enum choice = 1; + + // Description missing in models + // default = 1 + optional uint32 value = 2; + + // Description missing in models + // default = [1] + repeated uint32 values = 3; + + // Description missing in models + PatternFlowSnmpv2cVersionCounter increment = 5; + + // Description missing in models + PatternFlowSnmpv2cVersionCounter decrement = 6; +} + +// integer counter pattern +message PatternFlowSnmpv2cPDURequestIdCounter { + + // Description missing in models + // default = 0 + optional int32 start = 1; + + // Description missing in models + // default = 1 + optional int32 step = 2; + + // Description missing in models + // default = 1 + optional int32 count = 3; +} + +// Identifies a particular SNMP request. +// This index is echoed back in the response from the SNMP agent, +// allowing the SNMP manager to match an incoming response to the appropriate request. +// +// - Encoding of this field follows ASN.1 X.690(section 8.3) specification. +// Refer: http://www.itu.int/ITU-T/asn1/ +message PatternFlowSnmpv2cPDURequestId { + + message Choice { + enum Enum { + unspecified = 0; + value = 2; + values = 3; + increment = 4; + decrement = 5; + } + } + // Description missing in models + // default = Choice.Enum.value + optional Choice.Enum choice = 1; + + // Description missing in models + // default = 0 + optional int32 value = 2; + + // Description missing in models + // default = [0] + repeated int32 values = 3; + + // Description missing in models + PatternFlowSnmpv2cPDURequestIdCounter increment = 5; + + // Description missing in models + PatternFlowSnmpv2cPDURequestIdCounter decrement = 6; +} + +// integer counter pattern +message PatternFlowSnmpv2cPDUErrorIndexCounter { + + // Description missing in models + // default = 0 + optional uint32 start = 1; + + // Description missing in models + // default = 1 + optional uint32 step = 2; + + // Description missing in models + // default = 1 + optional uint32 count = 3; +} + +// When Error Status is non-zero, this field contains a pointer that specifies which +// object generated the error. Always zero in a request. +message PatternFlowSnmpv2cPDUErrorIndex { + + message Choice { + enum Enum { + unspecified = 0; + value = 2; + values = 3; + increment = 4; + decrement = 5; + } + } + // Description missing in models + // default = Choice.Enum.value + optional Choice.Enum choice = 1; + + // Description missing in models + // default = 0 + optional uint32 value = 2; + + // Description missing in models + // default = [0] + repeated uint32 values = 3; + + // Description missing in models + PatternFlowSnmpv2cPDUErrorIndexCounter increment = 5; + + // Description missing in models + PatternFlowSnmpv2cPDUErrorIndexCounter decrement = 6; +} + +// integer counter pattern +message PatternFlowSnmpv2cBulkPDURequestIdCounter { + + // Description missing in models + // default = 0 + optional int32 start = 1; + + // Description missing in models + // default = 1 + optional int32 step = 2; + + // Description missing in models + // default = 1 + optional int32 count = 3; +} + +// Identifies a particular SNMP request. +// This index is echoed back in the response from the SNMP agent, +// allowing the SNMP manager to match an incoming response to the appropriate request. +// +// - Encoding of this field follows ASN.1 X.690(section 8.3) specification. +// Refer: http://www.itu.int/ITU-T/asn1/ +message PatternFlowSnmpv2cBulkPDURequestId { + + message Choice { + enum Enum { + unspecified = 0; + value = 2; + values = 3; + increment = 4; + decrement = 5; + } + } + // Description missing in models + // default = Choice.Enum.value + optional Choice.Enum choice = 1; + + // Description missing in models + // default = 0 + optional int32 value = 2; + + // Description missing in models + // default = [0] + repeated int32 values = 3; + + // Description missing in models + PatternFlowSnmpv2cBulkPDURequestIdCounter increment = 5; + + // Description missing in models + PatternFlowSnmpv2cBulkPDURequestIdCounter decrement = 6; +} + +// One variable binding in the Response-PDU is requested for the first non_repeaters +// variable bindings in the GetBulkRequest. +message PatternFlowSnmpv2cBulkPDUNonRepeaters { + + message Choice { + enum Enum { + unspecified = 0; + value = 2; + values = 3; + } + } + // Description missing in models + // default = Choice.Enum.value + optional Choice.Enum choice = 1; + + // Description missing in models + // default = 0 + optional uint32 value = 2; + + // Description missing in models + // default = [0] + repeated uint32 values = 3; +} + +// integer counter pattern +message PatternFlowSnmpv2cBulkPDUMaxRepetitionsCounter { + + // Description missing in models + // default = 0 + optional uint32 start = 1; + + // Description missing in models + // default = 1 + optional uint32 step = 2; + + // Description missing in models + // default = 1 + optional uint32 count = 3; +} + +// A maximum of max_repetitions variable bindings are requested in the Response-PDU +// for each of the remaining variable bindings in the GetBulkRequest after the non_repeaters +// variable bindings. +message PatternFlowSnmpv2cBulkPDUMaxRepetitions { + + message Choice { + enum Enum { + unspecified = 0; + value = 2; + values = 3; + increment = 4; + decrement = 5; + } + } + // Description missing in models + // default = Choice.Enum.value + optional Choice.Enum choice = 1; + + // Description missing in models + // default = 0 + optional uint32 value = 2; + + // Description missing in models + // default = [0] + repeated uint32 values = 3; + + // Description missing in models + PatternFlowSnmpv2cBulkPDUMaxRepetitionsCounter increment = 5; + + // Description missing in models + PatternFlowSnmpv2cBulkPDUMaxRepetitionsCounter decrement = 6; +} + +// integer counter pattern +message PatternFlowSnmpv2cVariableBindingValueIntegerValueCounter { + + // Description missing in models + // default = 0 + optional int32 start = 1; + + // Description missing in models + // default = 1 + optional int32 step = 2; + + // Description missing in models + // default = 1 + optional int32 count = 3; +} + +// Integer value returned for the requested OID. +message PatternFlowSnmpv2cVariableBindingValueIntegerValue { + + message Choice { + enum Enum { + unspecified = 0; + value = 2; + values = 3; + increment = 4; + decrement = 5; + } + } + // Description missing in models + // default = Choice.Enum.value + optional Choice.Enum choice = 1; + + // Description missing in models + // default = 0 + optional int32 value = 2; + + // Description missing in models + // default = [0] + repeated int32 values = 3; + + // Description missing in models + PatternFlowSnmpv2cVariableBindingValueIntegerValueCounter increment = 5; + + // Description missing in models + PatternFlowSnmpv2cVariableBindingValueIntegerValueCounter decrement = 6; +} + +// ipv4 counter pattern +message PatternFlowSnmpv2cVariableBindingValueIpAddressValueCounter { + + // Description missing in models + // default = 0.0.0.0 + optional string start = 1; + + // Description missing in models + // default = 0.0.0.1 + optional string step = 2; + + // Description missing in models + // default = 1 + optional uint32 count = 3; +} + +// IPv4 address returned for the requested OID. +message PatternFlowSnmpv2cVariableBindingValueIpAddressValue { + + message Choice { + enum Enum { + unspecified = 0; + value = 2; + values = 3; + increment = 4; + decrement = 5; + } + } + // Description missing in models + // default = Choice.Enum.value + optional Choice.Enum choice = 1; + + // Description missing in models + // default = 0.0.0.0 + optional string value = 2; + + // Description missing in models + // default = ['0.0.0.0'] + repeated string values = 3; + + // Description missing in models + PatternFlowSnmpv2cVariableBindingValueIpAddressValueCounter increment = 5; + + // Description missing in models + PatternFlowSnmpv2cVariableBindingValueIpAddressValueCounter decrement = 6; +} + +// integer counter pattern +message PatternFlowSnmpv2cVariableBindingValueCounterValueCounter { + + // Description missing in models + // default = 0 + optional uint32 start = 1; + + // Description missing in models + // default = 1 + optional uint32 step = 2; + + // Description missing in models + // default = 1 + optional uint32 count = 3; +} + +// Counter returned for the requested OID. +message PatternFlowSnmpv2cVariableBindingValueCounterValue { + + message Choice { + enum Enum { + unspecified = 0; + value = 2; + values = 3; + increment = 4; + decrement = 5; + } + } + // Description missing in models + // default = Choice.Enum.value + optional Choice.Enum choice = 1; + + // Description missing in models + // default = 0 + optional uint32 value = 2; + + // Description missing in models + // default = [0] + repeated uint32 values = 3; + + // Description missing in models + PatternFlowSnmpv2cVariableBindingValueCounterValueCounter increment = 5; + + // Description missing in models + PatternFlowSnmpv2cVariableBindingValueCounterValueCounter decrement = 6; +} + +// integer counter pattern +message PatternFlowSnmpv2cVariableBindingValueTimeticksValueCounter { + + // Description missing in models + // default = 0 + optional uint32 start = 1; + + // Description missing in models + // default = 1 + optional uint32 step = 2; + + // Description missing in models + // default = 1 + optional uint32 count = 3; +} + +// Timeticks returned for the requested OID. +message PatternFlowSnmpv2cVariableBindingValueTimeticksValue { + + message Choice { + enum Enum { + unspecified = 0; + value = 2; + values = 3; + increment = 4; + decrement = 5; + } + } + // Description missing in models + // default = Choice.Enum.value + optional Choice.Enum choice = 1; + + // Description missing in models + // default = 0 + optional uint32 value = 2; + + // Description missing in models + // default = [0] + repeated uint32 values = 3; + + // Description missing in models + PatternFlowSnmpv2cVariableBindingValueTimeticksValueCounter increment = 5; + + // Description missing in models + PatternFlowSnmpv2cVariableBindingValueTimeticksValueCounter decrement = 6; +} + +// integer counter pattern +message PatternFlowSnmpv2cVariableBindingValueBigCounterValueCounter { + + // Description missing in models + // default = 0 + optional uint64 start = 1; + + // Description missing in models + // default = 1 + optional uint64 step = 2; + + // Description missing in models + // default = 1 + optional uint64 count = 3; +} + +// Big counter returned for the requested OID. +message PatternFlowSnmpv2cVariableBindingValueBigCounterValue { + + message Choice { + enum Enum { + unspecified = 0; + value = 2; + values = 3; + increment = 4; + decrement = 5; + } + } + // Description missing in models + // default = Choice.Enum.value + optional Choice.Enum choice = 1; + + // Description missing in models + // default = 0 + optional uint64 value = 2; + + // Description missing in models + // default = [0] + repeated uint64 values = 3; + + // Description missing in models + PatternFlowSnmpv2cVariableBindingValueBigCounterValueCounter increment = 5; + + // Description missing in models + PatternFlowSnmpv2cVariableBindingValueBigCounterValueCounter decrement = 6; +} + +// integer counter pattern +message PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValueCounter { + + // Description missing in models + // default = 0 + optional uint32 start = 1; + + // Description missing in models + // default = 1 + optional uint32 step = 2; + + // Description missing in models + // default = 1 + optional uint32 count = 3; +} + +// Unsigned integer value returned for the requested OID. +message PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValue { + + message Choice { + enum Enum { + unspecified = 0; + value = 2; + values = 3; + increment = 4; + decrement = 5; + } + } + // Description missing in models + // default = Choice.Enum.value + optional Choice.Enum choice = 1; + + // Description missing in models + // default = 0 + optional uint32 value = 2; + + // Description missing in models + // default = [0] + repeated uint32 values = 3; + + // Description missing in models + PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValueCounter increment = 5; + + // Description missing in models + PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValueCounter decrement = 6; +} + +// integer counter pattern +message PatternFlowSnmpv2cCommonRequestIdCounter { + + // Description missing in models + // default = 0 + optional int32 start = 1; + + // Description missing in models + // default = 1 + optional int32 step = 2; + + // Description missing in models + // default = 1 + optional int32 count = 3; +} + +// Identifies a particular SNMP request. +// This index is echoed back in the response from the SNMP agent, +// allowing the SNMP manager to match an incoming response to the appropriate request. +// +// - Encoding of this field follows ASN.1 X.690(section 8.3) specification. +// Refer: http://www.itu.int/ITU-T/asn1/ +message PatternFlowSnmpv2cCommonRequestId { + + message Choice { + enum Enum { + unspecified = 0; + value = 2; + values = 3; + increment = 4; + decrement = 5; + } + } + // Description missing in models + // default = Choice.Enum.value + optional Choice.Enum choice = 1; + + // Description missing in models + // default = 0 + optional int32 value = 2; + + // Description missing in models + // default = [0] + repeated int32 values = 3; + + // Description missing in models + PatternFlowSnmpv2cCommonRequestIdCounter increment = 5; + + // Description missing in models + PatternFlowSnmpv2cCommonRequestIdCounter decrement = 6; +} + // Version details message Version { diff --git a/requirements.txt b/requirements.txt index f6aa7355..e4644e7b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,11 +1,11 @@ --prefer-binary -protobuf~=3.15.0 ; python_version <= '3.6' -protobuf~=4.23.3 ; python_version > '3.6' -requests grpcio-tools~=1.35.0 ; python_version <= '3.6' grpcio~=1.35.0 ; python_version <= '3.6' grpcio-tools~=1.54.2 ; python_version > '3.6' grpcio~=1.54.2 ; python_version > '3.6' PyYAML -urllib3 +protobuf~=3.15.0 ; python_version <= '3.6' +protobuf~=4.23.3 ; python_version > '3.6' +requests semantic_version +urllib3 diff --git a/snappi/__init__.py b/snappi/__init__.py index 1a5664ce..1da75f08 100644 --- a/snappi/__init__.py +++ b/snappi/__init__.py @@ -785,6 +785,36 @@ from .snappi import PatternFlowMplsTimeToLiveCounter from .snappi import PatternFlowMplsTimeToLiveMetricTag from .snappi import PatternFlowMplsTimeToLiveMetricTagIter +from .snappi import FlowSnmpv2c +from .snappi import PatternFlowSnmpv2cVersion +from .snappi import PatternFlowSnmpv2cVersionCounter +from .snappi import FlowSnmpv2cData +from .snappi import FlowSnmpv2cPDU +from .snappi import PatternFlowSnmpv2cPDURequestId +from .snappi import PatternFlowSnmpv2cPDURequestIdCounter +from .snappi import PatternFlowSnmpv2cPDUErrorIndex +from .snappi import PatternFlowSnmpv2cPDUErrorIndexCounter +from .snappi import FlowSnmpv2cVariableBinding +from .snappi import FlowSnmpv2cVariableBindingValue +from .snappi import PatternFlowSnmpv2cVariableBindingValueIntegerValue +from .snappi import PatternFlowSnmpv2cVariableBindingValueIntegerValueCounter +from .snappi import PatternFlowSnmpv2cVariableBindingValueIpAddressValue +from .snappi import PatternFlowSnmpv2cVariableBindingValueIpAddressValueCounter +from .snappi import PatternFlowSnmpv2cVariableBindingValueCounterValue +from .snappi import PatternFlowSnmpv2cVariableBindingValueCounterValueCounter +from .snappi import PatternFlowSnmpv2cVariableBindingValueTimeticksValue +from .snappi import PatternFlowSnmpv2cVariableBindingValueTimeticksValueCounter +from .snappi import PatternFlowSnmpv2cVariableBindingValueBigCounterValue +from .snappi import PatternFlowSnmpv2cVariableBindingValueBigCounterValueCounter +from .snappi import PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValue +from .snappi import PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValueCounter +from .snappi import FlowSnmpv2cVariableBindingIter +from .snappi import FlowSnmpv2cBulkPDU +from .snappi import PatternFlowSnmpv2cBulkPDURequestId +from .snappi import PatternFlowSnmpv2cBulkPDURequestIdCounter +from .snappi import PatternFlowSnmpv2cBulkPDUNonRepeaters +from .snappi import PatternFlowSnmpv2cBulkPDUMaxRepetitions +from .snappi import PatternFlowSnmpv2cBulkPDUMaxRepetitionsCounter from .snappi import FlowHeaderIter from .snappi import FlowSize from .snappi import FlowSizeIncrement diff --git a/snappi/docs/openapi.yaml b/snappi/docs/openapi.yaml index de16a49c..7662c8cd 100644 --- a/snappi/docs/openapi.yaml +++ b/snappi/docs/openapi.yaml @@ -7,7 +7,7 @@ info: \ issue](https://github.com/open-traffic-generator/models/issues) in the models\ \ repository\n- [fork the models repository](https://github.com/open-traffic-generator/models)\ \ and submit a PR" - version: 0.13.5 + version: 0.13.6 contact: url: https://github.com/open-traffic-generator/models license: @@ -7180,6 +7180,8 @@ components: x-field-uid: 18 mpls: x-field-uid: 19 + snmpv2c: + x-field-uid: 20 enum: - custom - ethernet @@ -7200,6 +7202,7 @@ components: - ppp - igmpv1 - mpls + - snmpv2c custom: $ref: '#/components/schemas/Flow.Custom' x-field-uid: 2 @@ -7257,6 +7260,9 @@ components: mpls: $ref: '#/components/schemas/Flow.Mpls' x-field-uid: 20 + snmpv2c: + $ref: '#/components/schemas/Flow.Snmpv2c' + x-field-uid: 21 Flow.Custom: type: object description: |- @@ -8006,6 +8012,327 @@ components: time_to_live: x-field-uid: 4 $ref: '#/components/schemas/Pattern.Flow.Mpls.TimeToLive' + Flow.Snmpv2c: + description: |- + SNMPv2C packet header as defined in RFC1901 and RFC3416. + type: object + required: + - data + properties: + version: + x-field-uid: 1 + $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.Version' + community: + description: |- + It is an ASCII based octet string which identifies the SNMP community in which the sender and recipient of this message are located. It should match the read-only or read-write community string configured on the recipient for the PDU to be accepted. + type: string + maxLength: 10000 + default: community + x-field-uid: 2 + data: + $ref: '#/components/schemas/Flow.Snmpv2c.Data' + x-field-uid: 3 + Flow.Snmpv2c.Data: + description: |- + This contains the body of the SNMPv2C message. + + - Encoding of subsequent fields follow ASN.1 specification. + Refer: http://www.itu.int/ITU-T/asn1/ + type: object + required: + - choice + properties: + choice: + type: string + x-field-uid: 1 + x-enum: + get_request: + x-field-uid: 1 + get_next_request: + x-field-uid: 2 + response: + x-field-uid: 3 + set_request: + x-field-uid: 4 + get_bulk_request: + x-field-uid: 5 + inform_request: + x-field-uid: 6 + snmpv2_trap: + x-field-uid: 7 + report: + x-field-uid: 8 + enum: + - get_request + - get_next_request + - response + - set_request + - get_bulk_request + - inform_request + - snmpv2_trap + - report + get_request: + $ref: '#/components/schemas/Flow.Snmpv2c.PDU' + x-field-uid: 2 + get_next_request: + $ref: '#/components/schemas/Flow.Snmpv2c.PDU' + x-field-uid: 3 + response: + $ref: '#/components/schemas/Flow.Snmpv2c.PDU' + x-field-uid: 4 + set_request: + $ref: '#/components/schemas/Flow.Snmpv2c.PDU' + x-field-uid: 5 + get_bulk_request: + $ref: '#/components/schemas/Flow.Snmpv2c.BulkPDU' + x-field-uid: 6 + inform_request: + $ref: '#/components/schemas/Flow.Snmpv2c.PDU' + x-field-uid: 7 + snmpv2_trap: + $ref: '#/components/schemas/Flow.Snmpv2c.PDU' + x-field-uid: 8 + report: + $ref: '#/components/schemas/Flow.Snmpv2c.PDU' + x-field-uid: 9 + Flow.Snmpv2c.PDU: + description: |- + This contains the body of the SNMPv2C PDU. + type: object + properties: + request_id: + x-field-uid: 1 + $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.PDU.RequestId' + error_status: + description: |- + The SNMP agent places an error code in this field in the response message if an error occurred processing the request. + type: string + default: no_error + x-enum: + no_error: + x-field-uid: 1 + too_big: + x-field-uid: 2 + no_such_name: + x-field-uid: 3 + bad_value: + x-field-uid: 4 + read_only: + x-field-uid: 5 + gen_err: + x-field-uid: 6 + no_access: + x-field-uid: 7 + wrong_type: + x-field-uid: 8 + wrong_length: + x-field-uid: 9 + wrong_encoding: + x-field-uid: 10 + wrong_value: + x-field-uid: 11 + no_creation: + x-field-uid: 12 + inconsistent_value: + x-field-uid: 13 + resource_unavailable: + x-field-uid: 14 + commit_failed: + x-field-uid: 15 + undo_failed: + x-field-uid: 16 + authorization_error: + x-field-uid: 17 + not_writable: + x-field-uid: 18 + inconsistent_name: + x-field-uid: 19 + x-field-uid: 2 + enum: + - no_error + - too_big + - no_such_name + - bad_value + - read_only + - gen_err + - no_access + - wrong_type + - wrong_length + - wrong_encoding + - wrong_value + - no_creation + - inconsistent_value + - resource_unavailable + - commit_failed + - undo_failed + - authorization_error + - not_writable + - inconsistent_name + error_index: + x-field-uid: 3 + $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.PDU.ErrorIndex' + variable_bindings: + description: |- + A Sequence of variable_bindings. + type: array + items: + $ref: '#/components/schemas/Flow.Snmpv2c.VariableBinding' + x-field-uid: 4 + Flow.Snmpv2c.BulkPDU: + description: |- + The purpose of the GetBulkRequest-PDU is to request the transfer of a potentially large amount of data, including, but not limited to, the efficient and rapid retrieval of large tables. + type: object + properties: + request_id: + x-field-uid: 1 + $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.BulkPDU.RequestId' + non_repeaters: + x-field-uid: 2 + $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.BulkPDU.NonRepeaters' + max_repetitions: + x-field-uid: 3 + $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.BulkPDU.MaxRepetitions' + variable_bindings: + description: |- + A Sequence of variable_bindings. + type: array + items: + $ref: '#/components/schemas/Flow.Snmpv2c.VariableBinding' + x-field-uid: 4 + Flow.Snmpv2c.VariableBinding: + description: |- + A Sequence of two fields, an object_identifier and the value for/from that object_identifier. + type: object + properties: + object_identifier: + x-field-uid: 1 + description: "The Object Identifier points to a particular parameter in\ + \ the SNMP agent. \n- Encoding of this field follows RFC2578(section 3.5)\ + \ and ASN.1 X.690(section 8.1.3.6) specification.\n Refer: http://www.itu.int/ITU-T/asn1/\n\ + - According to BER, the first two numbers of any OID (x.y) are encoded\ + \ as one value using the formula (40*x)+y. \n Example, the first two\ + \ numbers of an SNMP OID 1.3... are encoded as 43 or 0x2B, because (40*1)+3\ + \ = 43. \n- After the first two numbers are encoded, the subsequent numbers\ + \ in the OID are each encoded as a byte. \n- However, a special rule is\ + \ required for large numbers because one byte can only represent a number\ + \ from 0-127. \n- The rule for large numbers states that only the lower\ + \ 7 bits in the byte are used for holding the value (0-127). \n- The highest\ + \ order bit(8th) is used as a flag to indicate that this number spans\ + \ more than one byte. Therefore, any number over 127 must be encoded using\ + \ more than one byte. \n - Example, the number 2680 in the OID '1.3.6.1.4.1.2680.1.2.7.3.2.0'\ + \ cannot be encoded using a single byte. \n According to this rule,\ + \ the number 2680 must be encoded as 0x94 0x78. \n Since the most significant\ + \ bit is set in the first byte (0x94), it indicates that number spans\ + \ to the next byte.\n Since the most significant bit is not set in\ + \ the next byte (0x78), it indicates that the number ends at the second\ + \ byte.\n The value is derived by appending 7 bits from each of the\ + \ concatenated bytes i.e (0x14 *128^1) + (0x78 * 128^0) = 2680." + type: string + format: oid + default: '0.1' + value: + $ref: '#/components/schemas/Flow.Snmpv2c.VariableBindingValue' + x-field-uid: 2 + Flow.Snmpv2c.VariableBindingValue: + description: |- + The value for the object_identifier as per RFC2578. + type: object + properties: + choice: + type: string + default: no_value + x-field-uid: 1 + x-enum: + no_value: + x-field-uid: 1 + integer_value: + x-field-uid: 2 + string_value: + x-field-uid: 3 + object_identifier_value: + x-field-uid: 4 + ip_address_value: + x-field-uid: 5 + counter_value: + x-field-uid: 6 + timeticks_value: + x-field-uid: 7 + arbitrary_value: + x-field-uid: 8 + big_counter_value: + x-field-uid: 9 + unsigned_integer_value: + x-field-uid: 10 + enum: + - no_value + - integer_value + - string_value + - object_identifier_value + - ip_address_value + - counter_value + - timeticks_value + - arbitrary_value + - big_counter_value + - unsigned_integer_value + integer_value: + x-field-uid: 2 + $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.VariableBindingValue.IntegerValue' + string_value: + description: |- + It contains the hex bytes of the value to be sent. As of now it is restricted to 5000 bytes. + type: string + maxLength: 10000 + default: string + x-field-uid: 3 + object_identifier_value: + x-field-uid: 4 + description: "The Object Identifier points to a particular parameter in\ + \ the SNMP agent. \n- Encoding of this field follows RFC2578(section 3.5)\ + \ and ASN.1 X.690(section 8.1.3.6) specification.\n Refer: http://www.itu.int/ITU-T/asn1/\n\ + - According to BER, the first two numbers of any OID (x.y) are encoded\ + \ as one value using the formula (40*x)+y. \n Example, the first two\ + \ numbers of an SNMP OID 1.3... are encoded as 43 or 0x2B, because (40*1)+3\ + \ = 43. \n- After the first two numbers are encoded, the subsequent numbers\ + \ in the OID are each encoded as a byte. \n- However, a special rule is\ + \ required for large numbers because one byte can only represent a number\ + \ from 0-127. \n- The rule for large numbers states that only the lower\ + \ 7 bits in the byte are used for holding the value (0-127). \n- The highest\ + \ order bit(8th) is used as a flag to indicate that this number spans\ + \ more than one byte. Therefore, any number over 127 must be encoded using\ + \ more than one byte. \n - Example, the number 2680 in the OID '1.3.6.1.4.1.2680.1.2.7.3.2.0'\ + \ cannot be encoded using a single byte. \n According to this rule,\ + \ the number 2680 must be encoded as 0x94 0x78. \n Since the most significant\ + \ bit is set in the first byte (0x94), it indicates that number spans\ + \ to the next byte.\n Since the most significant bit is not set in\ + \ the next byte (0x78), it indicates that the number ends at the second\ + \ byte.\n The value is derived by appending 7 bits from each of the\ + \ concatenated bytes i.e (0x14 *128^1) + (0x78 * 128^0) = 2680." + type: string + format: oid + default: '0.1' + ip_address_value: + x-field-uid: 5 + $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.VariableBindingValue.IpAddressValue' + counter_value: + x-field-uid: 6 + $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.VariableBindingValue.CounterValue' + timeticks_value: + x-field-uid: 7 + $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.VariableBindingValue.TimeticksValue' + arbitrary_value: + description: |- + It contains the hex bytes of the value to be sent. As of now it is restricted to 5000 bytes. + type: string + format: hex + maxLength: 10000 + default: '00' + x-field-uid: 8 + big_counter_value: + x-field-uid: 9 + $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.VariableBindingValue.BigCounterValue' + unsigned_integer_value: + x-field-uid: 10 + $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.VariableBindingValue.UnsignedIntegerValue' Flow.Size: description: |- The frame size which overrides the total length of the packet @@ -28614,6 +28941,791 @@ components: items: $ref: '#/components/schemas/Pattern.Flow.Mpls.TimeToLive.MetricTag' x-field-uid: 7 + Pattern.Flow.Snmpv2c.Version.Counter: + description: |- + integer counter pattern + type: object + properties: + start: + type: integer + x-field-uid: 1 + default: 1 + format: uint32 + maximum: 255 + step: + type: integer + x-field-uid: 2 + default: 1 + format: uint32 + maximum: 255 + count: + type: integer + x-field-uid: 3 + default: 1 + format: uint32 + maximum: 255 + Pattern.Flow.Snmpv2c.Version: + description: |- + Version + type: object + properties: + choice: + type: string + x-enum: + value: + x-field-uid: 2 + values: + x-field-uid: 3 + increment: + x-field-uid: 4 + decrement: + x-field-uid: 5 + default: value + x-field-uid: 1 + enum: + - value + - values + - increment + - decrement + value: + type: integer + x-field-uid: 2 + default: 1 + format: uint32 + maximum: 255 + values: + type: array + items: + type: integer + format: uint32 + maximum: 255 + x-field-uid: 3 + default: + - 1 + increment: + $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.Version.Counter' + x-field-uid: 5 + decrement: + $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.Version.Counter' + x-field-uid: 6 + Pattern.Flow.Snmpv2c.PDU.RequestId.Counter: + description: |- + integer counter pattern + type: object + properties: + start: + type: integer + x-field-uid: 1 + default: 0 + format: int32 + step: + type: integer + x-field-uid: 2 + default: 1 + format: int32 + count: + type: integer + x-field-uid: 3 + default: 1 + format: int32 + Pattern.Flow.Snmpv2c.PDU.RequestId: + description: "Identifies a particular SNMP request. \nThis index is echoed back\ + \ in the response from the SNMP agent, \nallowing the SNMP manager to match\ + \ an incoming response to the appropriate request.\n\n- Encoding of this field\ + \ follows ASN.1 X.690(section 8.3) specification.\n Refer: http://www.itu.int/ITU-T/asn1/" + type: object + properties: + choice: + type: string + x-enum: + value: + x-field-uid: 2 + values: + x-field-uid: 3 + increment: + x-field-uid: 4 + decrement: + x-field-uid: 5 + default: value + x-field-uid: 1 + enum: + - value + - values + - increment + - decrement + value: + type: integer + x-field-uid: 2 + default: 0 + format: int32 + values: + type: array + items: + type: integer + format: int32 + x-field-uid: 3 + default: + - 0 + increment: + $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.PDU.RequestId.Counter' + x-field-uid: 5 + decrement: + $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.PDU.RequestId.Counter' + x-field-uid: 6 + Pattern.Flow.Snmpv2c.PDU.ErrorIndex.Counter: + description: |- + integer counter pattern + type: object + properties: + start: + type: integer + x-field-uid: 1 + default: 0 + format: uint32 + step: + type: integer + x-field-uid: 2 + default: 1 + format: uint32 + count: + type: integer + x-field-uid: 3 + default: 1 + format: uint32 + Pattern.Flow.Snmpv2c.PDU.ErrorIndex: + description: |- + When Error Status is non-zero, this field contains a pointer that specifies which object generated the error. Always zero in a request. + type: object + properties: + choice: + type: string + x-enum: + value: + x-field-uid: 2 + values: + x-field-uid: 3 + increment: + x-field-uid: 4 + decrement: + x-field-uid: 5 + default: value + x-field-uid: 1 + enum: + - value + - values + - increment + - decrement + value: + type: integer + x-field-uid: 2 + default: 0 + format: uint32 + values: + type: array + items: + type: integer + format: uint32 + x-field-uid: 3 + default: + - 0 + increment: + $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.PDU.ErrorIndex.Counter' + x-field-uid: 5 + decrement: + $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.PDU.ErrorIndex.Counter' + x-field-uid: 6 + Pattern.Flow.Snmpv2c.BulkPDU.RequestId.Counter: + description: |- + integer counter pattern + type: object + properties: + start: + type: integer + x-field-uid: 1 + default: 0 + format: int32 + step: + type: integer + x-field-uid: 2 + default: 1 + format: int32 + count: + type: integer + x-field-uid: 3 + default: 1 + format: int32 + Pattern.Flow.Snmpv2c.BulkPDU.RequestId: + description: "Identifies a particular SNMP request. \nThis index is echoed back\ + \ in the response from the SNMP agent, \nallowing the SNMP manager to match\ + \ an incoming response to the appropriate request.\n\n- Encoding of this field\ + \ follows ASN.1 X.690(section 8.3) specification.\n Refer: http://www.itu.int/ITU-T/asn1/" + type: object + properties: + choice: + type: string + x-enum: + value: + x-field-uid: 2 + values: + x-field-uid: 3 + increment: + x-field-uid: 4 + decrement: + x-field-uid: 5 + default: value + x-field-uid: 1 + enum: + - value + - values + - increment + - decrement + value: + type: integer + x-field-uid: 2 + default: 0 + format: int32 + values: + type: array + items: + type: integer + format: int32 + x-field-uid: 3 + default: + - 0 + increment: + $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.BulkPDU.RequestId.Counter' + x-field-uid: 5 + decrement: + $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.BulkPDU.RequestId.Counter' + x-field-uid: 6 + Pattern.Flow.Snmpv2c.BulkPDU.NonRepeaters: + description: |- + One variable binding in the Response-PDU is requested for the first non_repeaters variable bindings in the GetBulkRequest. + type: object + properties: + choice: + type: string + x-enum: + value: + x-field-uid: 2 + values: + x-field-uid: 3 + default: value + x-field-uid: 1 + enum: + - value + - values + value: + type: integer + x-field-uid: 2 + default: 0 + format: uint32 + values: + type: array + items: + type: integer + format: uint32 + x-field-uid: 3 + default: + - 0 + Pattern.Flow.Snmpv2c.BulkPDU.MaxRepetitions.Counter: + description: |- + integer counter pattern + type: object + properties: + start: + type: integer + x-field-uid: 1 + default: 0 + format: uint32 + step: + type: integer + x-field-uid: 2 + default: 1 + format: uint32 + count: + type: integer + x-field-uid: 3 + default: 1 + format: uint32 + Pattern.Flow.Snmpv2c.BulkPDU.MaxRepetitions: + description: |- + A maximum of max_repetitions variable bindings are requested in the Response-PDU for each of the remaining variable bindings in the GetBulkRequest after the non_repeaters variable bindings. + type: object + properties: + choice: + type: string + x-enum: + value: + x-field-uid: 2 + values: + x-field-uid: 3 + increment: + x-field-uid: 4 + decrement: + x-field-uid: 5 + default: value + x-field-uid: 1 + enum: + - value + - values + - increment + - decrement + value: + type: integer + x-field-uid: 2 + default: 0 + format: uint32 + values: + type: array + items: + type: integer + format: uint32 + x-field-uid: 3 + default: + - 0 + increment: + $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.BulkPDU.MaxRepetitions.Counter' + x-field-uid: 5 + decrement: + $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.BulkPDU.MaxRepetitions.Counter' + x-field-uid: 6 + Pattern.Flow.Snmpv2c.VariableBindingValue.IntegerValue.Counter: + description: |- + integer counter pattern + type: object + properties: + start: + type: integer + x-field-uid: 1 + default: 0 + format: int32 + step: + type: integer + x-field-uid: 2 + default: 1 + format: int32 + count: + type: integer + x-field-uid: 3 + default: 1 + format: int32 + Pattern.Flow.Snmpv2c.VariableBindingValue.IntegerValue: + description: |- + Integer value returned for the requested OID. + type: object + properties: + choice: + type: string + x-enum: + value: + x-field-uid: 2 + values: + x-field-uid: 3 + increment: + x-field-uid: 4 + decrement: + x-field-uid: 5 + default: value + x-field-uid: 1 + enum: + - value + - values + - increment + - decrement + value: + type: integer + x-field-uid: 2 + default: 0 + format: int32 + values: + type: array + items: + type: integer + format: int32 + x-field-uid: 3 + default: + - 0 + increment: + $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.VariableBindingValue.IntegerValue.Counter' + x-field-uid: 5 + decrement: + $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.VariableBindingValue.IntegerValue.Counter' + x-field-uid: 6 + Pattern.Flow.Snmpv2c.VariableBindingValue.IpAddressValue.Counter: + description: |- + ipv4 counter pattern + type: object + properties: + start: + type: string + x-field-uid: 1 + default: 0.0.0.0 + format: ipv4 + step: + type: string + x-field-uid: 2 + default: 0.0.0.1 + format: ipv4 + count: + type: integer + x-field-uid: 3 + default: 1 + format: uint32 + Pattern.Flow.Snmpv2c.VariableBindingValue.IpAddressValue: + description: |- + IPv4 address returned for the requested OID. + type: object + properties: + choice: + type: string + x-enum: + value: + x-field-uid: 2 + values: + x-field-uid: 3 + increment: + x-field-uid: 4 + decrement: + x-field-uid: 5 + default: value + x-field-uid: 1 + enum: + - value + - values + - increment + - decrement + value: + type: string + x-field-uid: 2 + default: 0.0.0.0 + format: ipv4 + values: + type: array + items: + type: string + format: ipv4 + x-field-uid: 3 + default: + - 0.0.0.0 + increment: + $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.VariableBindingValue.IpAddressValue.Counter' + x-field-uid: 5 + decrement: + $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.VariableBindingValue.IpAddressValue.Counter' + x-field-uid: 6 + Pattern.Flow.Snmpv2c.VariableBindingValue.CounterValue.Counter: + description: |- + integer counter pattern + type: object + properties: + start: + type: integer + x-field-uid: 1 + default: 0 + format: uint32 + step: + type: integer + x-field-uid: 2 + default: 1 + format: uint32 + count: + type: integer + x-field-uid: 3 + default: 1 + format: uint32 + Pattern.Flow.Snmpv2c.VariableBindingValue.CounterValue: + description: |- + Counter returned for the requested OID. + type: object + properties: + choice: + type: string + x-enum: + value: + x-field-uid: 2 + values: + x-field-uid: 3 + increment: + x-field-uid: 4 + decrement: + x-field-uid: 5 + default: value + x-field-uid: 1 + enum: + - value + - values + - increment + - decrement + value: + type: integer + x-field-uid: 2 + default: 0 + format: uint32 + values: + type: array + items: + type: integer + format: uint32 + x-field-uid: 3 + default: + - 0 + increment: + $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.VariableBindingValue.CounterValue.Counter' + x-field-uid: 5 + decrement: + $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.VariableBindingValue.CounterValue.Counter' + x-field-uid: 6 + Pattern.Flow.Snmpv2c.VariableBindingValue.TimeticksValue.Counter: + description: |- + integer counter pattern + type: object + properties: + start: + type: integer + x-field-uid: 1 + default: 0 + format: uint32 + step: + type: integer + x-field-uid: 2 + default: 1 + format: uint32 + count: + type: integer + x-field-uid: 3 + default: 1 + format: uint32 + Pattern.Flow.Snmpv2c.VariableBindingValue.TimeticksValue: + description: |- + Timeticks returned for the requested OID. + type: object + properties: + choice: + type: string + x-enum: + value: + x-field-uid: 2 + values: + x-field-uid: 3 + increment: + x-field-uid: 4 + decrement: + x-field-uid: 5 + default: value + x-field-uid: 1 + enum: + - value + - values + - increment + - decrement + value: + type: integer + x-field-uid: 2 + default: 0 + format: uint32 + values: + type: array + items: + type: integer + format: uint32 + x-field-uid: 3 + default: + - 0 + increment: + $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.VariableBindingValue.TimeticksValue.Counter' + x-field-uid: 5 + decrement: + $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.VariableBindingValue.TimeticksValue.Counter' + x-field-uid: 6 + Pattern.Flow.Snmpv2c.VariableBindingValue.BigCounterValue.Counter: + description: |- + integer counter pattern + type: object + properties: + start: + type: integer + x-field-uid: 1 + default: 0 + format: uint64 + step: + type: integer + x-field-uid: 2 + default: 1 + format: uint64 + count: + type: integer + x-field-uid: 3 + default: 1 + format: uint64 + Pattern.Flow.Snmpv2c.VariableBindingValue.BigCounterValue: + description: |- + Big counter returned for the requested OID. + type: object + properties: + choice: + type: string + x-enum: + value: + x-field-uid: 2 + values: + x-field-uid: 3 + increment: + x-field-uid: 4 + decrement: + x-field-uid: 5 + default: value + x-field-uid: 1 + enum: + - value + - values + - increment + - decrement + value: + type: integer + x-field-uid: 2 + default: 0 + format: uint64 + values: + type: array + items: + type: integer + format: uint64 + x-field-uid: 3 + default: + - 0 + increment: + $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.VariableBindingValue.BigCounterValue.Counter' + x-field-uid: 5 + decrement: + $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.VariableBindingValue.BigCounterValue.Counter' + x-field-uid: 6 + Pattern.Flow.Snmpv2c.VariableBindingValue.UnsignedIntegerValue.Counter: + description: |- + integer counter pattern + type: object + properties: + start: + type: integer + x-field-uid: 1 + default: 0 + format: uint32 + step: + type: integer + x-field-uid: 2 + default: 1 + format: uint32 + count: + type: integer + x-field-uid: 3 + default: 1 + format: uint32 + Pattern.Flow.Snmpv2c.VariableBindingValue.UnsignedIntegerValue: + description: |- + Unsigned integer value returned for the requested OID. + type: object + properties: + choice: + type: string + x-enum: + value: + x-field-uid: 2 + values: + x-field-uid: 3 + increment: + x-field-uid: 4 + decrement: + x-field-uid: 5 + default: value + x-field-uid: 1 + enum: + - value + - values + - increment + - decrement + value: + type: integer + x-field-uid: 2 + default: 0 + format: uint32 + values: + type: array + items: + type: integer + format: uint32 + x-field-uid: 3 + default: + - 0 + increment: + $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.VariableBindingValue.UnsignedIntegerValue.Counter' + x-field-uid: 5 + decrement: + $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.VariableBindingValue.UnsignedIntegerValue.Counter' + x-field-uid: 6 + Pattern.Flow.Snmpv2c.Common.RequestId.Counter: + description: |- + integer counter pattern + type: object + properties: + start: + type: integer + x-field-uid: 1 + default: 0 + format: int32 + step: + type: integer + x-field-uid: 2 + default: 1 + format: int32 + count: + type: integer + x-field-uid: 3 + default: 1 + format: int32 + Pattern.Flow.Snmpv2c.Common.RequestId: + description: "Identifies a particular SNMP request. \nThis index is echoed back\ + \ in the response from the SNMP agent, \nallowing the SNMP manager to match\ + \ an incoming response to the appropriate request.\n\n- Encoding of this field\ + \ follows ASN.1 X.690(section 8.3) specification.\n Refer: http://www.itu.int/ITU-T/asn1/" + type: object + properties: + choice: + type: string + x-enum: + value: + x-field-uid: 2 + values: + x-field-uid: 3 + increment: + x-field-uid: 4 + decrement: + x-field-uid: 5 + default: value + x-field-uid: 1 + enum: + - value + - values + - increment + - decrement + value: + type: integer + x-field-uid: 2 + default: 0 + format: int32 + values: + type: array + items: + type: integer + format: int32 + x-field-uid: 3 + default: + - 0 + increment: + $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.Common.RequestId.Counter' + x-field-uid: 5 + decrement: + $ref: '#/components/schemas/Pattern.Flow.Snmpv2c.Common.RequestId.Counter' + x-field-uid: 6 Version: description: |- Version details diff --git a/snappi/otg_pb2.py b/snappi/otg_pb2.py index 4ff0e493..d0c265aa 100644 --- a/snappi/otg_pb2.py +++ b/snappi/otg_pb2.py @@ -15,7 +15,7 @@ from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\totg.proto\x12\x03otg\x1a google/protobuf/descriptor.proto\x1a\x1bgoogle/protobuf/empty.proto\"\x89\x02\n\x06\x43onfig\x12\x18\n\x05ports\x18\x01 \x03(\x0b\x32\t.otg.Port\x12\x16\n\x04lags\x18\x02 \x03(\x0b\x32\x08.otg.Lag\x12\x1b\n\x06layer1\x18\x03 \x03(\x0b\x32\x0b.otg.Layer1\x12\x1e\n\x08\x63\x61ptures\x18\x04 \x03(\x0b\x32\x0c.otg.Capture\x12\x1c\n\x07\x64\x65vices\x18\x05 \x03(\x0b\x32\x0b.otg.Device\x12\x18\n\x05\x66lows\x18\x06 \x03(\x0b\x32\t.otg.Flow\x12\x1a\n\x06\x65vents\x18\x07 \x01(\x0b\x32\n.otg.Event\x12#\n\x07options\x18\x08 \x01(\x0b\x32\x12.otg.ConfigOptions\x12\x17\n\x04lldp\x18\t \x03(\x0b\x32\t.otg.Lldp\"g\n\rConfigOptions\x12&\n\x0cport_options\x18\x01 \x01(\x0b\x32\x10.otg.PortOptions\x12.\n\x10protocol_options\x18\x02 \x01(\x0b\x32\x14.otg.ProtocolOptions\"F\n\x04Port\x12\x15\n\x08location\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04name\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_locationB\x07\n\x05_name\"G\n\x0bPortOptions\x12 \n\x13location_preemption\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\x16\n\x14_location_preemption\"\x88\x01\n\x03Lag\x12\x1b\n\x05ports\x18\x01 \x03(\x0b\x32\x0c.otg.LagPort\x12\"\n\x08protocol\x18\x02 \x01(\x0b\x32\x10.otg.LagProtocol\x12\x16\n\tmin_links\x18\x03 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04name\x18\x04 \x01(\tH\x01\x88\x01\x01\x42\x0c\n\n_min_linksB\x07\n\x05_name\"z\n\x07LagPort\x12\x16\n\tport_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x04lacp\x18\x02 \x01(\x0b\x32\x10.otg.LagPortLacp\x12)\n\x08\x65thernet\x18\x03 \x01(\x0b\x32\x17.otg.DeviceEthernetBaseB\x0c\n\n_port_name\"\xd0\x01\n\x0bLagProtocol\x12\x31\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1c.otg.LagProtocol.Choice.EnumH\x00\x88\x01\x01\x12\"\n\x04lacp\x18\x02 \x01(\x0b\x32\x14.otg.LagProtocolLacp\x12&\n\x06static\x18\x03 \x01(\x0b\x32\x16.otg.LagProtocolStatic\x1a\x37\n\x06\x43hoice\"-\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04lacp\x10\x01\x12\n\n\x06static\x10\x02\x42\t\n\x07_choice\"3\n\x11LagProtocolStatic\x12\x13\n\x06lag_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\t\n\x07_lag_id\"\xa7\x01\n\x0fLagProtocolLacp\x12\x1c\n\x0f\x61\x63tor_system_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\"\n\x15\x61\x63tor_system_priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\tactor_key\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x12\n\x10_actor_system_idB\x18\n\x16_actor_system_priorityB\x0c\n\n_actor_key\"\x93\x03\n\x0bLagPortLacp\x12\x1e\n\x11\x61\x63tor_port_number\x18\x01 \x01(\rH\x00\x88\x01\x01\x12 \n\x13\x61\x63tor_port_priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12@\n\x0e\x61\x63tor_activity\x18\x03 \x01(\x0e\x32#.otg.LagPortLacp.ActorActivity.EnumH\x02\x88\x01\x01\x12*\n\x1dlacpdu_periodic_time_interval\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1b\n\x0elacpdu_timeout\x18\x05 \x01(\rH\x04\x88\x01\x01\x1a\x41\n\rActorActivity\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07passive\x10\x01\x12\n\n\x06\x61\x63tive\x10\x02\x42\x14\n\x12_actor_port_numberB\x16\n\x14_actor_port_priorityB\x11\n\x0f_actor_activityB \n\x1e_lacpdu_periodic_time_intervalB\x11\n\x0f_lacpdu_timeout\"\x84\x01\n\x12\x44\x65viceEthernetBase\x12\x10\n\x03mac\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x03mtu\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1e\n\x05vlans\x18\x03 \x03(\x0b\x32\x0f.otg.DeviceVlan\x12\x11\n\x04name\x18\x04 \x01(\tH\x02\x88\x01\x01\x42\x06\n\x04_macB\x06\n\x04_mtuB\x07\n\x05_name\"\xff\x01\n\x0e\x44\x65viceEthernet\x12+\n\nconnection\x18\x02 \x01(\x0b\x32\x17.otg.EthernetConnection\x12\'\n\x0eipv4_addresses\x18\x03 \x03(\x0b\x32\x0f.otg.DeviceIpv4\x12\'\n\x0eipv6_addresses\x18\x04 \x03(\x0b\x32\x0f.otg.DeviceIpv6\x12\x10\n\x03mac\x18\x05 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x03mtu\x18\x06 \x01(\rH\x01\x88\x01\x01\x12\x1e\n\x05vlans\x18\x07 \x03(\x0b\x32\x0f.otg.DeviceVlan\x12\x11\n\x04name\x18\x08 \x01(\tH\x02\x88\x01\x01\x42\x06\n\x04_macB\x06\n\x04_mtuB\x07\n\x05_name\"\x9b\x02\n\x12\x45thernetConnection\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.EthernetConnection.Choice.EnumH\x00\x88\x01\x01\x12\x16\n\tport_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x08lag_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x17\n\nvxlan_name\x18\x04 \x01(\tH\x03\x88\x01\x01\x1aN\n\x06\x43hoice\"D\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tport_name\x10\x01\x12\x0c\n\x08lag_name\x10\x02\x12\x0e\n\nvxlan_name\x10\x03\x42\t\n\x07_choiceB\x0c\n\n_port_nameB\x0b\n\t_lag_nameB\r\n\x0b_vxlan_name\"\xf3\x01\n\nDeviceVlan\x12,\n\x04tpid\x18\x01 \x01(\x0e\x32\x19.otg.DeviceVlan.Tpid.EnumH\x00\x88\x01\x01\x12\x15\n\x08priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0f\n\x02id\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x11\n\x04name\x18\x04 \x01(\tH\x03\x88\x01\x01\x1aV\n\x04Tpid\"N\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05x8100\x10\x01\x12\t\n\x05x88A8\x10\x02\x12\t\n\x05x9100\x10\x03\x12\t\n\x05x9200\x10\x04\x12\t\n\x05x9300\x10\x05\x42\x07\n\x05_tpidB\x0b\n\t_priorityB\x05\n\x03_idB\x07\n\x05_name\"\xbc\x01\n\nDeviceIpv4\x12\x14\n\x07gateway\x18\x01 \x01(\tH\x00\x88\x01\x01\x12.\n\x0bgateway_mac\x18\x02 \x01(\x0b\x32\x19.otg.DeviceIpv4GatewayMAC\x12\x14\n\x07\x61\x64\x64ress\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06prefix\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x11\n\x04name\x18\x05 \x01(\tH\x03\x88\x01\x01\x42\n\n\x08_gatewayB\n\n\x08_addressB\t\n\x07_prefixB\x07\n\x05_name\"v\n\x12\x44\x65viceIpv4Loopback\x12\x15\n\x08\x65th_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07\x61\x64\x64ress\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04name\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x0b\n\t_eth_nameB\n\n\x08_addressB\x07\n\x05_name\"\xcf\x01\n\x14\x44\x65viceIpv4GatewayMAC\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.DeviceIpv4GatewayMAC.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xbc\x01\n\nDeviceIpv6\x12\x14\n\x07gateway\x18\x01 \x01(\tH\x00\x88\x01\x01\x12.\n\x0bgateway_mac\x18\x02 \x01(\x0b\x32\x19.otg.DeviceIpv6GatewayMAC\x12\x14\n\x07\x61\x64\x64ress\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06prefix\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x11\n\x04name\x18\x05 \x01(\tH\x03\x88\x01\x01\x42\n\n\x08_gatewayB\n\n\x08_addressB\t\n\x07_prefixB\x07\n\x05_name\"v\n\x12\x44\x65viceIpv6Loopback\x12\x15\n\x08\x65th_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07\x61\x64\x64ress\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04name\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x0b\n\t_eth_nameB\n\n\x08_addressB\x07\n\x05_name\"\xcf\x01\n\x14\x44\x65viceIpv6GatewayMAC\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.DeviceIpv6GatewayMAC.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xa6\x06\n\x06Layer1\x12\x12\n\nport_names\x18\x01 \x03(\t\x12*\n\x05speed\x18\x02 \x01(\x0e\x32\x16.otg.Layer1.Speed.EnumH\x00\x88\x01\x01\x12*\n\x05media\x18\x03 \x01(\x0e\x32\x16.otg.Layer1.Media.EnumH\x01\x88\x01\x01\x12\x18\n\x0bpromiscuous\x18\x04 \x01(\x08H\x02\x88\x01\x01\x12\x10\n\x03mtu\x18\x05 \x01(\rH\x03\x88\x01\x01\x12 \n\x13ieee_media_defaults\x18\x06 \x01(\x08H\x04\x88\x01\x01\x12\x1b\n\x0e\x61uto_negotiate\x18\x07 \x01(\x08H\x05\x88\x01\x01\x12\x34\n\x10\x61uto_negotiation\x18\x08 \x01(\x0b\x32\x1a.otg.Layer1AutoNegotiation\x12,\n\x0c\x66low_control\x18\t \x01(\x0b\x32\x16.otg.Layer1FlowControl\x12\x11\n\x04name\x18\n \x01(\tH\x06\x88\x01\x01\x1a\xa9\x02\n\x05Speed\"\x9f\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x14\n\x10speed_10_fd_mbps\x10\x01\x12\x14\n\x10speed_10_hd_mbps\x10\x02\x12\x15\n\x11speed_100_fd_mbps\x10\x03\x12\x15\n\x11speed_100_hd_mbps\x10\x04\x12\x10\n\x0cspeed_1_gbps\x10\x05\x12\x11\n\rspeed_10_gbps\x10\x06\x12\x11\n\rspeed_25_gbps\x10\x07\x12\x11\n\rspeed_40_gbps\x10\x08\x12\x11\n\rspeed_50_gbps\x10\t\x12\x12\n\x0espeed_100_gbps\x10\n\x12\x12\n\x0espeed_200_gbps\x10\x0b\x12\x12\n\x0espeed_400_gbps\x10\x0c\x12\x12\n\x0espeed_800_gbps\x10\r\x1a\x42\n\x05Media\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x63opper\x10\x01\x12\t\n\x05\x66iber\x10\x02\x12\t\n\x05sgmii\x10\x03\x42\x08\n\x06_speedB\x08\n\x06_mediaB\x0e\n\x0c_promiscuousB\x06\n\x04_mtuB\x16\n\x14_ieee_media_defaultsB\x11\n\x0f_auto_negotiateB\x07\n\x05_name\"\x93\x03\n\x15Layer1AutoNegotiation\x12 \n\x13\x61\x64vertise_1000_mbps\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x15\x61\x64vertise_100_fd_mbps\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\"\n\x15\x61\x64vertise_100_hd_mbps\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12!\n\x14\x61\x64vertise_10_fd_mbps\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12!\n\x14\x61\x64vertise_10_hd_mbps\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1a\n\rlink_training\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06rs_fec\x18\x07 \x01(\x08H\x06\x88\x01\x01\x42\x16\n\x14_advertise_1000_mbpsB\x18\n\x16_advertise_100_fd_mbpsB\x18\n\x16_advertise_100_hd_mbpsB\x17\n\x15_advertise_10_fd_mbpsB\x17\n\x15_advertise_10_hd_mbpsB\x10\n\x0e_link_trainingB\t\n\x07_rs_fec\"\xac\x02\n\x11Layer1FlowControl\x12\x1d\n\x10\x64irected_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x37\n\x06\x63hoice\x18\x02 \x01(\x0e\x32\".otg.Layer1FlowControl.Choice.EnumH\x01\x88\x01\x01\x12-\n\rieee_802_1qbb\x18\x03 \x01(\x0b\x32\x16.otg.Layer1Ieee8021qbb\x12)\n\x0bieee_802_3x\x18\x04 \x01(\x0b\x32\x14.otg.Layer1Ieee8023x\x1a\x45\n\x06\x43hoice\";\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rieee_802_1qbb\x10\x01\x12\x0f\n\x0bieee_802_3x\x10\x02\x42\x13\n\x11_directed_addressB\t\n\x07_choice\"\x11\n\x0fLayer1Ieee8023x\"\x89\x03\n\x11Layer1Ieee8021qbb\x12\x16\n\tpfc_delay\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x18\n\x0bpfc_class_0\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0bpfc_class_1\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x18\n\x0bpfc_class_2\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x18\n\x0bpfc_class_3\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x18\n\x0bpfc_class_4\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x18\n\x0bpfc_class_5\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x18\n\x0bpfc_class_6\x18\x08 \x01(\rH\x07\x88\x01\x01\x12\x18\n\x0bpfc_class_7\x18\t \x01(\rH\x08\x88\x01\x01\x42\x0c\n\n_pfc_delayB\x0e\n\x0c_pfc_class_0B\x0e\n\x0c_pfc_class_1B\x0e\n\x0c_pfc_class_2B\x0e\n\x0c_pfc_class_3B\x0e\n\x0c_pfc_class_4B\x0e\n\x0c_pfc_class_5B\x0e\n\x0c_pfc_class_6B\x0e\n\x0c_pfc_class_7\"\xa1\x02\n\x07\x43\x61pture\x12\x12\n\nport_names\x18\x01 \x03(\t\x12#\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x12.otg.CaptureFilter\x12\x16\n\toverwrite\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x0bpacket_size\x18\x04 \x01(\rH\x01\x88\x01\x01\x12-\n\x06\x66ormat\x18\x05 \x01(\x0e\x32\x18.otg.Capture.Format.EnumH\x02\x88\x01\x01\x12\x11\n\x04name\x18\x06 \x01(\tH\x03\x88\x01\x01\x1a\x37\n\x06\x46ormat\"-\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04pcap\x10\x01\x12\n\n\x06pcapng\x10\x02\x42\x0c\n\n_overwriteB\x0e\n\x0c_packet_sizeB\t\n\x07_formatB\x07\n\x05_name\"\xd6\x02\n\rCaptureFilter\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.CaptureFilter.Choice.EnumH\x00\x88\x01\x01\x12\"\n\x06\x63ustom\x18\x02 \x01(\x0b\x32\x12.otg.CaptureCustom\x12&\n\x08\x65thernet\x18\x03 \x01(\x0b\x32\x14.otg.CaptureEthernet\x12\x1e\n\x04vlan\x18\x04 \x01(\x0b\x32\x10.otg.CaptureVlan\x12\x1e\n\x04ipv4\x18\x05 \x01(\x0b\x32\x10.otg.CaptureIpv4\x12\x1e\n\x04ipv6\x18\x06 \x01(\x0b\x32\x10.otg.CaptureIpv6\x1aY\n\x06\x43hoice\"O\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x63ustom\x10\x01\x12\x0c\n\x08\x65thernet\x10\x02\x12\x08\n\x04vlan\x10\x03\x12\x08\n\x04ipv4\x10\x04\x12\x08\n\x04ipv6\x10\x05\x42\t\n\x07_choice\"\xb1\x01\n\rCaptureCustom\x12\x13\n\x06offset\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x17\n\nbit_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x11\n\x04mask\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x13\n\x06negate\x18\x05 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_offsetB\r\n\x0b_bit_lengthB\x08\n\x06_valueB\x07\n\x05_maskB\t\n\x07_negate\"h\n\x0c\x43\x61ptureField\x12\x12\n\x05value\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04mask\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06negate\x18\x03 \x01(\x08H\x02\x88\x01\x01\x42\x08\n\x06_valueB\x07\n\x05_maskB\t\n\x07_negate\"\x9e\x01\n\x0f\x43\x61ptureEthernet\x12\x1e\n\x03src\x18\x01 \x01(\x0b\x32\x11.otg.CaptureField\x12\x1e\n\x03\x64st\x18\x02 \x01(\x0b\x32\x11.otg.CaptureField\x12%\n\nether_type\x18\x03 \x01(\x0b\x32\x11.otg.CaptureField\x12$\n\tpfc_queue\x18\x04 \x01(\x0b\x32\x11.otg.CaptureField\"\x96\x01\n\x0b\x43\x61ptureVlan\x12#\n\x08priority\x18\x01 \x01(\x0b\x32\x11.otg.CaptureField\x12\x1e\n\x03\x63\x66i\x18\x02 \x01(\x0b\x32\x11.otg.CaptureField\x12\x1d\n\x02id\x18\x03 \x01(\x0b\x32\x11.otg.CaptureField\x12#\n\x08protocol\x18\x04 \x01(\x0b\x32\x11.otg.CaptureField\"\xb4\x04\n\x0b\x43\x61ptureIpv4\x12\"\n\x07version\x18\x01 \x01(\x0b\x32\x11.otg.CaptureField\x12(\n\rheader_length\x18\x02 \x01(\x0b\x32\x11.otg.CaptureField\x12#\n\x08priority\x18\x03 \x01(\x0b\x32\x11.otg.CaptureField\x12\'\n\x0ctotal_length\x18\x04 \x01(\x0b\x32\x11.otg.CaptureField\x12)\n\x0eidentification\x18\x05 \x01(\x0b\x32\x11.otg.CaptureField\x12#\n\x08reserved\x18\x06 \x01(\x0b\x32\x11.otg.CaptureField\x12(\n\rdont_fragment\x18\x07 \x01(\x0b\x32\x11.otg.CaptureField\x12)\n\x0emore_fragments\x18\x08 \x01(\x0b\x32\x11.otg.CaptureField\x12*\n\x0f\x66ragment_offset\x18\t \x01(\x0b\x32\x11.otg.CaptureField\x12\'\n\x0ctime_to_live\x18\n \x01(\x0b\x32\x11.otg.CaptureField\x12#\n\x08protocol\x18\x0b \x01(\x0b\x32\x11.otg.CaptureField\x12*\n\x0fheader_checksum\x18\x0c \x01(\x0b\x32\x11.otg.CaptureField\x12\x1e\n\x03src\x18\r \x01(\x0b\x32\x11.otg.CaptureField\x12\x1e\n\x03\x64st\x18\x0e \x01(\x0b\x32\x11.otg.CaptureField\"\xbb\x02\n\x0b\x43\x61ptureIpv6\x12\"\n\x07version\x18\x01 \x01(\x0b\x32\x11.otg.CaptureField\x12(\n\rtraffic_class\x18\x02 \x01(\x0b\x32\x11.otg.CaptureField\x12%\n\nflow_label\x18\x03 \x01(\x0b\x32\x11.otg.CaptureField\x12)\n\x0epayload_length\x18\x04 \x01(\x0b\x32\x11.otg.CaptureField\x12&\n\x0bnext_header\x18\x05 \x01(\x0b\x32\x11.otg.CaptureField\x12$\n\thop_limit\x18\x06 \x01(\x0b\x32\x11.otg.CaptureField\x12\x1e\n\x03src\x18\x07 \x01(\x0b\x32\x11.otg.CaptureField\x12\x1e\n\x03\x64st\x18\x08 \x01(\x0b\x32\x11.otg.CaptureField\"\xb6\x02\n\x06\x44\x65vice\x12&\n\tethernets\x18\x01 \x03(\x0b\x32\x13.otg.DeviceEthernet\x12/\n\x0eipv4_loopbacks\x18\x02 \x03(\x0b\x32\x17.otg.DeviceIpv4Loopback\x12/\n\x0eipv6_loopbacks\x18\x03 \x03(\x0b\x32\x17.otg.DeviceIpv6Loopback\x12#\n\x04isis\x18\x04 \x01(\x0b\x32\x15.otg.DeviceIsisRouter\x12!\n\x03\x62gp\x18\x05 \x01(\x0b\x32\x14.otg.DeviceBgpRouter\x12\x1f\n\x05vxlan\x18\x06 \x01(\x0b\x32\x10.otg.DeviceVxlan\x12\x11\n\x04name\x18\x07 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\x04rsvp\x18\x08 \x01(\x0b\x32\x0f.otg.DeviceRsvpB\x07\n\x05_name\"A\n\x0fProtocolOptions\x12\x1b\n\x0e\x61uto_start_all\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\x11\n\x0f_auto_start_all\"\xf2\x02\n\x10\x44\x65viceIsisRouter\x12.\n\x08instance\x18\x01 \x01(\x0b\x32\x1c.otg.DeviceIsisMultiInstance\x12\x16\n\tsystem_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x12&\n\ninterfaces\x18\x03 \x03(\x0b\x32\x12.otg.IsisInterface\x12\x1d\n\x05\x62\x61sic\x18\x04 \x01(\x0b\x32\x0e.otg.IsisBasic\x12#\n\x08\x61\x64vanced\x18\x05 \x01(\x0b\x32\x11.otg.IsisAdvanced\x12,\n\x0brouter_auth\x18\x06 \x01(\x0b\x32\x17.otg.IsisAuthentication\x12(\n\tv4_routes\x18\x07 \x03(\x0b\x32\x15.otg.IsisV4RouteRange\x12(\n\tv6_routes\x18\x08 \x03(\x0b\x32\x15.otg.IsisV6RouteRange\x12\x11\n\x04name\x18\t \x01(\tH\x01\x88\x01\x01\x42\x0c\n\n_system_idB\x07\n\x05_name\"B\n\x17\x44\x65viceIsisMultiInstance\x12\x10\n\x03iid\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\r\n\x05itids\x18\x02 \x03(\rB\x06\n\x04_iid\"\x91\x06\n\rIsisInterface\x12\x15\n\x08\x65th_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06metric\x18\x02 \x01(\rH\x01\x88\x01\x01\x12>\n\x0cnetwork_type\x18\x03 \x01(\x0e\x32#.otg.IsisInterface.NetworkType.EnumH\x02\x88\x01\x01\x12:\n\nlevel_type\x18\x04 \x01(\x0e\x32!.otg.IsisInterface.LevelType.EnumH\x03\x88\x01\x01\x12,\n\x0bl1_settings\x18\x05 \x01(\x0b\x32\x17.otg.IsisInterfaceLevel\x12,\n\x0bl2_settings\x18\x06 \x01(\x0b\x32\x17.otg.IsisInterfaceLevel\x12\'\n\x12multi_topology_ids\x18\x07 \x03(\x0b\x32\x0b.otg.IsisMT\x12-\n\x13traffic_engineering\x18\x08 \x03(\x0b\x32\x10.otg.LinkStateTE\x12\x38\n\x0e\x61uthentication\x18\t \x01(\x0b\x32 .otg.IsisInterfaceAuthentication\x12,\n\x08\x61\x64vanced\x18\n \x01(\x0b\x32\x1a.otg.IsisInterfaceAdvanced\x12\x39\n\x0flink_protection\x18\x0b \x01(\x0b\x32 .otg.IsisInterfaceLinkProtection\x12\x13\n\x0bsrlg_values\x18\x0c \x03(\r\x12\x11\n\x04name\x18\r \x01(\tH\x04\x88\x01\x01\x1aI\n\x0bNetworkType\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tbroadcast\x10\x01\x12\x12\n\x0epoint_to_point\x10\x02\x1aM\n\tLevelType\"@\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07level_1\x10\x01\x12\x0b\n\x07level_2\x10\x02\x12\r\n\tlevel_1_2\x10\x03\x42\x0b\n\t_eth_nameB\t\n\x07_metricB\x0f\n\r_network_typeB\r\n\x0b_level_typeB\x07\n\x05_name\"\x96\x01\n\x12IsisInterfaceLevel\x12\x15\n\x08priority\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1b\n\x0ehello_interval\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1a\n\rdead_interval\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x0b\n\t_priorityB\x11\n\x0f_hello_intervalB\x10\n\x0e_dead_interval\"P\n\x06IsisMT\x12\x12\n\x05mt_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x18\n\x0blink_metric\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x08\n\x06_mt_idB\x0e\n\x0c_link_metric\"\xa4\x02\n\x0bLinkStateTE\x12!\n\x14\x61\x64ministrative_group\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0cmetric_level\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0cmax_bandwith\x18\x03 \x01(\rH\x02\x88\x01\x01\x12%\n\x18max_reservable_bandwidth\x18\x04 \x01(\rH\x03\x88\x01\x01\x12=\n\x13priority_bandwidths\x18\x05 \x01(\x0b\x32 .otg.LinkStatepriorityBandwidthsB\x17\n\x15_administrative_groupB\x0f\n\r_metric_levelB\x0f\n\r_max_bandwithB\x1b\n\x19_max_reservable_bandwidth\"\xed\x01\n\x1bLinkStatepriorityBandwidths\x12\x10\n\x03pb0\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03pb1\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x10\n\x03pb2\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x10\n\x03pb3\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x10\n\x03pb4\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x10\n\x03pb5\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x10\n\x03pb6\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x10\n\x03pb7\x18\x08 \x01(\rH\x07\x88\x01\x01\x42\x06\n\x04_pb0B\x06\n\x04_pb1B\x06\n\x04_pb2B\x06\n\x04_pb3B\x06\n\x04_pb4B\x06\n\x04_pb5B\x06\n\x04_pb6B\x06\n\x04_pb7\"\xed\x01\n\x1bIsisInterfaceAuthentication\x12\x46\n\tauth_type\x18\x01 \x01(\x0e\x32..otg.IsisInterfaceAuthentication.AuthType.EnumH\x00\x88\x01\x01\x12\x10\n\x03md5\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x08password\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a:\n\x08\x41uthType\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03md5\x10\x01\x12\x0c\n\x08password\x10\x02\x42\x0c\n\n_auth_typeB\x06\n\x04_md5B\x0b\n\t_password\"\xd3\x02\n\x15IsisInterfaceAdvanced\x12\x1c\n\x0f\x61uto_adjust_mtu\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1d\n\x10\x61uto_adjust_area\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12,\n\x1f\x61uto_adjust_supported_protocols\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\"\n\x15\x65nable_3way_handshake\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12&\n\x19p2p_hellos_to_unicast_mac\x18\x05 \x01(\x08H\x04\x88\x01\x01\x42\x12\n\x10_auto_adjust_mtuB\x13\n\x11_auto_adjust_areaB\"\n _auto_adjust_supported_protocolsB\x18\n\x16_enable_3way_handshakeB\x1c\n\x1a_p2p_hellos_to_unicast_mac\"\xf9\x02\n\x1bIsisInterfaceLinkProtection\x12\x1a\n\rextra_traffic\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x0bunprotected\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x13\n\x06shared\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1d\n\x10\x64\x65\x64icated_1_to_1\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x1f\n\x12\x64\x65\x64icated_1_plus_1\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x15\n\x08\x65nhanced\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x18\n\x0breserved_40\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12\x18\n\x0breserved_80\x18\x08 \x01(\x08H\x07\x88\x01\x01\x42\x10\n\x0e_extra_trafficB\x0e\n\x0c_unprotectedB\t\n\x07_sharedB\x13\n\x11_dedicated_1_to_1B\x15\n\x13_dedicated_1_plus_1B\x0b\n\t_enhancedB\x0e\n\x0c_reserved_40B\x0e\n\x0c_reserved_80\"\xd5\x01\n\tIsisBasic\x12\x1e\n\x11ipv4_te_router_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08hostname\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12\x65nable_wide_metric\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1f\n\x12learned_lsp_filter\x18\x04 \x01(\x08H\x03\x88\x01\x01\x42\x14\n\x12_ipv4_te_router_idB\x0b\n\t_hostnameB\x15\n\x13_enable_wide_metricB\x15\n\x13_learned_lsp_filter\"\x8a\x04\n\x0cIsisAdvanced\x12!\n\x14\x65nable_hello_padding\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1f\n\x12max_area_addresses\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\x0e\x61rea_addresses\x18\x03 \x03(\t\x12\x1d\n\x10lsp_refresh_rate\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x19\n\x0clsp_lifetime\x18\x05 \x01(\rH\x03\x88\x01\x01\x12\x1a\n\rpsnp_interval\x18\x06 \x01(\rH\x04\x88\x01\x01\x12\x1a\n\rcsnp_interval\x18\x07 \x01(\rH\x05\x88\x01\x01\x12\x19\n\x0cmax_lsp_size\x18\x08 \x01(\rH\x06\x88\x01\x01\x12*\n\x1dlsp_mgroup_min_trans_interval\x18\t \x01(\rH\x07\x88\x01\x01\x12 \n\x13\x65nable_attached_bit\x18\n \x01(\x08H\x08\x88\x01\x01\x42\x17\n\x15_enable_hello_paddingB\x15\n\x13_max_area_addressesB\x13\n\x11_lsp_refresh_rateB\x0f\n\r_lsp_lifetimeB\x10\n\x0e_psnp_intervalB\x10\n\x0e_csnp_intervalB\x0f\n\r_max_lsp_sizeB \n\x1e_lsp_mgroup_min_trans_intervalB\x16\n\x14_enable_attached_bit\"\xae\x01\n\x12IsisAuthentication\x12\x1f\n\x12ignore_receive_md5\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12.\n\tarea_auth\x18\x02 \x01(\x0b\x32\x1b.otg.IsisAuthenticationBase\x12\x30\n\x0b\x64omain_auth\x18\x03 \x01(\x0b\x32\x1b.otg.IsisAuthenticationBaseB\x15\n\x13_ignore_receive_md5\"\xe3\x01\n\x16IsisAuthenticationBase\x12\x41\n\tauth_type\x18\x01 \x01(\x0e\x32).otg.IsisAuthenticationBase.AuthType.EnumH\x00\x88\x01\x01\x12\x10\n\x03md5\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x08password\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a:\n\x08\x41uthType\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03md5\x10\x01\x12\x0c\n\x08password\x10\x02\x42\x0c\n\n_auth_typeB\x06\n\x04_md5B\x0b\n\t_password\"\xd8\x04\n\x10IsisV4RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V4RouteAddress\x12\x18\n\x0blink_metric\x18\x02 \x01(\rH\x00\x88\x01\x01\x12?\n\x0borigin_type\x18\x03 \x01(\x0e\x32%.otg.IsisV4RouteRange.OriginType.EnumH\x01\x88\x01\x01\x12O\n\x13redistribution_type\x18\x04 \x01(\x0e\x32-.otg.IsisV4RouteRange.RedistributionType.EnumH\x02\x88\x01\x01\x12\x11\n\x04name\x18\x05 \x01(\tH\x03\x88\x01\x01\x12 \n\x13prefix_attr_enabled\x18\x06 \x01(\x08H\x04\x88\x01\x01\x12\x13\n\x06x_flag\x18\x07 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06r_flag\x18\x08 \x01(\x08H\x06\x88\x01\x01\x12\x13\n\x06n_flag\x18\t \x01(\x08H\x07\x88\x01\x01\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x0e\n\x0c_link_metricB\x0e\n\x0c_origin_typeB\x16\n\x14_redistribution_typeB\x07\n\x05_nameB\x16\n\x14_prefix_attr_enabledB\t\n\x07_x_flagB\t\n\x07_r_flagB\t\n\x07_n_flag\"\x8c\x01\n\x0eV4RouteAddress\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06prefix\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x11\n\x04step\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\n\n\x08_addressB\t\n\x07_prefixB\x08\n\x06_countB\x07\n\x05_step\"\x8c\x01\n\x0eV6RouteAddress\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06prefix\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x11\n\x04step\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\n\n\x08_addressB\t\n\x07_prefixB\x08\n\x06_countB\x07\n\x05_step\"\x8d\x01\n\x0fMACRouteAddress\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06prefix\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x11\n\x04step\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\n\n\x08_addressB\t\n\x07_prefixB\x08\n\x06_countB\x07\n\x05_step\"\xd8\x04\n\x10IsisV6RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V6RouteAddress\x12\x18\n\x0blink_metric\x18\x02 \x01(\rH\x00\x88\x01\x01\x12?\n\x0borigin_type\x18\x03 \x01(\x0e\x32%.otg.IsisV6RouteRange.OriginType.EnumH\x01\x88\x01\x01\x12O\n\x13redistribution_type\x18\x04 \x01(\x0e\x32-.otg.IsisV6RouteRange.RedistributionType.EnumH\x02\x88\x01\x01\x12\x11\n\x04name\x18\x05 \x01(\tH\x03\x88\x01\x01\x12 \n\x13prefix_attr_enabled\x18\x06 \x01(\x08H\x04\x88\x01\x01\x12\x13\n\x06x_flag\x18\x07 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06r_flag\x18\x08 \x01(\x08H\x06\x88\x01\x01\x12\x13\n\x06n_flag\x18\t \x01(\x08H\x07\x88\x01\x01\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x0e\n\x0c_link_metricB\x0e\n\x0c_origin_typeB\x16\n\x14_redistribution_typeB\x07\n\x05_nameB\x16\n\x14_prefix_attr_enabledB\t\n\x07_x_flagB\t\n\x07_r_flagB\t\n\x07_n_flag\"\x93\x01\n\x0f\x44\x65viceBgpRouter\x12\x16\n\trouter_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12,\n\x0fipv4_interfaces\x18\x02 \x03(\x0b\x32\x13.otg.BgpV4Interface\x12,\n\x0fipv6_interfaces\x18\x03 \x03(\x0b\x32\x13.otg.BgpV6InterfaceB\x0c\n\n_router_id\"\x90\x02\n\x1b\x44\x65viceBgpMessageHeaderError\x12\x43\n\x07subcode\x18\x01 \x01(\x0e\x32-.otg.DeviceBgpMessageHeaderError.Subcode.EnumH\x00\x88\x01\x01\x1a\x9f\x01\n\x07Subcode\"\x93\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12.\n*connection_not_synchronized_code1_subcode1\x10\x01\x12%\n!bad_message_length_code1_subcode2\x10\x02\x12#\n\x1f\x62\x61\x64_message_type_code1_subcode3\x10\x03\x42\n\n\x08_subcode\"\xaa\x03\n\x19\x44\x65viceBgpOpenMessageError\x12\x41\n\x07subcode\x18\x01 \x01(\x0e\x32+.otg.DeviceBgpOpenMessageError.Subcode.EnumH\x00\x88\x01\x01\x1a\xbd\x02\n\x07Subcode\"\xb1\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12-\n)unsupported_version_number_code2_subcode1\x10\x01\x12 \n\x1c\x65rror_peer_as_code2_subcode2\x10\x02\x12\x1f\n\x1b\x65rror_bgp_id_code2_subcode3\x10\x03\x12\x31\n-unsupported_optional_parameter_code2_subcode4\x10\x04\x12\x1e\n\x1a\x61uth_failed_code2_subcode5\x10\x05\x12(\n$unsupported_hold_time_code2_subcode6\x10\x06\x12)\n%unsupported_capability_code2_subcode7\x10\x07\x42\n\n\x08_subcode\"\xdc\x04\n\x1b\x44\x65viceBgpUpdateMessageError\x12\x43\n\x07subcode\x18\x01 \x01(\x0e\x32-.otg.DeviceBgpUpdateMessageError.Subcode.EnumH\x00\x88\x01\x01\x1a\xeb\x03\n\x07Subcode\"\xdf\x03\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12(\n$malformed_attrib_list_code3_subcode1\x10\x01\x12\x30\n,unrecognized_wellknown_attrib_code3_subcode2\x10\x02\x12+\n\'wellknown_attrib_missing_code3_subcode3\x10\x03\x12%\n!attrib_flags_error_code3_subcode4\x10\x04\x12&\n\"attrib_length_error_code3_subcode5\x10\x05\x12(\n$invalid_origin_attrib_code3_subcode6\x10\x06\x12\"\n\x1e\x61s_routing_loop_code3_subcode7\x10\x07\x12&\n\"invalid_nhop_attrib_code3_subcode8\x10\x08\x12(\n$error_optional_attrib_code3_subcode9\x10\t\x12)\n%invalid_network_field_code3_subcode10\x10\n\x12#\n\x1f\x61\x62normal_aspath_code3_subcode11\x10\x0b\x42\n\n\x08_subcode\"\x1b\n\x19\x44\x65viceBgpHoldTimerExpired\"\"\n DeviceBgpFiniteStateMachineError\"\xe3\x03\n\x13\x44\x65viceBgpCeaseError\x12;\n\x07subcode\x18\x01 \x01(\x0e\x32%.otg.DeviceBgpCeaseError.Subcode.EnumH\x00\x88\x01\x01\x1a\x82\x03\n\x07Subcode\"\xf6\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12,\n(max_number_prefix_reached_code6_subcode1\x10\x01\x12!\n\x1d\x61\x64min_shutdown_code6_subcode2\x10\x02\x12\x1f\n\x1bpeer_deleted_code6_subcode3\x10\x03\x12\x1e\n\x1a\x61\x64min_reset_code6_subcode4\x10\x04\x12$\n connection_reject_code6_subcode5\x10\x05\x12\'\n#other_config_changes_code6_subcode6\x10\x06\x12\x32\n.connection_collision_resolution_code6_subcode7\x10\x07\x12#\n\x1fout_of_resources_code6_subcode8\x10\x08\x12#\n\x1f\x62\x66\x64_session_down_code6_subcode9\x10\tB\n\n\x08_subcode\"T\n\x14\x44\x65viceBgpCustomError\x12\x11\n\x04\x63ode\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07subcode\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x07\n\x05_codeB\n\n\x08_subcode\"\xb2\x06\n\tBgpV4Peer\x12\x19\n\x0cpeer_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x39\n\x16\x65vpn_ethernet_segments\x18\x02 \x03(\x0b\x32\x19.otg.BgpV4EthernetSegment\x12\x30\n\x07\x61s_type\x18\x03 \x01(\x0e\x32\x1a.otg.BgpV4Peer.AsType.EnumH\x01\x88\x01\x01\x12\x16\n\tas_number\x18\x04 \x01(\rH\x02\x88\x01\x01\x12?\n\x0f\x61s_number_width\x18\x05 \x01(\x0e\x32!.otg.BgpV4Peer.AsNumberWidth.EnumH\x03\x88\x01\x01\x12\"\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x10.otg.BgpAdvanced\x12&\n\ncapability\x18\x07 \x01(\x0b\x32\x12.otg.BgpCapability\x12\x44\n\x1alearned_information_filter\x18\x08 \x01(\x0b\x32 .otg.BgpLearnedInformationFilter\x12\'\n\tv4_routes\x18\t \x03(\x0b\x32\x14.otg.BgpV4RouteRange\x12\'\n\tv6_routes\x18\n \x03(\x0b\x32\x14.otg.BgpV6RouteRange\x12.\n\x10v4_srte_policies\x18\x0b \x03(\x0b\x32\x14.otg.BgpSrteV4Policy\x12.\n\x10v6_srte_policies\x18\x0c \x03(\x0b\x32\x14.otg.BgpSrteV6Policy\x12\x11\n\x04name\x18\r \x01(\tH\x04\x88\x01\x01\x12\x31\n\x10graceful_restart\x18\x0e \x01(\x0b\x32\x17.otg.BgpGracefulRestart\x1a\x35\n\x06\x41sType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ibgp\x10\x01\x12\x08\n\x04\x65\x62gp\x10\x02\x1a;\n\rAsNumberWidth\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03two\x10\x01\x12\x08\n\x04\x66our\x10\x02\x42\x0f\n\r_peer_addressB\n\n\x08_as_typeB\x0c\n\n_as_numberB\x12\n\x10_as_number_widthB\x07\n\x05_name\"U\n\x0e\x42gpV4Interface\x12\x16\n\tipv4_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\x05peers\x18\x02 \x03(\x0b\x32\x0e.otg.BgpV4PeerB\x0c\n\n_ipv4_name\"\xf0\x03\n\x14\x42gpV4EthernetSegment\x12\x36\n\x0b\x64\x66_election\x18\x01 \x01(\x0b\x32!.otg.BgpEthernetSegmentDfElection\x12 \n\x04\x65vis\x18\x02 \x03(\x0b\x32\x12.otg.BgpV4EvpnEvis\x12\x10\n\x03\x65si\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x43\n\x0b\x61\x63tive_mode\x18\x04 \x01(\x0e\x32).otg.BgpV4EthernetSegment.ActiveMode.EnumH\x01\x88\x01\x01\x12\x16\n\tesi_label\x18\x05 \x01(\rH\x02\x88\x01\x01\x12\'\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvanced\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x08 \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12\x1f\n\x07\x61s_path\x18\t \x01(\x0b\x32\x0e.otg.BgpAsPath\x1aH\n\nActiveMode\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsingle_active\x10\x01\x12\x0e\n\nall_active\x10\x02\x42\x06\n\x04_esiB\x0e\n\x0c_active_modeB\x0c\n\n_esi_label\"N\n\x1c\x42gpEthernetSegmentDfElection\x12\x1b\n\x0e\x65lection_timer\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x11\n\x0f_election_timer\"\xda\x03\n\x10\x42gpRouteAdvanced\x12-\n include_multi_exit_discriminator\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12%\n\x18multi_exit_discriminator\x18\x01 \x01(\rH\x01\x88\x01\x01\x12\x1b\n\x0einclude_origin\x18\x04 \x01(\x08H\x02\x88\x01\x01\x12\x36\n\x06origin\x18\x02 \x01(\x0e\x32!.otg.BgpRouteAdvanced.Origin.EnumH\x03\x88\x01\x01\x12%\n\x18include_local_preference\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1d\n\x10local_preference\x18\x06 \x01(\rH\x05\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42#\n!_include_multi_exit_discriminatorB\x1b\n\x19_multi_exit_discriminatorB\x11\n\x0f_include_originB\t\n\x07_originB\x1b\n\x19_include_local_preferenceB\x13\n\x11_local_preference\"\xa4\x02\n\x0c\x42gpCommunity\x12.\n\x04type\x18\x01 \x01(\x0e\x32\x1b.otg.BgpCommunity.Type.EnumH\x00\x88\x01\x01\x12\x16\n\tas_number\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\tas_custom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a\x8e\x01\n\x04Type\"\x85\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x14\n\x10manual_as_number\x10\x01\x12\r\n\tno_export\x10\x02\x12\x11\n\rno_advertised\x10\x03\x12\x17\n\x13no_export_subconfed\x10\x04\x12\x0e\n\nllgr_stale\x10\x05\x12\x0b\n\x07no_llgr\x10\x06\x42\x07\n\x05_typeB\x0c\n\n_as_numberB\x0c\n\n_as_custom\"\xf9\x03\n\x0f\x42gpExtCommunity\x12\x31\n\x04type\x18\x01 \x01(\x0e\x32\x1e.otg.BgpExtCommunity.Type.EnumH\x00\x88\x01\x01\x12\x37\n\x07subtype\x18\x02 \x01(\x0e\x32!.otg.BgpExtCommunity.Subtype.EnumH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\xbc\x01\n\x04Type\"\xb3\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1b\n\x17\x61\x64ministrator_as_2octet\x10\x01\x12\x1e\n\x1a\x61\x64ministrator_ipv4_address\x10\x02\x12\x1b\n\x17\x61\x64ministrator_as_4octet\x10\x03\x12\n\n\x06opaque\x10\x04\x12\x08\n\x04\x65vpn\x10\x05\x12*\n&administrator_as_2octet_link_bandwidth\x10\x06\x1a\x87\x01\n\x07Subtype\"|\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0croute_target\x10\x01\x12\n\n\x06origin\x10\x02\x12\x16\n\x12\x65xtended_bandwidth\x10\x03\x12\t\n\x05\x63olor\x10\x04\x12\x11\n\rencapsulation\x10\x05\x12\x0f\n\x0bmac_address\x10\x06\x42\x07\n\x05_typeB\n\n\x08_subtypeB\x08\n\x06_value\"\xbe\x02\n\tBgpAsPath\x12\x37\n\x0b\x61s_set_mode\x18\x01 \x01(\x0e\x32\x1d.otg.BgpAsPath.AsSetMode.EnumH\x00\x88\x01\x01\x12\'\n\x08segments\x18\x02 \x03(\x0b\x32\x15.otg.BgpAsPathSegment\x1a\xbe\x01\n\tAsSetMode\"\xb0\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1b\n\x17\x64o_not_include_local_as\x10\x01\x12\x12\n\x0einclude_as_seq\x10\x02\x12\x12\n\x0einclude_as_set\x10\x03\x12\x19\n\x15include_as_confed_seq\x10\x04\x12\x19\n\x15include_as_confed_set\x10\x05\x12\x1c\n\x18prepend_to_first_segment\x10\x06\x42\x0e\n\x0c_as_set_mode\"\xc2\x01\n\x10\x42gpAsPathSegment\x12\x32\n\x04type\x18\x01 \x01(\x0e\x32\x1f.otg.BgpAsPathSegment.Type.EnumH\x00\x88\x01\x01\x12\x12\n\nas_numbers\x18\x02 \x03(\r\x1a]\n\x04Type\"U\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x61s_seq\x10\x01\x12\n\n\x06\x61s_set\x10\x02\x12\x11\n\ras_confed_seq\x10\x03\x12\x11\n\ras_confed_set\x10\x04\x42\x07\n\x05_type\"\xa8\x01\n\rBgpV4EvpnEvis\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.BgpV4EvpnEvis.Choice.EnumH\x00\x88\x01\x01\x12%\n\tevi_vxlan\x18\x02 \x01(\x0b\x32\x12.otg.BgpV4EviVxlan\x1a\x30\n\x06\x43hoice\"&\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tevi_vxlan\x10\x01\x42\t\n\x07_choice\"\xe3\x05\n\rBgpV4EviVxlan\x12<\n\x11\x62roadcast_domains\x18\x01 \x03(\x0b\x32!.otg.BgpV4EviVxlanBroadcastDomain\x12\x46\n\x10replication_type\x18\x02 \x01(\x0e\x32\'.otg.BgpV4EviVxlan.ReplicationType.EnumH\x00\x88\x01\x01\x12\x17\n\npmsi_label\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08\x61\x64_label\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x37\n\x13route_distinguisher\x18\x05 \x01(\x0b\x32\x1a.otg.BgpRouteDistinguisher\x12\x30\n\x13route_target_export\x18\x06 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x30\n\x13route_target_import\x18\x07 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_export\x18\x08 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_import\x18\t \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\'\n\x08\x61\x64vanced\x18\n \x01(\x0b\x32\x15.otg.BgpRouteAdvanced\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12\x1f\n\x07\x61s_path\x18\r \x01(\x0b\x32\x0e.otg.BgpAsPath\x1a\x43\n\x0fReplicationType\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13ingress_replication\x10\x01\x42\x13\n\x11_replication_typeB\r\n\x0b_pmsi_labelB\x0b\n\t_ad_label\"\xb4\x01\n\x1c\x42gpV4EviVxlanBroadcastDomain\x12*\n\rcmac_ip_range\x18\x01 \x03(\x0b\x32\x13.otg.BgpCMacIpRange\x12\x1c\n\x0f\x65thernet_tag_id\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1f\n\x12vlan_aware_service\x18\x03 \x01(\x08H\x01\x88\x01\x01\x42\x12\n\x10_ethernet_tag_idB\x15\n\x13_vlan_aware_service\"\xd2\x03\n\x0e\x42gpCMacIpRange\x12+\n\rmac_addresses\x18\x01 \x01(\x0b\x32\x14.otg.MACRouteAddress\x12\x12\n\x05l2vni\x18\x02 \x01(\rH\x00\x88\x01\x01\x12+\n\x0eipv4_addresses\x18\x03 \x01(\x0b\x32\x13.otg.V4RouteAddress\x12+\n\x0eipv6_addresses\x18\x04 \x01(\x0b\x32\x13.otg.V6RouteAddress\x12\x12\n\x05l3vni\x18\x05 \x01(\rH\x01\x88\x01\x01\x12$\n\x17include_default_gateway\x18\x06 \x01(\x08H\x02\x88\x01\x01\x12\'\n\x08\x61\x64vanced\x18\x07 \x01(\x0b\x32\x15.otg.BgpRouteAdvanced\x12&\n\x0b\x63ommunities\x18\x08 \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\t \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12\x1f\n\x07\x61s_path\x18\n \x01(\x0b\x32\x0e.otg.BgpAsPath\x12\x11\n\x04name\x18\x0b \x01(\tH\x03\x88\x01\x01\x42\x08\n\x06_l2vniB\x08\n\x06_l3vniB\x1a\n\x18_include_default_gatewayB\x07\n\x05_name\"\x98\x02\n\x15\x42gpRouteDistinguisher\x12<\n\x07rd_type\x18\x01 \x01(\x0e\x32&.otg.BgpRouteDistinguisher.RdType.EnumH\x00\x88\x01\x01\x12#\n\x16\x61uto_config_rd_ip_addr\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x15\n\x08rd_value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1aQ\n\x06RdType\"G\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tas_2octet\x10\x01\x12\x10\n\x0cipv4_address\x10\x02\x12\r\n\tas_4octet\x10\x03\x42\n\n\x08_rd_typeB\x19\n\x17_auto_config_rd_ip_addrB\x0b\n\t_rd_value\"\xca\x01\n\x0e\x42gpRouteTarget\x12\x35\n\x07rt_type\x18\x01 \x01(\x0e\x32\x1f.otg.BgpRouteTarget.RtType.EnumH\x00\x88\x01\x01\x12\x15\n\x08rt_value\x18\x02 \x01(\tH\x01\x88\x01\x01\x1aQ\n\x06RtType\"G\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tas_2octet\x10\x01\x12\x10\n\x0cipv4_address\x10\x02\x12\r\n\tas_4octet\x10\x03\x42\n\n\x08_rt_typeB\x0b\n\t_rt_value\"\x83\x03\n\x0b\x42gpAdvanced\x12\x1f\n\x12hold_time_interval\x18\x01 \x01(\rH\x00\x88\x01\x01\x12 \n\x13keep_alive_interval\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1c\n\x0fupdate_interval\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x19\n\x0ctime_to_live\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x14\n\x07md5_key\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x19\n\x0cpassive_mode\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x18\n\x0blisten_port\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x1a\n\rneighbor_port\x18\x08 \x01(\rH\x07\x88\x01\x01\x42\x15\n\x13_hold_time_intervalB\x16\n\x14_keep_alive_intervalB\x12\n\x10_update_intervalB\x0f\n\r_time_to_liveB\n\n\x08_md5_keyB\x0f\n\r_passive_modeB\x0e\n\x0c_listen_portB\x10\n\x0e_neighbor_port\"\x91\n\n\rBgpCapability\x12\x19\n\x0cipv4_unicast\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1b\n\x0eipv4_multicast\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x19\n\x0cipv6_unicast\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1b\n\x0eipv6_multicast\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x11\n\x04vpls\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1a\n\rroute_refresh\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x1d\n\x10route_constraint\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12\x1f\n\x12link_state_non_vpn\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12\x1b\n\x0elink_state_vpn\x18\t \x01(\x08H\x08\x88\x01\x01\x12\x11\n\x04\x65vpn\x18\n \x01(\x08H\t\x88\x01\x01\x12\'\n\x1a\x65xtended_next_hop_encoding\x18\x0b \x01(\x08H\n\x88\x01\x01\x12\x1f\n\x12ipv4_multicast_vpn\x18\x0c \x01(\x08H\x0b\x88\x01\x01\x12\x1a\n\ripv4_mpls_vpn\x18\r \x01(\x08H\x0c\x88\x01\x01\x12\x15\n\x08ipv4_mdt\x18\x0e \x01(\x08H\r\x88\x01\x01\x12$\n\x17ipv4_multicast_mpls_vpn\x18\x0f \x01(\x08H\x0e\x88\x01\x01\x12#\n\x16ipv4_unicast_flow_spec\x18\x10 \x01(\x08H\x0f\x88\x01\x01\x12\x1e\n\x11ipv4_sr_te_policy\x18\x11 \x01(\x08H\x10\x88\x01\x01\x12\"\n\x15ipv4_unicast_add_path\x18\x12 \x01(\x08H\x11\x88\x01\x01\x12\x1f\n\x12ipv6_multicast_vpn\x18\x13 \x01(\x08H\x12\x88\x01\x01\x12\x1a\n\ripv6_mpls_vpn\x18\x14 \x01(\x08H\x13\x88\x01\x01\x12\x15\n\x08ipv6_mdt\x18\x15 \x01(\x08H\x14\x88\x01\x01\x12$\n\x17ipv6_multicast_mpls_vpn\x18\x16 \x01(\x08H\x15\x88\x01\x01\x12#\n\x16ipv6_unicast_flow_spec\x18\x17 \x01(\x08H\x16\x88\x01\x01\x12\x1e\n\x11ipv6_sr_te_policy\x18\x18 \x01(\x08H\x17\x88\x01\x01\x12\"\n\x15ipv6_unicast_add_path\x18\x19 \x01(\x08H\x18\x88\x01\x01\x42\x0f\n\r_ipv4_unicastB\x11\n\x0f_ipv4_multicastB\x0f\n\r_ipv6_unicastB\x11\n\x0f_ipv6_multicastB\x07\n\x05_vplsB\x10\n\x0e_route_refreshB\x13\n\x11_route_constraintB\x15\n\x13_link_state_non_vpnB\x11\n\x0f_link_state_vpnB\x07\n\x05_evpnB\x1d\n\x1b_extended_next_hop_encodingB\x15\n\x13_ipv4_multicast_vpnB\x10\n\x0e_ipv4_mpls_vpnB\x0b\n\t_ipv4_mdtB\x1a\n\x18_ipv4_multicast_mpls_vpnB\x19\n\x17_ipv4_unicast_flow_specB\x14\n\x12_ipv4_sr_te_policyB\x18\n\x16_ipv4_unicast_add_pathB\x15\n\x13_ipv6_multicast_vpnB\x10\n\x0e_ipv6_mpls_vpnB\x0b\n\t_ipv6_mdtB\x1a\n\x18_ipv6_multicast_mpls_vpnB\x19\n\x17_ipv6_unicast_flow_specB\x14\n\x12_ipv6_sr_te_policyB\x18\n\x16_ipv6_unicast_add_path\"\x91\x01\n\x1b\x42gpLearnedInformationFilter\x12 \n\x13unicast_ipv4_prefix\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12 \n\x13unicast_ipv6_prefix\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\x16\n\x14_unicast_ipv4_prefixB\x16\n\x14_unicast_ipv6_prefix\"\x94\x06\n\x0f\x42gpV4RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V4RouteAddress\x12\x41\n\rnext_hop_mode\x18\x02 \x01(\x0e\x32%.otg.BgpV4RouteRange.NextHopMode.EnumH\x00\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x03 \x01(\x0e\x32,.otg.BgpV4RouteRange.NextHopAddressType.EnumH\x01\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x05 \x01(\tH\x03\x88\x01\x01\x12\'\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvanced\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12\x1f\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x0e.otg.BgpAsPath\x12!\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPath\x12\x11\n\x04name\x18\n \x01(\tH\x04\x88\x01\x01\x12-\n\x0f\x65xt_communities\x18\x0b \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12\x37\n\x14\x65xtended_communities\x18\x0c \x03(\x0b\x32\x19.otg.BgpExtendedCommunity\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x07\n\x05_name\".\n\nBgpAddPath\x12\x14\n\x07path_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\n\n\x08_path_id\"\xf3\x06\n\x14\x42gpExtendedCommunity\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.BgpExtendedCommunity.Choice.EnumH\x00\x88\x01\x01\x12R\n\x19transitive_2octet_as_type\x18\x02 \x01(\x0b\x32/.otg.BgpExtendedCommunityTransitive2OctetAsType\x12X\n\x1ctransitive_ipv4_address_type\x18\x03 \x01(\x0b\x32\x32.otg.BgpExtendedCommunityTransitiveIpv4AddressType\x12R\n\x19transitive_4octet_as_type\x18\x04 \x01(\x0b\x32/.otg.BgpExtendedCommunityTransitive4OctetAsType\x12M\n\x16transitive_opaque_type\x18\x05 \x01(\x0b\x32-.otg.BgpExtendedCommunityTransitiveOpaqueType\x12I\n\x14transitive_evpn_type\x18\x06 \x01(\x0b\x32+.otg.BgpExtendedCommunityTransitiveEvpnType\x12Y\n\x1dnon_transitive_2octet_as_type\x18\x07 \x01(\x0b\x32\x32.otg.BgpExtendedCommunityNonTransitive2OctetAsType\x12\x33\n\x06\x63ustom\x18\x08 \x01(\x0b\x32#.otg.BgpExtendedCommunityCustomType\x1a\xe7\x01\n\x06\x43hoice\"\xdc\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1d\n\x19transitive_2octet_as_type\x10\x01\x12 \n\x1ctransitive_ipv4_address_type\x10\x02\x12\x1d\n\x19transitive_4octet_as_type\x10\x03\x12\x1a\n\x16transitive_opaque_type\x10\x04\x12\x18\n\x14transitive_evpn_type\x10\x05\x12!\n\x1dnon_transitive_2octet_as_type\x10\x06\x12\n\n\x06\x63ustom\x10\x07\x42\t\n\x07_choice\"\x9f\x01\n5BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget\x12\x1c\n\x0fglobal_2byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11local_4byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x12\n\x10_global_2byte_asB\x14\n\x12_local_4byte_admin\"\x9f\x01\n5BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin\x12\x1c\n\x0fglobal_2byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11local_4byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x12\n\x10_global_2byte_asB\x14\n\x12_local_4byte_admin\"\x94\x03\n*BgpExtendedCommunityTransitive2OctetAsType\x12P\n\x06\x63hoice\x18\x01 \x01(\x0e\x32;.otg.BgpExtendedCommunityTransitive2OctetAsType.Choice.EnumH\x00\x88\x01\x01\x12X\n\x14route_target_subtype\x18\x02 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget\x12X\n\x14route_origin_subtype\x18\x03 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin\x1aU\n\x06\x43hoice\"K\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x18\n\x14route_target_subtype\x10\x01\x12\x18\n\x14route_origin_subtype\x10\x02\x42\t\n\x07_choice\"\xa6\x01\n8BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin\x12\x1e\n\x11global_ipv4_admin\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11local_2byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x14\n\x12_global_ipv4_adminB\x14\n\x12_local_2byte_admin\"\xa6\x01\n8BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget\x12\x1e\n\x11global_ipv4_admin\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11local_2byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x14\n\x12_global_ipv4_adminB\x14\n\x12_local_2byte_admin\"\xa0\x03\n-BgpExtendedCommunityTransitiveIpv4AddressType\x12S\n\x06\x63hoice\x18\x01 \x01(\x0e\x32>.otg.BgpExtendedCommunityTransitiveIpv4AddressType.Choice.EnumH\x00\x88\x01\x01\x12[\n\x14route_target_subtype\x18\x02 \x01(\x0b\x32=.otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget\x12[\n\x14route_origin_subtype\x18\x03 \x01(\x0b\x32=.otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin\x1aU\n\x06\x43hoice\"K\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x18\n\x14route_target_subtype\x10\x01\x12\x18\n\x14route_origin_subtype\x10\x02\x42\t\n\x07_choice\"\x9f\x01\n5BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget\x12\x1c\n\x0fglobal_4byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11local_2byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x12\n\x10_global_4byte_asB\x14\n\x12_local_2byte_admin\"\x9f\x01\n5BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin\x12\x1c\n\x0fglobal_4byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11local_2byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x12\n\x10_global_4byte_asB\x14\n\x12_local_2byte_admin\"\x94\x03\n*BgpExtendedCommunityTransitive4OctetAsType\x12P\n\x06\x63hoice\x18\x01 \x01(\x0e\x32;.otg.BgpExtendedCommunityTransitive4OctetAsType.Choice.EnumH\x00\x88\x01\x01\x12X\n\x14route_target_subtype\x18\x02 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget\x12X\n\x14route_origin_subtype\x18\x03 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin\x1aU\n\x06\x43hoice\"K\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x18\n\x14route_target_subtype\x10\x01\x12\x18\n\x14route_origin_subtype\x10\x02\x42\t\n\x07_choice\"k\n-BgpExtendedCommunityTransitiveOpaqueTypeColor\x12\x12\n\x05\x66lags\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63olor\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x08\n\x06_flagsB\x08\n\x06_color\"\x85\x01\n5BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation\x12\x15\n\x08reserved\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x18\n\x0btunnel_type\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x0b\n\t_reservedB\x0e\n\x0c_tunnel_type\"\xfc\x02\n(BgpExtendedCommunityTransitiveOpaqueType\x12N\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x39.otg.BgpExtendedCommunityTransitiveOpaqueType.Choice.EnumH\x00\x88\x01\x01\x12I\n\rcolor_subtype\x18\x02 \x01(\x0b\x32\x32.otg.BgpExtendedCommunityTransitiveOpaqueTypeColor\x12Y\n\x15\x65ncapsulation_subtype\x18\x03 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation\x1aO\n\x06\x43hoice\"E\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rcolor_subtype\x10\x01\x12\x19\n\x15\x65ncapsulation_subtype\x10\x02\x42\t\n\x07_choice\"Y\n/BgpExtendedCommunityTransitiveEvpnTypeRouterMac\x12\x17\n\nrouter_mac\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_router_mac\"\x8e\x02\n&BgpExtendedCommunityTransitiveEvpnType\x12L\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x37.otg.BgpExtendedCommunityTransitiveEvpnType.Choice.EnumH\x00\x88\x01\x01\x12P\n\x12router_mac_subtype\x18\x02 \x01(\x0b\x32\x34.otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac\x1a\x39\n\x06\x43hoice\"/\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x16\n\x12router_mac_subtype\x10\x01\x42\t\n\x07_choice\"\x94\x01\n:BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth\x12\x1c\n\x0fglobal_2byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x16\n\tbandwidth\x18\x02 \x01(\x02H\x01\x88\x01\x01\x42\x12\n\x10_global_2byte_asB\x0c\n\n_bandwidth\"\xaf\x02\n-BgpExtendedCommunityNonTransitive2OctetAsType\x12S\n\x06\x63hoice\x18\x01 \x01(\x0e\x32>.otg.BgpExtendedCommunityNonTransitive2OctetAsType.Choice.EnumH\x00\x88\x01\x01\x12_\n\x16link_bandwidth_subtype\x18\x02 \x01(\x0b\x32?.otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1a\n\x16link_bandwidth_subtype\x10\x01\x42\t\n\x07_choice\"\xa4\x01\n\x1e\x42gpExtendedCommunityCustomType\x12\x1b\n\x0e\x63ommunity_type\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11\x63ommunity_subtype\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x11\n\x0f_community_typeB\x14\n\x12_community_subtypeB\x08\n\x06_value\"\x94\x06\n\x0f\x42gpV6RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V6RouteAddress\x12\x41\n\rnext_hop_mode\x18\x02 \x01(\x0e\x32%.otg.BgpV6RouteRange.NextHopMode.EnumH\x00\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x03 \x01(\x0e\x32,.otg.BgpV6RouteRange.NextHopAddressType.EnumH\x01\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x05 \x01(\tH\x03\x88\x01\x01\x12\'\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvanced\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12\x1f\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x0e.otg.BgpAsPath\x12!\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPath\x12\x11\n\x04name\x18\n \x01(\tH\x04\x88\x01\x01\x12-\n\x0f\x65xt_communities\x18\x0b \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12\x37\n\x14\x65xtended_communities\x18\x0c \x03(\x0b\x32\x19.otg.BgpExtendedCommunity\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x07\n\x05_name\"\xfb\x06\n\x0f\x42gpSrteV4Policy\x12\x1a\n\rdistinguisher\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63olor\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1a\n\ripv4_endpoint\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x41\n\rnext_hop_mode\x18\x04 \x01(\x0e\x32%.otg.BgpSrteV4Policy.NextHopMode.EnumH\x03\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x05 \x01(\x0e\x32,.otg.BgpSrteV4Policy.NextHopAddressType.EnumH\x04\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x07 \x01(\tH\x06\x88\x01\x01\x12\'\n\x08\x61\x64vanced\x18\x08 \x01(\x0b\x32\x15.otg.BgpRouteAdvanced\x12!\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPath\x12\x1f\n\x07\x61s_path\x18\n \x01(\x0b\x32\x0e.otg.BgpAsPath\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12,\n\x0btunnel_tlvs\x18\r \x03(\x0b\x32\x17.otg.BgpSrteV4TunnelTlv\x12\x11\n\x04name\x18\x0e \x01(\tH\x07\x88\x01\x01\x12\x13\n\x06\x61\x63tive\x18\x0f \x01(\x08H\x08\x88\x01\x01\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_distinguisherB\x08\n\x06_colorB\x10\n\x0e_ipv4_endpointB\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x07\n\x05_nameB\t\n\x07_active\"\xb6\x04\n\x12\x42gpSrteV4TunnelTlv\x12\x41\n\x17remote_endpoint_sub_tlv\x18\x01 \x01(\x0b\x32 .otg.BgpSrteRemoteEndpointSubTlv\x12.\n\rcolor_sub_tlv\x18\x02 \x01(\x0b\x32\x17.otg.BgpSrteColorSubTlv\x12\x32\n\x0f\x62inding_sub_tlv\x18\x03 \x01(\x0b\x32\x19.otg.BgpSrteBindingSubTlv\x12\x38\n\x12preference_sub_tlv\x18\x04 \x01(\x0b\x32\x1c.otg.BgpSrtePreferenceSubTlv\x12\x41\n\x17policy_priority_sub_tlv\x18\x05 \x01(\x0b\x32 .otg.BgpSrtePolicyPrioritySubTlv\x12\x39\n\x13policy_name_sub_tlv\x18\x06 \x01(\x0b\x32\x1c.otg.BgpSrtePolicyNameSubTlv\x12U\n\"explicit_null_label_policy_sub_tlv\x18\x07 \x01(\x0b\x32).otg.BgpSrteExplicitNullLabelPolicySubTlv\x12.\n\rsegment_lists\x18\x08 \x03(\x0b\x32\x17.otg.BgpSrteSegmentList\x12\x11\n\x04name\x18\t \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x61\x63tive\x18\n \x01(\x08H\x01\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_active\"\xbe\x02\n\x1b\x42gpSrteRemoteEndpointSubTlv\x12\x16\n\tas_number\x18\x01 \x01(\rH\x00\x88\x01\x01\x12P\n\x0e\x61\x64\x64ress_family\x18\x02 \x01(\x0e\x32\x33.otg.BgpSrteRemoteEndpointSubTlv.AddressFamily.EnumH\x01\x88\x01\x01\x12\x19\n\x0cipv4_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x19\n\x0cipv6_address\x18\x04 \x01(\tH\x03\x88\x01\x01\x1a<\n\rAddressFamily\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x0c\n\n_as_numberB\x11\n\x0f_address_familyB\x0f\n\r_ipv4_addressB\x0f\n\r_ipv6_address\"2\n\x12\x42gpSrteColorSubTlv\x12\x12\n\x05\x63olor\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_color\"\xea\x02\n\x14\x42gpSrteBindingSubTlv\x12L\n\x10\x62inding_sid_type\x18\x01 \x01(\x0e\x32-.otg.BgpSrteBindingSubTlv.BindingSidType.EnumH\x00\x88\x01\x01\x12\x1b\n\x0e\x66our_octet_sid\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08ipv6_sid\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x13\n\x06s_flag\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x13\n\x06i_flag\x18\x05 \x01(\x08H\x04\x88\x01\x01\x1a[\n\x0e\x42indingSidType\"I\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nno_binding\x10\x01\x12\x12\n\x0e\x66our_octet_sid\x10\x02\x12\x0c\n\x08ipv6_sid\x10\x03\x42\x13\n\x11_binding_sid_typeB\x11\n\x0f_four_octet_sidB\x0b\n\t_ipv6_sidB\t\n\x07_s_flagB\t\n\x07_i_flag\"A\n\x17\x42gpSrtePreferenceSubTlv\x12\x17\n\npreference\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\r\n\x0b_preference\"O\n\x1b\x42gpSrtePolicyPrioritySubTlv\x12\x1c\n\x0fpolicy_priority\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x12\n\x10_policy_priority\"C\n\x17\x42gpSrtePolicyNameSubTlv\x12\x18\n\x0bpolicy_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_policy_name\"\xd6\x02\n$BgpSrteExplicitNullLabelPolicySubTlv\x12o\n\x1a\x65xplicit_null_label_policy\x18\x01 \x01(\x0e\x32\x46.otg.BgpSrteExplicitNullLabelPolicySubTlv.ExplicitNullLabelPolicy.EnumH\x00\x88\x01\x01\x1a\x9d\x01\n\x17\x45xplicitNullLabelPolicy\"\x81\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rreserved_enlp\x10\x01\x12\x12\n\x0epush_ipv4_enlp\x10\x02\x12\x12\n\x0epush_ipv6_enlp\x10\x03\x12\x17\n\x13push_ipv4_ipv6_enlp\x10\x04\x12\x14\n\x10\x64o_not_push_enlp\x10\x05\x42\x1d\n\x1b_explicit_null_label_policy\"\x97\x01\n\x12\x42gpSrteSegmentList\x12\x13\n\x06weight\x18\x01 \x01(\rH\x00\x88\x01\x01\x12%\n\x08segments\x18\x02 \x03(\x0b\x32\x13.otg.BgpSrteSegment\x12\x11\n\x04name\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06\x61\x63tive\x18\x04 \x01(\x08H\x02\x88\x01\x01\x42\t\n\x07_weightB\x07\n\x05_nameB\t\n\x07_active\"\xdc\x06\n\x0e\x42gpSrteSegment\x12?\n\x0csegment_type\x18\x01 \x01(\x0e\x32$.otg.BgpSrteSegment.SegmentType.EnumH\x00\x88\x01\x01\x12.\n\x06type_a\x18\x02 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentATypeSubTlv\x12.\n\x06type_b\x18\x03 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentBTypeSubTlv\x12.\n\x06type_c\x18\x04 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentCTypeSubTlv\x12.\n\x06type_d\x18\x05 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentDTypeSubTlv\x12.\n\x06type_e\x18\x06 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentETypeSubTlv\x12.\n\x06type_f\x18\x07 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentFTypeSubTlv\x12.\n\x06type_g\x18\x08 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentGTypeSubTlv\x12.\n\x06type_h\x18\t \x01(\x0b\x32\x1e.otg.BgpSrteSegmentHTypeSubTlv\x12.\n\x06type_i\x18\n \x01(\x0b\x32\x1e.otg.BgpSrteSegmentITypeSubTlv\x12.\n\x06type_j\x18\x0b \x01(\x0b\x32\x1e.otg.BgpSrteSegmentJTypeSubTlv\x12.\n\x06type_k\x18\x0c \x01(\x0b\x32\x1e.otg.BgpSrteSegmentKTypeSubTlv\x12\x11\n\x04name\x18\r \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06\x61\x63tive\x18\x0e \x01(\x08H\x02\x88\x01\x01\x1a\xab\x01\n\x0bSegmentType\"\x9b\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06type_a\x10\x01\x12\n\n\x06type_b\x10\x02\x12\n\n\x06type_c\x10\x03\x12\n\n\x06type_d\x10\x04\x12\n\n\x06type_e\x10\x05\x12\n\n\x06type_f\x10\x06\x12\n\n\x06type_g\x10\x07\x12\n\n\x06type_h\x10\x08\x12\n\n\x06type_i\x10\t\x12\n\n\x06type_j\x10\n\x12\n\n\x06type_k\x10\x0b\x42\x0f\n\r_segment_typeB\x07\n\x05_nameB\t\n\x07_active\"\x80\x01\n\x10\x42gpSrteSrMplsSid\x12\x12\n\x05label\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x0f\n\x02tc\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05s_bit\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x10\n\x03ttl\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x08\n\x06_labelB\x05\n\x03_tcB\x08\n\x06_s_bitB\x06\n\x04_ttl\"\xca\x01\n*BgpSrteSRv6SIDEndpointBehaviorAndStructure\x12\x16\n\tlb_length\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x16\n\tln_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0b\x66unc_length\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x17\n\narg_length\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x0c\n\n_lb_lengthB\x0c\n\n_ln_lengthB\x0e\n\x0c_func_lengthB\r\n\x0b_arg_length\"\xa7\x01\n\x19\x42gpSrteSegmentATypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05label\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0f\n\x02tc\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x12\n\x05s_bit\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x10\n\x03ttl\x18\x05 \x01(\rH\x04\x88\x01\x01\x42\x08\n\x06_flagsB\x08\n\x06_labelB\x05\n\x03_tcB\x08\n\x06_s_bitB\x06\n\x04_ttl\"\xb2\x01\n\x19\x42gpSrteSegmentBTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08srv6_sid\x18\x02 \x01(\tH\x01\x88\x01\x01\x12S\n\x1asrv6_sid_endpoint_behavior\x18\x03 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureB\x08\n\x06_flagsB\x0b\n\t_srv6_sid\"\xc7\x01\n\x19\x42gpSrteSegmentCTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1e\n\x11ipv4_node_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x12*\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidB\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x14\n\x12_ipv4_node_address\"\xc7\x01\n\x19\x42gpSrteSegmentDTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1e\n\x11ipv6_node_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x12*\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidB\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x14\n\x12_ipv6_node_address\"\xd3\x01\n\x19\x42gpSrteSegmentETypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12local_interface_id\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1e\n\x11ipv4_node_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x12*\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidB\x08\n\x06_flagsB\x15\n\x13_local_interface_idB\x14\n\x12_ipv4_node_address\"\xd7\x01\n\x19\x42gpSrteSegmentFTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12local_ipv4_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12 \n\x13remote_ipv4_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x12*\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidB\x08\n\x06_flagsB\x15\n\x13_local_ipv4_addressB\x16\n\x14_remote_ipv4_address\"\xdd\x02\n\x19\x42gpSrteSegmentGTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12local_interface_id\x18\x02 \x01(\rH\x01\x88\x01\x01\x12$\n\x17local_ipv6_node_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x12 \n\x13remote_interface_id\x18\x04 \x01(\rH\x03\x88\x01\x01\x12%\n\x18remote_ipv6_node_address\x18\x05 \x01(\tH\x04\x88\x01\x01\x12*\n\x0bsr_mpls_sid\x18\x06 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidB\x08\n\x06_flagsB\x15\n\x13_local_interface_idB\x1a\n\x18_local_ipv6_node_addressB\x16\n\x14_remote_interface_idB\x1b\n\x19_remote_ipv6_node_address\"\xd7\x01\n\x19\x42gpSrteSegmentHTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12local_ipv6_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12 \n\x13remote_ipv6_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x12*\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidB\x08\n\x06_flagsB\x15\n\x13_local_ipv6_addressB\x16\n\x14_remote_ipv6_address\"\xe8\x01\n\x19\x42gpSrteSegmentITypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11ipv6_node_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x08srv6_sid\x18\x03 \x01(\tH\x02\x88\x01\x01\x12S\n\x1asrv6_sid_endpoint_behavior\x18\x04 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureB\x08\n\x06_flagsB\x14\n\x12_ipv6_node_addressB\x0b\n\t_srv6_sid\"\xd6\x03\n\x19\x42gpSrteSegmentJTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1f\n\x12local_interface_id\x18\x03 \x01(\rH\x02\x88\x01\x01\x12$\n\x17local_ipv6_node_address\x18\x04 \x01(\tH\x03\x88\x01\x01\x12 \n\x13remote_interface_id\x18\x05 \x01(\rH\x04\x88\x01\x01\x12%\n\x18remote_ipv6_node_address\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x15\n\x08srv6_sid\x18\x07 \x01(\tH\x06\x88\x01\x01\x12S\n\x1asrv6_sid_endpoint_behavior\x18\x08 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureB\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x15\n\x13_local_interface_idB\x1a\n\x18_local_ipv6_node_addressB\x16\n\x14_remote_interface_idB\x1b\n\x19_remote_ipv6_node_addressB\x0b\n\t_srv6_sid\"\xd0\x02\n\x19\x42gpSrteSegmentKTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1f\n\x12local_ipv6_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x12 \n\x13remote_ipv6_address\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x15\n\x08srv6_sid\x18\x05 \x01(\tH\x04\x88\x01\x01\x12S\n\x1asrv6_sid_endpoint_behavior\x18\x06 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureB\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x15\n\x13_local_ipv6_addressB\x16\n\x14_remote_ipv6_addressB\x0b\n\t_srv6_sid\"\xfa\x06\n\x0f\x42gpSrteV6Policy\x12\x1a\n\rdistinguisher\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63olor\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1a\n\ripv6_endpoint\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x41\n\rnext_hop_mode\x18\x04 \x01(\x0e\x32%.otg.BgpSrteV6Policy.NextHopMode.EnumH\x03\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x05 \x01(\x0e\x32,.otg.BgpSrteV6Policy.NextHopAddressType.EnumH\x04\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x07 \x01(\tH\x06\x88\x01\x01\x12\'\n\x08\x61\x64vanced\x18\x08 \x01(\x0b\x32\x15.otg.BgpRouteAdvanced\x12!\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPath\x12\x1f\n\x07\x61s_path\x18\n \x01(\x0b\x32\x0e.otg.BgpAsPath\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12,\n\x0e\x65xtcommunities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12,\n\x0btunnel_tlvs\x18\r \x03(\x0b\x32\x17.otg.BgpSrteV6TunnelTlv\x12\x11\n\x04name\x18\x0e \x01(\tH\x07\x88\x01\x01\x12\x13\n\x06\x61\x63tive\x18\x0f \x01(\x08H\x08\x88\x01\x01\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_distinguisherB\x08\n\x06_colorB\x10\n\x0e_ipv6_endpointB\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x07\n\x05_nameB\t\n\x07_active\"\xb6\x04\n\x12\x42gpSrteV6TunnelTlv\x12\x41\n\x17remote_endpoint_sub_tlv\x18\x01 \x01(\x0b\x32 .otg.BgpSrteRemoteEndpointSubTlv\x12.\n\rcolor_sub_tlv\x18\x02 \x01(\x0b\x32\x17.otg.BgpSrteColorSubTlv\x12\x32\n\x0f\x62inding_sub_tlv\x18\x03 \x01(\x0b\x32\x19.otg.BgpSrteBindingSubTlv\x12\x38\n\x12preference_sub_tlv\x18\x04 \x01(\x0b\x32\x1c.otg.BgpSrtePreferenceSubTlv\x12\x41\n\x17policy_priority_sub_tlv\x18\x05 \x01(\x0b\x32 .otg.BgpSrtePolicyPrioritySubTlv\x12\x39\n\x13policy_name_sub_tlv\x18\x06 \x01(\x0b\x32\x1c.otg.BgpSrtePolicyNameSubTlv\x12U\n\"explicit_null_label_policy_sub_tlv\x18\x07 \x01(\x0b\x32).otg.BgpSrteExplicitNullLabelPolicySubTlv\x12.\n\rsegment_lists\x18\x08 \x03(\x0b\x32\x17.otg.BgpSrteSegmentList\x12\x11\n\x04name\x18\t \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x61\x63tive\x18\n \x01(\x08H\x01\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_active\"\xb8\x01\n\x12\x42gpGracefulRestart\x12\x16\n\tenable_gr\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x19\n\x0crestart_time\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0b\x65nable_llgr\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x17\n\nstale_time\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x0c\n\n_enable_grB\x0f\n\r_restart_timeB\x0e\n\x0c_enable_llgrB\r\n\x0b_stale_time\"\xe5\x06\n\tBgpV6Peer\x12\x19\n\x0cpeer_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x31\n\x0fsegment_routing\x18\x02 \x01(\x0b\x32\x18.otg.BgpV6SegmentRouting\x12\x39\n\x16\x65vpn_ethernet_segments\x18\x03 \x03(\x0b\x32\x19.otg.BgpV6EthernetSegment\x12\x30\n\x07\x61s_type\x18\x04 \x01(\x0e\x32\x1a.otg.BgpV6Peer.AsType.EnumH\x01\x88\x01\x01\x12\x16\n\tas_number\x18\x05 \x01(\rH\x02\x88\x01\x01\x12?\n\x0f\x61s_number_width\x18\x06 \x01(\x0e\x32!.otg.BgpV6Peer.AsNumberWidth.EnumH\x03\x88\x01\x01\x12\"\n\x08\x61\x64vanced\x18\x07 \x01(\x0b\x32\x10.otg.BgpAdvanced\x12&\n\ncapability\x18\x08 \x01(\x0b\x32\x12.otg.BgpCapability\x12\x44\n\x1alearned_information_filter\x18\t \x01(\x0b\x32 .otg.BgpLearnedInformationFilter\x12\'\n\tv4_routes\x18\n \x03(\x0b\x32\x14.otg.BgpV4RouteRange\x12\'\n\tv6_routes\x18\x0b \x03(\x0b\x32\x14.otg.BgpV6RouteRange\x12.\n\x10v4_srte_policies\x18\x0c \x03(\x0b\x32\x14.otg.BgpSrteV4Policy\x12.\n\x10v6_srte_policies\x18\r \x03(\x0b\x32\x14.otg.BgpSrteV6Policy\x12\x11\n\x04name\x18\x0e \x01(\tH\x04\x88\x01\x01\x12\x31\n\x10graceful_restart\x18\x0f \x01(\x0b\x32\x17.otg.BgpGracefulRestart\x1a\x35\n\x06\x41sType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ibgp\x10\x01\x12\x08\n\x04\x65\x62gp\x10\x02\x1a;\n\rAsNumberWidth\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03two\x10\x01\x12\x08\n\x04\x66our\x10\x02\x42\x0f\n\r_peer_addressB\n\n\x08_as_typeB\x0c\n\n_as_numberB\x12\n\x10_as_number_widthB\x07\n\x05_name\"U\n\x0e\x42gpV6Interface\x12\x16\n\tipv6_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\x05peers\x18\x02 \x03(\x0b\x32\x0e.otg.BgpV6PeerB\x0c\n\n_ipv6_name\"\xf1\x03\n\x13\x42gpV6SegmentRouting\x12!\n\x14ingress_supports_vpn\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x15reduced_encapsulation\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x1e\n\x11\x63opy_time_to_live\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x19\n\x0ctime_to_live\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1d\n\x10max_sids_per_srh\x18\x05 \x01(\rH\x04\x88\x01\x01\x12-\n auto_generate_segment_left_value\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x1f\n\x12segment_left_value\x18\x07 \x01(\rH\x06\x88\x01\x01\x12#\n\x16\x61\x64vertise_sr_te_policy\x18\x08 \x01(\x08H\x07\x88\x01\x01\x42\x17\n\x15_ingress_supports_vpnB\x18\n\x16_reduced_encapsulationB\x14\n\x12_copy_time_to_liveB\x0f\n\r_time_to_liveB\x13\n\x11_max_sids_per_srhB#\n!_auto_generate_segment_left_valueB\x15\n\x13_segment_left_valueB\x19\n\x17_advertise_sr_te_policy\"\xf0\x03\n\x14\x42gpV6EthernetSegment\x12\x36\n\x0b\x64\x66_election\x18\x01 \x01(\x0b\x32!.otg.BgpEthernetSegmentDfElection\x12 \n\x04\x65vis\x18\x02 \x03(\x0b\x32\x12.otg.BgpV6EvpnEvis\x12\x10\n\x03\x65si\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x43\n\x0b\x61\x63tive_mode\x18\x04 \x01(\x0e\x32).otg.BgpV6EthernetSegment.ActiveMode.EnumH\x01\x88\x01\x01\x12\x16\n\tesi_label\x18\x05 \x01(\rH\x02\x88\x01\x01\x12\'\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvanced\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x08 \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12\x1f\n\x07\x61s_path\x18\t \x01(\x0b\x32\x0e.otg.BgpAsPath\x1aH\n\nActiveMode\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsingle_active\x10\x01\x12\x0e\n\nall_active\x10\x02\x42\x06\n\x04_esiB\x0e\n\x0c_active_modeB\x0c\n\n_esi_label\"\xa8\x01\n\rBgpV6EvpnEvis\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.BgpV6EvpnEvis.Choice.EnumH\x00\x88\x01\x01\x12%\n\tevi_vxlan\x18\x02 \x01(\x0b\x32\x12.otg.BgpV6EviVxlan\x1a\x30\n\x06\x43hoice\"&\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tevi_vxlan\x10\x01\x42\t\n\x07_choice\"\xe3\x05\n\rBgpV6EviVxlan\x12<\n\x11\x62roadcast_domains\x18\x01 \x03(\x0b\x32!.otg.BgpV6EviVxlanBroadcastDomain\x12\x46\n\x10replication_type\x18\x02 \x01(\x0e\x32\'.otg.BgpV6EviVxlan.ReplicationType.EnumH\x00\x88\x01\x01\x12\x17\n\npmsi_label\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08\x61\x64_label\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x37\n\x13route_distinguisher\x18\x05 \x01(\x0b\x32\x1a.otg.BgpRouteDistinguisher\x12\x30\n\x13route_target_export\x18\x06 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x30\n\x13route_target_import\x18\x07 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_export\x18\x08 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_import\x18\t \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\'\n\x08\x61\x64vanced\x18\n \x01(\x0b\x32\x15.otg.BgpRouteAdvanced\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12\x1f\n\x07\x61s_path\x18\r \x01(\x0b\x32\x0e.otg.BgpAsPath\x1a\x43\n\x0fReplicationType\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13ingress_replication\x10\x01\x42\x13\n\x11_replication_typeB\r\n\x0b_pmsi_labelB\x0b\n\t_ad_label\"\xb4\x01\n\x1c\x42gpV6EviVxlanBroadcastDomain\x12*\n\rcmac_ip_range\x18\x01 \x03(\x0b\x32\x13.otg.BgpCMacIpRange\x12\x1c\n\x0f\x65thernet_tag_id\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1f\n\x12vlan_aware_service\x18\x03 \x01(\x08H\x01\x88\x01\x01\x42\x12\n\x10_ethernet_tag_idB\x15\n\x13_vlan_aware_service\"]\n\x0b\x44\x65viceVxlan\x12&\n\nv4_tunnels\x18\x01 \x03(\x0b\x32\x12.otg.VxlanV4Tunnel\x12&\n\nv6_tunnels\x18\x02 \x03(\x0b\x32\x12.otg.VxlanV6Tunnel\"\xbb\x01\n\rVxlanV4Tunnel\x12\x1d\n\x10source_interface\x18\x01 \x01(\tH\x00\x88\x01\x01\x12@\n\x13\x64\x65stination_ip_mode\x18\x02 \x01(\x0b\x32#.otg.VxlanV4TunnelDestinationIPMode\x12\x10\n\x03vni\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04name\x18\x04 \x01(\tH\x02\x88\x01\x01\x42\x13\n\x11_source_interfaceB\x06\n\x04_vniB\x07\n\x05_name\"\xbb\x01\n\rVxlanV6Tunnel\x12\x1d\n\x10source_interface\x18\x01 \x01(\tH\x00\x88\x01\x01\x12@\n\x13\x64\x65stination_ip_mode\x18\x02 \x01(\x0b\x32#.otg.VxlanV6TunnelDestinationIPMode\x12\x10\n\x03vni\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04name\x18\x04 \x01(\tH\x02\x88\x01\x01\x42\x13\n\x11_source_interfaceB\x06\n\x04_vniB\x07\n\x05_name\"\xae\x02\n\x1eVxlanV4TunnelDestinationIPMode\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.VxlanV4TunnelDestinationIPMode.Choice.EnumH\x00\x88\x01\x01\x12;\n\x07unicast\x18\x02 \x01(\x0b\x32*.otg.VxlanV4TunnelDestinationIPModeUnicast\x12?\n\tmulticast\x18\x03 \x01(\x0b\x32,.otg.VxlanV4TunnelDestinationIPModeMulticast\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07unicast\x10\x01\x12\r\n\tmulticast\x10\x02\x42\t\n\x07_choice\"\xae\x02\n\x1eVxlanV6TunnelDestinationIPMode\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.VxlanV6TunnelDestinationIPMode.Choice.EnumH\x00\x88\x01\x01\x12;\n\x07unicast\x18\x02 \x01(\x0b\x32*.otg.VxlanV6TunnelDestinationIPModeUnicast\x12?\n\tmulticast\x18\x03 \x01(\x0b\x32,.otg.VxlanV6TunnelDestinationIPModeMulticast\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07unicast\x10\x01\x12\r\n\tmulticast\x10\x02\x42\t\n\x07_choice\"f\n%VxlanV4TunnelDestinationIPModeUnicast\x12=\n\x05vteps\x18\x01 \x03(\x0b\x32..otg.VxlanV4TunnelDestinationIPModeUnicastVtep\"f\n%VxlanV6TunnelDestinationIPModeUnicast\x12=\n\x05vteps\x18\x01 \x03(\x0b\x32..otg.VxlanV6TunnelDestinationIPModeUnicastVtep\"\x96\x01\n6VxlanTunnelDestinationIPModeUnicastArpSuppressionCache\x12\x1a\n\rremote_vm_mac\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0eremote_vm_ipv4\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_remote_vm_macB\x11\n\x0f_remote_vm_ipv4\"\xc1\x01\n)VxlanV4TunnelDestinationIPModeUnicastVtep\x12 \n\x13remote_vtep_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12Z\n\x15\x61rp_suppression_cache\x18\x02 \x03(\x0b\x32;.otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCacheB\x16\n\x14_remote_vtep_address\"\xc1\x01\n)VxlanV6TunnelDestinationIPModeUnicastVtep\x12 \n\x13remote_vtep_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12Z\n\x15\x61rp_suppression_cache\x18\x02 \x03(\x0b\x32;.otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCacheB\x16\n\x14_remote_vtep_address\"K\n\'VxlanV4TunnelDestinationIPModeMulticast\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_address\"K\n\'VxlanV6TunnelDestinationIPModeMulticast\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_address\"\x91\x01\n\nDeviceRsvp\x12/\n\x0fipv4_interfaces\x18\x01 \x03(\x0b\x32\x16.otg.RsvpIpv4Interface\x12\x36\n\x13lsp_ipv4_interfaces\x18\x02 \x03(\x0b\x32\x19.otg.RsvpLspIpv4Interface\x12\x11\n\x04name\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_name\"\xc5\x04\n\x11RsvpIpv4Interface\x12\x16\n\tipv4_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0bneighbor_ip\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1e\n\x11label_space_start\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1c\n\x0flabel_space_end\x18\x04 \x01(\rH\x03\x88\x01\x01\x12%\n\x18\x65nable_refresh_reduction\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12%\n\x18summary_refresh_interval\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x18\n\x0bsend_bundle\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12\x1d\n\x10\x62undle_threshold\x18\x08 \x01(\rH\x07\x88\x01\x01\x12\x19\n\x0c\x65nable_hello\x18\t \x01(\x08H\x08\x88\x01\x01\x12\x1b\n\x0ehello_interval\x18\n \x01(\rH\t\x88\x01\x01\x12\x1f\n\x12timeout_multiplier\x18\x0b \x01(\rH\n\x88\x01\x01\x42\x0c\n\n_ipv4_nameB\x0e\n\x0c_neighbor_ipB\x14\n\x12_label_space_startB\x12\n\x10_label_space_endB\x1b\n\x19_enable_refresh_reductionB\x1b\n\x19_summary_refresh_intervalB\x0e\n\x0c_send_bundleB\x13\n\x11_bundle_thresholdB\x0f\n\r_enable_helloB\x11\n\x0f_hello_intervalB\x15\n\x13_timeout_multiplier\"\xd0\x01\n\x14RsvpLspIpv4Interface\x12\x16\n\tipv4_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12G\n\x14p2p_egress_ipv4_lsps\x18\x02 \x01(\x0b\x32).otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp\x12I\n\x15p2p_ingress_ipv4_lsps\x18\x03 \x03(\x0b\x32*.otg.RsvpLspIpv4InterfaceP2PIngressIpv4LspB\x0c\n\n_ipv4_name\"\xf1\x03\n$RsvpLspIpv4InterfaceP2PEgressIpv4Lsp\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\x10refresh_interval\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1f\n\x12timeout_multiplier\x18\x03 \x01(\rH\x02\x88\x01\x01\x12_\n\x11reservation_style\x18\x04 \x01(\x0e\x32?.otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ReservationStyle.EnumH\x03\x88\x01\x01\x12\x1f\n\x12\x65nable_fixed_label\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1e\n\x11\x66ixed_label_value\x18\x06 \x01(\rH\x05\x88\x01\x01\x1a\\\n\x10ReservationStyle\"H\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x13\n\x0fshared_explicit\x10\x01\x12\x10\n\x0c\x66ixed_filter\x10\x02\x12\x08\n\x04\x61uto\x10\x03\x42\x07\n\x05_nameB\x13\n\x11_refresh_intervalB\x15\n\x13_timeout_multiplierB\x14\n\x12_reservation_styleB\x15\n\x13_enable_fixed_labelB\x14\n\x12_fixed_label_value\"\xab\x04\n%RsvpLspIpv4InterfaceP2PIngressIpv4Lsp\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0eremote_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x16\n\ttunnel_id\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x13\n\x06lsp_id\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1d\n\x10refresh_interval\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x1f\n\x12timeout_multiplier\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x1a\n\rbackup_lsp_id\x18\x07 \x01(\rH\x06\x88\x01\x01\x12!\n\x14lsp_switchover_delay\x18\x08 \x01(\rH\x07\x88\x01\x01\x12\x34\n\x11session_attribute\x18\t \x01(\x0b\x32\x19.otg.RsvpSessionAttribute\x12\x1d\n\x05tspec\x18\n \x01(\x0b\x32\x0e.otg.RsvpTspec\x12*\n\x0c\x66\x61st_reroute\x18\x0b \x01(\x0b\x32\x14.otg.RsvpFastReroute\x12\x19\n\x03\x65ro\x18\x0c \x01(\x0b\x32\x0c.otg.RsvpEroB\x07\n\x05_nameB\x11\n\x0f_remote_addressB\x0c\n\n_tunnel_idB\t\n\x07_lsp_idB\x13\n\x11_refresh_intervalB\x15\n\x13_timeout_multiplierB\x10\n\x0e_backup_lsp_idB\x17\n\x15_lsp_switchover_delay\"\xf0\x04\n\x14RsvpSessionAttribute\x12\'\n\x1a\x61uto_generate_session_name\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x19\n\x0csession_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0esetup_priority\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1d\n\x10holding_priority\x18\x04 \x01(\rH\x03\x88\x01\x01\x12%\n\x18local_protection_desired\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12$\n\x17label_recording_desired\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x1d\n\x10se_style_desired\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12)\n\x1c\x62\x61ndwidth_protection_desired\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12$\n\x17node_protection_desired\x18\t \x01(\x08H\x08\x88\x01\x01\x12\x38\n\x13resource_affinities\x18\n \x01(\x0b\x32\x1b.otg.RsvpResourceAffinitiesB\x1d\n\x1b_auto_generate_session_nameB\x0f\n\r_session_nameB\x11\n\x0f_setup_priorityB\x13\n\x11_holding_priorityB\x1b\n\x19_local_protection_desiredB\x1a\n\x18_label_recording_desiredB\x13\n\x11_se_style_desiredB\x1f\n\x1d_bandwidth_protection_desiredB\x1a\n\x18_node_protection_desired\"\x96\x01\n\x16RsvpResourceAffinities\x12\x18\n\x0b\x65xclude_any\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0binclude_any\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0binclude_all\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x0e\n\x0c_exclude_anyB\x0e\n\x0c_include_anyB\x0e\n\x0c_include_all\"\x9f\x02\n\tRsvpTspec\x12\x1e\n\x11token_bucket_rate\x18\x01 \x01(\x02H\x00\x88\x01\x01\x12\x1e\n\x11token_bucket_size\x18\x02 \x01(\x02H\x01\x88\x01\x01\x12\x1b\n\x0epeak_data_rate\x18\x03 \x01(\x02H\x02\x88\x01\x01\x12!\n\x14minimum_policed_unit\x18\x04 \x01(\rH\x03\x88\x01\x01\x12!\n\x14maximum_policed_unit\x18\x05 \x01(\rH\x04\x88\x01\x01\x42\x14\n\x12_token_bucket_rateB\x14\n\x12_token_bucket_sizeB\x11\n\x0f_peak_data_rateB\x17\n\x15_minimum_policed_unitB\x17\n\x15_maximum_policed_unit\"\xc7\x03\n\x0fRsvpFastReroute\x12\x1b\n\x0esetup_priority\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1d\n\x10holding_priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\thop_limit\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x16\n\tbandwidth\x18\x04 \x01(\x02H\x03\x88\x01\x01\x12\x18\n\x0b\x65xclude_any\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x18\n\x0binclude_any\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x18\n\x0binclude_all\x18\x07 \x01(\tH\x06\x88\x01\x01\x12&\n\x19one_to_one_backup_desired\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12$\n\x17\x66\x61\x63ility_backup_desired\x18\t \x01(\x08H\x08\x88\x01\x01\x42\x11\n\x0f_setup_priorityB\x13\n\x11_holding_priorityB\x0c\n\n_hop_limitB\x0c\n\n_bandwidthB\x0e\n\x0c_exclude_anyB\x0e\n\x0c_include_anyB\x0e\n\x0c_include_allB\x1c\n\x1a_one_to_one_backup_desiredB\x1a\n\x18_facility_backup_desired\"\xa8\x02\n\x07RsvpEro\x12\x45\n\x13prepend_neighbor_ip\x18\x01 \x01(\x0e\x32#.otg.RsvpEro.PrependNeighborIp.EnumH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12)\n\nsubobjects\x18\x03 \x03(\x0b\x32\x15.otg.RsvpEroSubobject\x1a\x65\n\x11PrependNeighborIp\"P\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0c\x64ont_prepend\x10\x01\x12\x11\n\rprepend_loose\x10\x02\x12\x12\n\x0eprepend_strict\x10\x03\x42\x16\n\x14_prepend_neighbor_ipB\x10\n\x0e_prefix_length\"\x8c\x03\n\x10RsvpEroSubobject\x12\x32\n\x04type\x18\x01 \x01(\x0e\x32\x1f.otg.RsvpEroSubobject.Type.EnumH\x00\x88\x01\x01\x12\x19\n\x0cipv4_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x16\n\tas_number\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x39\n\x08hop_type\x18\x05 \x01(\x0e\x32\".otg.RsvpEroSubobject.HopType.EnumH\x04\x88\x01\x01\x1a\x38\n\x04Type\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\r\n\tas_number\x10\x02\x1a\x39\n\x07HopType\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06strict\x10\x01\x12\t\n\x05loose\x10\x02\x42\x07\n\x05_typeB\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\x0c\n\n_as_numberB\x0b\n\t_hop_type\"\x8b\x02\n\x04\x46low\x12\x1c\n\x05tx_rx\x18\x01 \x01(\x0b\x32\r.otg.FlowTxRx\x12\x1f\n\x06packet\x18\x02 \x03(\x0b\x32\x0f.otg.FlowHeader\x12&\n\regress_packet\x18\t \x03(\x0b\x32\x0f.otg.FlowHeader\x12\x1b\n\x04size\x18\x03 \x01(\x0b\x32\r.otg.FlowSize\x12\x1b\n\x04rate\x18\x04 \x01(\x0b\x32\r.otg.FlowRate\x12#\n\x08\x64uration\x18\x05 \x01(\x0b\x32\x11.otg.FlowDuration\x12!\n\x07metrics\x18\x06 \x01(\x0b\x32\x10.otg.FlowMetrics\x12\x11\n\x04name\x18\x07 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_name\"\xbc\x01\n\x08\x46lowTxRx\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowTxRx.Choice.EnumH\x00\x88\x01\x01\x12\x1b\n\x04port\x18\x02 \x01(\x0b\x32\r.otg.FlowPort\x12\x1f\n\x06\x64\x65vice\x18\x03 \x01(\x0b\x32\x0f.otg.FlowRouter\x1a\x37\n\x06\x43hoice\"-\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04port\x10\x01\x12\n\n\x06\x64\x65vice\x10\x02\x42\t\n\x07_choice\"`\n\x08\x46lowPort\x12\x14\n\x07tx_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07rx_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x10\n\x08rx_names\x18\x03 \x03(\tB\n\n\x08_tx_nameB\n\n\x08_rx_name\"\xa2\x01\n\nFlowRouter\x12,\n\x04mode\x18\x01 \x01(\x0e\x32\x19.otg.FlowRouter.Mode.EnumH\x00\x88\x01\x01\x12\x10\n\x08tx_names\x18\x02 \x03(\t\x12\x10\n\x08rx_names\x18\x03 \x03(\t\x1a\x39\n\x04Mode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04mesh\x10\x01\x12\x0e\n\none_to_one\x10\x02\x42\x07\n\x05_mode\"\x92\x07\n\nFlowHeader\x12\x30\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1b.otg.FlowHeader.Choice.EnumH\x00\x88\x01\x01\x12\x1f\n\x06\x63ustom\x18\x02 \x01(\x0b\x32\x0f.otg.FlowCustom\x12#\n\x08\x65thernet\x18\x03 \x01(\x0b\x32\x11.otg.FlowEthernet\x12\x1b\n\x04vlan\x18\x04 \x01(\x0b\x32\r.otg.FlowVlan\x12\x1d\n\x05vxlan\x18\x05 \x01(\x0b\x32\x0e.otg.FlowVxlan\x12\x1b\n\x04ipv4\x18\x06 \x01(\x0b\x32\r.otg.FlowIpv4\x12\x1b\n\x04ipv6\x18\x07 \x01(\x0b\x32\r.otg.FlowIpv6\x12#\n\x08pfcpause\x18\x08 \x01(\x0b\x32\x11.otg.FlowPfcPause\x12-\n\rethernetpause\x18\t \x01(\x0b\x32\x16.otg.FlowEthernetPause\x12\x19\n\x03tcp\x18\n \x01(\x0b\x32\x0c.otg.FlowTcp\x12\x19\n\x03udp\x18\x0b \x01(\x0b\x32\x0c.otg.FlowUdp\x12\x19\n\x03gre\x18\x0c \x01(\x0b\x32\x0c.otg.FlowGre\x12\x1d\n\x05gtpv1\x18\r \x01(\x0b\x32\x0e.otg.FlowGtpv1\x12\x1d\n\x05gtpv2\x18\x0e \x01(\x0b\x32\x0e.otg.FlowGtpv2\x12\x19\n\x03\x61rp\x18\x0f \x01(\x0b\x32\x0c.otg.FlowArp\x12\x1b\n\x04icmp\x18\x10 \x01(\x0b\x32\r.otg.FlowIcmp\x12\x1f\n\x06icmpv6\x18\x11 \x01(\x0b\x32\x0f.otg.FlowIcmpv6\x12\x19\n\x03ppp\x18\x12 \x01(\x0b\x32\x0c.otg.FlowPpp\x12\x1f\n\x06igmpv1\x18\x13 \x01(\x0b\x32\x0f.otg.FlowIgmpv1\x12\x1b\n\x04mpls\x18\x14 \x01(\x0b\x32\r.otg.FlowMpls\x1a\xf5\x01\n\x06\x43hoice\"\xea\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x63ustom\x10\x01\x12\x0c\n\x08\x65thernet\x10\x02\x12\x08\n\x04vlan\x10\x03\x12\t\n\x05vxlan\x10\x04\x12\x08\n\x04ipv4\x10\x05\x12\x08\n\x04ipv6\x10\x06\x12\x0c\n\x08pfcpause\x10\x07\x12\x11\n\rethernetpause\x10\x08\x12\x07\n\x03tcp\x10\t\x12\x07\n\x03udp\x10\n\x12\x07\n\x03gre\x10\x0b\x12\t\n\x05gtpv1\x10\x0c\x12\t\n\x05gtpv2\x10\r\x12\x07\n\x03\x61rp\x10\x0e\x12\x08\n\x04icmp\x10\x0f\x12\n\n\x06icmpv6\x10\x10\x12\x07\n\x03ppp\x10\x11\x12\n\n\x06igmpv1\x10\x12\x12\x08\n\x04mpls\x10\x13\x42\t\n\x07_choice\"Y\n\nFlowCustom\x12\x12\n\x05\x62ytes\x18\x01 \x01(\tH\x00\x88\x01\x01\x12-\n\x0bmetric_tags\x18\x02 \x03(\x0b\x32\x18.otg.FlowCustomMetricTagB\x08\n\x06_bytes\"q\n\x13\x46lowCustomMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xce\x01\n\x0c\x46lowEthernet\x12(\n\x03\x64st\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowEthernetDst\x12(\n\x03src\x18\x02 \x01(\x0b\x32\x1b.otg.PatternFlowEthernetSrc\x12\x35\n\nether_type\x18\x03 \x01(\x0b\x32!.otg.PatternFlowEthernetEtherType\x12\x33\n\tpfc_queue\x18\x04 \x01(\x0b\x32 .otg.PatternFlowEthernetPfcQueue\"\xac\x01\n\x08\x46lowVlan\x12.\n\x08priority\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowVlanPriority\x12$\n\x03\x63\x66i\x18\x02 \x01(\x0b\x32\x17.otg.PatternFlowVlanCfi\x12\"\n\x02id\x18\x03 \x01(\x0b\x32\x16.otg.PatternFlowVlanId\x12&\n\x04tpid\x18\x04 \x01(\x0b\x32\x18.otg.PatternFlowVlanTpid\"\xc3\x01\n\tFlowVxlan\x12)\n\x05\x66lags\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowVxlanFlags\x12\x31\n\treserved0\x18\x02 \x01(\x0b\x32\x1e.otg.PatternFlowVxlanReserved0\x12%\n\x03vni\x18\x03 \x01(\x0b\x32\x18.otg.PatternFlowVxlanVni\x12\x31\n\treserved1\x18\x04 \x01(\x0b\x32\x1e.otg.PatternFlowVxlanReserved1\"\x84\x06\n\x08\x46lowIpv4\x12,\n\x07version\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowIpv4Version\x12\x37\n\rheader_length\x18\x02 \x01(\x0b\x32 .otg.PatternFlowIpv4HeaderLength\x12\'\n\x08priority\x18\x03 \x01(\x0b\x32\x15.otg.FlowIpv4Priority\x12\x35\n\x0ctotal_length\x18\x04 \x01(\x0b\x32\x1f.otg.PatternFlowIpv4TotalLength\x12:\n\x0eidentification\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4Identification\x12.\n\x08reserved\x18\x06 \x01(\x0b\x32\x1c.otg.PatternFlowIpv4Reserved\x12\x37\n\rdont_fragment\x18\x07 \x01(\x0b\x32 .otg.PatternFlowIpv4DontFragment\x12\x39\n\x0emore_fragments\x18\x08 \x01(\x0b\x32!.otg.PatternFlowIpv4MoreFragments\x12;\n\x0f\x66ragment_offset\x18\t \x01(\x0b\x32\".otg.PatternFlowIpv4FragmentOffset\x12\x34\n\x0ctime_to_live\x18\n \x01(\x0b\x32\x1e.otg.PatternFlowIpv4TimeToLive\x12.\n\x08protocol\x18\x0b \x01(\x0b\x32\x1c.otg.PatternFlowIpv4Protocol\x12;\n\x0fheader_checksum\x18\x0c \x01(\x0b\x32\".otg.PatternFlowIpv4HeaderChecksum\x12$\n\x03src\x18\r \x01(\x0b\x32\x17.otg.PatternFlowIpv4Src\x12$\n\x03\x64st\x18\x0e \x01(\x0b\x32\x17.otg.PatternFlowIpv4Dst\x12%\n\x07options\x18\x0f \x03(\x0b\x32\x14.otg.FlowIpv4Options\"\xc0\x01\n\x0f\x46lowIpv4Options\x12\x35\n\x06\x63hoice\x18\x01 \x01(\x0e\x32 .otg.FlowIpv4Options.Choice.EnumH\x00\x88\x01\x01\x12*\n\x06\x63ustom\x18\x02 \x01(\x0b\x32\x1a.otg.FlowIpv4OptionsCustom\x1a?\n\x06\x43hoice\"5\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0crouter_alert\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x42\t\n\x07_choice\"\x95\x01\n\x15\x46lowIpv4OptionsCustom\x12,\n\x04type\x18\x01 \x01(\x0b\x32\x1e.otg.FlowIpv4OptionsCustomType\x12\x30\n\x06length\x18\x02 \x01(\x0b\x32 .otg.FlowIpv4OptionsCustomLength\x12\x12\n\x05value\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_value\"\xf3\x01\n\x19\x46lowIpv4OptionsCustomType\x12\x44\n\x0b\x63opied_flag\x18\x01 \x01(\x0b\x32/.otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag\x12\x46\n\x0coption_class\x18\x02 \x01(\x0b\x32\x30.otg.PatternFlowIpv4OptionsCustomTypeOptionClass\x12H\n\roption_number\x18\x03 \x01(\x0b\x32\x31.otg.PatternFlowIpv4OptionsCustomTypeOptionNumber\"\xdd\x01\n\x1b\x46lowIpv4OptionsCustomLength\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.FlowIpv4OptionsCustomLength.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\x82\x02\n\x10\x46lowIpv4Priority\x12\x36\n\x06\x63hoice\x18\x01 \x01(\x0e\x32!.otg.FlowIpv4Priority.Choice.EnumH\x00\x88\x01\x01\x12,\n\x03raw\x18\x02 \x01(\x0b\x32\x1f.otg.PatternFlowIpv4PriorityRaw\x12\x1d\n\x03tos\x18\x03 \x01(\x0b\x32\x10.otg.FlowIpv4Tos\x12\x1f\n\x04\x64scp\x18\x04 \x01(\x0b\x32\x11.otg.FlowIpv4Dscp\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03raw\x10\x01\x12\x07\n\x03tos\x10\x02\x12\x08\n\x04\x64scp\x10\x03\x42\t\n\x07_choice\"b\n\x0c\x46lowIpv4Dscp\x12(\n\x03phb\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowIpv4DscpPhb\x12(\n\x03\x65\x63n\x18\x02 \x01(\x0b\x32\x1b.otg.PatternFlowIpv4DscpEcn\"\xc3\x02\n\x0b\x46lowIpv4Tos\x12\x35\n\nprecedence\x18\x01 \x01(\x0b\x32!.otg.PatternFlowIpv4TosPrecedence\x12+\n\x05\x64\x65lay\x18\x02 \x01(\x0b\x32\x1c.otg.PatternFlowIpv4TosDelay\x12\x35\n\nthroughput\x18\x03 \x01(\x0b\x32!.otg.PatternFlowIpv4TosThroughput\x12\x37\n\x0breliability\x18\x04 \x01(\x0b\x32\".otg.PatternFlowIpv4TosReliability\x12\x31\n\x08monetary\x18\x05 \x01(\x0b\x32\x1f.otg.PatternFlowIpv4TosMonetary\x12-\n\x06unused\x18\x06 \x01(\x0b\x32\x1d.otg.PatternFlowIpv4TosUnused\"\x91\x03\n\x08\x46lowIpv6\x12,\n\x07version\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowIpv6Version\x12\x37\n\rtraffic_class\x18\x02 \x01(\x0b\x32 .otg.PatternFlowIpv6TrafficClass\x12\x31\n\nflow_label\x18\x03 \x01(\x0b\x32\x1d.otg.PatternFlowIpv6FlowLabel\x12\x39\n\x0epayload_length\x18\x04 \x01(\x0b\x32!.otg.PatternFlowIpv6PayloadLength\x12\x33\n\x0bnext_header\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6NextHeader\x12/\n\thop_limit\x18\x06 \x01(\x0b\x32\x1c.otg.PatternFlowIpv6HopLimit\x12$\n\x03src\x18\x07 \x01(\x0b\x32\x17.otg.PatternFlowIpv6Src\x12$\n\x03\x64st\x18\x08 \x01(\x0b\x32\x17.otg.PatternFlowIpv6Dst\"\x81\x06\n\x0c\x46lowPfcPause\x12(\n\x03\x64st\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowPfcPauseDst\x12(\n\x03src\x18\x02 \x01(\x0b\x32\x1b.otg.PatternFlowPfcPauseSrc\x12\x35\n\nether_type\x18\x03 \x01(\x0b\x32!.otg.PatternFlowPfcPauseEtherType\x12>\n\x0f\x63ontrol_op_code\x18\x04 \x01(\x0b\x32%.otg.PatternFlowPfcPauseControlOpCode\x12\x46\n\x13\x63lass_enable_vector\x18\x05 \x01(\x0b\x32).otg.PatternFlowPfcPauseClassEnableVector\x12:\n\rpause_class_0\x18\x06 \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass0\x12:\n\rpause_class_1\x18\x07 \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass1\x12:\n\rpause_class_2\x18\x08 \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass2\x12:\n\rpause_class_3\x18\t \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass3\x12:\n\rpause_class_4\x18\n \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass4\x12:\n\rpause_class_5\x18\x0b \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass5\x12:\n\rpause_class_6\x18\x0c \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass6\x12:\n\rpause_class_7\x18\r \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass7\"\xa3\x02\n\x11\x46lowEthernetPause\x12-\n\x03\x64st\x18\x01 \x01(\x0b\x32 .otg.PatternFlowEthernetPauseDst\x12-\n\x03src\x18\x02 \x01(\x0b\x32 .otg.PatternFlowEthernetPauseSrc\x12:\n\nether_type\x18\x03 \x01(\x0b\x32&.otg.PatternFlowEthernetPauseEtherType\x12\x43\n\x0f\x63ontrol_op_code\x18\x04 \x01(\x0b\x32*.otg.PatternFlowEthernetPauseControlOpCode\x12/\n\x04time\x18\x05 \x01(\x0b\x32!.otg.PatternFlowEthernetPauseTime\"\xa8\x05\n\x07\x46lowTcp\x12,\n\x08src_port\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowTcpSrcPort\x12,\n\x08\x64st_port\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowTcpDstPort\x12*\n\x07seq_num\x18\x03 \x01(\x0b\x32\x19.otg.PatternFlowTcpSeqNum\x12*\n\x07\x61\x63k_num\x18\x04 \x01(\x0b\x32\x19.otg.PatternFlowTcpAckNum\x12\x32\n\x0b\x64\x61ta_offset\x18\x05 \x01(\x0b\x32\x1d.otg.PatternFlowTcpDataOffset\x12(\n\x06\x65\x63n_ns\x18\x06 \x01(\x0b\x32\x18.otg.PatternFlowTcpEcnNs\x12*\n\x07\x65\x63n_cwr\x18\x07 \x01(\x0b\x32\x19.otg.PatternFlowTcpEcnCwr\x12,\n\x08\x65\x63n_echo\x18\x08 \x01(\x0b\x32\x1a.otg.PatternFlowTcpEcnEcho\x12*\n\x07\x63tl_urg\x18\t \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlUrg\x12*\n\x07\x63tl_ack\x18\n \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlAck\x12*\n\x07\x63tl_psh\x18\x0b \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlPsh\x12*\n\x07\x63tl_rst\x18\x0c \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlRst\x12*\n\x07\x63tl_syn\x18\r \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlSyn\x12*\n\x07\x63tl_fin\x18\x0e \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlFin\x12)\n\x06window\x18\x0f \x01(\x0b\x32\x19.otg.PatternFlowTcpWindow\"\xbf\x01\n\x07\x46lowUdp\x12,\n\x08src_port\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowUdpSrcPort\x12,\n\x08\x64st_port\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowUdpDstPort\x12)\n\x06length\x18\x03 \x01(\x0b\x32\x19.otg.PatternFlowUdpLength\x12-\n\x08\x63hecksum\x18\x04 \x01(\x0b\x32\x1b.otg.PatternFlowUdpChecksum\"\xb4\x02\n\x07\x46lowGre\x12<\n\x10\x63hecksum_present\x18\x01 \x01(\x0b\x32\".otg.PatternFlowGreChecksumPresent\x12/\n\treserved0\x18\x02 \x01(\x0b\x32\x1c.otg.PatternFlowGreReserved0\x12+\n\x07version\x18\x03 \x01(\x0b\x32\x1a.otg.PatternFlowGreVersion\x12-\n\x08protocol\x18\x04 \x01(\x0b\x32\x1b.otg.PatternFlowGreProtocol\x12-\n\x08\x63hecksum\x18\x05 \x01(\x0b\x32\x1b.otg.PatternFlowGreChecksum\x12/\n\treserved1\x18\x06 \x01(\x0b\x32\x1c.otg.PatternFlowGreReserved1\"\xbf\x05\n\tFlowGtpv1\x12-\n\x07version\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowGtpv1Version\x12\x38\n\rprotocol_type\x18\x02 \x01(\x0b\x32!.otg.PatternFlowGtpv1ProtocolType\x12/\n\x08reserved\x18\x03 \x01(\x0b\x32\x1d.otg.PatternFlowGtpv1Reserved\x12*\n\x06\x65_flag\x18\x04 \x01(\x0b\x32\x1a.otg.PatternFlowGtpv1EFlag\x12*\n\x06s_flag\x18\x05 \x01(\x0b\x32\x1a.otg.PatternFlowGtpv1SFlag\x12,\n\x07pn_flag\x18\x06 \x01(\x0b\x32\x1b.otg.PatternFlowGtpv1PnFlag\x12\x36\n\x0cmessage_type\x18\x07 \x01(\x0b\x32 .otg.PatternFlowGtpv1MessageType\x12:\n\x0emessage_length\x18\x08 \x01(\x0b\x32\".otg.PatternFlowGtpv1MessageLength\x12\'\n\x04teid\x18\t \x01(\x0b\x32\x19.otg.PatternFlowGtpv1Teid\x12:\n\x0esquence_number\x18\n \x01(\x0b\x32\".otg.PatternFlowGtpv1SquenceNumber\x12\x35\n\x0cn_pdu_number\x18\x0b \x01(\x0b\x32\x1f.otg.PatternFlowGtpv1NPduNumber\x12P\n\x1anext_extension_header_type\x18\x0c \x01(\x0b\x32,.otg.PatternFlowGtpv1NextExtensionHeaderType\x12\x30\n\x11\x65xtension_headers\x18\r \x03(\x0b\x32\x15.otg.FlowGtpExtension\"\xe1\x01\n\x10\x46lowGtpExtension\x12\x45\n\x10\x65xtension_length\x18\x01 \x01(\x0b\x32+.otg.PatternFlowGtpExtensionExtensionLength\x12\x36\n\x08\x63ontents\x18\x02 \x01(\x0b\x32$.otg.PatternFlowGtpExtensionContents\x12N\n\x15next_extension_header\x18\x03 \x01(\x0b\x32/.otg.PatternFlowGtpExtensionNextExtensionHeader\"\xe3\x03\n\tFlowGtpv2\x12-\n\x07version\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowGtpv2Version\x12@\n\x11piggybacking_flag\x18\x02 \x01(\x0b\x32%.otg.PatternFlowGtpv2PiggybackingFlag\x12\x30\n\tteid_flag\x18\x03 \x01(\x0b\x32\x1d.otg.PatternFlowGtpv2TeidFlag\x12+\n\x06spare1\x18\x04 \x01(\x0b\x32\x1b.otg.PatternFlowGtpv2Spare1\x12\x36\n\x0cmessage_type\x18\x05 \x01(\x0b\x32 .otg.PatternFlowGtpv2MessageType\x12:\n\x0emessage_length\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv2MessageLength\x12\'\n\x04teid\x18\x07 \x01(\x0b\x32\x19.otg.PatternFlowGtpv2Teid\x12<\n\x0fsequence_number\x18\x08 \x01(\x0b\x32#.otg.PatternFlowGtpv2SequenceNumber\x12+\n\x06spare2\x18\t \x01(\x0b\x32\x1b.otg.PatternFlowGtpv2Spare2\"\xb6\x04\n\x07\x46lowArp\x12\x36\n\rhardware_type\x18\x01 \x01(\x0b\x32\x1f.otg.PatternFlowArpHardwareType\x12\x36\n\rprotocol_type\x18\x02 \x01(\x0b\x32\x1f.otg.PatternFlowArpProtocolType\x12:\n\x0fhardware_length\x18\x03 \x01(\x0b\x32!.otg.PatternFlowArpHardwareLength\x12:\n\x0fprotocol_length\x18\x04 \x01(\x0b\x32!.otg.PatternFlowArpProtocolLength\x12/\n\toperation\x18\x05 \x01(\x0b\x32\x1c.otg.PatternFlowArpOperation\x12\x43\n\x14sender_hardware_addr\x18\x06 \x01(\x0b\x32%.otg.PatternFlowArpSenderHardwareAddr\x12\x43\n\x14sender_protocol_addr\x18\x07 \x01(\x0b\x32%.otg.PatternFlowArpSenderProtocolAddr\x12\x43\n\x14target_hardware_addr\x18\x08 \x01(\x0b\x32%.otg.PatternFlowArpTargetHardwareAddr\x12\x43\n\x14target_protocol_addr\x18\t \x01(\x0b\x32%.otg.PatternFlowArpTargetProtocolAddr\"\x93\x01\n\x08\x46lowIcmp\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowIcmp.Choice.EnumH\x00\x88\x01\x01\x12\x1f\n\x04\x65\x63ho\x18\x02 \x01(\x0b\x32\x11.otg.FlowIcmpEcho\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x65\x63ho\x10\x01\x42\t\n\x07_choice\"\x93\x02\n\x0c\x46lowIcmpEcho\x12*\n\x04type\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowIcmpEchoType\x12*\n\x04\x63ode\x18\x02 \x01(\x0b\x32\x1c.otg.PatternFlowIcmpEchoCode\x12\x32\n\x08\x63hecksum\x18\x03 \x01(\x0b\x32 .otg.PatternFlowIcmpEchoChecksum\x12\x36\n\nidentifier\x18\x04 \x01(\x0b\x32\".otg.PatternFlowIcmpEchoIdentifier\x12?\n\x0fsequence_number\x18\x05 \x01(\x0b\x32&.otg.PatternFlowIcmpEchoSequenceNumber\"\x99\x01\n\nFlowIcmpv6\x12\x30\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1b.otg.FlowIcmpv6.Choice.EnumH\x00\x88\x01\x01\x12!\n\x04\x65\x63ho\x18\x02 \x01(\x0b\x32\x13.otg.FlowIcmpv6Echo\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x65\x63ho\x10\x01\x42\t\n\x07_choice\"\x9f\x02\n\x0e\x46lowIcmpv6Echo\x12,\n\x04type\x18\x01 \x01(\x0b\x32\x1e.otg.PatternFlowIcmpv6EchoType\x12,\n\x04\x63ode\x18\x02 \x01(\x0b\x32\x1e.otg.PatternFlowIcmpv6EchoCode\x12\x38\n\nidentifier\x18\x03 \x01(\x0b\x32$.otg.PatternFlowIcmpv6EchoIdentifier\x12\x41\n\x0fsequence_number\x18\x04 \x01(\x0b\x32(.otg.PatternFlowIcmpv6EchoSequenceNumber\x12\x34\n\x08\x63hecksum\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIcmpv6EchoChecksum\"\x9b\x01\n\x07\x46lowPpp\x12+\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowPppAddress\x12+\n\x07\x63ontrol\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowPppControl\x12\x36\n\rprotocol_type\x18\x03 \x01(\x0b\x32\x1f.otg.PatternFlowPppProtocolType\"\x81\x02\n\nFlowIgmpv1\x12.\n\x07version\x18\x01 \x01(\x0b\x32\x1d.otg.PatternFlowIgmpv1Version\x12(\n\x04type\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowIgmpv1Type\x12,\n\x06unused\x18\x03 \x01(\x0b\x32\x1c.otg.PatternFlowIgmpv1Unused\x12\x30\n\x08\x63hecksum\x18\x04 \x01(\x0b\x32\x1e.otg.PatternFlowIgmpv1Checksum\x12\x39\n\rgroup_address\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIgmpv1GroupAddress\"\xdf\x01\n\x08\x46lowMpls\x12(\n\x05label\x18\x01 \x01(\x0b\x32\x19.otg.PatternFlowMplsLabel\x12\x37\n\rtraffic_class\x18\x02 \x01(\x0b\x32 .otg.PatternFlowMplsTrafficClass\x12:\n\x0f\x62ottom_of_stack\x18\x03 \x01(\x0b\x32!.otg.PatternFlowMplsBottomOfStack\x12\x34\n\x0ctime_to_live\x18\x04 \x01(\x0b\x32\x1e.otg.PatternFlowMplsTimeToLive\"\xbe\x02\n\x08\x46lowSize\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowSize.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05\x66ixed\x18\x02 \x01(\rH\x01\x88\x01\x01\x12)\n\tincrement\x18\x03 \x01(\x0b\x32\x16.otg.FlowSizeIncrement\x12#\n\x06random\x18\x04 \x01(\x0b\x32\x13.otg.FlowSizeRandom\x12.\n\x0cweight_pairs\x18\x05 \x01(\x0b\x32\x18.otg.FlowSizeWeightPairs\x1aY\n\x06\x43hoice\"O\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x66ixed\x10\x01\x12\r\n\tincrement\x10\x02\x12\n\n\x06random\x10\x03\x12\x10\n\x0cweight_pairs\x10\x04\x42\t\n\x07_choiceB\x08\n\x06_fixed\"g\n\x11\x46lowSizeIncrement\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03\x65nd\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04step\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x06\n\x04_endB\x07\n\x05_step\"D\n\x0e\x46lowSizeRandom\x12\x10\n\x03min\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03max\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x06\n\x04_minB\x06\n\x04_max\"\x8d\x03\n\x13\x46lowSizeWeightPairs\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.FlowSizeWeightPairs.Choice.EnumH\x00\x88\x01\x01\x12\x41\n\npredefined\x18\x02 \x01(\x0e\x32(.otg.FlowSizeWeightPairs.Predefined.EnumH\x01\x88\x01\x01\x12.\n\x06\x63ustom\x18\x03 \x03(\x0b\x32\x1e.otg.FlowSizeWeightPairsCustom\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\npredefined\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1ao\n\nPredefined\"a\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04imix\x10\x01\x12\x0e\n\nipsec_imix\x10\x02\x12\r\n\tipv6_imix\x10\x03\x12\x11\n\rstandard_imix\x10\x04\x12\x0c\n\x08tcp_imix\x10\x05\x42\t\n\x07_choiceB\r\n\x0b_predefined\"W\n\x19\x46lowSizeWeightPairsCustom\x12\x11\n\x04size\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06weight\x18\x02 \x01(\x02H\x01\x88\x01\x01\x42\x07\n\x05_sizeB\t\n\x07_weight\"\xd8\x02\n\x08\x46lowRate\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowRate.Choice.EnumH\x00\x88\x01\x01\x12\x10\n\x03pps\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x10\n\x03\x62ps\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x11\n\x04kbps\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x11\n\x04mbps\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x11\n\x04gbps\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x17\n\npercentage\x18\x07 \x01(\x02H\x06\x88\x01\x01\x1a\x61\n\x06\x43hoice\"W\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03pps\x10\x01\x12\x07\n\x03\x62ps\x10\x02\x12\x08\n\x04kbps\x10\x03\x12\x08\n\x04mbps\x10\x04\x12\x08\n\x04gbps\x10\x05\x12\x0e\n\npercentage\x10\x06\x42\t\n\x07_choiceB\x06\n\x04_ppsB\x06\n\x04_bpsB\x07\n\x05_kbpsB\x07\n\x05_mbpsB\x07\n\x05_gbpsB\r\n\x0b_percentage\"\xd5\x02\n\x0c\x46lowDuration\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.FlowDuration.Choice.EnumH\x00\x88\x01\x01\x12,\n\rfixed_packets\x18\x02 \x01(\x0b\x32\x15.otg.FlowFixedPackets\x12,\n\rfixed_seconds\x18\x03 \x01(\x0b\x32\x15.otg.FlowFixedSeconds\x12\x1d\n\x05\x62urst\x18\x04 \x01(\x0b\x32\x0e.otg.FlowBurst\x12\'\n\ncontinuous\x18\x05 \x01(\x0b\x32\x13.otg.FlowContinuous\x1a\x62\n\x06\x43hoice\"X\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rfixed_packets\x10\x01\x12\x11\n\rfixed_seconds\x10\x02\x12\t\n\x05\x62urst\x10\x03\x12\x0e\n\ncontinuous\x10\x04\x42\t\n\x07_choice\"I\n\x0e\x46lowContinuous\x12\x10\n\x03gap\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1d\n\x05\x64\x65lay\x18\x02 \x01(\x0b\x32\x0e.otg.FlowDelayB\x06\n\x04_gap\"\x8c\x02\n\tFlowDelay\x12/\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1a.otg.FlowDelay.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05\x62ytes\x18\x02 \x01(\x02H\x01\x88\x01\x01\x12\x18\n\x0bnanoseconds\x18\x03 \x01(\x02H\x02\x88\x01\x01\x12\x19\n\x0cmicroseconds\x18\x04 \x01(\x02H\x03\x88\x01\x01\x1aO\n\x06\x43hoice\"E\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x62ytes\x10\x01\x12\x0f\n\x0bnanoseconds\x10\x02\x12\x10\n\x0cmicroseconds\x10\x03\x42\t\n\x07_choiceB\x08\n\x06_bytesB\x0e\n\x0c_nanosecondsB\x0f\n\r_microseconds\"m\n\x10\x46lowFixedPackets\x12\x14\n\x07packets\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03gap\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1d\n\x05\x64\x65lay\x18\x03 \x01(\x0b\x32\x0e.otg.FlowDelayB\n\n\x08_packetsB\x06\n\x04_gap\"m\n\x10\x46lowFixedSeconds\x12\x14\n\x07seconds\x18\x01 \x01(\x02H\x00\x88\x01\x01\x12\x10\n\x03gap\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1d\n\x05\x64\x65lay\x18\x03 \x01(\x0b\x32\x0e.otg.FlowDelayB\n\n\x08_secondsB\x06\n\x04_gap\"\xa0\x01\n\tFlowBurst\x12\x13\n\x06\x62ursts\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07packets\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x10\n\x03gap\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x37\n\x0finter_burst_gap\x18\x04 \x01(\x0b\x32\x1e.otg.FlowDurationInterBurstGapB\t\n\x07_burstsB\n\n\x08_packetsB\x06\n\x04_gap\"\xac\x02\n\x19\x46lowDurationInterBurstGap\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.FlowDurationInterBurstGap.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05\x62ytes\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x18\n\x0bnanoseconds\x18\x03 \x01(\x01H\x02\x88\x01\x01\x12\x19\n\x0cmicroseconds\x18\x04 \x01(\x01H\x03\x88\x01\x01\x1aO\n\x06\x43hoice\"E\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x62ytes\x10\x01\x12\x0f\n\x0bnanoseconds\x10\x02\x12\x10\n\x0cmicroseconds\x10\x03\x42\t\n\x07_choiceB\x08\n\x06_bytesB\x0e\n\x0c_nanosecondsB\x0f\n\r_microseconds\"\xfd\x01\n\x0b\x46lowMetrics\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x11\n\x04loss\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\'\n\x0brx_tx_ratio\x18\x06 \x01(\x0b\x32\x12.otg.FlowRxTxRatio\x12\x17\n\ntimestamps\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12(\n\x07latency\x18\x04 \x01(\x0b\x32\x17.otg.FlowLatencyMetrics\x12\x37\n\x16predefined_metric_tags\x18\x05 \x01(\x0b\x32\x17.otg.FlowPredefinedTagsB\t\n\x07_enableB\x07\n\x05_lossB\r\n\x0b_timestamps\"\xb8\x01\n\x12\x46lowLatencyMetrics\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x34\n\x04mode\x18\x02 \x01(\x0e\x32!.otg.FlowLatencyMetrics.Mode.EnumH\x01\x88\x01\x01\x1a\x43\n\x04Mode\";\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rstore_forward\x10\x01\x12\x0f\n\x0b\x63ut_through\x10\x02\x42\t\n\x07_enableB\x07\n\x05_mode\"6\n\x12\x46lowPredefinedTags\x12\x14\n\x07rx_name\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\n\n\x08_rx_name\"\xd6\x01\n\rFlowRxTxRatio\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.FlowRxTxRatio.Choice.EnumH\x00\x88\x01\x01\x12+\n\x08rx_count\x18\x02 \x01(\x0b\x32\x19.otg.FlowRxTxRatioRxCount\x12\x12\n\x05value\x18\x03 \x01(\x02H\x01\x88\x01\x01\x1a:\n\x06\x43hoice\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08rx_count\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x08\n\x06_value\"\x16\n\x14\x46lowRxTxRatioRxCount\"\xbf\x01\n\x05\x45vent\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1c\n\x04link\x18\x02 \x01(\x0b\x32\x0e.otg.EventLink\x12\x34\n\x11rx_rate_threshold\x18\x03 \x01(\x0b\x32\x19.otg.EventRxRateThreshold\x12\x42\n\x18route_advertise_withdraw\x18\x04 \x01(\x0b\x32 .otg.EventRouteAdvertiseWithdrawB\t\n\x07_enable\"\\\n\x14\x45ventRxRateThreshold\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x16\n\tthreshold\x18\x02 \x01(\x02H\x01\x88\x01\x01\x42\t\n\x07_enableB\x0c\n\n_threshold\"+\n\tEventLink\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\t\n\x07_enable\"=\n\x1b\x45ventRouteAdvertiseWithdraw\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\t\n\x07_enable\"\xf5\x01\n\x0c\x45ventRequest\x12)\n\x04type\x18\x01 \x03(\x0e\x32\x1b.otg.EventRequest.Type.Enum\x12\x0e\n\x06source\x18\x02 \x03(\t\x1a\xa9\x01\n\x04Type\"\xa0\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tlink_down\x10\x01\x12\x0b\n\x07link_up\x10\x02\x12\x12\n\x0eroute_withdraw\x10\x03\x12\x13\n\x0froute_advertise\x10\x04\x12 \n\x1c\x66low_rx_rate_above_threshold\x10\x05\x12 \n\x1c\x66low_rx_rate_below_threshold\x10\x06\"b\n\x11\x45ventSubscription\x12!\n\x06\x65vents\x18\x01 \x01(\x0b\x32\x11.otg.EventRequest\x12\x19\n\x0c\x63\x61llback_url\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0f\n\r_callback_url\"\xa5\x02\n\x04Lldp\x12\'\n\nconnection\x18\x01 \x01(\x0b\x32\x13.otg.LldpConnection\x12&\n\nchassis_id\x18\x02 \x01(\x0b\x32\x12.otg.LldpChassisId\x12 \n\x07port_id\x18\x03 \x01(\x0b\x32\x0f.otg.LldpPortId\x12(\n\x0bsystem_name\x18\x04 \x01(\x0b\x32\x13.otg.LldpSystemName\x12\x16\n\thold_time\x18\x05 \x01(\rH\x00\x88\x01\x01\x12#\n\x16\x61\x64vertisement_interval\x18\x06 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04name\x18\x07 \x01(\tH\x02\x88\x01\x01\x42\x0c\n\n_hold_timeB\x19\n\x17_advertisement_intervalB\x07\n\x05_name\"\xa9\x01\n\x0eLldpConnection\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.LldpConnection.Choice.EnumH\x00\x88\x01\x01\x12\x16\n\tport_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x1a\x30\n\x06\x43hoice\"&\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tport_name\x10\x01\x42\t\n\x07_choiceB\x0c\n\n_port_name\"\xe1\x02\n\rLldpChassisId\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.LldpChassisId.Choice.EnumH\x00\x88\x01\x01\x12\x37\n\x13mac_address_subtype\x18\x02 \x01(\x0b\x32\x1a.otg.LldpChassisMacSubType\x12#\n\x16interface_name_subtype\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x1a\n\rlocal_subtype\x18\x04 \x01(\tH\x02\x88\x01\x01\x1ai\n\x06\x43hoice\"_\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13mac_address_subtype\x10\x01\x12\x1a\n\x16interface_name_subtype\x10\x02\x12\x11\n\rlocal_subtype\x10\x03\x42\t\n\x07_choiceB\x19\n\x17_interface_name_subtypeB\x10\n\x0e_local_subtype\"\xdf\x02\n\nLldpPortId\x12\x30\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1b.otg.LldpPortId.Choice.EnumH\x00\x88\x01\x01\x12 \n\x13mac_address_subtype\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x41\n\x16interface_name_subtype\x18\x03 \x01(\x0b\x32!.otg.LldpPortInterfaceNameSubType\x12\x1a\n\rlocal_subtype\x18\x04 \x01(\tH\x02\x88\x01\x01\x1ai\n\x06\x43hoice\"_\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13mac_address_subtype\x10\x01\x12\x1a\n\x16interface_name_subtype\x10\x02\x12\x11\n\rlocal_subtype\x10\x03\x42\t\n\x07_choiceB\x16\n\x14_mac_address_subtypeB\x10\n\x0e_local_subtype\"\xd1\x01\n\x15LldpChassisMacSubType\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.LldpChassisMacSubType.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xdf\x01\n\x1cLldpPortInterfaceNameSubType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.LldpPortInterfaceNameSubType.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xc3\x01\n\x0eLldpSystemName\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.LldpSystemName.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xa4\x01\n\x05\x45rror\x12\x11\n\x04\x63ode\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\'\n\x04kind\x18\x02 \x01(\x0e\x32\x14.otg.Error.Kind.EnumH\x01\x88\x01\x01\x12\x0e\n\x06\x65rrors\x18\x03 \x03(\t\x1a=\n\x04Kind\"5\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nvalidation\x10\x01\x12\x0c\n\x08internal\x10\x02\x42\x07\n\x05_codeB\x07\n\x05_kind\"\x1b\n\x07Warning\x12\x10\n\x08warnings\x18\x01 \x03(\t\"\x9c\x01\n\x0c\x43onfigUpdate\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.ConfigUpdate.Choice.EnumH\x00\x88\x01\x01\x12\x1f\n\x05\x66lows\x18\x02 \x01(\x0b\x32\x10.otg.FlowsUpdate\x1a,\n\x06\x43hoice\"\"\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x66lows\x10\x01\x42\t\n\x07_choice\"\xa2\x01\n\x0b\x46lowsUpdate\x12;\n\x0eproperty_names\x18\x01 \x03(\x0e\x32#.otg.FlowsUpdate.PropertyNames.Enum\x12\x18\n\x05\x66lows\x18\x02 \x03(\x0b\x32\t.otg.Flow\x1a<\n\rPropertyNames\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04rate\x10\x01\x12\x08\n\x04size\x10\x02\"\xfd\x01\n\x0c\x43ontrolState\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.ControlState.Choice.EnumH\x00\x88\x01\x01\x12\x1c\n\x04port\x18\x02 \x01(\x0b\x32\x0e.otg.StatePort\x12$\n\x08protocol\x18\x03 \x01(\x0b\x32\x12.otg.StateProtocol\x12\"\n\x07traffic\x18\x04 \x01(\x0b\x32\x11.otg.StateTraffic\x1a\x46\n\x06\x43hoice\"<\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04port\x10\x01\x12\x0c\n\x08protocol\x10\x02\x12\x0b\n\x07traffic\x10\x03\x42\t\n\x07_choice\"\xcb\x01\n\tStatePort\x12/\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1a.otg.StatePort.Choice.EnumH\x00\x88\x01\x01\x12 \n\x04link\x18\x02 \x01(\x0b\x32\x12.otg.StatePortLink\x12&\n\x07\x63\x61pture\x18\x03 \x01(\x0b\x32\x15.otg.StatePortCapture\x1a\x38\n\x06\x43hoice\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04link\x10\x01\x12\x0b\n\x07\x63\x61pture\x10\x02\x42\t\n\x07_choice\"\xb9\x01\n\x0cStateTraffic\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.StateTraffic.Choice.EnumH\x00\x88\x01\x01\x12\x34\n\rflow_transmit\x18\x02 \x01(\x0b\x32\x1d.otg.StateTrafficFlowTransmit\x1a\x34\n\x06\x43hoice\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rflow_transmit\x10\x01\x42\t\n\x07_choice\"\xdf\x02\n\rStateProtocol\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.StateProtocol.Choice.EnumH\x00\x88\x01\x01\x12\"\n\x03\x61ll\x18\x02 \x01(\x0b\x32\x15.otg.StateProtocolAll\x12&\n\x05route\x18\x03 \x01(\x0b\x32\x17.otg.StateProtocolRoute\x12$\n\x04lacp\x18\x04 \x01(\x0b\x32\x16.otg.StateProtocolLacp\x12\"\n\x03\x62gp\x18\x05 \x01(\x0b\x32\x15.otg.StateProtocolBgp\x12$\n\x04isis\x18\x06 \x01(\x0b\x32\x16.otg.StateProtocolIsis\x1aR\n\x06\x43hoice\"H\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03\x61ll\x10\x01\x12\t\n\x05route\x10\x02\x12\x08\n\x04lacp\x10\x03\x12\x07\n\x03\x62gp\x10\x04\x12\x08\n\x04isis\x10\x05\x42\t\n\x07_choice\"\x94\x01\n\rStatePortLink\x12\x12\n\nport_names\x18\x01 \x03(\t\x12\x31\n\x05state\x18\x02 \x01(\x0e\x32\x1d.otg.StatePortLink.State.EnumH\x00\x88\x01\x01\x1a\x32\n\x05State\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x08\n\x06_state\"\x9d\x01\n\x10StatePortCapture\x12\x12\n\nport_names\x18\x01 \x03(\t\x12\x34\n\x05state\x18\x02 \x01(\x0e\x32 .otg.StatePortCapture.State.EnumH\x00\x88\x01\x01\x1a\x35\n\x05State\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\x42\x08\n\x06_state\"\xc4\x01\n\x18StateTrafficFlowTransmit\x12\x12\n\nflow_names\x18\x01 \x03(\t\x12<\n\x05state\x18\x02 \x01(\x0e\x32(.otg.StateTrafficFlowTransmit.State.EnumH\x00\x88\x01\x01\x1aL\n\x05State\"C\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\x12\t\n\x05pause\x10\x03\x12\n\n\x06resume\x10\x04\x42\x08\n\x06_state\"\x89\x01\n\x10StateProtocolAll\x12\x34\n\x05state\x18\x01 \x01(\x0e\x32 .otg.StateProtocolAll.State.EnumH\x00\x88\x01\x01\x1a\x35\n\x05State\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\x42\x08\n\x06_state\"\xa4\x01\n\x12StateProtocolRoute\x12\r\n\x05names\x18\x01 \x03(\t\x12\x36\n\x05state\x18\x02 \x01(\x0e\x32\".otg.StateProtocolRoute.State.EnumH\x00\x88\x01\x01\x1a=\n\x05State\"4\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08withdraw\x10\x01\x12\r\n\tadvertise\x10\x02\x42\x08\n\x06_state\"\xfc\x01\n\x11StateProtocolLacp\x12\x37\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.StateProtocolLacp.Choice.EnumH\x00\x88\x01\x01\x12*\n\x05\x61\x64min\x18\x02 \x01(\x0b\x32\x1b.otg.StateProtocolLacpAdmin\x12\x37\n\x0cmember_ports\x18\x03 \x01(\x0b\x32!.otg.StateProtocolLacpMemberPorts\x1a>\n\x06\x43hoice\"4\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x61\x64min\x10\x01\x12\x10\n\x0cmember_ports\x10\x02\x42\t\n\x07_choice\"\xac\x01\n\x16StateProtocolLacpAdmin\x12\x18\n\x10lag_member_names\x18\x01 \x03(\t\x12:\n\x05state\x18\x02 \x01(\x0e\x32&.otg.StateProtocolLacpAdmin.State.EnumH\x00\x88\x01\x01\x1a\x32\n\x05State\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x08\n\x06_state\"\xb8\x01\n\x1cStateProtocolLacpMemberPorts\x12\x18\n\x10lag_member_names\x18\x01 \x03(\t\x12@\n\x05state\x18\x02 \x01(\x0e\x32,.otg.StateProtocolLacpMemberPorts.State.EnumH\x00\x88\x01\x01\x1a\x32\n\x05State\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x08\n\x06_state\"\xae\x01\n\x10StateProtocolBgp\x12\x36\n\x06\x63hoice\x18\x01 \x01(\x0e\x32!.otg.StateProtocolBgp.Choice.EnumH\x00\x88\x01\x01\x12)\n\x05peers\x18\x02 \x01(\x0b\x32\x1a.otg.StateProtocolBgpPeers\x1a,\n\x06\x43hoice\"\"\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05peers\x10\x01\x42\t\n\x07_choice\"\xa4\x01\n\x15StateProtocolBgpPeers\x12\x12\n\npeer_names\x18\x01 \x03(\t\x12\x39\n\x05state\x18\x02 \x01(\x0e\x32%.otg.StateProtocolBgpPeers.State.EnumH\x00\x88\x01\x01\x1a\x32\n\x05State\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x08\n\x06_state\"\xb7\x01\n\x11StateProtocolIsis\x12\x37\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.StateProtocolIsis.Choice.EnumH\x00\x88\x01\x01\x12.\n\x07routers\x18\x02 \x01(\x0b\x32\x1d.otg.StateProtocolIsisRouters\x1a.\n\x06\x43hoice\"$\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07routers\x10\x01\x42\t\n\x07_choice\"\xac\x01\n\x18StateProtocolIsisRouters\x12\x14\n\x0crouter_names\x18\x01 \x03(\t\x12<\n\x05state\x18\x02 \x01(\x0e\x32(.otg.StateProtocolIsisRouters.State.EnumH\x00\x88\x01\x01\x1a\x32\n\x05State\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x08\n\x06_state\"\xa7\x01\n\rControlAction\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.ControlAction.Choice.EnumH\x00\x88\x01\x01\x12%\n\x08protocol\x18\x02 \x01(\x0b\x32\x13.otg.ActionProtocol\x1a/\n\x06\x43hoice\"%\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08protocol\x10\x01\x42\t\n\x07_choice\"P\n\x15\x43ontrolActionResponse\x12\x10\n\x08warnings\x18\x01 \x03(\t\x12%\n\x08response\x18\x02 \x01(\x0b\x32\x13.otg.ActionResponse\"\xb1\x01\n\x0e\x41\x63tionResponse\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.ActionResponse.Choice.EnumH\x00\x88\x01\x01\x12-\n\x08protocol\x18\x02 \x01(\x0b\x32\x1b.otg.ActionResponseProtocol\x1a/\n\x06\x43hoice\"%\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08protocol\x10\x01\x42\t\n\x07_choice\"\x84\x02\n\x0e\x41\x63tionProtocol\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.ActionProtocol.Choice.EnumH\x00\x88\x01\x01\x12%\n\x04ipv4\x18\x02 \x01(\x0b\x32\x17.otg.ActionProtocolIpv4\x12%\n\x04ipv6\x18\x03 \x01(\x0b\x32\x17.otg.ActionProtocolIpv6\x12#\n\x03\x62gp\x18\x04 \x01(\x0b\x32\x16.otg.ActionProtocolBgp\x1a>\n\x06\x43hoice\"4\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x12\x07\n\x03\x62gp\x10\x03\x42\t\n\x07_choice\"\xf6\x01\n\x16\x41\x63tionResponseProtocol\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.ActionResponseProtocol.Choice.EnumH\x00\x88\x01\x01\x12-\n\x04ipv4\x18\x02 \x01(\x0b\x32\x1f.otg.ActionResponseProtocolIpv4\x12-\n\x04ipv6\x18\x03 \x01(\x0b\x32\x1f.otg.ActionResponseProtocolIpv6\x1a\x35\n\x06\x43hoice\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\t\n\x07_choice\"\xb1\x01\n\x12\x41\x63tionProtocolIpv4\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.ActionProtocolIpv4.Choice.EnumH\x00\x88\x01\x01\x12)\n\x04ping\x18\x02 \x01(\x0b\x32\x1b.otg.ActionProtocolIpv4Ping\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\t\n\x07_choice\"\xc9\x01\n\x1a\x41\x63tionResponseProtocolIpv4\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.ActionResponseProtocolIpv4.Choice.EnumH\x00\x88\x01\x01\x12\x31\n\x04ping\x18\x02 \x01(\x0b\x32#.otg.ActionResponseProtocolIpv4Ping\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\t\n\x07_choice\"N\n\x16\x41\x63tionProtocolIpv4Ping\x12\x34\n\x08requests\x18\x01 \x03(\x0b\x32\".otg.ActionProtocolIpv4PingRequest\"c\n\x1d\x41\x63tionProtocolIpv4PingRequest\x12\x15\n\x08src_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x64st_ip\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_src_nameB\t\n\x07_dst_ip\"`\n\x1e\x41\x63tionResponseProtocolIpv4Ping\x12>\n\tresponses\x18\x01 \x03(\x0b\x32+.otg.ActionResponseProtocolIpv4PingResponse\"\x83\x02\n&ActionResponseProtocolIpv4PingResponse\x12\x15\n\x08src_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x64st_ip\x18\x02 \x01(\tH\x01\x88\x01\x01\x12L\n\x06result\x18\x03 \x01(\x0e\x32\x37.otg.ActionResponseProtocolIpv4PingResponse.Result.EnumH\x02\x88\x01\x01\x1a<\n\x06Result\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tsucceeded\x10\x01\x12\n\n\x06\x66\x61iled\x10\x02\x42\x0b\n\t_src_nameB\t\n\x07_dst_ipB\t\n\x07_result\"\xb1\x01\n\x12\x41\x63tionProtocolIpv6\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.ActionProtocolIpv6.Choice.EnumH\x00\x88\x01\x01\x12)\n\x04ping\x18\x02 \x01(\x0b\x32\x1b.otg.ActionProtocolIpv6Ping\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\t\n\x07_choice\"\xc9\x01\n\x1a\x41\x63tionResponseProtocolIpv6\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.ActionResponseProtocolIpv6.Choice.EnumH\x00\x88\x01\x01\x12\x31\n\x04ping\x18\x02 \x01(\x0b\x32#.otg.ActionResponseProtocolIpv6Ping\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\t\n\x07_choice\"N\n\x16\x41\x63tionProtocolIpv6Ping\x12\x34\n\x08requests\x18\x01 \x03(\x0b\x32\".otg.ActionProtocolIpv6PingRequest\"c\n\x1d\x41\x63tionProtocolIpv6PingRequest\x12\x15\n\x08src_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x64st_ip\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_src_nameB\t\n\x07_dst_ip\"`\n\x1e\x41\x63tionResponseProtocolIpv6Ping\x12>\n\tresponses\x18\x01 \x03(\x0b\x32+.otg.ActionResponseProtocolIpv6PingResponse\"\x83\x02\n&ActionResponseProtocolIpv6PingResponse\x12\x15\n\x08src_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x64st_ip\x18\x02 \x01(\tH\x01\x88\x01\x01\x12L\n\x06result\x18\x03 \x01(\x0e\x32\x37.otg.ActionResponseProtocolIpv6PingResponse.Result.EnumH\x02\x88\x01\x01\x1a<\n\x06Result\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tsucceeded\x10\x01\x12\n\n\x06\x66\x61iled\x10\x02\x42\x0b\n\t_src_nameB\t\n\x07_dst_ipB\t\n\x07_result\"\xb7\x02\n\x11\x41\x63tionProtocolBgp\x12\x37\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.ActionProtocolBgp.Choice.EnumH\x00\x88\x01\x01\x12\x38\n\x0cnotification\x18\x02 \x01(\x0b\x32\".otg.ActionProtocolBgpNotification\x12P\n\x19initiate_graceful_restart\x18\x03 \x01(\x0b\x32-.otg.ActionProtocolBgpInitiateGracefulRestart\x1aR\n\x06\x43hoice\"H\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0cnotification\x10\x01\x12\x1d\n\x19initiate_graceful_restart\x10\x02\x42\t\n\x07_choice\"\xd5\x05\n\x1d\x41\x63tionProtocolBgpNotification\x12\r\n\x05names\x18\x01 \x03(\t\x12\x43\n\x06\x63hoice\x18\x02 \x01(\x0e\x32..otg.ActionProtocolBgpNotification.Choice.EnumH\x00\x88\x01\x01\x12\'\n\x05\x63\x65\x61se\x18\x03 \x01(\x0b\x32\x18.otg.DeviceBgpCeaseError\x12>\n\x14message_header_error\x18\x04 \x01(\x0b\x32 .otg.DeviceBgpMessageHeaderError\x12:\n\x12open_message_error\x18\x05 \x01(\x0b\x32\x1e.otg.DeviceBgpOpenMessageError\x12>\n\x14update_message_error\x18\x06 \x01(\x0b\x32 .otg.DeviceBgpUpdateMessageError\x12:\n\x12hold_timer_expired\x18\x07 \x01(\x0b\x32\x1e.otg.DeviceBgpHoldTimerExpired\x12I\n\x1a\x66inite_state_machine_error\x18\x08 \x01(\x0b\x32%.otg.DeviceBgpFiniteStateMachineError\x12)\n\x06\x63ustom\x18\t \x01(\x0b\x32\x19.otg.DeviceBgpCustomError\x1a\xbd\x01\n\x06\x43hoice\"\xb2\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x63\x65\x61se\x10\x01\x12\x18\n\x14message_header_error\x10\x02\x12\x16\n\x12open_message_error\x10\x03\x12\x18\n\x14update_message_error\x10\x04\x12\x16\n\x12hold_timer_expired\x10\x05\x12\x1e\n\x1a\x66inite_state_machine_error\x10\x06\x12\n\n\x06\x63ustom\x10\x07\x42\t\n\x07_choice\"l\n(ActionProtocolBgpInitiateGracefulRestart\x12\x12\n\npeer_names\x18\x01 \x03(\t\x12\x1a\n\rrestart_delay\x18\x02 \x01(\rH\x00\x88\x01\x01\x42\x10\n\x0e_restart_delay\"\xb0\x04\n\x0eMetricsRequest\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.MetricsRequest.Choice.EnumH\x00\x88\x01\x01\x12%\n\x04port\x18\x02 \x01(\x0b\x32\x17.otg.PortMetricsRequest\x12%\n\x04\x66low\x18\x03 \x01(\x0b\x32\x17.otg.FlowMetricsRequest\x12\'\n\x05\x62gpv4\x18\x04 \x01(\x0b\x32\x18.otg.Bgpv4MetricsRequest\x12\'\n\x05\x62gpv6\x18\x05 \x01(\x0b\x32\x18.otg.Bgpv6MetricsRequest\x12%\n\x04isis\x18\x06 \x01(\x0b\x32\x17.otg.IsisMetricsRequest\x12#\n\x03lag\x18\x07 \x01(\x0b\x32\x16.otg.LagMetricsRequest\x12%\n\x04lacp\x18\x08 \x01(\x0b\x32\x17.otg.LacpMetricsRequest\x12%\n\x04lldp\x18\t \x01(\x0b\x32\x17.otg.LldpMetricsRequest\x12%\n\x04rsvp\x18\n \x01(\x0b\x32\x17.otg.RsvpMetricsRequest\x1a|\n\x06\x43hoice\"r\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04port\x10\x01\x12\x08\n\x04\x66low\x10\x02\x12\t\n\x05\x62gpv4\x10\x03\x12\t\n\x05\x62gpv6\x10\x04\x12\x08\n\x04isis\x10\x05\x12\x07\n\x03lag\x10\x06\x12\x08\n\x04lacp\x10\x07\x12\x08\n\x04lldp\x10\x08\x12\x08\n\x04rsvp\x10\tB\t\n\x07_choice\"\xfc\x04\n\x0fMetricsResponse\x12\x35\n\x06\x63hoice\x18\x01 \x01(\x0e\x32 .otg.MetricsResponse.Choice.EnumH\x00\x88\x01\x01\x12%\n\x0cport_metrics\x18\x02 \x03(\x0b\x32\x0f.otg.PortMetric\x12%\n\x0c\x66low_metrics\x18\x03 \x03(\x0b\x32\x0f.otg.FlowMetric\x12\'\n\rbgpv4_metrics\x18\x04 \x03(\x0b\x32\x10.otg.Bgpv4Metric\x12\'\n\rbgpv6_metrics\x18\x05 \x03(\x0b\x32\x10.otg.Bgpv6Metric\x12%\n\x0cisis_metrics\x18\x06 \x03(\x0b\x32\x0f.otg.IsisMetric\x12#\n\x0blag_metrics\x18\x07 \x03(\x0b\x32\x0e.otg.LagMetric\x12%\n\x0clacp_metrics\x18\x08 \x03(\x0b\x32\x0f.otg.LacpMetric\x12%\n\x0clldp_metrics\x18\t \x03(\x0b\x32\x0f.otg.LldpMetric\x12%\n\x0crsvp_metrics\x18\n \x03(\x0b\x32\x0f.otg.RsvpMetric\x1a\xc5\x01\n\x06\x43hoice\"\xba\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0c\x66low_metrics\x10\x01\x12\x10\n\x0cport_metrics\x10\x02\x12\x11\n\rbgpv4_metrics\x10\x03\x12\x11\n\rbgpv6_metrics\x10\x04\x12\x10\n\x0cisis_metrics\x10\x05\x12\x0f\n\x0blag_metrics\x10\x06\x12\x10\n\x0clacp_metrics\x10\x07\x12\x10\n\x0clldp_metrics\x10\x08\x12\x10\n\x0crsvp_metrics\x10\tB\t\n\x07_choice\"\xcd\x02\n\x12PortMetricsRequest\x12\x12\n\nport_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.PortMetricsRequest.ColumnNames.Enum\x1a\xe2\x01\n\x0b\x43olumnNames\"\xd2\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08transmit\x10\x01\x12\x0c\n\x08location\x10\x02\x12\x08\n\x04link\x10\x03\x12\x0b\n\x07\x63\x61pture\x10\x04\x12\r\n\tframes_tx\x10\x05\x12\r\n\tframes_rx\x10\x06\x12\x0c\n\x08\x62ytes_tx\x10\x07\x12\x0c\n\x08\x62ytes_rx\x10\x08\x12\x12\n\x0e\x66rames_tx_rate\x10\t\x12\x12\n\x0e\x66rames_rx_rate\x10\n\x12\x11\n\rbytes_tx_rate\x10\x0b\x12\x11\n\rbytes_rx_rate\x10\x0c\"\x86\x06\n\nPortMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08location\x18\x02 \x01(\tH\x01\x88\x01\x01\x12,\n\x04link\x18\x03 \x01(\x0e\x32\x19.otg.PortMetric.Link.EnumH\x02\x88\x01\x01\x12\x32\n\x07\x63\x61pture\x18\x04 \x01(\x0e\x32\x1c.otg.PortMetric.Capture.EnumH\x03\x88\x01\x01\x12\x16\n\tframes_tx\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x16\n\tframes_rx\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\t \x01(\x02H\x08\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\n \x01(\x02H\t\x88\x01\x01\x12\x1a\n\rbytes_tx_rate\x18\x0b \x01(\x02H\n\x88\x01\x01\x12\x1a\n\rbytes_rx_rate\x18\x0c \x01(\x02H\x0b\x88\x01\x01\x12\x34\n\x08transmit\x18\r \x01(\x0e\x32\x1d.otg.PortMetric.Transmit.EnumH\x0c\x88\x01\x01\x1a\x31\n\x04Link\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1a<\n\x07\x43\x61pture\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07started\x10\x01\x12\x0b\n\x07stopped\x10\x02\x1a=\n\x08Transmit\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07started\x10\x01\x12\x0b\n\x07stopped\x10\x02\x42\x07\n\x05_nameB\x0b\n\t_locationB\x07\n\x05_linkB\n\n\x08_captureB\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x10\n\x0e_bytes_tx_rateB\x10\n\x0e_bytes_rx_rateB\x0b\n\t_transmit\"\xb8\x02\n\x12\x46lowMetricsRequest\x12\x12\n\nflow_names\x18\x01 \x03(\t\x12>\n\x0cmetric_names\x18\x03 \x03(\x0e\x32(.otg.FlowMetricsRequest.MetricNames.Enum\x12\x34\n\x0etagged_metrics\x18\x04 \x01(\x0b\x32\x1c.otg.FlowTaggedMetricsFilter\x1a\x97\x01\n\x0bMetricNames\"\x87\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08transmit\x10\x01\x12\r\n\tframes_tx\x10\x02\x12\r\n\tframes_rx\x10\x03\x12\x0c\n\x08\x62ytes_tx\x10\x04\x12\x0c\n\x08\x62ytes_rx\x10\x05\x12\x12\n\x0e\x66rames_tx_rate\x10\x06\x12\x12\n\x0e\x66rames_rx_rate\x10\x07\"\xf4\x02\n\x17\x46lowTaggedMetricsFilter\x12\x14\n\x07include\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x15include_empty_metrics\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x43\n\x0cmetric_names\x18\x03 \x03(\x0e\x32-.otg.FlowTaggedMetricsFilter.MetricNames.Enum\x12)\n\x07\x66ilters\x18\x04 \x03(\x0b\x32\x18.otg.FlowMetricTagFilter\x1a\x88\x01\n\x0bMetricNames\"y\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tframes_tx\x10\x01\x12\r\n\tframes_rx\x10\x02\x12\x0c\n\x08\x62ytes_tx\x10\x03\x12\x0c\n\x08\x62ytes_rx\x10\x04\x12\x12\n\x0e\x66rames_tx_rate\x10\x05\x12\x12\n\x0e\x66rames_rx_rate\x10\x06\x42\n\n\x08_includeB\x18\n\x16_include_empty_metrics\"A\n\x13\x46lowMetricTagFilter\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0e\n\x06values\x18\x02 \x03(\tB\x07\n\x05_name\"\x88\x05\n\nFlowMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07port_tx\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07port_rx\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x34\n\x08transmit\x18\x05 \x01(\x0e\x32\x1d.otg.FlowMetric.Transmit.EnumH\x03\x88\x01\x01\x12\x16\n\tframes_tx\x18\x06 \x01(\x04H\x04\x88\x01\x01\x12\x16\n\tframes_rx\x18\x07 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x08 \x01(\x04H\x06\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\t \x01(\x04H\x07\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\n \x01(\x02H\x08\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\x0b \x01(\x02H\t\x88\x01\x01\x12\x11\n\x04loss\x18\x0c \x01(\x02H\n\x88\x01\x01\x12(\n\ntimestamps\x18\r \x01(\x0b\x32\x14.otg.MetricTimestamp\x12#\n\x07latency\x18\x0e \x01(\x0b\x32\x12.otg.MetricLatency\x12-\n\x0etagged_metrics\x18\x0f \x03(\x0b\x32\x15.otg.FlowTaggedMetric\x1aI\n\x08Transmit\"=\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07started\x10\x01\x12\x0b\n\x07stopped\x10\x02\x12\n\n\x06paused\x10\x03\x42\x07\n\x05_nameB\n\n\x08_port_txB\n\n\x08_port_rxB\x0b\n\t_transmitB\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x07\n\x05_loss\"\x93\x03\n\x10\x46lowTaggedMetric\x12 \n\x04tags\x18\x01 \x03(\x0b\x32\x12.otg.FlowMetricTag\x12\x16\n\tframes_tx\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x16\n\tframes_rx\x18\x03 \x01(\x04H\x01\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\x05 \x01(\x04H\x03\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\x06 \x01(\x02H\x04\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\x07 \x01(\x02H\x05\x88\x01\x01\x12\x11\n\x04loss\x18\x08 \x01(\x02H\x06\x88\x01\x01\x12(\n\ntimestamps\x18\t \x01(\x0b\x32\x14.otg.MetricTimestamp\x12#\n\x07latency\x18\n \x01(\x0b\x32\x12.otg.MetricLatencyB\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x07\n\x05_loss\"S\n\rFlowMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.otg.FlowMetricTagValueB\x07\n\x05_name\"\xc2\x01\n\x12\x46lowMetricTagValue\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.FlowMetricTagValue.Choice.EnumH\x00\x88\x01\x01\x12\x10\n\x03hex\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x10\n\x03str\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x33\n\x06\x43hoice\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03hex\x10\x01\x12\x07\n\x03str\x10\x02\x42\t\n\x07_choiceB\x06\n\x04_hexB\x06\n\x04_str\"\x7f\n\x0fMetricTimestamp\x12\x1f\n\x12\x66irst_timestamp_ns\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x1e\n\x11last_timestamp_ns\x18\x02 \x01(\x01H\x01\x88\x01\x01\x42\x15\n\x13_first_timestamp_nsB\x14\n\x12_last_timestamp_ns\"\x87\x01\n\rMetricLatency\x12\x17\n\nminimum_ns\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x17\n\nmaximum_ns\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x17\n\naverage_ns\x18\x03 \x01(\x01H\x02\x88\x01\x01\x42\r\n\x0b_minimum_nsB\r\n\x0b_maximum_nsB\r\n\x0b_average_ns\"\xf9\x03\n\x13\x42gpv4MetricsRequest\x12\x12\n\npeer_names\x18\x01 \x03(\t\x12?\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32).otg.Bgpv4MetricsRequest.ColumnNames.Enum\x1a\x8c\x03\n\x0b\x43olumnNames\"\xfc\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsession_state\x10\x01\x12\x16\n\x12session_flap_count\x10\x02\x12\x15\n\x11routes_advertised\x10\x03\x12\x13\n\x0froutes_received\x10\x04\x12\x18\n\x14route_withdraws_sent\x10\x05\x12\x1c\n\x18route_withdraws_received\x10\x06\x12\x10\n\x0cupdates_sent\x10\x07\x12\x14\n\x10updates_received\x10\x08\x12\x0e\n\nopens_sent\x10\t\x12\x12\n\x0eopens_received\x10\n\x12\x13\n\x0fkeepalives_sent\x10\x0b\x12\x17\n\x13keepalives_received\x10\x0c\x12\x16\n\x12notifications_sent\x10\r\x12\x1a\n\x16notifications_received\x10\x0e\x12\r\n\tfsm_state\x10\x0f\x12\x17\n\x13\x65nd_of_rib_received\x10\x10\"\xea\x08\n\x0b\x42gpv4Metric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12>\n\rsession_state\x18\x02 \x01(\x0e\x32\".otg.Bgpv4Metric.SessionState.EnumH\x01\x88\x01\x01\x12\x1f\n\x12session_flap_count\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1e\n\x11routes_advertised\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1c\n\x0froutes_received\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12!\n\x14route_withdraws_sent\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12%\n\x18route_withdraws_received\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x19\n\x0cupdates_sent\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x1d\n\x10updates_received\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x17\n\nopens_sent\x18\n \x01(\x04H\t\x88\x01\x01\x12\x1b\n\x0eopens_received\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1c\n\x0fkeepalives_sent\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12 \n\x13keepalives_received\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1f\n\x12notifications_sent\x18\x0e \x01(\x04H\r\x88\x01\x01\x12#\n\x16notifications_received\x18\x0f \x01(\x04H\x0e\x88\x01\x01\x12\x36\n\tfsm_state\x18\x10 \x01(\x0e\x32\x1e.otg.Bgpv4Metric.FsmState.EnumH\x0f\x88\x01\x01\x12 \n\x13\x65nd_of_rib_received\x18\x11 \x01(\x04H\x10\x88\x01\x01\x1a\x39\n\x0cSessionState\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1av\n\x08\x46smState\"j\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04idle\x10\x01\x12\x0b\n\x07\x63onnect\x10\x02\x12\n\n\x06\x61\x63tive\x10\x03\x12\x0c\n\x08opensent\x10\x04\x12\x0f\n\x0bopenconfirm\x10\x05\x12\x0f\n\x0b\x65stablished\x10\x06\x42\x07\n\x05_nameB\x10\n\x0e_session_stateB\x15\n\x13_session_flap_countB\x14\n\x12_routes_advertisedB\x12\n\x10_routes_receivedB\x17\n\x15_route_withdraws_sentB\x1b\n\x19_route_withdraws_receivedB\x0f\n\r_updates_sentB\x13\n\x11_updates_receivedB\r\n\x0b_opens_sentB\x11\n\x0f_opens_receivedB\x12\n\x10_keepalives_sentB\x16\n\x14_keepalives_receivedB\x15\n\x13_notifications_sentB\x19\n\x17_notifications_receivedB\x0c\n\n_fsm_stateB\x16\n\x14_end_of_rib_received\"\xf9\x03\n\x13\x42gpv6MetricsRequest\x12\x12\n\npeer_names\x18\x01 \x03(\t\x12?\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32).otg.Bgpv6MetricsRequest.ColumnNames.Enum\x1a\x8c\x03\n\x0b\x43olumnNames\"\xfc\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsession_state\x10\x01\x12\x16\n\x12session_flap_count\x10\x02\x12\x15\n\x11routes_advertised\x10\x03\x12\x13\n\x0froutes_received\x10\x04\x12\x18\n\x14route_withdraws_sent\x10\x05\x12\x1c\n\x18route_withdraws_received\x10\x06\x12\x10\n\x0cupdates_sent\x10\x07\x12\x14\n\x10updates_received\x10\x08\x12\x0e\n\nopens_sent\x10\t\x12\x12\n\x0eopens_received\x10\n\x12\x13\n\x0fkeepalives_sent\x10\x0b\x12\x17\n\x13keepalives_received\x10\x0c\x12\x16\n\x12notifications_sent\x10\r\x12\x1a\n\x16notifications_received\x10\x0e\x12\r\n\tfsm_state\x10\x0f\x12\x17\n\x13\x65nd_of_rib_received\x10\x10\"\xea\x08\n\x0b\x42gpv6Metric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12>\n\rsession_state\x18\x02 \x01(\x0e\x32\".otg.Bgpv6Metric.SessionState.EnumH\x01\x88\x01\x01\x12\x1f\n\x12session_flap_count\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1e\n\x11routes_advertised\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1c\n\x0froutes_received\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12!\n\x14route_withdraws_sent\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12%\n\x18route_withdraws_received\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x19\n\x0cupdates_sent\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x1d\n\x10updates_received\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x17\n\nopens_sent\x18\n \x01(\x04H\t\x88\x01\x01\x12\x1b\n\x0eopens_received\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1c\n\x0fkeepalives_sent\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12 \n\x13keepalives_received\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1f\n\x12notifications_sent\x18\x0e \x01(\x04H\r\x88\x01\x01\x12#\n\x16notifications_received\x18\x0f \x01(\x04H\x0e\x88\x01\x01\x12\x36\n\tfsm_state\x18\x10 \x01(\x0e\x32\x1e.otg.Bgpv6Metric.FsmState.EnumH\x0f\x88\x01\x01\x12 \n\x13\x65nd_of_rib_received\x18\x11 \x01(\x04H\x10\x88\x01\x01\x1a\x39\n\x0cSessionState\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1av\n\x08\x46smState\"j\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04idle\x10\x01\x12\x0b\n\x07\x63onnect\x10\x02\x12\n\n\x06\x61\x63tive\x10\x03\x12\x0c\n\x08opensent\x10\x04\x12\x0f\n\x0bopenconfirm\x10\x05\x12\x0f\n\x0b\x65stablished\x10\x06\x42\x07\n\x05_nameB\x10\n\x0e_session_stateB\x15\n\x13_session_flap_countB\x14\n\x12_routes_advertisedB\x12\n\x10_routes_receivedB\x17\n\x15_route_withdraws_sentB\x1b\n\x19_route_withdraws_receivedB\x0f\n\r_updates_sentB\x13\n\x11_updates_receivedB\r\n\x0b_opens_sentB\x11\n\x0f_opens_receivedB\x12\n\x10_keepalives_sentB\x16\n\x14_keepalives_receivedB\x15\n\x13_notifications_sentB\x19\n\x17_notifications_receivedB\x0c\n\n_fsm_stateB\x16\n\x14_end_of_rib_received\"\x92\x06\n\x12IsisMetricsRequest\x12\x14\n\x0crouter_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.IsisMetricsRequest.ColumnNames.Enum\x1a\xa5\x05\n\x0b\x43olumnNames\"\x95\x05\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0el1_sessions_up\x10\x01\x12\x13\n\x0fl1_session_flap\x10\x02\x12\x14\n\x10l1_database_size\x10\x03\x12\x1c\n\x18l1_broadcast_hellos_sent\x10\x04\x12 \n\x1cl1_broadcast_hellos_received\x10\x05\x12!\n\x1dl1_point_to_point_hellos_sent\x10\x06\x12%\n!l1_point_to_point_hellos_received\x10\x07\x12\x10\n\x0cl1_psnp_sent\x10\x08\x12\x14\n\x10l1_psnp_received\x10\t\x12\x10\n\x0cl1_csnp_sent\x10\n\x12\x14\n\x10l1_csnp_received\x10\x0b\x12\x0f\n\x0bl1_lsp_sent\x10\x0c\x12\x13\n\x0fl1_lsp_received\x10\r\x12\x12\n\x0el2_sessions_up\x10\x0e\x12\x13\n\x0fl2_session_flap\x10\x0f\x12\x14\n\x10l2_database_size\x10\x10\x12\x1c\n\x18l2_broadcast_hellos_sent\x10\x11\x12 \n\x1cl2_broadcast_hellos_received\x10\x12\x12!\n\x1dl2_point_to_point_hellos_sent\x10\x13\x12%\n!l2_point_to_point_hellos_received\x10\x14\x12\x10\n\x0cl2_psnp_sent\x10\x15\x12\x14\n\x10l2_psnp_received\x10\x16\x12\x10\n\x0cl2_csnp_sent\x10\x17\x12\x14\n\x10l2_csnp_received\x10\x18\x12\x0f\n\x0bl2_lsp_sent\x10\x19\x12\x13\n\x0fl2_lsp_received\x10\x1a\"\xf4\x0b\n\nIsisMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0el1_sessions_up\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1c\n\x0fl1_session_flap\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12%\n\x18l1_broadcast_hellos_sent\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12)\n\x1cl1_broadcast_hellos_received\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12*\n\x1dl1_point_to_point_hellos_sent\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12.\n!l1_point_to_point_hellos_received\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x1d\n\x10l1_database_size\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x19\n\x0cl1_psnp_sent\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x1d\n\x10l1_psnp_received\x18\n \x01(\x04H\t\x88\x01\x01\x12\x19\n\x0cl1_csnp_sent\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1d\n\x10l1_csnp_received\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12\x18\n\x0bl1_lsp_sent\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1c\n\x0fl1_lsp_received\x18\x0e \x01(\x04H\r\x88\x01\x01\x12\x1b\n\x0el2_sessions_up\x18\x0f \x01(\rH\x0e\x88\x01\x01\x12\x1c\n\x0fl2_session_flap\x18\x10 \x01(\x04H\x0f\x88\x01\x01\x12%\n\x18l2_broadcast_hellos_sent\x18\x11 \x01(\x04H\x10\x88\x01\x01\x12)\n\x1cl2_broadcast_hellos_received\x18\x12 \x01(\x04H\x11\x88\x01\x01\x12*\n\x1dl2_point_to_point_hellos_sent\x18\x13 \x01(\x04H\x12\x88\x01\x01\x12.\n!l2_point_to_point_hellos_received\x18\x14 \x01(\x04H\x13\x88\x01\x01\x12\x1d\n\x10l2_database_size\x18\x15 \x01(\x04H\x14\x88\x01\x01\x12\x19\n\x0cl2_psnp_sent\x18\x16 \x01(\x04H\x15\x88\x01\x01\x12\x1d\n\x10l2_psnp_received\x18\x17 \x01(\x04H\x16\x88\x01\x01\x12\x19\n\x0cl2_csnp_sent\x18\x18 \x01(\x04H\x17\x88\x01\x01\x12\x1d\n\x10l2_csnp_received\x18\x19 \x01(\x04H\x18\x88\x01\x01\x12\x18\n\x0bl2_lsp_sent\x18\x1a \x01(\x04H\x19\x88\x01\x01\x12\x1c\n\x0fl2_lsp_received\x18\x1b \x01(\x04H\x1a\x88\x01\x01\x42\x07\n\x05_nameB\x11\n\x0f_l1_sessions_upB\x12\n\x10_l1_session_flapB\x1b\n\x19_l1_broadcast_hellos_sentB\x1f\n\x1d_l1_broadcast_hellos_receivedB \n\x1e_l1_point_to_point_hellos_sentB$\n\"_l1_point_to_point_hellos_receivedB\x13\n\x11_l1_database_sizeB\x0f\n\r_l1_psnp_sentB\x13\n\x11_l1_psnp_receivedB\x0f\n\r_l1_csnp_sentB\x13\n\x11_l1_csnp_receivedB\x0e\n\x0c_l1_lsp_sentB\x12\n\x10_l1_lsp_receivedB\x11\n\x0f_l2_sessions_upB\x12\n\x10_l2_session_flapB\x1b\n\x19_l2_broadcast_hellos_sentB\x1f\n\x1d_l2_broadcast_hellos_receivedB \n\x1e_l2_point_to_point_hellos_sentB$\n\"_l2_point_to_point_hellos_receivedB\x13\n\x11_l2_database_sizeB\x0f\n\r_l2_psnp_sentB\x13\n\x11_l2_psnp_receivedB\x0f\n\r_l2_csnp_sentB\x13\n\x11_l2_csnp_receivedB\x0e\n\x0c_l2_lsp_sentB\x12\n\x10_l2_lsp_received\"\xbd\x02\n\x11LagMetricsRequest\x12\x11\n\tlag_names\x18\x01 \x03(\t\x12=\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32\'.otg.LagMetricsRequest.ColumnNames.Enum\x1a\xd5\x01\n\x0b\x43olumnNames\"\xc5\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0f\n\x0boper_status\x10\x01\x12\x13\n\x0fmember_ports_up\x10\x02\x12\r\n\tframes_tx\x10\x03\x12\r\n\tframes_rx\x10\x04\x12\x0c\n\x08\x62ytes_tx\x10\x05\x12\x0c\n\x08\x62ytes_rx\x10\x06\x12\x12\n\x0e\x66rames_tx_rate\x10\x07\x12\x12\n\x0e\x66rames_rx_rate\x10\x08\x12\x11\n\rbytes_tx_rate\x10\t\x12\x11\n\rbytes_rx_rate\x10\n\"\xac\x04\n\tLagMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x38\n\x0boper_status\x18\x02 \x01(\x0e\x32\x1e.otg.LagMetric.OperStatus.EnumH\x01\x88\x01\x01\x12\x1c\n\x0fmember_ports_up\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x16\n\tframes_tx\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x16\n\tframes_rx\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\x08 \x01(\x02H\x07\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\t \x01(\x02H\x08\x88\x01\x01\x12\x1a\n\rbytes_tx_rate\x18\n \x01(\x02H\t\x88\x01\x01\x12\x1a\n\rbytes_rx_rate\x18\x0b \x01(\x02H\n\x88\x01\x01\x1a\x37\n\nOperStatus\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x07\n\x05_nameB\x0e\n\x0c_oper_statusB\x12\n\x10_member_ports_upB\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x10\n\x0e_bytes_tx_rateB\x10\n\x0e_bytes_rx_rate\"\xb4\x03\n\x12LacpMetricsRequest\x12\x11\n\tlag_names\x18\x01 \x03(\t\x12\x1d\n\x15lag_member_port_names\x18\x02 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x03 \x03(\x0e\x32(.otg.LacpMetricsRequest.ColumnNames.Enum\x1a\xab\x02\n\x0b\x43olumnNames\"\x9b\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x13\n\x0flacp_packets_rx\x10\x01\x12\x13\n\x0flacp_packets_tx\x10\x02\x12\x12\n\x0elacp_rx_errors\x10\x03\x12\x0c\n\x08\x61\x63tivity\x10\x04\x12\x0b\n\x07timeout\x10\x05\x12\x13\n\x0fsynchronization\x10\x06\x12\x10\n\x0c\x61ggregatable\x10\x07\x12\x0e\n\ncollecting\x10\x08\x12\x10\n\x0c\x64istributing\x10\t\x12\r\n\tsystem_id\x10\n\x12\x0c\n\x08oper_key\x10\x0b\x12\x0e\n\npartner_id\x10\x0c\x12\x0f\n\x0bpartner_key\x10\r\x12\x0c\n\x08port_num\x10\x0e\x12\x14\n\x10partner_port_num\x10\x0f\"\x8d\x08\n\nLacpMetric\x12\x15\n\x08lag_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12!\n\x14lag_member_port_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0flacp_packets_rx\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1c\n\x0flacp_packets_tx\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1b\n\x0elacp_rx_errors\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x34\n\x08\x61\x63tivity\x18\x06 \x01(\x0e\x32\x1d.otg.LacpMetric.Activity.EnumH\x05\x88\x01\x01\x12\x32\n\x07timeout\x18\x07 \x01(\x0e\x32\x1c.otg.LacpMetric.Timeout.EnumH\x06\x88\x01\x01\x12\x42\n\x0fsynchronization\x18\x08 \x01(\x0e\x32$.otg.LacpMetric.Synchronization.EnumH\x07\x88\x01\x01\x12\x19\n\x0c\x61ggregatable\x18\t \x01(\x08H\x08\x88\x01\x01\x12\x17\n\ncollecting\x18\n \x01(\x08H\t\x88\x01\x01\x12\x19\n\x0c\x64istributing\x18\x0b \x01(\x08H\n\x88\x01\x01\x12\x16\n\tsystem_id\x18\x0c \x01(\tH\x0b\x88\x01\x01\x12\x15\n\x08oper_key\x18\r \x01(\rH\x0c\x88\x01\x01\x12\x17\n\npartner_id\x18\x0e \x01(\tH\r\x88\x01\x01\x12\x18\n\x0bpartner_key\x18\x0f \x01(\rH\x0e\x88\x01\x01\x12\x15\n\x08port_num\x18\x10 \x01(\rH\x0f\x88\x01\x01\x12\x1d\n\x10partner_port_num\x18\x11 \x01(\rH\x10\x88\x01\x01\x1a<\n\x08\x41\x63tivity\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x61\x63tive\x10\x01\x12\x0b\n\x07passive\x10\x02\x1a\x37\n\x07Timeout\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05short\x10\x01\x12\x08\n\x04long\x10\x02\x1a\x45\n\x0fSynchronization\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07in_sync\x10\x01\x12\x0c\n\x08out_sync\x10\x02\x42\x0b\n\t_lag_nameB\x17\n\x15_lag_member_port_nameB\x12\n\x10_lacp_packets_rxB\x12\n\x10_lacp_packets_txB\x11\n\x0f_lacp_rx_errorsB\x0b\n\t_activityB\n\n\x08_timeoutB\x12\n\x10_synchronizationB\x0f\n\r_aggregatableB\r\n\x0b_collectingB\x0f\n\r_distributingB\x0c\n\n_system_idB\x0b\n\t_oper_keyB\r\n\x0b_partner_idB\x0e\n\x0c_partner_keyB\x0b\n\t_port_numB\x13\n\x11_partner_port_num\"\xfd\x01\n\x12LldpMetricsRequest\x12\x12\n\nlldp_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.LldpMetricsRequest.ColumnNames.Enum\x1a\x92\x01\n\x0b\x43olumnNames\"\x82\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tframes_rx\x10\x01\x12\r\n\tframes_tx\x10\x02\x12\x13\n\x0f\x66rames_error_rx\x10\x03\x12\x12\n\x0e\x66rames_discard\x10\x04\x12\x10\n\x0ctlvs_discard\x10\x05\x12\x10\n\x0ctlvs_unknown\x10\x06\"\xae\x02\n\nLldpMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tframes_rx\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x16\n\tframes_tx\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1c\n\x0f\x66rames_error_rx\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1b\n\x0e\x66rames_discard\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x19\n\x0ctlvs_discard\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x19\n\x0ctlvs_unknown\x18\x07 \x01(\x04H\x06\x88\x01\x01\x42\x07\n\x05_nameB\x0c\n\n_frames_rxB\x0c\n\n_frames_txB\x12\n\x10_frames_error_rxB\x11\n\x0f_frames_discardB\x0f\n\r_tlvs_discardB\x0f\n\r_tlvs_unknown\"\xc2\x05\n\x12RsvpMetricsRequest\x12\x14\n\x0crouter_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.RsvpMetricsRequest.ColumnNames.Enum\x1a\xd5\x04\n\x0b\x43olumnNames\"\xc5\x04\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1f\n\x1bingress_p2p_lsps_configured\x10\x01\x12\x17\n\x13ingress_p2p_lsps_up\x10\x02\x12\x16\n\x12\x65gress_p2p_lsps_up\x10\x03\x12\x12\n\x0elsp_flap_count\x10\x04\x12\x0c\n\x08paths_tx\x10\x05\x12\x0c\n\x08paths_rx\x10\x06\x12\x0c\n\x08resvs_tx\x10\x07\x12\x0c\n\x08resvs_rx\x10\x08\x12\x11\n\rpath_tears_tx\x10\t\x12\x11\n\rpath_tears_rx\x10\n\x12\x11\n\rresv_tears_tx\x10\x0b\x12\x11\n\rresv_tears_rx\x10\x0c\x12\x12\n\x0epath_errors_tx\x10\r\x12\x12\n\x0epath_errors_rx\x10\x0e\x12\x12\n\x0eresv_errors_tx\x10\x0f\x12\x12\n\x0eresv_errors_rx\x10\x10\x12\x10\n\x0cresv_conf_tx\x10\x11\x12\x10\n\x0cresv_conf_rx\x10\x12\x12\r\n\thellos_tx\x10\x13\x12\r\n\thellos_rx\x10\x14\x12\x0b\n\x07\x61\x63ks_tx\x10\x15\x12\x0b\n\x07\x61\x63ks_rx\x10\x16\x12\x0c\n\x08nacks_tx\x10\x17\x12\x0c\n\x08nacks_rx\x10\x18\x12\x0f\n\x0bsrefresh_tx\x10\x19\x12\x0f\n\x0bsrefresh_rx\x10\x1a\x12\r\n\tbundle_tx\x10\x1b\x12\r\n\tbundle_rx\x10\x1c\x12 \n\x1cpath_reevaluation_request_tx\x10\x1d\x12\x18\n\x14path_reoptimizations\x10\x1e\"\xf4\n\n\nRsvpMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12(\n\x1bingress_p2p_lsps_configured\x18\x02 \x01(\rH\x01\x88\x01\x01\x12 \n\x13ingress_p2p_lsps_up\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1f\n\x12\x65gress_p2p_lsps_up\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1b\n\x0elsp_flap_count\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x15\n\x08paths_tx\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08paths_rx\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x15\n\x08resvs_tx\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x15\n\x08resvs_rx\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x1a\n\rpath_tears_tx\x18\n \x01(\x04H\t\x88\x01\x01\x12\x1a\n\rpath_tears_rx\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1a\n\rresv_tears_tx\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12\x1a\n\rresv_tears_rx\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1b\n\x0epath_errors_tx\x18\x0e \x01(\x04H\r\x88\x01\x01\x12\x1b\n\x0epath_errors_rx\x18\x0f \x01(\x04H\x0e\x88\x01\x01\x12\x1b\n\x0eresv_errors_tx\x18\x10 \x01(\x04H\x0f\x88\x01\x01\x12\x1b\n\x0eresv_errors_rx\x18\x11 \x01(\x04H\x10\x88\x01\x01\x12\x19\n\x0cresv_conf_tx\x18\x12 \x01(\x04H\x11\x88\x01\x01\x12\x19\n\x0cresv_conf_rx\x18\x13 \x01(\x04H\x12\x88\x01\x01\x12\x16\n\thellos_tx\x18\x14 \x01(\x04H\x13\x88\x01\x01\x12\x16\n\thellos_rx\x18\x15 \x01(\x04H\x14\x88\x01\x01\x12\x14\n\x07\x61\x63ks_tx\x18\x16 \x01(\x04H\x15\x88\x01\x01\x12\x14\n\x07\x61\x63ks_rx\x18\x17 \x01(\x04H\x16\x88\x01\x01\x12\x15\n\x08nacks_tx\x18\x18 \x01(\x04H\x17\x88\x01\x01\x12\x15\n\x08nacks_rx\x18\x19 \x01(\x04H\x18\x88\x01\x01\x12\x18\n\x0bsrefresh_tx\x18\x1a \x01(\x04H\x19\x88\x01\x01\x12\x18\n\x0bsrefresh_rx\x18\x1b \x01(\x04H\x1a\x88\x01\x01\x12\x16\n\tbundle_tx\x18\x1c \x01(\x04H\x1b\x88\x01\x01\x12\x16\n\tbundle_rx\x18\x1d \x01(\x04H\x1c\x88\x01\x01\x12)\n\x1cpath_reevaluation_request_tx\x18\x1e \x01(\x04H\x1d\x88\x01\x01\x12!\n\x14path_reoptimizations\x18\x1f \x01(\x04H\x1e\x88\x01\x01\x42\x07\n\x05_nameB\x1e\n\x1c_ingress_p2p_lsps_configuredB\x16\n\x14_ingress_p2p_lsps_upB\x15\n\x13_egress_p2p_lsps_upB\x11\n\x0f_lsp_flap_countB\x0b\n\t_paths_txB\x0b\n\t_paths_rxB\x0b\n\t_resvs_txB\x0b\n\t_resvs_rxB\x10\n\x0e_path_tears_txB\x10\n\x0e_path_tears_rxB\x10\n\x0e_resv_tears_txB\x10\n\x0e_resv_tears_rxB\x11\n\x0f_path_errors_txB\x11\n\x0f_path_errors_rxB\x11\n\x0f_resv_errors_txB\x11\n\x0f_resv_errors_rxB\x0f\n\r_resv_conf_txB\x0f\n\r_resv_conf_rxB\x0c\n\n_hellos_txB\x0c\n\n_hellos_rxB\n\n\x08_acks_txB\n\n\x08_acks_rxB\x0b\n\t_nacks_txB\x0b\n\t_nacks_rxB\x0e\n\x0c_srefresh_txB\x0e\n\x0c_srefresh_rxB\x0c\n\n_bundle_txB\x0c\n\n_bundle_rxB\x1f\n\x1d_path_reevaluation_request_txB\x17\n\x15_path_reoptimizations\"\x94\x04\n\rStatesRequest\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.StatesRequest.Choice.EnumH\x00\x88\x01\x01\x12\x35\n\x0eipv4_neighbors\x18\x02 \x01(\x0b\x32\x1d.otg.Neighborsv4StatesRequest\x12\x35\n\x0eipv6_neighbors\x18\x03 \x01(\x0b\x32\x1d.otg.Neighborsv6StatesRequest\x12\x30\n\x0c\x62gp_prefixes\x18\x04 \x01(\x0b\x32\x1a.otg.BgpPrefixStateRequest\x12,\n\tisis_lsps\x18\x05 \x01(\x0b\x32\x19.otg.IsisLspsStateRequest\x12\x36\n\x0elldp_neighbors\x18\x06 \x01(\x0b\x32\x1e.otg.LldpNeighborsStateRequest\x12,\n\trsvp_lsps\x18\x07 \x01(\x0b\x32\x19.otg.RsvpLspsStateRequest\x1a\x8e\x01\n\x06\x43hoice\"\x83\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eipv4_neighbors\x10\x01\x12\x12\n\x0eipv6_neighbors\x10\x02\x12\x10\n\x0c\x62gp_prefixes\x10\x03\x12\r\n\tisis_lsps\x10\x04\x12\x12\n\x0elldp_neighbors\x10\x05\x12\r\n\trsvp_lsps\x10\x06\x42\t\n\x07_choice\"\xec\x03\n\x0eStatesResponse\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.StatesResponse.Choice.EnumH\x00\x88\x01\x01\x12-\n\x0eipv4_neighbors\x18\x02 \x03(\x0b\x32\x15.otg.Neighborsv4State\x12-\n\x0eipv6_neighbors\x18\x03 \x03(\x0b\x32\x15.otg.Neighborsv6State\x12+\n\x0c\x62gp_prefixes\x18\x04 \x03(\x0b\x32\x15.otg.BgpPrefixesState\x12%\n\tisis_lsps\x18\x05 \x03(\x0b\x32\x12.otg.IsisLspsState\x12/\n\x0elldp_neighbors\x18\x06 \x03(\x0b\x32\x17.otg.LldpNeighborsState\x12%\n\trsvp_lsps\x18\x07 \x03(\x0b\x32\x12.otg.RsvpLspsState\x1a\x8e\x01\n\x06\x43hoice\"\x83\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eipv4_neighbors\x10\x01\x12\x12\n\x0eipv6_neighbors\x10\x02\x12\x10\n\x0c\x62gp_prefixes\x10\x03\x12\r\n\tisis_lsps\x10\x04\x12\x12\n\x0elldp_neighbors\x10\x05\x12\r\n\trsvp_lsps\x10\x06\x42\t\n\x07_choice\"2\n\x18Neighborsv4StatesRequest\x12\x16\n\x0e\x65thernet_names\x18\x01 \x03(\t\"\xa4\x01\n\x10Neighborsv4State\x12\x1a\n\rethernet_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0cipv4_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12link_layer_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x10\n\x0e_ethernet_nameB\x0f\n\r_ipv4_addressB\x15\n\x13_link_layer_address\"2\n\x18Neighborsv6StatesRequest\x12\x16\n\x0e\x65thernet_names\x18\x01 \x03(\t\"\xa4\x01\n\x10Neighborsv6State\x12\x1a\n\rethernet_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0cipv6_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12link_layer_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x10\n\x0e_ethernet_nameB\x0f\n\r_ipv6_addressB\x15\n\x13_link_layer_address\"\xc2\x02\n\x15\x42gpPrefixStateRequest\x12\x16\n\x0e\x62gp_peer_names\x18\x01 \x03(\t\x12\x45\n\x0eprefix_filters\x18\x02 \x03(\x0e\x32-.otg.BgpPrefixStateRequest.PrefixFilters.Enum\x12=\n\x14ipv4_unicast_filters\x18\x03 \x03(\x0b\x32\x1f.otg.BgpPrefixIpv4UnicastFilter\x12=\n\x14ipv6_unicast_filters\x18\x04 \x03(\x0b\x32\x1f.otg.BgpPrefixIpv6UnicastFilter\x1aL\n\rPrefixFilters\";\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0cipv4_unicast\x10\x01\x12\x10\n\x0cipv6_unicast\x10\x02\"\x91\x02\n\x1a\x42gpPrefixIpv4UnicastFilter\x12\x11\n\taddresses\x18\x01 \x03(\t\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x00\x88\x01\x01\x12@\n\x06origin\x18\x03 \x01(\x0e\x32+.otg.BgpPrefixIpv4UnicastFilter.Origin.EnumH\x01\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x02\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_id\"\x91\x02\n\x1a\x42gpPrefixIpv6UnicastFilter\x12\x11\n\taddresses\x18\x01 \x03(\t\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x00\x88\x01\x01\x12@\n\x06origin\x18\x03 \x01(\x0e\x32+.otg.BgpPrefixIpv6UnicastFilter.Origin.EnumH\x01\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x02\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_id\"\xbe\x01\n\x10\x42gpPrefixesState\x12\x1a\n\rbgp_peer_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12=\n\x15ipv4_unicast_prefixes\x18\x02 \x03(\x0b\x32\x1e.otg.BgpPrefixIpv4UnicastState\x12=\n\x15ipv6_unicast_prefixes\x18\x03 \x03(\x0b\x32\x1e.otg.BgpPrefixIpv6UnicastStateB\x10\n\x0e_bgp_peer_name\"\xd1\x04\n\x19\x42gpPrefixIpv4UnicastState\x12\x19\n\x0cipv4_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12?\n\x06origin\x18\x03 \x01(\x0e\x32*.otg.BgpPrefixIpv4UnicastState.Origin.EnumH\x02\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1a\n\ripv4_next_hop\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x1a\n\ripv6_next_hop\x18\x06 \x01(\tH\x05\x88\x01\x01\x12,\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x17.otg.ResultBgpCommunity\x12%\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x14.otg.ResultBgpAsPath\x12\x1d\n\x10local_preference\x18\t \x01(\rH\x06\x88\x01\x01\x12%\n\x18multi_exit_discriminator\x18\n \x01(\rH\x07\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_idB\x10\n\x0e_ipv4_next_hopB\x10\n\x0e_ipv6_next_hopB\x13\n\x11_local_preferenceB\x1b\n\x19_multi_exit_discriminator\"\xd1\x04\n\x19\x42gpPrefixIpv6UnicastState\x12\x19\n\x0cipv6_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12?\n\x06origin\x18\x03 \x01(\x0e\x32*.otg.BgpPrefixIpv6UnicastState.Origin.EnumH\x02\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1a\n\ripv4_next_hop\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x1a\n\ripv6_next_hop\x18\x06 \x01(\tH\x05\x88\x01\x01\x12,\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x17.otg.ResultBgpCommunity\x12%\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x14.otg.ResultBgpAsPath\x12\x1d\n\x10local_preference\x18\t \x01(\rH\x06\x88\x01\x01\x12%\n\x18multi_exit_discriminator\x18\n \x01(\rH\x07\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x0f\n\r_ipv6_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_idB\x10\n\x0e_ipv4_next_hopB\x10\n\x0e_ipv6_next_hopB\x13\n\x11_local_preferenceB\x1b\n\x19_multi_exit_discriminator\"\xb0\x02\n\x12ResultBgpCommunity\x12\x34\n\x04type\x18\x01 \x01(\x0e\x32!.otg.ResultBgpCommunity.Type.EnumH\x00\x88\x01\x01\x12\x16\n\tas_number\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\tas_custom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a\x8e\x01\n\x04Type\"\x85\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x14\n\x10manual_as_number\x10\x01\x12\r\n\tno_export\x10\x02\x12\x11\n\rno_advertised\x10\x03\x12\x17\n\x13no_export_subconfed\x10\x04\x12\x0e\n\nllgr_stale\x10\x05\x12\x0b\n\x07no_llgr\x10\x06\x42\x07\n\x05_typeB\x0c\n\n_as_numberB\x0c\n\n_as_custom\"@\n\x0fResultBgpAsPath\x12-\n\x08segments\x18\x01 \x03(\x0b\x32\x1b.otg.ResultBgpAsPathSegment\"\xce\x01\n\x16ResultBgpAsPathSegment\x12\x38\n\x04type\x18\x01 \x01(\x0e\x32%.otg.ResultBgpAsPathSegment.Type.EnumH\x00\x88\x01\x01\x12\x12\n\nas_numbers\x18\x02 \x03(\r\x1a]\n\x04Type\"U\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x61s_seq\x10\x01\x12\n\n\x06\x61s_set\x10\x02\x12\x11\n\ras_confed_seq\x10\x03\x12\x11\n\ras_confed_set\x10\x04\x42\x07\n\x05_type\"1\n\x14IsisLspsStateRequest\x12\x19\n\x11isis_router_names\x18\x01 \x03(\t\"d\n\rIsisLspsState\x12\x1d\n\x10isis_router_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x04lsps\x18\x02 \x03(\x0b\x32\x11.otg.IsisLspStateB\x13\n\x11_isis_router_name\"\xa6\x03\n\x0cIsisLspState\x12\x13\n\x06lsp_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x35\n\x08pdu_type\x18\x02 \x01(\x0e\x32\x1e.otg.IsisLspState.PduType.EnumH\x01\x88\x01\x01\x12\x1f\n\x12remaining_lifetime\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1c\n\x0fsequence_number\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x17\n\npdu_length\x18\x05 \x01(\rH\x04\x88\x01\x01\x12 \n\x05\x66lags\x18\x06 \x01(\x0b\x32\x11.otg.IsisLspFlags\x12\x14\n\x07is_type\x18\x07 \x01(\rH\x05\x88\x01\x01\x12\x1e\n\x04tlvs\x18\x08 \x01(\x0b\x32\x10.otg.IsisLspTlvs\x1a<\n\x07PduType\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07level_1\x10\x01\x12\x0b\n\x07level_2\x10\x02\x42\t\n\x07_lsp_idB\x0b\n\t_pdu_typeB\x15\n\x13_remaining_lifetimeB\x12\n\x10_sequence_numberB\r\n\x0b_pdu_lengthB\n\n\x08_is_type\"\xfc\x03\n\x0bIsisLspTlvs\x12+\n\rhostname_tlvs\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspHostname\x12;\n\x14is_reachability_tlvs\x18\x02 \x03(\x0b\x32\x1d.otg.IsisLspIsReachabilityTlv\x12L\n\x1d\x65xtended_is_reachability_tlvs\x18\x03 \x03(\x0b\x32%.otg.IsisLspExtendedIsReachabilityTlv\x12P\n\x1fipv4_internal_reachability_tlvs\x18\x04 \x03(\x0b\x32\'.otg.IsisLspIpv4InternalReachabilityTlv\x12P\n\x1fipv4_external_reachability_tlvs\x18\x05 \x03(\x0b\x32\'.otg.IsisLspIpv4ExternalReachabilityTlv\x12P\n\x1f\x65xtended_ipv4_reachability_tlvs\x18\x06 \x03(\x0b\x32\'.otg.IsisLspExtendedIpv4ReachabilityTlv\x12?\n\x16ipv6_reachability_tlvs\x18\x07 \x03(\x0b\x32\x1f.otg.IsisLspIpv6ReachabilityTlv\"5\n\x0fIsisLspHostname\x12\x15\n\x08hostname\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_hostname\"\xae\x02\n\x0cIsisLspFlags\x12\x1d\n\x10partition_repair\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1b\n\x0e\x61ttached_error\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x1d\n\x10\x61ttached_expense\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1b\n\x0e\x61ttached_delay\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x1d\n\x10\x61ttached_default\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x15\n\x08overload\x18\x06 \x01(\x08H\x05\x88\x01\x01\x42\x13\n\x11_partition_repairB\x11\n\x0f_attached_errorB\x13\n\x11_attached_expenseB\x11\n\x0f_attached_delayB\x13\n\x11_attached_defaultB\x0b\n\t_overload\"C\n\x18IsisLspIsReachabilityTlv\x12\'\n\tneighbors\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspneighbor\"K\n IsisLspExtendedIsReachabilityTlv\x12\'\n\tneighbors\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspneighbor\"7\n\x0fIsisLspneighbor\x12\x16\n\tsystem_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_system_id\"L\n\"IsisLspIpv4InternalReachabilityTlv\x12&\n\x08prefixes\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspV4Prefix\"L\n\"IsisLspIpv4ExternalReachabilityTlv\x12&\n\x08prefixes\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspV4Prefix\"\xd7\x03\n\x0fIsisLspV4Prefix\x12\x19\n\x0cipv4_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12N\n\x13redistribution_type\x18\x03 \x01(\x0e\x32,.otg.IsisLspV4Prefix.RedistributionType.EnumH\x02\x88\x01\x01\x12\x1b\n\x0e\x64\x65\x66\x61ult_metric\x18\x04 \x01(\rH\x03\x88\x01\x01\x12>\n\x0borigin_type\x18\x05 \x01(\x0e\x32$.otg.IsisLspV4Prefix.OriginType.EnumH\x04\x88\x01\x01\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x42\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\x16\n\x14_redistribution_typeB\x11\n\x0f_default_metricB\x0e\n\x0c_origin_type\"T\n\"IsisLspExtendedIpv4ReachabilityTlv\x12.\n\x08prefixes\x18\x01 \x03(\x0b\x32\x1c.otg.IsisLspExtendedV4Prefix\"\xfd\x02\n\x17IsisLspExtendedV4Prefix\x12\x19\n\x0cipv4_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06metric\x18\x03 \x01(\rH\x02\x88\x01\x01\x12V\n\x13redistribution_type\x18\x04 \x01(\x0e\x32\x34.otg.IsisLspExtendedV4Prefix.RedistributionType.EnumH\x03\x88\x01\x01\x12\x37\n\x11prefix_attributes\x18\x05 \x01(\x0b\x32\x1c.otg.IsisLspPrefixAttributes\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_metricB\x16\n\x14_redistribution_type\"D\n\x1aIsisLspIpv6ReachabilityTlv\x12&\n\x08prefixes\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspV6Prefix\"\x80\x04\n\x0fIsisLspV6Prefix\x12\x19\n\x0cipv6_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06metric\x18\x03 \x01(\rH\x02\x88\x01\x01\x12N\n\x13redistribution_type\x18\x04 \x01(\x0e\x32,.otg.IsisLspV6Prefix.RedistributionType.EnumH\x03\x88\x01\x01\x12>\n\x0borigin_type\x18\x05 \x01(\x0e\x32$.otg.IsisLspV6Prefix.OriginType.EnumH\x04\x88\x01\x01\x12\x37\n\x11prefix_attributes\x18\x06 \x01(\x0b\x32\x1c.otg.IsisLspPrefixAttributes\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x42\x0f\n\r_ipv6_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_metricB\x16\n\x14_redistribution_typeB\x0e\n\x0c_origin_type\"y\n\x17IsisLspPrefixAttributes\x12\x13\n\x06x_flag\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x13\n\x06r_flag\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x13\n\x06n_flag\x18\x03 \x01(\x08H\x02\x88\x01\x01\x42\t\n\x07_x_flagB\t\n\x07_r_flagB\t\n\x07_n_flag\"L\n\x19LldpNeighborsStateRequest\x12\x12\n\nlldp_names\x18\x01 \x03(\t\x12\x1b\n\x13neighbor_id_filters\x18\x02 \x03(\t\"\x8b\t\n\x12LldpNeighborsState\x12\x16\n\tlldp_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0bsystem_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12system_description\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x17\n\nchassis_id\x18\x04 \x01(\tH\x03\x88\x01\x01\x12H\n\x0f\x63hassis_id_type\x18\x05 \x01(\x0e\x32*.otg.LldpNeighborsState.ChassisIdType.EnumH\x04\x88\x01\x01\x12\x18\n\x0bneighbor_id\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x10\n\x03\x61ge\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x18\n\x0blast_update\x18\x08 \x01(\rH\x07\x88\x01\x01\x12\x10\n\x03ttl\x18\t \x01(\rH\x08\x88\x01\x01\x12\x14\n\x07port_id\x18\n \x01(\tH\t\x88\x01\x01\x12\x42\n\x0cport_id_type\x18\x0b \x01(\x0e\x32\'.otg.LldpNeighborsState.PortIdType.EnumH\n\x88\x01\x01\x12\x1d\n\x10port_description\x18\x0c \x01(\tH\x0b\x88\x01\x01\x12\x1f\n\x12management_address\x18\r \x01(\tH\x0c\x88\x01\x01\x12$\n\x17management_address_type\x18\x0e \x01(\tH\r\x88\x01\x01\x12,\n\x0b\x63ustom_tlvs\x18\x0f \x03(\x0b\x32\x17.otg.LldpCustomTLVState\x12.\n\x0c\x63\x61pabilities\x18\x10 \x03(\x0b\x32\x18.otg.LldpCapabilityState\x1a\xae\x01\n\rChassisIdType\"\x9c\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eport_component\x10\x01\x12\x13\n\x0fnetwork_address\x10\x02\x12\x15\n\x11\x63hassis_component\x10\x03\x12\x0f\n\x0bmac_address\x10\x04\x12\x12\n\x0einterface_name\x10\x05\x12\t\n\x05local\x10\x06\x12\x13\n\x0finterface_alias\x10\x07\x1a\xaa\x01\n\nPortIdType\"\x9b\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eport_component\x10\x01\x12\x13\n\x0fnetwork_address\x10\x02\x12\x14\n\x10\x61gent_circuit_id\x10\x03\x12\x0f\n\x0bmac_address\x10\x04\x12\x12\n\x0einterface_name\x10\x05\x12\t\n\x05local\x10\x06\x12\x13\n\x0finterface_alias\x10\x07\x42\x0c\n\n_lldp_nameB\x0e\n\x0c_system_nameB\x15\n\x13_system_descriptionB\r\n\x0b_chassis_idB\x12\n\x10_chassis_id_typeB\x0e\n\x0c_neighbor_idB\x06\n\x04_ageB\x0e\n\x0c_last_updateB\x06\n\x04_ttlB\n\n\x08_port_idB\x0f\n\r_port_id_typeB\x13\n\x11_port_descriptionB\x15\n\x13_management_addressB\x1a\n\x18_management_address_type\"\x82\x01\n\x12LldpCustomTLVState\x12\x18\n\x0b\x63ustom_type\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03oui\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0boui_subtype\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x0e\n\x0c_custom_typeB\x06\n\x04_ouiB\x0e\n\x0c_oui_subtype\"\x90\x03\n\x13LldpCapabilityState\x12J\n\x0f\x63\x61pability_name\x18\x01 \x01(\x0e\x32,.otg.LldpCapabilityState.CapabilityName.EnumH\x00\x88\x01\x01\x12\x1f\n\x12\x63\x61pability_enabled\x18\x02 \x01(\x08H\x01\x88\x01\x01\x1a\xe0\x01\n\x0e\x43\x61pabilityName\"\xcd\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nmac_bridge\x10\x01\x12\x16\n\x12two_port_mac_relay\x10\x02\x12\x0c\n\x08repeater\x10\x03\x12\x17\n\x13\x64ocsis_cable_device\x10\x04\x12\n\n\x06s_vlan\x10\x05\x12\r\n\ttelephone\x10\x06\x12\t\n\x05other\x10\x07\x12\n\n\x06router\x10\x08\x12\n\n\x06\x63_vlan\x10\t\x12\x10\n\x0cstation_only\x10\n\x12\x15\n\x11wlan_access_point\x10\x0b\x42\x12\n\x10_capability_nameB\x15\n\x13_capability_enabled\"1\n\x14RsvpLspsStateRequest\x12\x19\n\x11rsvp_router_names\x18\x01 \x03(\t\"m\n\rRsvpLspsState\x12\x1d\n\x10rsvp_router_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12(\n\tipv4_lsps\x18\x02 \x03(\x0b\x32\x15.otg.RsvpIPv4LspStateB\x13\n\x11_rsvp_router_name\"\xe2\x01\n\x10RsvpIPv4LspState\x12\x1b\n\x0esource_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12 \n\x13\x64\x65stination_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1e\n\x03lsp\x18\x03 \x01(\x0b\x32\x11.otg.RsvpLspState\x12!\n\x04rros\x18\x04 \x03(\x0b\x32\x13.otg.RsvpLspIpv4Rro\x12!\n\x04\x65ros\x18\x05 \x03(\x0b\x32\x13.otg.RsvpLspIpv4EroB\x11\n\x0f_source_addressB\x16\n\x14_destination_address\"\xb4\x04\n\x0cRsvpLspState\x12\x16\n\ttunnel_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06lsp_id\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0csession_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x15\n\x08label_in\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x16\n\tlabel_out\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x41\n\x0esession_status\x18\x06 \x01(\x0e\x32$.otg.RsvpLspState.SessionStatus.EnumH\x05\x88\x01\x01\x12\x44\n\x10last_flap_reason\x18\x07 \x01(\x0e\x32%.otg.RsvpLspState.LastFlapReason.EnumH\x06\x88\x01\x01\x12\x14\n\x07up_time\x18\x08 \x01(\x04H\x07\x88\x01\x01\x1a:\n\rSessionStatus\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1aY\n\x0eLastFlapReason\"G\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tresv_tear\x10\x01\x12\r\n\tpath_tear\x10\x02\x12\x10\n\x0cpath_timeout\x10\x03\x42\x0c\n\n_tunnel_idB\t\n\x07_lsp_idB\x0f\n\r_session_nameB\x0b\n\t_label_inB\x0c\n\n_label_outB\x11\n\x0f_session_statusB\x13\n\x11_last_flap_reasonB\n\n\x08_up_time\"b\n\x0eRsvpLspIpv4Rro\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0ereported_label\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\n\n\x08_addressB\x11\n\x0f_reported_label\"\xf2\x01\n\x0eRsvpLspIpv4Ero\x12\x13\n\x06prefix\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x03\x61sn\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x30\n\x04type\x18\x03 \x01(\x0e\x32\x1d.otg.RsvpLspIpv4Ero.Type.EnumH\x02\x88\x01\x01\x1ak\n\x04Type\"c\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x12\x07\n\x03\x61sn\x10\x03\x12\x08\n\x04\x61sn4\x10\x04\x12\t\n\x05label\x10\x05\x12\x18\n\x14unnumbered_interface\x10\x06\x42\t\n\x07_prefixB\x06\n\x04_asnB\x07\n\x05_type\"6\n\x0e\x43\x61ptureRequest\x12\x16\n\tport_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_port_name\"w\n\x1dPatternFlowEthernetDstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n\x1fPatternFlowEthernetDstMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowEthernetDst\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowEthernetDst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x11\n\x04\x61uto\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x35\n\tincrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowEthernetDstCounter\x12\x35\n\tdecrement\x18\x07 \x01(\x0b\x32\".otg.PatternFlowEthernetDstCounter\x12\x39\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32$.otg.PatternFlowEthernetDstMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_auto\"w\n\x1dPatternFlowEthernetSrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n\x1fPatternFlowEthernetSrcMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x90\x03\n\x16PatternFlowEthernetSrc\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowEthernetSrc.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowEthernetSrcCounter\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowEthernetSrcCounter\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowEthernetSrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"}\n#PatternFlowEthernetEtherTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n%PatternFlowEthernetEtherTypeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowEthernetEtherType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowEthernetEtherType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12;\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowEthernetEtherTypeCounter\x12;\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowEthernetEtherTypeCounter\x12?\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32*.otg.PatternFlowEthernetEtherTypeMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_auto\"|\n\"PatternFlowEthernetPfcQueueCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x82\x01\n$PatternFlowEthernetPfcQueueMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa9\x03\n\x1bPatternFlowEthernetPfcQueue\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowEthernetPfcQueue.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowEthernetPfcQueueCounter\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowEthernetPfcQueueCounter\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowEthernetPfcQueueMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"x\n\x1ePatternFlowVlanPriorityCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n PatternFlowVlanPriorityMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x95\x03\n\x17PatternFlowVlanPriority\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowVlanPriority.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowVlanPriorityCounter\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowVlanPriorityCounter\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowVlanPriorityMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"s\n\x19PatternFlowVlanCfiCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n\x1bPatternFlowVlanCfiMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xfc\x02\n\x12PatternFlowVlanCfi\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowVlanCfi.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x31\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowVlanCfiCounter\x12\x31\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowVlanCfiCounter\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowVlanCfiMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"r\n\x18PatternFlowVlanIdCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"x\n\x1aPatternFlowVlanIdMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xf7\x02\n\x11PatternFlowVlanId\x12\x37\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.PatternFlowVlanId.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x30\n\tincrement\x18\x05 \x01(\x0b\x32\x1d.otg.PatternFlowVlanIdCounter\x12\x30\n\tdecrement\x18\x06 \x01(\x0b\x32\x1d.otg.PatternFlowVlanIdCounter\x12\x34\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x1f.otg.PatternFlowVlanIdMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"t\n\x1aPatternFlowVlanTpidCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"z\n\x1cPatternFlowVlanTpidMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x81\x03\n\x13PatternFlowVlanTpid\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.PatternFlowVlanTpid.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x32\n\tincrement\x18\x05 \x01(\x0b\x32\x1f.otg.PatternFlowVlanTpidCounter\x12\x32\n\tdecrement\x18\x06 \x01(\x0b\x32\x1f.otg.PatternFlowVlanTpidCounter\x12\x36\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32!.otg.PatternFlowVlanTpidMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"v\n\x1cPatternFlowVxlanFlagsCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n\x1ePatternFlowVxlanFlagsMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x8b\x03\n\x15PatternFlowVxlanFlags\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowVxlanFlags.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x34\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowVxlanFlagsCounter\x12\x34\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowVxlanFlagsCounter\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowVxlanFlagsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"z\n PatternFlowVxlanReserved0Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x80\x01\n\"PatternFlowVxlanReserved0MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x9f\x03\n\x19PatternFlowVxlanReserved0\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowVxlanReserved0.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved0Counter\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved0Counter\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowVxlanReserved0MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"t\n\x1aPatternFlowVxlanVniCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"z\n\x1cPatternFlowVxlanVniMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa7\x03\n\x13PatternFlowVxlanVni\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.PatternFlowVxlanVni.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x32\n\tincrement\x18\x06 \x01(\x0b\x32\x1f.otg.PatternFlowVxlanVniCounter\x12\x32\n\tdecrement\x18\x07 \x01(\x0b\x32\x1f.otg.PatternFlowVxlanVniCounter\x12\x36\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32!.otg.PatternFlowVxlanVniMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_auto\"z\n PatternFlowVxlanReserved1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x80\x01\n\"PatternFlowVxlanReserved1MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x9f\x03\n\x19PatternFlowVxlanReserved1\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowVxlanReserved1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved1Counter\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved1Counter\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowVxlanReserved1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"w\n\x1dPatternFlowIpv4VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n\x1fPatternFlowIpv4VersionMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x90\x03\n\x16PatternFlowIpv4Version\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv4Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4VersionCounter\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv4VersionCounter\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv4VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"|\n\"PatternFlowIpv4HeaderLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x82\x01\n$PatternFlowIpv4HeaderLengthMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowIpv4HeaderLength\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIpv4HeaderLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12:\n\tincrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowIpv4HeaderLengthCounter\x12:\n\tdecrement\x18\x07 \x01(\x0b\x32\'.otg.PatternFlowIpv4HeaderLengthCounter\x12>\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32).otg.PatternFlowIpv4HeaderLengthMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_auto\"{\n!PatternFlowIpv4TotalLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x81\x01\n#PatternFlowIpv4TotalLengthMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowIpv4TotalLength\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowIpv4TotalLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x39\n\tincrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowIpv4TotalLengthCounter\x12\x39\n\tdecrement\x18\x07 \x01(\x0b\x32&.otg.PatternFlowIpv4TotalLengthCounter\x12=\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32(.otg.PatternFlowIpv4TotalLengthMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_auto\"~\n$PatternFlowIpv4IdentificationCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x84\x01\n&PatternFlowIpv4IdentificationMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb3\x03\n\x1dPatternFlowIpv4Identification\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4Identification.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIpv4IdentificationCounter\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIpv4IdentificationCounter\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIpv4IdentificationMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"x\n\x1ePatternFlowIpv4ReservedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n PatternFlowIpv4ReservedMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x95\x03\n\x17PatternFlowIpv4Reserved\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv4Reserved.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIpv4ReservedCounter\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv4ReservedCounter\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIpv4ReservedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"|\n\"PatternFlowIpv4DontFragmentCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x82\x01\n$PatternFlowIpv4DontFragmentMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa9\x03\n\x1bPatternFlowIpv4DontFragment\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIpv4DontFragment.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowIpv4DontFragmentCounter\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowIpv4DontFragmentCounter\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowIpv4DontFragmentMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"}\n#PatternFlowIpv4MoreFragmentsCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n%PatternFlowIpv4MoreFragmentsMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xae\x03\n\x1cPatternFlowIpv4MoreFragments\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv4MoreFragments.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowIpv4MoreFragmentsCounter\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv4MoreFragmentsCounter\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowIpv4MoreFragmentsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"~\n$PatternFlowIpv4FragmentOffsetCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x84\x01\n&PatternFlowIpv4FragmentOffsetMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb3\x03\n\x1dPatternFlowIpv4FragmentOffset\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4FragmentOffset.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIpv4FragmentOffsetCounter\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIpv4FragmentOffsetCounter\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIpv4FragmentOffsetMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"z\n PatternFlowIpv4TimeToLiveCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x80\x01\n\"PatternFlowIpv4TimeToLiveMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x9f\x03\n\x19PatternFlowIpv4TimeToLive\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIpv4TimeToLive.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowIpv4TimeToLiveCounter\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIpv4TimeToLiveCounter\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowIpv4TimeToLiveMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"x\n\x1ePatternFlowIpv4ProtocolCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n PatternFlowIpv4ProtocolMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIpv4Protocol\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv4Protocol.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x36\n\tincrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv4ProtocolCounter\x12\x36\n\tdecrement\x18\x07 \x01(\x0b\x32#.otg.PatternFlowIpv4ProtocolCounter\x12:\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32%.otg.PatternFlowIpv4ProtocolMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_auto\"\xdf\x02\n\x1dPatternFlowIpv4HeaderChecksum\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4HeaderChecksum.Choice.EnumH\x00\x88\x01\x01\x12I\n\tgenerated\x18\x02 \x01(\x0e\x32\x31.otg.PatternFlowIpv4HeaderChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"s\n\x19PatternFlowIpv4SrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n\x1bPatternFlowIpv4SrcMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xfc\x02\n\x12PatternFlowIpv4Src\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv4Src.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x31\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4SrcCounter\x12\x31\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4SrcCounter\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv4SrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"s\n\x19PatternFlowIpv4DstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n\x1bPatternFlowIpv4DstMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xfc\x02\n\x12PatternFlowIpv4Dst\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv4Dst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x31\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4DstCounter\x12\x31\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4DstCounter\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv4DstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x8b\x01\n1PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xa5\x03\n*PatternFlowIpv4OptionsCustomTypeCopiedFlag\x12P\n\x06\x63hoice\x18\x01 \x01(\x0e\x32;.otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12I\n\tincrement\x18\x05 \x01(\x0b\x32\x36.otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter\x12I\n\tdecrement\x18\x06 \x01(\x0b\x32\x36.otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x8c\x01\n2PatternFlowIpv4OptionsCustomTypeOptionClassCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xa9\x03\n+PatternFlowIpv4OptionsCustomTypeOptionClass\x12Q\n\x06\x63hoice\x18\x01 \x01(\x0e\x32<.otg.PatternFlowIpv4OptionsCustomTypeOptionClass.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12J\n\tincrement\x18\x05 \x01(\x0b\x32\x37.otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter\x12J\n\tdecrement\x18\x06 \x01(\x0b\x32\x37.otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x8d\x01\n3PatternFlowIpv4OptionsCustomTypeOptionNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xad\x03\n,PatternFlowIpv4OptionsCustomTypeOptionNumber\x12R\n\x06\x63hoice\x18\x01 \x01(\x0e\x32=.otg.PatternFlowIpv4OptionsCustomTypeOptionNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12K\n\tincrement\x18\x05 \x01(\x0b\x32\x38.otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter\x12K\n\tdecrement\x18\x06 \x01(\x0b\x32\x38.otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"{\n!PatternFlowIpv4PriorityRawCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x81\x01\n#PatternFlowIpv4PriorityRawMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa4\x03\n\x1aPatternFlowIpv4PriorityRaw\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowIpv4PriorityRaw.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowIpv4PriorityRawCounter\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowIpv4PriorityRawCounter\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowIpv4PriorityRawMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"w\n\x1dPatternFlowIpv4DscpPhbCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n\x1fPatternFlowIpv4DscpPhbMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x90\x03\n\x16PatternFlowIpv4DscpPhb\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv4DscpPhb.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpPhbCounter\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpPhbCounter\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv4DscpPhbMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"w\n\x1dPatternFlowIpv4DscpEcnCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n\x1fPatternFlowIpv4DscpEcnMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x90\x03\n\x16PatternFlowIpv4DscpEcn\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv4DscpEcn.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpEcnCounter\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpEcnCounter\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv4DscpEcnMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"}\n#PatternFlowIpv4TosPrecedenceCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n%PatternFlowIpv4TosPrecedenceMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xae\x03\n\x1cPatternFlowIpv4TosPrecedence\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv4TosPrecedence.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowIpv4TosPrecedenceCounter\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv4TosPrecedenceCounter\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowIpv4TosPrecedenceMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"x\n\x1ePatternFlowIpv4TosDelayCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n PatternFlowIpv4TosDelayMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x95\x03\n\x17PatternFlowIpv4TosDelay\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv4TosDelay.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIpv4TosDelayCounter\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv4TosDelayCounter\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIpv4TosDelayMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"}\n#PatternFlowIpv4TosThroughputCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n%PatternFlowIpv4TosThroughputMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xae\x03\n\x1cPatternFlowIpv4TosThroughput\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv4TosThroughput.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowIpv4TosThroughputCounter\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv4TosThroughputCounter\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowIpv4TosThroughputMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"~\n$PatternFlowIpv4TosReliabilityCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x84\x01\n&PatternFlowIpv4TosReliabilityMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb3\x03\n\x1dPatternFlowIpv4TosReliability\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4TosReliability.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIpv4TosReliabilityCounter\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIpv4TosReliabilityCounter\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIpv4TosReliabilityMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"{\n!PatternFlowIpv4TosMonetaryCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x81\x01\n#PatternFlowIpv4TosMonetaryMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa4\x03\n\x1aPatternFlowIpv4TosMonetary\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowIpv4TosMonetary.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowIpv4TosMonetaryCounter\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowIpv4TosMonetaryCounter\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowIpv4TosMonetaryMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"y\n\x1fPatternFlowIpv4TosUnusedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x7f\n!PatternFlowIpv4TosUnusedMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x9a\x03\n\x18PatternFlowIpv4TosUnused\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowIpv4TosUnused.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x37\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowIpv4TosUnusedCounter\x12\x37\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowIpv4TosUnusedCounter\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowIpv4TosUnusedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"w\n\x1dPatternFlowIpv6VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n\x1fPatternFlowIpv6VersionMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x90\x03\n\x16PatternFlowIpv6Version\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv6Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv6VersionCounter\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv6VersionCounter\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv6VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"|\n\"PatternFlowIpv6TrafficClassCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x82\x01\n$PatternFlowIpv6TrafficClassMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa9\x03\n\x1bPatternFlowIpv6TrafficClass\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIpv6TrafficClass.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowIpv6TrafficClassCounter\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowIpv6TrafficClassCounter\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowIpv6TrafficClassMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"y\n\x1fPatternFlowIpv6FlowLabelCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x7f\n!PatternFlowIpv6FlowLabelMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x9a\x03\n\x18PatternFlowIpv6FlowLabel\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowIpv6FlowLabel.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x37\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowIpv6FlowLabelCounter\x12\x37\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowIpv6FlowLabelCounter\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowIpv6FlowLabelMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"}\n#PatternFlowIpv6PayloadLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n%PatternFlowIpv6PayloadLengthMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowIpv6PayloadLength\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv6PayloadLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12;\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv6PayloadLengthCounter\x12;\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowIpv6PayloadLengthCounter\x12?\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32*.otg.PatternFlowIpv6PayloadLengthMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_auto\"z\n PatternFlowIpv6NextHeaderCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x80\x01\n\"PatternFlowIpv6NextHeaderMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowIpv6NextHeader\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIpv6NextHeader.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x38\n\tincrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIpv6NextHeaderCounter\x12\x38\n\tdecrement\x18\x07 \x01(\x0b\x32%.otg.PatternFlowIpv6NextHeaderCounter\x12<\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32\'.otg.PatternFlowIpv6NextHeaderMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_auto\"x\n\x1ePatternFlowIpv6HopLimitCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n PatternFlowIpv6HopLimitMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x95\x03\n\x17PatternFlowIpv6HopLimit\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv6HopLimit.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIpv6HopLimitCounter\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv6HopLimitCounter\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIpv6HopLimitMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"s\n\x19PatternFlowIpv6SrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n\x1bPatternFlowIpv6SrcMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xfc\x02\n\x12PatternFlowIpv6Src\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv6Src.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x31\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6SrcCounter\x12\x31\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6SrcCounter\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv6SrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"s\n\x19PatternFlowIpv6DstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n\x1bPatternFlowIpv6DstMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xfc\x02\n\x12PatternFlowIpv6Dst\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv6Dst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x31\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6DstCounter\x12\x31\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6DstCounter\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv6DstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"w\n\x1dPatternFlowPfcPauseDstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n\x1fPatternFlowPfcPauseDstMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x90\x03\n\x16PatternFlowPfcPauseDst\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowPfcPauseDst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowPfcPauseDstCounter\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowPfcPauseDstCounter\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowPfcPauseDstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"w\n\x1dPatternFlowPfcPauseSrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n\x1fPatternFlowPfcPauseSrcMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x90\x03\n\x16PatternFlowPfcPauseSrc\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowPfcPauseSrc.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowPfcPauseSrcCounter\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowPfcPauseSrcCounter\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowPfcPauseSrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"}\n#PatternFlowPfcPauseEtherTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n%PatternFlowPfcPauseEtherTypeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xae\x03\n\x1cPatternFlowPfcPauseEtherType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowPfcPauseEtherType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowPfcPauseEtherTypeCounter\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowPfcPauseEtherTypeCounter\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowPfcPauseEtherTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x81\x01\n\'PatternFlowPfcPauseControlOpCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x87\x01\n)PatternFlowPfcPauseControlOpCodeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xc2\x03\n PatternFlowPfcPauseControlOpCode\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowPfcPauseControlOpCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowPfcPauseControlOpCodeCounter\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowPfcPauseControlOpCodeCounter\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowPfcPauseControlOpCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x85\x01\n+PatternFlowPfcPauseClassEnableVectorCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x8b\x01\n-PatternFlowPfcPauseClassEnableVectorMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xd6\x03\n$PatternFlowPfcPauseClassEnableVector\x12J\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x35.otg.PatternFlowPfcPauseClassEnableVector.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x43\n\tincrement\x18\x05 \x01(\x0b\x32\x30.otg.PatternFlowPfcPauseClassEnableVectorCounter\x12\x43\n\tdecrement\x18\x06 \x01(\x0b\x32\x30.otg.PatternFlowPfcPauseClassEnableVectorCounter\x12G\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x32.otg.PatternFlowPfcPauseClassEnableVectorMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x7f\n%PatternFlowPfcPausePauseClass0Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x85\x01\n\'PatternFlowPfcPausePauseClass0MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb8\x03\n\x1ePatternFlowPfcPausePauseClass0\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass0.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass0Counter\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass0Counter\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass0MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x7f\n%PatternFlowPfcPausePauseClass1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x85\x01\n\'PatternFlowPfcPausePauseClass1MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb8\x03\n\x1ePatternFlowPfcPausePauseClass1\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass1Counter\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass1Counter\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x7f\n%PatternFlowPfcPausePauseClass2Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x85\x01\n\'PatternFlowPfcPausePauseClass2MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb8\x03\n\x1ePatternFlowPfcPausePauseClass2\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass2.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass2Counter\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass2Counter\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass2MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x7f\n%PatternFlowPfcPausePauseClass3Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x85\x01\n\'PatternFlowPfcPausePauseClass3MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb8\x03\n\x1ePatternFlowPfcPausePauseClass3\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass3.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass3Counter\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass3Counter\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass3MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x7f\n%PatternFlowPfcPausePauseClass4Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x85\x01\n\'PatternFlowPfcPausePauseClass4MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb8\x03\n\x1ePatternFlowPfcPausePauseClass4\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass4.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass4Counter\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass4Counter\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass4MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x7f\n%PatternFlowPfcPausePauseClass5Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x85\x01\n\'PatternFlowPfcPausePauseClass5MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb8\x03\n\x1ePatternFlowPfcPausePauseClass5\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass5.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass5Counter\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass5Counter\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass5MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x7f\n%PatternFlowPfcPausePauseClass6Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x85\x01\n\'PatternFlowPfcPausePauseClass6MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb8\x03\n\x1ePatternFlowPfcPausePauseClass6\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass6.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass6Counter\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass6Counter\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass6MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x7f\n%PatternFlowPfcPausePauseClass7Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x85\x01\n\'PatternFlowPfcPausePauseClass7MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb8\x03\n\x1ePatternFlowPfcPausePauseClass7\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass7.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass7Counter\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass7Counter\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass7MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"|\n\"PatternFlowEthernetPauseDstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x82\x01\n$PatternFlowEthernetPauseDstMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa9\x03\n\x1bPatternFlowEthernetPauseDst\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowEthernetPauseDst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseDstCounter\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseDstCounter\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowEthernetPauseDstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"|\n\"PatternFlowEthernetPauseSrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x82\x01\n$PatternFlowEthernetPauseSrcMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa9\x03\n\x1bPatternFlowEthernetPauseSrc\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowEthernetPauseSrc.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseSrcCounter\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseSrcCounter\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowEthernetPauseSrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x82\x01\n(PatternFlowEthernetPauseEtherTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x88\x01\n*PatternFlowEthernetPauseEtherTypeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xc7\x03\n!PatternFlowEthernetPauseEtherType\x12G\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x32.otg.PatternFlowEthernetPauseEtherType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32-.otg.PatternFlowEthernetPauseEtherTypeCounter\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32-.otg.PatternFlowEthernetPauseEtherTypeCounter\x12\x44\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32/.otg.PatternFlowEthernetPauseEtherTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x86\x01\n,PatternFlowEthernetPauseControlOpCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x8c\x01\n.PatternFlowEthernetPauseControlOpCodeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xdb\x03\n%PatternFlowEthernetPauseControlOpCode\x12K\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x36.otg.PatternFlowEthernetPauseControlOpCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32\x31.otg.PatternFlowEthernetPauseControlOpCodeCounter\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32\x31.otg.PatternFlowEthernetPauseControlOpCodeCounter\x12H\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x33.otg.PatternFlowEthernetPauseControlOpCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"}\n#PatternFlowEthernetPauseTimeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n%PatternFlowEthernetPauseTimeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xae\x03\n\x1cPatternFlowEthernetPauseTime\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowEthernetPauseTime.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowEthernetPauseTimeCounter\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowEthernetPauseTimeCounter\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowEthernetPauseTimeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"v\n\x1cPatternFlowTcpSrcPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n\x1ePatternFlowTcpSrcPortMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x8b\x03\n\x15PatternFlowTcpSrcPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowTcpSrcPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x34\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowTcpSrcPortCounter\x12\x34\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowTcpSrcPortCounter\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowTcpSrcPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"v\n\x1cPatternFlowTcpDstPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n\x1ePatternFlowTcpDstPortMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x8b\x03\n\x15PatternFlowTcpDstPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowTcpDstPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x34\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowTcpDstPortCounter\x12\x34\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowTcpDstPortCounter\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowTcpDstPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowTcpSeqNumCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowTcpSeqNumMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x86\x03\n\x14PatternFlowTcpSeqNum\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpSeqNum.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x33\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpSeqNumCounter\x12\x33\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpSeqNumCounter\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpSeqNumMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowTcpAckNumCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowTcpAckNumMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x86\x03\n\x14PatternFlowTcpAckNum\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpAckNum.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x33\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpAckNumCounter\x12\x33\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpAckNumCounter\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpAckNumMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"y\n\x1fPatternFlowTcpDataOffsetCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x7f\n!PatternFlowTcpDataOffsetMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x9a\x03\n\x18PatternFlowTcpDataOffset\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowTcpDataOffset.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x37\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowTcpDataOffsetCounter\x12\x37\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowTcpDataOffsetCounter\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowTcpDataOffsetMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"t\n\x1aPatternFlowTcpEcnNsCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"z\n\x1cPatternFlowTcpEcnNsMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x81\x03\n\x13PatternFlowTcpEcnNs\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.PatternFlowTcpEcnNs.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x32\n\tincrement\x18\x05 \x01(\x0b\x32\x1f.otg.PatternFlowTcpEcnNsCounter\x12\x32\n\tdecrement\x18\x06 \x01(\x0b\x32\x1f.otg.PatternFlowTcpEcnNsCounter\x12\x36\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32!.otg.PatternFlowTcpEcnNsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowTcpEcnCwrCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowTcpEcnCwrMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x86\x03\n\x14PatternFlowTcpEcnCwr\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpEcnCwr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x33\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpEcnCwrCounter\x12\x33\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpEcnCwrCounter\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpEcnCwrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"v\n\x1cPatternFlowTcpEcnEchoCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n\x1ePatternFlowTcpEcnEchoMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x8b\x03\n\x15PatternFlowTcpEcnEcho\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowTcpEcnEcho.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x34\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowTcpEcnEchoCounter\x12\x34\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowTcpEcnEchoCounter\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowTcpEcnEchoMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowTcpCtlUrgCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowTcpCtlUrgMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x86\x03\n\x14PatternFlowTcpCtlUrg\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlUrg.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x33\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlUrgCounter\x12\x33\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlUrgCounter\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlUrgMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowTcpCtlAckCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowTcpCtlAckMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x86\x03\n\x14PatternFlowTcpCtlAck\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlAck.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x33\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlAckCounter\x12\x33\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlAckCounter\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlAckMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowTcpCtlPshCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowTcpCtlPshMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x86\x03\n\x14PatternFlowTcpCtlPsh\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlPsh.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x33\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlPshCounter\x12\x33\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlPshCounter\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlPshMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowTcpCtlRstCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowTcpCtlRstMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x86\x03\n\x14PatternFlowTcpCtlRst\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlRst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x33\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlRstCounter\x12\x33\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlRstCounter\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlRstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowTcpCtlSynCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowTcpCtlSynMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x86\x03\n\x14PatternFlowTcpCtlSyn\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlSyn.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x33\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlSynCounter\x12\x33\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlSynCounter\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlSynMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowTcpCtlFinCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowTcpCtlFinMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x86\x03\n\x14PatternFlowTcpCtlFin\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlFin.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x33\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlFinCounter\x12\x33\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlFinCounter\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlFinMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowTcpWindowCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowTcpWindowMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x86\x03\n\x14PatternFlowTcpWindow\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpWindow.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x33\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpWindowCounter\x12\x33\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpWindowCounter\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpWindowMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"v\n\x1cPatternFlowUdpSrcPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n\x1ePatternFlowUdpSrcPortMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x8b\x03\n\x15PatternFlowUdpSrcPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowUdpSrcPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x34\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowUdpSrcPortCounter\x12\x34\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowUdpSrcPortCounter\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowUdpSrcPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"v\n\x1cPatternFlowUdpDstPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n\x1ePatternFlowUdpDstPortMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x8b\x03\n\x15PatternFlowUdpDstPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowUdpDstPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x34\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowUdpDstPortCounter\x12\x34\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowUdpDstPortCounter\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowUdpDstPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowUdpLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowUdpLengthMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x86\x03\n\x14PatternFlowUdpLength\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowUdpLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x33\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowUdpLengthCounter\x12\x33\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowUdpLengthCounter\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowUdpLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\xca\x02\n\x16PatternFlowUdpChecksum\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowUdpChecksum.Choice.EnumH\x00\x88\x01\x01\x12\x42\n\tgenerated\x18\x02 \x01(\x0e\x32*.otg.PatternFlowUdpChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"~\n$PatternFlowGreChecksumPresentCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x84\x01\n&PatternFlowGreChecksumPresentMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb3\x03\n\x1dPatternFlowGreChecksumPresent\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGreChecksumPresent.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGreChecksumPresentCounter\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGreChecksumPresentCounter\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGreChecksumPresentMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"x\n\x1ePatternFlowGreReserved0Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n PatternFlowGreReserved0MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x95\x03\n\x17PatternFlowGreReserved0\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGreReserved0.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGreReserved0Counter\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGreReserved0Counter\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGreReserved0MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"v\n\x1cPatternFlowGreVersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n\x1ePatternFlowGreVersionMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x8b\x03\n\x15PatternFlowGreVersion\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowGreVersion.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x34\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowGreVersionCounter\x12\x34\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowGreVersionCounter\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowGreVersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"w\n\x1dPatternFlowGreProtocolCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n\x1fPatternFlowGreProtocolMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x90\x03\n\x16PatternFlowGreProtocol\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGreProtocol.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGreProtocolCounter\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGreProtocolCounter\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGreProtocolMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\xca\x02\n\x16PatternFlowGreChecksum\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGreChecksum.Choice.EnumH\x00\x88\x01\x01\x12\x42\n\tgenerated\x18\x02 \x01(\x0e\x32*.otg.PatternFlowGreChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"x\n\x1ePatternFlowGreReserved1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n PatternFlowGreReserved1MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x95\x03\n\x17PatternFlowGreReserved1\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGreReserved1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGreReserved1Counter\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGreReserved1Counter\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGreReserved1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"x\n\x1ePatternFlowGtpv1VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n PatternFlowGtpv1VersionMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x95\x03\n\x17PatternFlowGtpv1Version\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGtpv1Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGtpv1VersionCounter\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGtpv1VersionCounter\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGtpv1VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"}\n#PatternFlowGtpv1ProtocolTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n%PatternFlowGtpv1ProtocolTypeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xae\x03\n\x1cPatternFlowGtpv1ProtocolType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowGtpv1ProtocolType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowGtpv1ProtocolTypeCounter\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowGtpv1ProtocolTypeCounter\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowGtpv1ProtocolTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"y\n\x1fPatternFlowGtpv1ReservedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x7f\n!PatternFlowGtpv1ReservedMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x9a\x03\n\x18PatternFlowGtpv1Reserved\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowGtpv1Reserved.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x37\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowGtpv1ReservedCounter\x12\x37\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowGtpv1ReservedCounter\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowGtpv1ReservedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"v\n\x1cPatternFlowGtpv1EFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n\x1ePatternFlowGtpv1EFlagMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x8b\x03\n\x15PatternFlowGtpv1EFlag\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowGtpv1EFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x34\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowGtpv1EFlagCounter\x12\x34\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowGtpv1EFlagCounter\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowGtpv1EFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"v\n\x1cPatternFlowGtpv1SFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n\x1ePatternFlowGtpv1SFlagMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x8b\x03\n\x15PatternFlowGtpv1SFlag\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowGtpv1SFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x34\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowGtpv1SFlagCounter\x12\x34\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowGtpv1SFlagCounter\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowGtpv1SFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"w\n\x1dPatternFlowGtpv1PnFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n\x1fPatternFlowGtpv1PnFlagMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x90\x03\n\x16PatternFlowGtpv1PnFlag\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGtpv1PnFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGtpv1PnFlagCounter\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv1PnFlagCounter\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGtpv1PnFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"|\n\"PatternFlowGtpv1MessageTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x82\x01\n$PatternFlowGtpv1MessageTypeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa9\x03\n\x1bPatternFlowGtpv1MessageType\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowGtpv1MessageType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowGtpv1MessageTypeCounter\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowGtpv1MessageTypeCounter\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowGtpv1MessageTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"~\n$PatternFlowGtpv1MessageLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x84\x01\n&PatternFlowGtpv1MessageLengthMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb3\x03\n\x1dPatternFlowGtpv1MessageLength\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGtpv1MessageLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGtpv1MessageLengthCounter\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGtpv1MessageLengthCounter\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGtpv1MessageLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowGtpv1TeidCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowGtpv1TeidMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x86\x03\n\x14PatternFlowGtpv1Teid\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowGtpv1Teid.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x33\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowGtpv1TeidCounter\x12\x33\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowGtpv1TeidCounter\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowGtpv1TeidMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"~\n$PatternFlowGtpv1SquenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x84\x01\n&PatternFlowGtpv1SquenceNumberMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb3\x03\n\x1dPatternFlowGtpv1SquenceNumber\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGtpv1SquenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGtpv1SquenceNumberCounter\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGtpv1SquenceNumberCounter\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGtpv1SquenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"{\n!PatternFlowGtpv1NPduNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x81\x01\n#PatternFlowGtpv1NPduNumberMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa4\x03\n\x1aPatternFlowGtpv1NPduNumber\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowGtpv1NPduNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowGtpv1NPduNumberCounter\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowGtpv1NPduNumberCounter\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowGtpv1NPduNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x88\x01\n.PatternFlowGtpv1NextExtensionHeaderTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x8e\x01\n0PatternFlowGtpv1NextExtensionHeaderTypeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xe5\x03\n\'PatternFlowGtpv1NextExtensionHeaderType\x12M\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x38.otg.PatternFlowGtpv1NextExtensionHeaderType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x46\n\tincrement\x18\x05 \x01(\x0b\x32\x33.otg.PatternFlowGtpv1NextExtensionHeaderTypeCounter\x12\x46\n\tdecrement\x18\x06 \x01(\x0b\x32\x33.otg.PatternFlowGtpv1NextExtensionHeaderTypeCounter\x12J\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x35.otg.PatternFlowGtpv1NextExtensionHeaderTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x87\x01\n-PatternFlowGtpExtensionExtensionLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x8d\x01\n/PatternFlowGtpExtensionExtensionLengthMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xe0\x03\n&PatternFlowGtpExtensionExtensionLength\x12L\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x37.otg.PatternFlowGtpExtensionExtensionLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x45\n\tincrement\x18\x05 \x01(\x0b\x32\x32.otg.PatternFlowGtpExtensionExtensionLengthCounter\x12\x45\n\tdecrement\x18\x06 \x01(\x0b\x32\x32.otg.PatternFlowGtpExtensionExtensionLengthCounter\x12I\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x34.otg.PatternFlowGtpExtensionExtensionLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x80\x01\n&PatternFlowGtpExtensionContentsCounter\x12\x12\n\x05start\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x04H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x86\x01\n(PatternFlowGtpExtensionContentsMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x04H\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xbd\x03\n\x1fPatternFlowGtpExtensionContents\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.PatternFlowGtpExtensionContents.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x04\x12>\n\tincrement\x18\x05 \x01(\x0b\x32+.otg.PatternFlowGtpExtensionContentsCounter\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32+.otg.PatternFlowGtpExtensionContentsCounter\x12\x42\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32-.otg.PatternFlowGtpExtensionContentsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x8b\x01\n1PatternFlowGtpExtensionNextExtensionHeaderCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x91\x01\n3PatternFlowGtpExtensionNextExtensionHeaderMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xf4\x03\n*PatternFlowGtpExtensionNextExtensionHeader\x12P\n\x06\x63hoice\x18\x01 \x01(\x0e\x32;.otg.PatternFlowGtpExtensionNextExtensionHeader.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12I\n\tincrement\x18\x05 \x01(\x0b\x32\x36.otg.PatternFlowGtpExtensionNextExtensionHeaderCounter\x12I\n\tdecrement\x18\x06 \x01(\x0b\x32\x36.otg.PatternFlowGtpExtensionNextExtensionHeaderCounter\x12M\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x38.otg.PatternFlowGtpExtensionNextExtensionHeaderMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"x\n\x1ePatternFlowGtpv2VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n PatternFlowGtpv2VersionMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x95\x03\n\x17PatternFlowGtpv2Version\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGtpv2Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGtpv2VersionCounter\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGtpv2VersionCounter\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGtpv2VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x81\x01\n\'PatternFlowGtpv2PiggybackingFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x87\x01\n)PatternFlowGtpv2PiggybackingFlagMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xc2\x03\n PatternFlowGtpv2PiggybackingFlag\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowGtpv2PiggybackingFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowGtpv2PiggybackingFlagCounter\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowGtpv2PiggybackingFlagCounter\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowGtpv2PiggybackingFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"y\n\x1fPatternFlowGtpv2TeidFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x7f\n!PatternFlowGtpv2TeidFlagMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x9a\x03\n\x18PatternFlowGtpv2TeidFlag\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowGtpv2TeidFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x37\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowGtpv2TeidFlagCounter\x12\x37\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowGtpv2TeidFlagCounter\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowGtpv2TeidFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"w\n\x1dPatternFlowGtpv2Spare1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n\x1fPatternFlowGtpv2Spare1MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x90\x03\n\x16PatternFlowGtpv2Spare1\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGtpv2Spare1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare1Counter\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare1Counter\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGtpv2Spare1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"|\n\"PatternFlowGtpv2MessageTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x82\x01\n$PatternFlowGtpv2MessageTypeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa9\x03\n\x1bPatternFlowGtpv2MessageType\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowGtpv2MessageType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowGtpv2MessageTypeCounter\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowGtpv2MessageTypeCounter\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowGtpv2MessageTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"~\n$PatternFlowGtpv2MessageLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x84\x01\n&PatternFlowGtpv2MessageLengthMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb3\x03\n\x1dPatternFlowGtpv2MessageLength\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGtpv2MessageLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGtpv2MessageLengthCounter\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGtpv2MessageLengthCounter\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGtpv2MessageLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowGtpv2TeidCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowGtpv2TeidMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x86\x03\n\x14PatternFlowGtpv2Teid\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowGtpv2Teid.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x33\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowGtpv2TeidCounter\x12\x33\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowGtpv2TeidCounter\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowGtpv2TeidMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x7f\n%PatternFlowGtpv2SequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x85\x01\n\'PatternFlowGtpv2SequenceNumberMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb8\x03\n\x1ePatternFlowGtpv2SequenceNumber\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowGtpv2SequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowGtpv2SequenceNumberCounter\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowGtpv2SequenceNumberCounter\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowGtpv2SequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"w\n\x1dPatternFlowGtpv2Spare2Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n\x1fPatternFlowGtpv2Spare2MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x90\x03\n\x16PatternFlowGtpv2Spare2\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGtpv2Spare2.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare2Counter\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare2Counter\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGtpv2Spare2MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"{\n!PatternFlowArpHardwareTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x81\x01\n#PatternFlowArpHardwareTypeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa4\x03\n\x1aPatternFlowArpHardwareType\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowArpHardwareType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowArpHardwareTypeCounter\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowArpHardwareTypeCounter\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowArpHardwareTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"{\n!PatternFlowArpProtocolTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x81\x01\n#PatternFlowArpProtocolTypeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa4\x03\n\x1aPatternFlowArpProtocolType\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowArpProtocolType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowArpProtocolTypeCounter\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowArpProtocolTypeCounter\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowArpProtocolTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"}\n#PatternFlowArpHardwareLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n%PatternFlowArpHardwareLengthMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xae\x03\n\x1cPatternFlowArpHardwareLength\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowArpHardwareLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowArpHardwareLengthCounter\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowArpHardwareLengthCounter\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowArpHardwareLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"}\n#PatternFlowArpProtocolLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n%PatternFlowArpProtocolLengthMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xae\x03\n\x1cPatternFlowArpProtocolLength\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowArpProtocolLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowArpProtocolLengthCounter\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowArpProtocolLengthCounter\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowArpProtocolLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"x\n\x1ePatternFlowArpOperationCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n PatternFlowArpOperationMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x95\x03\n\x17PatternFlowArpOperation\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowArpOperation.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowArpOperationCounter\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowArpOperationCounter\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowArpOperationMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x81\x01\n\'PatternFlowArpSenderHardwareAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x87\x01\n)PatternFlowArpSenderHardwareAddrMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xc2\x03\n PatternFlowArpSenderHardwareAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpSenderHardwareAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12?\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpSenderHardwareAddrCounter\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpSenderHardwareAddrCounter\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpSenderHardwareAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x81\x01\n\'PatternFlowArpSenderProtocolAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x87\x01\n)PatternFlowArpSenderProtocolAddrMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xc2\x03\n PatternFlowArpSenderProtocolAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpSenderProtocolAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12?\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpSenderProtocolAddrCounter\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpSenderProtocolAddrCounter\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpSenderProtocolAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x81\x01\n\'PatternFlowArpTargetHardwareAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x87\x01\n)PatternFlowArpTargetHardwareAddrMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xc2\x03\n PatternFlowArpTargetHardwareAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpTargetHardwareAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12?\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpTargetHardwareAddrCounter\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpTargetHardwareAddrCounter\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpTargetHardwareAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x81\x01\n\'PatternFlowArpTargetProtocolAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x87\x01\n)PatternFlowArpTargetProtocolAddrMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xc2\x03\n PatternFlowArpTargetProtocolAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpTargetProtocolAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12?\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpTargetProtocolAddrCounter\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpTargetProtocolAddrCounter\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpTargetProtocolAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"x\n\x1ePatternFlowIcmpEchoTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n PatternFlowIcmpEchoTypeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x95\x03\n\x17PatternFlowIcmpEchoType\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIcmpEchoType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoTypeCounter\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoTypeCounter\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIcmpEchoTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"x\n\x1ePatternFlowIcmpEchoCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n PatternFlowIcmpEchoCodeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x95\x03\n\x17PatternFlowIcmpEchoCode\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIcmpEchoCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoCodeCounter\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoCodeCounter\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIcmpEchoCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\xd9\x02\n\x1bPatternFlowIcmpEchoChecksum\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIcmpEchoChecksum.Choice.EnumH\x00\x88\x01\x01\x12G\n\tgenerated\x18\x02 \x01(\x0e\x32/.otg.PatternFlowIcmpEchoChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"~\n$PatternFlowIcmpEchoIdentifierCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x84\x01\n&PatternFlowIcmpEchoIdentifierMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb3\x03\n\x1dPatternFlowIcmpEchoIdentifier\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIcmpEchoIdentifier.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIcmpEchoIdentifierCounter\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIcmpEchoIdentifierCounter\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIcmpEchoIdentifierMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x82\x01\n(PatternFlowIcmpEchoSequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x88\x01\n*PatternFlowIcmpEchoSequenceNumberMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xc7\x03\n!PatternFlowIcmpEchoSequenceNumber\x12G\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x32.otg.PatternFlowIcmpEchoSequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32-.otg.PatternFlowIcmpEchoSequenceNumberCounter\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32-.otg.PatternFlowIcmpEchoSequenceNumberCounter\x12\x44\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32/.otg.PatternFlowIcmpEchoSequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\xdf\x02\n\x1dPatternFlowIcmpCommonChecksum\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIcmpCommonChecksum.Choice.EnumH\x00\x88\x01\x01\x12I\n\tgenerated\x18\x02 \x01(\x0e\x32\x31.otg.PatternFlowIcmpCommonChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"\x84\x01\n*PatternFlowIcmpNextFieldsIdentifierCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x8a\x01\n,PatternFlowIcmpNextFieldsIdentifierMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xd1\x03\n#PatternFlowIcmpNextFieldsIdentifier\x12I\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x34.otg.PatternFlowIcmpNextFieldsIdentifier.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32/.otg.PatternFlowIcmpNextFieldsIdentifierCounter\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32/.otg.PatternFlowIcmpNextFieldsIdentifierCounter\x12\x46\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x31.otg.PatternFlowIcmpNextFieldsIdentifierMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x88\x01\n.PatternFlowIcmpNextFieldsSequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x8e\x01\n0PatternFlowIcmpNextFieldsSequenceNumberMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xe5\x03\n\'PatternFlowIcmpNextFieldsSequenceNumber\x12M\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x38.otg.PatternFlowIcmpNextFieldsSequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x46\n\tincrement\x18\x05 \x01(\x0b\x32\x33.otg.PatternFlowIcmpNextFieldsSequenceNumberCounter\x12\x46\n\tdecrement\x18\x06 \x01(\x0b\x32\x33.otg.PatternFlowIcmpNextFieldsSequenceNumberCounter\x12J\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x35.otg.PatternFlowIcmpNextFieldsSequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"z\n PatternFlowIcmpv6EchoTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x80\x01\n\"PatternFlowIcmpv6EchoTypeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x9f\x03\n\x19PatternFlowIcmpv6EchoType\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIcmpv6EchoType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoTypeCounter\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoTypeCounter\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowIcmpv6EchoTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"z\n PatternFlowIcmpv6EchoCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x80\x01\n\"PatternFlowIcmpv6EchoCodeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x9f\x03\n\x19PatternFlowIcmpv6EchoCode\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIcmpv6EchoCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoCodeCounter\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoCodeCounter\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowIcmpv6EchoCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x80\x01\n&PatternFlowIcmpv6EchoIdentifierCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x86\x01\n(PatternFlowIcmpv6EchoIdentifierMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xbd\x03\n\x1fPatternFlowIcmpv6EchoIdentifier\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.PatternFlowIcmpv6EchoIdentifier.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12>\n\tincrement\x18\x05 \x01(\x0b\x32+.otg.PatternFlowIcmpv6EchoIdentifierCounter\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32+.otg.PatternFlowIcmpv6EchoIdentifierCounter\x12\x42\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32-.otg.PatternFlowIcmpv6EchoIdentifierMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x84\x01\n*PatternFlowIcmpv6EchoSequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x8a\x01\n,PatternFlowIcmpv6EchoSequenceNumberMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xd1\x03\n#PatternFlowIcmpv6EchoSequenceNumber\x12I\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x34.otg.PatternFlowIcmpv6EchoSequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32/.otg.PatternFlowIcmpv6EchoSequenceNumberCounter\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32/.otg.PatternFlowIcmpv6EchoSequenceNumberCounter\x12\x46\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x31.otg.PatternFlowIcmpv6EchoSequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\xdf\x02\n\x1dPatternFlowIcmpv6EchoChecksum\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIcmpv6EchoChecksum.Choice.EnumH\x00\x88\x01\x01\x12I\n\tgenerated\x18\x02 \x01(\x0e\x32\x31.otg.PatternFlowIcmpv6EchoChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"\xe5\x02\n\x1fPatternFlowIcmpv6CommonChecksum\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.PatternFlowIcmpv6CommonChecksum.Choice.EnumH\x00\x88\x01\x01\x12K\n\tgenerated\x18\x02 \x01(\x0e\x32\x33.otg.PatternFlowIcmpv6CommonChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"v\n\x1cPatternFlowPppAddressCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n\x1ePatternFlowPppAddressMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x8b\x03\n\x15PatternFlowPppAddress\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowPppAddress.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x34\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowPppAddressCounter\x12\x34\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowPppAddressCounter\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowPppAddressMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"v\n\x1cPatternFlowPppControlCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n\x1ePatternFlowPppControlMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x8b\x03\n\x15PatternFlowPppControl\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowPppControl.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x34\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowPppControlCounter\x12\x34\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowPppControlCounter\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowPppControlMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"{\n!PatternFlowPppProtocolTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x81\x01\n#PatternFlowPppProtocolTypeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowPppProtocolType\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowPppProtocolType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x39\n\tincrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowPppProtocolTypeCounter\x12\x39\n\tdecrement\x18\x07 \x01(\x0b\x32&.otg.PatternFlowPppProtocolTypeCounter\x12=\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32(.otg.PatternFlowPppProtocolTypeMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_auto\"y\n\x1fPatternFlowIgmpv1VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x7f\n!PatternFlowIgmpv1VersionMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x9a\x03\n\x18PatternFlowIgmpv1Version\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowIgmpv1Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x37\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowIgmpv1VersionCounter\x12\x37\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowIgmpv1VersionCounter\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowIgmpv1VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"v\n\x1cPatternFlowIgmpv1TypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n\x1ePatternFlowIgmpv1TypeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x8b\x03\n\x15PatternFlowIgmpv1Type\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowIgmpv1Type.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x34\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowIgmpv1TypeCounter\x12\x34\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowIgmpv1TypeCounter\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowIgmpv1TypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"x\n\x1ePatternFlowIgmpv1UnusedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n PatternFlowIgmpv1UnusedMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x95\x03\n\x17PatternFlowIgmpv1Unused\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIgmpv1Unused.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIgmpv1UnusedCounter\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIgmpv1UnusedCounter\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIgmpv1UnusedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\xd3\x02\n\x19PatternFlowIgmpv1Checksum\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIgmpv1Checksum.Choice.EnumH\x00\x88\x01\x01\x12\x45\n\tgenerated\x18\x02 \x01(\x0e\x32-.otg.PatternFlowIgmpv1Checksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"~\n$PatternFlowIgmpv1GroupAddressCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x84\x01\n&PatternFlowIgmpv1GroupAddressMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb3\x03\n\x1dPatternFlowIgmpv1GroupAddress\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIgmpv1GroupAddress.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12<\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIgmpv1GroupAddressCounter\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIgmpv1GroupAddressCounter\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIgmpv1GroupAddressMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowMplsLabelCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowMplsLabelMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowMplsLabel\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowMplsLabel.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x33\n\tincrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowMplsLabelCounter\x12\x33\n\tdecrement\x18\x07 \x01(\x0b\x32 .otg.PatternFlowMplsLabelCounter\x12\x37\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32\".otg.PatternFlowMplsLabelMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_auto\"|\n\"PatternFlowMplsTrafficClassCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x82\x01\n$PatternFlowMplsTrafficClassMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa9\x03\n\x1bPatternFlowMplsTrafficClass\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowMplsTrafficClass.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowMplsTrafficClassCounter\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowMplsTrafficClassCounter\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowMplsTrafficClassMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"}\n#PatternFlowMplsBottomOfStackCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n%PatternFlowMplsBottomOfStackMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowMplsBottomOfStack\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowMplsBottomOfStack.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12;\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowMplsBottomOfStackCounter\x12;\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowMplsBottomOfStackCounter\x12?\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32*.otg.PatternFlowMplsBottomOfStackMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_auto\"z\n PatternFlowMplsTimeToLiveCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x80\x01\n\"PatternFlowMplsTimeToLiveMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x9f\x03\n\x19PatternFlowMplsTimeToLive\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowMplsTimeToLive.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowMplsTimeToLiveCounter\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowMplsTimeToLiveCounter\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowMplsTimeToLiveMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x91\x01\n\x07Version\x12\x1d\n\x10\x61pi_spec_version\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0bsdk_version\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x61pp_version\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x13\n\x11_api_spec_versionB\x0e\n\x0c_sdk_versionB\x0e\n\x0c_app_version\"(\n\x07Success\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"$\n\x07\x46\x61ilure\x12\x19\n\x05\x65rror\x18\x01 \x01(\x0b\x32\n.otg.Error\"/\n\x10SetConfigRequest\x12\x1b\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x0b.otg.Config\"?\n\x13UpdateConfigRequest\x12(\n\rconfig_update\x18\x01 \x01(\x0b\x32\x11.otg.ConfigUpdate\"2\n\x11SetConfigResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"0\n\x11GetConfigResponse\x12\x1b\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x0b.otg.Config\"5\n\x14UpdateConfigResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"B\n\x16SetControlStateRequest\x12(\n\rcontrol_state\x18\x01 \x01(\x0b\x32\x11.otg.ControlState\"8\n\x17SetControlStateResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"E\n\x17SetControlActionRequest\x12*\n\x0e\x63ontrol_action\x18\x01 \x01(\x0b\x32\x12.otg.ControlAction\"W\n\x18SetControlActionResponse\x12;\n\x17\x63ontrol_action_response\x18\x01 \x01(\x0b\x32\x1a.otg.ControlActionResponse\"A\n\x11GetMetricsRequest\x12,\n\x0fmetrics_request\x18\x01 \x01(\x0b\x32\x13.otg.MetricsRequest\"D\n\x12GetMetricsResponse\x12.\n\x10metrics_response\x18\x01 \x01(\x0b\x32\x14.otg.MetricsResponse\">\n\x10GetStatesRequest\x12*\n\x0estates_request\x18\x01 \x01(\x0b\x32\x12.otg.StatesRequest\"A\n\x11GetStatesResponse\x12,\n\x0fstates_response\x18\x01 \x01(\x0b\x32\x13.otg.StatesResponse\"A\n\x11GetCaptureRequest\x12,\n\x0f\x63\x61pture_request\x18\x01 \x01(\x0b\x32\x13.otg.CaptureRequest\",\n\x12GetCaptureResponse\x12\x16\n\x0eresponse_bytes\x18\x01 \x01(\x0c\"3\n\x12GetVersionResponse\x12\x1d\n\x07version\x18\x01 \x01(\x0b\x32\x0c.otg.Version2\xdf\x04\n\x07Openapi\x12:\n\tSetConfig\x12\x15.otg.SetConfigRequest\x1a\x16.otg.SetConfigResponse\x12;\n\tGetConfig\x12\x16.google.protobuf.Empty\x1a\x16.otg.GetConfigResponse\x12\x43\n\x0cUpdateConfig\x12\x18.otg.UpdateConfigRequest\x1a\x19.otg.UpdateConfigResponse\x12L\n\x0fSetControlState\x12\x1b.otg.SetControlStateRequest\x1a\x1c.otg.SetControlStateResponse\x12O\n\x10SetControlAction\x12\x1c.otg.SetControlActionRequest\x1a\x1d.otg.SetControlActionResponse\x12=\n\nGetMetrics\x12\x16.otg.GetMetricsRequest\x1a\x17.otg.GetMetricsResponse\x12:\n\tGetStates\x12\x15.otg.GetStatesRequest\x1a\x16.otg.GetStatesResponse\x12=\n\nGetCapture\x12\x16.otg.GetCaptureRequest\x1a\x17.otg.GetCaptureResponse\x12=\n\nGetVersion\x12\x16.google.protobuf.Empty\x1a\x17.otg.GetVersionResponseB\x0bZ\t./otg;otgb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\totg.proto\x12\x03otg\x1a google/protobuf/descriptor.proto\x1a\x1bgoogle/protobuf/empty.proto\"\x89\x02\n\x06\x43onfig\x12\x18\n\x05ports\x18\x01 \x03(\x0b\x32\t.otg.Port\x12\x16\n\x04lags\x18\x02 \x03(\x0b\x32\x08.otg.Lag\x12\x1b\n\x06layer1\x18\x03 \x03(\x0b\x32\x0b.otg.Layer1\x12\x1e\n\x08\x63\x61ptures\x18\x04 \x03(\x0b\x32\x0c.otg.Capture\x12\x1c\n\x07\x64\x65vices\x18\x05 \x03(\x0b\x32\x0b.otg.Device\x12\x18\n\x05\x66lows\x18\x06 \x03(\x0b\x32\t.otg.Flow\x12\x1a\n\x06\x65vents\x18\x07 \x01(\x0b\x32\n.otg.Event\x12#\n\x07options\x18\x08 \x01(\x0b\x32\x12.otg.ConfigOptions\x12\x17\n\x04lldp\x18\t \x03(\x0b\x32\t.otg.Lldp\"g\n\rConfigOptions\x12&\n\x0cport_options\x18\x01 \x01(\x0b\x32\x10.otg.PortOptions\x12.\n\x10protocol_options\x18\x02 \x01(\x0b\x32\x14.otg.ProtocolOptions\"F\n\x04Port\x12\x15\n\x08location\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04name\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_locationB\x07\n\x05_name\"G\n\x0bPortOptions\x12 \n\x13location_preemption\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\x16\n\x14_location_preemption\"\x88\x01\n\x03Lag\x12\x1b\n\x05ports\x18\x01 \x03(\x0b\x32\x0c.otg.LagPort\x12\"\n\x08protocol\x18\x02 \x01(\x0b\x32\x10.otg.LagProtocol\x12\x16\n\tmin_links\x18\x03 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04name\x18\x04 \x01(\tH\x01\x88\x01\x01\x42\x0c\n\n_min_linksB\x07\n\x05_name\"z\n\x07LagPort\x12\x16\n\tport_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x04lacp\x18\x02 \x01(\x0b\x32\x10.otg.LagPortLacp\x12)\n\x08\x65thernet\x18\x03 \x01(\x0b\x32\x17.otg.DeviceEthernetBaseB\x0c\n\n_port_name\"\xd0\x01\n\x0bLagProtocol\x12\x31\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1c.otg.LagProtocol.Choice.EnumH\x00\x88\x01\x01\x12\"\n\x04lacp\x18\x02 \x01(\x0b\x32\x14.otg.LagProtocolLacp\x12&\n\x06static\x18\x03 \x01(\x0b\x32\x16.otg.LagProtocolStatic\x1a\x37\n\x06\x43hoice\"-\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04lacp\x10\x01\x12\n\n\x06static\x10\x02\x42\t\n\x07_choice\"3\n\x11LagProtocolStatic\x12\x13\n\x06lag_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\t\n\x07_lag_id\"\xa7\x01\n\x0fLagProtocolLacp\x12\x1c\n\x0f\x61\x63tor_system_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\"\n\x15\x61\x63tor_system_priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\tactor_key\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x12\n\x10_actor_system_idB\x18\n\x16_actor_system_priorityB\x0c\n\n_actor_key\"\x93\x03\n\x0bLagPortLacp\x12\x1e\n\x11\x61\x63tor_port_number\x18\x01 \x01(\rH\x00\x88\x01\x01\x12 \n\x13\x61\x63tor_port_priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12@\n\x0e\x61\x63tor_activity\x18\x03 \x01(\x0e\x32#.otg.LagPortLacp.ActorActivity.EnumH\x02\x88\x01\x01\x12*\n\x1dlacpdu_periodic_time_interval\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1b\n\x0elacpdu_timeout\x18\x05 \x01(\rH\x04\x88\x01\x01\x1a\x41\n\rActorActivity\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07passive\x10\x01\x12\n\n\x06\x61\x63tive\x10\x02\x42\x14\n\x12_actor_port_numberB\x16\n\x14_actor_port_priorityB\x11\n\x0f_actor_activityB \n\x1e_lacpdu_periodic_time_intervalB\x11\n\x0f_lacpdu_timeout\"\x84\x01\n\x12\x44\x65viceEthernetBase\x12\x10\n\x03mac\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x03mtu\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1e\n\x05vlans\x18\x03 \x03(\x0b\x32\x0f.otg.DeviceVlan\x12\x11\n\x04name\x18\x04 \x01(\tH\x02\x88\x01\x01\x42\x06\n\x04_macB\x06\n\x04_mtuB\x07\n\x05_name\"\xff\x01\n\x0e\x44\x65viceEthernet\x12+\n\nconnection\x18\x02 \x01(\x0b\x32\x17.otg.EthernetConnection\x12\'\n\x0eipv4_addresses\x18\x03 \x03(\x0b\x32\x0f.otg.DeviceIpv4\x12\'\n\x0eipv6_addresses\x18\x04 \x03(\x0b\x32\x0f.otg.DeviceIpv6\x12\x10\n\x03mac\x18\x05 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x03mtu\x18\x06 \x01(\rH\x01\x88\x01\x01\x12\x1e\n\x05vlans\x18\x07 \x03(\x0b\x32\x0f.otg.DeviceVlan\x12\x11\n\x04name\x18\x08 \x01(\tH\x02\x88\x01\x01\x42\x06\n\x04_macB\x06\n\x04_mtuB\x07\n\x05_name\"\x9b\x02\n\x12\x45thernetConnection\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.EthernetConnection.Choice.EnumH\x00\x88\x01\x01\x12\x16\n\tport_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x08lag_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x17\n\nvxlan_name\x18\x04 \x01(\tH\x03\x88\x01\x01\x1aN\n\x06\x43hoice\"D\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tport_name\x10\x01\x12\x0c\n\x08lag_name\x10\x02\x12\x0e\n\nvxlan_name\x10\x03\x42\t\n\x07_choiceB\x0c\n\n_port_nameB\x0b\n\t_lag_nameB\r\n\x0b_vxlan_name\"\xf3\x01\n\nDeviceVlan\x12,\n\x04tpid\x18\x01 \x01(\x0e\x32\x19.otg.DeviceVlan.Tpid.EnumH\x00\x88\x01\x01\x12\x15\n\x08priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0f\n\x02id\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x11\n\x04name\x18\x04 \x01(\tH\x03\x88\x01\x01\x1aV\n\x04Tpid\"N\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05x8100\x10\x01\x12\t\n\x05x88A8\x10\x02\x12\t\n\x05x9100\x10\x03\x12\t\n\x05x9200\x10\x04\x12\t\n\x05x9300\x10\x05\x42\x07\n\x05_tpidB\x0b\n\t_priorityB\x05\n\x03_idB\x07\n\x05_name\"\xbc\x01\n\nDeviceIpv4\x12\x14\n\x07gateway\x18\x01 \x01(\tH\x00\x88\x01\x01\x12.\n\x0bgateway_mac\x18\x02 \x01(\x0b\x32\x19.otg.DeviceIpv4GatewayMAC\x12\x14\n\x07\x61\x64\x64ress\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06prefix\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x11\n\x04name\x18\x05 \x01(\tH\x03\x88\x01\x01\x42\n\n\x08_gatewayB\n\n\x08_addressB\t\n\x07_prefixB\x07\n\x05_name\"v\n\x12\x44\x65viceIpv4Loopback\x12\x15\n\x08\x65th_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07\x61\x64\x64ress\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04name\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x0b\n\t_eth_nameB\n\n\x08_addressB\x07\n\x05_name\"\xcf\x01\n\x14\x44\x65viceIpv4GatewayMAC\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.DeviceIpv4GatewayMAC.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xbc\x01\n\nDeviceIpv6\x12\x14\n\x07gateway\x18\x01 \x01(\tH\x00\x88\x01\x01\x12.\n\x0bgateway_mac\x18\x02 \x01(\x0b\x32\x19.otg.DeviceIpv6GatewayMAC\x12\x14\n\x07\x61\x64\x64ress\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06prefix\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x11\n\x04name\x18\x05 \x01(\tH\x03\x88\x01\x01\x42\n\n\x08_gatewayB\n\n\x08_addressB\t\n\x07_prefixB\x07\n\x05_name\"v\n\x12\x44\x65viceIpv6Loopback\x12\x15\n\x08\x65th_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07\x61\x64\x64ress\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04name\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x0b\n\t_eth_nameB\n\n\x08_addressB\x07\n\x05_name\"\xcf\x01\n\x14\x44\x65viceIpv6GatewayMAC\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.DeviceIpv6GatewayMAC.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xa6\x06\n\x06Layer1\x12\x12\n\nport_names\x18\x01 \x03(\t\x12*\n\x05speed\x18\x02 \x01(\x0e\x32\x16.otg.Layer1.Speed.EnumH\x00\x88\x01\x01\x12*\n\x05media\x18\x03 \x01(\x0e\x32\x16.otg.Layer1.Media.EnumH\x01\x88\x01\x01\x12\x18\n\x0bpromiscuous\x18\x04 \x01(\x08H\x02\x88\x01\x01\x12\x10\n\x03mtu\x18\x05 \x01(\rH\x03\x88\x01\x01\x12 \n\x13ieee_media_defaults\x18\x06 \x01(\x08H\x04\x88\x01\x01\x12\x1b\n\x0e\x61uto_negotiate\x18\x07 \x01(\x08H\x05\x88\x01\x01\x12\x34\n\x10\x61uto_negotiation\x18\x08 \x01(\x0b\x32\x1a.otg.Layer1AutoNegotiation\x12,\n\x0c\x66low_control\x18\t \x01(\x0b\x32\x16.otg.Layer1FlowControl\x12\x11\n\x04name\x18\n \x01(\tH\x06\x88\x01\x01\x1a\xa9\x02\n\x05Speed\"\x9f\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x14\n\x10speed_10_fd_mbps\x10\x01\x12\x14\n\x10speed_10_hd_mbps\x10\x02\x12\x15\n\x11speed_100_fd_mbps\x10\x03\x12\x15\n\x11speed_100_hd_mbps\x10\x04\x12\x10\n\x0cspeed_1_gbps\x10\x05\x12\x11\n\rspeed_10_gbps\x10\x06\x12\x11\n\rspeed_25_gbps\x10\x07\x12\x11\n\rspeed_40_gbps\x10\x08\x12\x11\n\rspeed_50_gbps\x10\t\x12\x12\n\x0espeed_100_gbps\x10\n\x12\x12\n\x0espeed_200_gbps\x10\x0b\x12\x12\n\x0espeed_400_gbps\x10\x0c\x12\x12\n\x0espeed_800_gbps\x10\r\x1a\x42\n\x05Media\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x63opper\x10\x01\x12\t\n\x05\x66iber\x10\x02\x12\t\n\x05sgmii\x10\x03\x42\x08\n\x06_speedB\x08\n\x06_mediaB\x0e\n\x0c_promiscuousB\x06\n\x04_mtuB\x16\n\x14_ieee_media_defaultsB\x11\n\x0f_auto_negotiateB\x07\n\x05_name\"\x93\x03\n\x15Layer1AutoNegotiation\x12 \n\x13\x61\x64vertise_1000_mbps\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x15\x61\x64vertise_100_fd_mbps\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\"\n\x15\x61\x64vertise_100_hd_mbps\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12!\n\x14\x61\x64vertise_10_fd_mbps\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12!\n\x14\x61\x64vertise_10_hd_mbps\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1a\n\rlink_training\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06rs_fec\x18\x07 \x01(\x08H\x06\x88\x01\x01\x42\x16\n\x14_advertise_1000_mbpsB\x18\n\x16_advertise_100_fd_mbpsB\x18\n\x16_advertise_100_hd_mbpsB\x17\n\x15_advertise_10_fd_mbpsB\x17\n\x15_advertise_10_hd_mbpsB\x10\n\x0e_link_trainingB\t\n\x07_rs_fec\"\xac\x02\n\x11Layer1FlowControl\x12\x1d\n\x10\x64irected_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x37\n\x06\x63hoice\x18\x02 \x01(\x0e\x32\".otg.Layer1FlowControl.Choice.EnumH\x01\x88\x01\x01\x12-\n\rieee_802_1qbb\x18\x03 \x01(\x0b\x32\x16.otg.Layer1Ieee8021qbb\x12)\n\x0bieee_802_3x\x18\x04 \x01(\x0b\x32\x14.otg.Layer1Ieee8023x\x1a\x45\n\x06\x43hoice\";\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rieee_802_1qbb\x10\x01\x12\x0f\n\x0bieee_802_3x\x10\x02\x42\x13\n\x11_directed_addressB\t\n\x07_choice\"\x11\n\x0fLayer1Ieee8023x\"\x89\x03\n\x11Layer1Ieee8021qbb\x12\x16\n\tpfc_delay\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x18\n\x0bpfc_class_0\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0bpfc_class_1\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x18\n\x0bpfc_class_2\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x18\n\x0bpfc_class_3\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x18\n\x0bpfc_class_4\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x18\n\x0bpfc_class_5\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x18\n\x0bpfc_class_6\x18\x08 \x01(\rH\x07\x88\x01\x01\x12\x18\n\x0bpfc_class_7\x18\t \x01(\rH\x08\x88\x01\x01\x42\x0c\n\n_pfc_delayB\x0e\n\x0c_pfc_class_0B\x0e\n\x0c_pfc_class_1B\x0e\n\x0c_pfc_class_2B\x0e\n\x0c_pfc_class_3B\x0e\n\x0c_pfc_class_4B\x0e\n\x0c_pfc_class_5B\x0e\n\x0c_pfc_class_6B\x0e\n\x0c_pfc_class_7\"\xa1\x02\n\x07\x43\x61pture\x12\x12\n\nport_names\x18\x01 \x03(\t\x12#\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x12.otg.CaptureFilter\x12\x16\n\toverwrite\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x0bpacket_size\x18\x04 \x01(\rH\x01\x88\x01\x01\x12-\n\x06\x66ormat\x18\x05 \x01(\x0e\x32\x18.otg.Capture.Format.EnumH\x02\x88\x01\x01\x12\x11\n\x04name\x18\x06 \x01(\tH\x03\x88\x01\x01\x1a\x37\n\x06\x46ormat\"-\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04pcap\x10\x01\x12\n\n\x06pcapng\x10\x02\x42\x0c\n\n_overwriteB\x0e\n\x0c_packet_sizeB\t\n\x07_formatB\x07\n\x05_name\"\xd6\x02\n\rCaptureFilter\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.CaptureFilter.Choice.EnumH\x00\x88\x01\x01\x12\"\n\x06\x63ustom\x18\x02 \x01(\x0b\x32\x12.otg.CaptureCustom\x12&\n\x08\x65thernet\x18\x03 \x01(\x0b\x32\x14.otg.CaptureEthernet\x12\x1e\n\x04vlan\x18\x04 \x01(\x0b\x32\x10.otg.CaptureVlan\x12\x1e\n\x04ipv4\x18\x05 \x01(\x0b\x32\x10.otg.CaptureIpv4\x12\x1e\n\x04ipv6\x18\x06 \x01(\x0b\x32\x10.otg.CaptureIpv6\x1aY\n\x06\x43hoice\"O\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x63ustom\x10\x01\x12\x0c\n\x08\x65thernet\x10\x02\x12\x08\n\x04vlan\x10\x03\x12\x08\n\x04ipv4\x10\x04\x12\x08\n\x04ipv6\x10\x05\x42\t\n\x07_choice\"\xb1\x01\n\rCaptureCustom\x12\x13\n\x06offset\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x17\n\nbit_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x11\n\x04mask\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x13\n\x06negate\x18\x05 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_offsetB\r\n\x0b_bit_lengthB\x08\n\x06_valueB\x07\n\x05_maskB\t\n\x07_negate\"h\n\x0c\x43\x61ptureField\x12\x12\n\x05value\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04mask\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06negate\x18\x03 \x01(\x08H\x02\x88\x01\x01\x42\x08\n\x06_valueB\x07\n\x05_maskB\t\n\x07_negate\"\x9e\x01\n\x0f\x43\x61ptureEthernet\x12\x1e\n\x03src\x18\x01 \x01(\x0b\x32\x11.otg.CaptureField\x12\x1e\n\x03\x64st\x18\x02 \x01(\x0b\x32\x11.otg.CaptureField\x12%\n\nether_type\x18\x03 \x01(\x0b\x32\x11.otg.CaptureField\x12$\n\tpfc_queue\x18\x04 \x01(\x0b\x32\x11.otg.CaptureField\"\x96\x01\n\x0b\x43\x61ptureVlan\x12#\n\x08priority\x18\x01 \x01(\x0b\x32\x11.otg.CaptureField\x12\x1e\n\x03\x63\x66i\x18\x02 \x01(\x0b\x32\x11.otg.CaptureField\x12\x1d\n\x02id\x18\x03 \x01(\x0b\x32\x11.otg.CaptureField\x12#\n\x08protocol\x18\x04 \x01(\x0b\x32\x11.otg.CaptureField\"\xb4\x04\n\x0b\x43\x61ptureIpv4\x12\"\n\x07version\x18\x01 \x01(\x0b\x32\x11.otg.CaptureField\x12(\n\rheader_length\x18\x02 \x01(\x0b\x32\x11.otg.CaptureField\x12#\n\x08priority\x18\x03 \x01(\x0b\x32\x11.otg.CaptureField\x12\'\n\x0ctotal_length\x18\x04 \x01(\x0b\x32\x11.otg.CaptureField\x12)\n\x0eidentification\x18\x05 \x01(\x0b\x32\x11.otg.CaptureField\x12#\n\x08reserved\x18\x06 \x01(\x0b\x32\x11.otg.CaptureField\x12(\n\rdont_fragment\x18\x07 \x01(\x0b\x32\x11.otg.CaptureField\x12)\n\x0emore_fragments\x18\x08 \x01(\x0b\x32\x11.otg.CaptureField\x12*\n\x0f\x66ragment_offset\x18\t \x01(\x0b\x32\x11.otg.CaptureField\x12\'\n\x0ctime_to_live\x18\n \x01(\x0b\x32\x11.otg.CaptureField\x12#\n\x08protocol\x18\x0b \x01(\x0b\x32\x11.otg.CaptureField\x12*\n\x0fheader_checksum\x18\x0c \x01(\x0b\x32\x11.otg.CaptureField\x12\x1e\n\x03src\x18\r \x01(\x0b\x32\x11.otg.CaptureField\x12\x1e\n\x03\x64st\x18\x0e \x01(\x0b\x32\x11.otg.CaptureField\"\xbb\x02\n\x0b\x43\x61ptureIpv6\x12\"\n\x07version\x18\x01 \x01(\x0b\x32\x11.otg.CaptureField\x12(\n\rtraffic_class\x18\x02 \x01(\x0b\x32\x11.otg.CaptureField\x12%\n\nflow_label\x18\x03 \x01(\x0b\x32\x11.otg.CaptureField\x12)\n\x0epayload_length\x18\x04 \x01(\x0b\x32\x11.otg.CaptureField\x12&\n\x0bnext_header\x18\x05 \x01(\x0b\x32\x11.otg.CaptureField\x12$\n\thop_limit\x18\x06 \x01(\x0b\x32\x11.otg.CaptureField\x12\x1e\n\x03src\x18\x07 \x01(\x0b\x32\x11.otg.CaptureField\x12\x1e\n\x03\x64st\x18\x08 \x01(\x0b\x32\x11.otg.CaptureField\"\xb6\x02\n\x06\x44\x65vice\x12&\n\tethernets\x18\x01 \x03(\x0b\x32\x13.otg.DeviceEthernet\x12/\n\x0eipv4_loopbacks\x18\x02 \x03(\x0b\x32\x17.otg.DeviceIpv4Loopback\x12/\n\x0eipv6_loopbacks\x18\x03 \x03(\x0b\x32\x17.otg.DeviceIpv6Loopback\x12#\n\x04isis\x18\x04 \x01(\x0b\x32\x15.otg.DeviceIsisRouter\x12!\n\x03\x62gp\x18\x05 \x01(\x0b\x32\x14.otg.DeviceBgpRouter\x12\x1f\n\x05vxlan\x18\x06 \x01(\x0b\x32\x10.otg.DeviceVxlan\x12\x11\n\x04name\x18\x07 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\x04rsvp\x18\x08 \x01(\x0b\x32\x0f.otg.DeviceRsvpB\x07\n\x05_name\"A\n\x0fProtocolOptions\x12\x1b\n\x0e\x61uto_start_all\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\x11\n\x0f_auto_start_all\"\xf2\x02\n\x10\x44\x65viceIsisRouter\x12.\n\x08instance\x18\x01 \x01(\x0b\x32\x1c.otg.DeviceIsisMultiInstance\x12\x16\n\tsystem_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x12&\n\ninterfaces\x18\x03 \x03(\x0b\x32\x12.otg.IsisInterface\x12\x1d\n\x05\x62\x61sic\x18\x04 \x01(\x0b\x32\x0e.otg.IsisBasic\x12#\n\x08\x61\x64vanced\x18\x05 \x01(\x0b\x32\x11.otg.IsisAdvanced\x12,\n\x0brouter_auth\x18\x06 \x01(\x0b\x32\x17.otg.IsisAuthentication\x12(\n\tv4_routes\x18\x07 \x03(\x0b\x32\x15.otg.IsisV4RouteRange\x12(\n\tv6_routes\x18\x08 \x03(\x0b\x32\x15.otg.IsisV6RouteRange\x12\x11\n\x04name\x18\t \x01(\tH\x01\x88\x01\x01\x42\x0c\n\n_system_idB\x07\n\x05_name\"B\n\x17\x44\x65viceIsisMultiInstance\x12\x10\n\x03iid\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\r\n\x05itids\x18\x02 \x03(\rB\x06\n\x04_iid\"\x91\x06\n\rIsisInterface\x12\x15\n\x08\x65th_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06metric\x18\x02 \x01(\rH\x01\x88\x01\x01\x12>\n\x0cnetwork_type\x18\x03 \x01(\x0e\x32#.otg.IsisInterface.NetworkType.EnumH\x02\x88\x01\x01\x12:\n\nlevel_type\x18\x04 \x01(\x0e\x32!.otg.IsisInterface.LevelType.EnumH\x03\x88\x01\x01\x12,\n\x0bl1_settings\x18\x05 \x01(\x0b\x32\x17.otg.IsisInterfaceLevel\x12,\n\x0bl2_settings\x18\x06 \x01(\x0b\x32\x17.otg.IsisInterfaceLevel\x12\'\n\x12multi_topology_ids\x18\x07 \x03(\x0b\x32\x0b.otg.IsisMT\x12-\n\x13traffic_engineering\x18\x08 \x03(\x0b\x32\x10.otg.LinkStateTE\x12\x38\n\x0e\x61uthentication\x18\t \x01(\x0b\x32 .otg.IsisInterfaceAuthentication\x12,\n\x08\x61\x64vanced\x18\n \x01(\x0b\x32\x1a.otg.IsisInterfaceAdvanced\x12\x39\n\x0flink_protection\x18\x0b \x01(\x0b\x32 .otg.IsisInterfaceLinkProtection\x12\x13\n\x0bsrlg_values\x18\x0c \x03(\r\x12\x11\n\x04name\x18\r \x01(\tH\x04\x88\x01\x01\x1aI\n\x0bNetworkType\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tbroadcast\x10\x01\x12\x12\n\x0epoint_to_point\x10\x02\x1aM\n\tLevelType\"@\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07level_1\x10\x01\x12\x0b\n\x07level_2\x10\x02\x12\r\n\tlevel_1_2\x10\x03\x42\x0b\n\t_eth_nameB\t\n\x07_metricB\x0f\n\r_network_typeB\r\n\x0b_level_typeB\x07\n\x05_name\"\x96\x01\n\x12IsisInterfaceLevel\x12\x15\n\x08priority\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1b\n\x0ehello_interval\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1a\n\rdead_interval\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x0b\n\t_priorityB\x11\n\x0f_hello_intervalB\x10\n\x0e_dead_interval\"P\n\x06IsisMT\x12\x12\n\x05mt_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x18\n\x0blink_metric\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x08\n\x06_mt_idB\x0e\n\x0c_link_metric\"\xa4\x02\n\x0bLinkStateTE\x12!\n\x14\x61\x64ministrative_group\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0cmetric_level\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0cmax_bandwith\x18\x03 \x01(\rH\x02\x88\x01\x01\x12%\n\x18max_reservable_bandwidth\x18\x04 \x01(\rH\x03\x88\x01\x01\x12=\n\x13priority_bandwidths\x18\x05 \x01(\x0b\x32 .otg.LinkStatepriorityBandwidthsB\x17\n\x15_administrative_groupB\x0f\n\r_metric_levelB\x0f\n\r_max_bandwithB\x1b\n\x19_max_reservable_bandwidth\"\xed\x01\n\x1bLinkStatepriorityBandwidths\x12\x10\n\x03pb0\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03pb1\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x10\n\x03pb2\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x10\n\x03pb3\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x10\n\x03pb4\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x10\n\x03pb5\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x10\n\x03pb6\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x10\n\x03pb7\x18\x08 \x01(\rH\x07\x88\x01\x01\x42\x06\n\x04_pb0B\x06\n\x04_pb1B\x06\n\x04_pb2B\x06\n\x04_pb3B\x06\n\x04_pb4B\x06\n\x04_pb5B\x06\n\x04_pb6B\x06\n\x04_pb7\"\xed\x01\n\x1bIsisInterfaceAuthentication\x12\x46\n\tauth_type\x18\x01 \x01(\x0e\x32..otg.IsisInterfaceAuthentication.AuthType.EnumH\x00\x88\x01\x01\x12\x10\n\x03md5\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x08password\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a:\n\x08\x41uthType\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03md5\x10\x01\x12\x0c\n\x08password\x10\x02\x42\x0c\n\n_auth_typeB\x06\n\x04_md5B\x0b\n\t_password\"\xd3\x02\n\x15IsisInterfaceAdvanced\x12\x1c\n\x0f\x61uto_adjust_mtu\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1d\n\x10\x61uto_adjust_area\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12,\n\x1f\x61uto_adjust_supported_protocols\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\"\n\x15\x65nable_3way_handshake\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12&\n\x19p2p_hellos_to_unicast_mac\x18\x05 \x01(\x08H\x04\x88\x01\x01\x42\x12\n\x10_auto_adjust_mtuB\x13\n\x11_auto_adjust_areaB\"\n _auto_adjust_supported_protocolsB\x18\n\x16_enable_3way_handshakeB\x1c\n\x1a_p2p_hellos_to_unicast_mac\"\xf9\x02\n\x1bIsisInterfaceLinkProtection\x12\x1a\n\rextra_traffic\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x0bunprotected\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x13\n\x06shared\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1d\n\x10\x64\x65\x64icated_1_to_1\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x1f\n\x12\x64\x65\x64icated_1_plus_1\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x15\n\x08\x65nhanced\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x18\n\x0breserved_40\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12\x18\n\x0breserved_80\x18\x08 \x01(\x08H\x07\x88\x01\x01\x42\x10\n\x0e_extra_trafficB\x0e\n\x0c_unprotectedB\t\n\x07_sharedB\x13\n\x11_dedicated_1_to_1B\x15\n\x13_dedicated_1_plus_1B\x0b\n\t_enhancedB\x0e\n\x0c_reserved_40B\x0e\n\x0c_reserved_80\"\xd5\x01\n\tIsisBasic\x12\x1e\n\x11ipv4_te_router_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08hostname\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12\x65nable_wide_metric\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1f\n\x12learned_lsp_filter\x18\x04 \x01(\x08H\x03\x88\x01\x01\x42\x14\n\x12_ipv4_te_router_idB\x0b\n\t_hostnameB\x15\n\x13_enable_wide_metricB\x15\n\x13_learned_lsp_filter\"\x8a\x04\n\x0cIsisAdvanced\x12!\n\x14\x65nable_hello_padding\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1f\n\x12max_area_addresses\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\x0e\x61rea_addresses\x18\x03 \x03(\t\x12\x1d\n\x10lsp_refresh_rate\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x19\n\x0clsp_lifetime\x18\x05 \x01(\rH\x03\x88\x01\x01\x12\x1a\n\rpsnp_interval\x18\x06 \x01(\rH\x04\x88\x01\x01\x12\x1a\n\rcsnp_interval\x18\x07 \x01(\rH\x05\x88\x01\x01\x12\x19\n\x0cmax_lsp_size\x18\x08 \x01(\rH\x06\x88\x01\x01\x12*\n\x1dlsp_mgroup_min_trans_interval\x18\t \x01(\rH\x07\x88\x01\x01\x12 \n\x13\x65nable_attached_bit\x18\n \x01(\x08H\x08\x88\x01\x01\x42\x17\n\x15_enable_hello_paddingB\x15\n\x13_max_area_addressesB\x13\n\x11_lsp_refresh_rateB\x0f\n\r_lsp_lifetimeB\x10\n\x0e_psnp_intervalB\x10\n\x0e_csnp_intervalB\x0f\n\r_max_lsp_sizeB \n\x1e_lsp_mgroup_min_trans_intervalB\x16\n\x14_enable_attached_bit\"\xae\x01\n\x12IsisAuthentication\x12\x1f\n\x12ignore_receive_md5\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12.\n\tarea_auth\x18\x02 \x01(\x0b\x32\x1b.otg.IsisAuthenticationBase\x12\x30\n\x0b\x64omain_auth\x18\x03 \x01(\x0b\x32\x1b.otg.IsisAuthenticationBaseB\x15\n\x13_ignore_receive_md5\"\xe3\x01\n\x16IsisAuthenticationBase\x12\x41\n\tauth_type\x18\x01 \x01(\x0e\x32).otg.IsisAuthenticationBase.AuthType.EnumH\x00\x88\x01\x01\x12\x10\n\x03md5\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x08password\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a:\n\x08\x41uthType\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03md5\x10\x01\x12\x0c\n\x08password\x10\x02\x42\x0c\n\n_auth_typeB\x06\n\x04_md5B\x0b\n\t_password\"\xd8\x04\n\x10IsisV4RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V4RouteAddress\x12\x18\n\x0blink_metric\x18\x02 \x01(\rH\x00\x88\x01\x01\x12?\n\x0borigin_type\x18\x03 \x01(\x0e\x32%.otg.IsisV4RouteRange.OriginType.EnumH\x01\x88\x01\x01\x12O\n\x13redistribution_type\x18\x04 \x01(\x0e\x32-.otg.IsisV4RouteRange.RedistributionType.EnumH\x02\x88\x01\x01\x12\x11\n\x04name\x18\x05 \x01(\tH\x03\x88\x01\x01\x12 \n\x13prefix_attr_enabled\x18\x06 \x01(\x08H\x04\x88\x01\x01\x12\x13\n\x06x_flag\x18\x07 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06r_flag\x18\x08 \x01(\x08H\x06\x88\x01\x01\x12\x13\n\x06n_flag\x18\t \x01(\x08H\x07\x88\x01\x01\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x0e\n\x0c_link_metricB\x0e\n\x0c_origin_typeB\x16\n\x14_redistribution_typeB\x07\n\x05_nameB\x16\n\x14_prefix_attr_enabledB\t\n\x07_x_flagB\t\n\x07_r_flagB\t\n\x07_n_flag\"\x8c\x01\n\x0eV4RouteAddress\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06prefix\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x11\n\x04step\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\n\n\x08_addressB\t\n\x07_prefixB\x08\n\x06_countB\x07\n\x05_step\"\x8c\x01\n\x0eV6RouteAddress\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06prefix\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x11\n\x04step\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\n\n\x08_addressB\t\n\x07_prefixB\x08\n\x06_countB\x07\n\x05_step\"\x8d\x01\n\x0fMACRouteAddress\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06prefix\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x11\n\x04step\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\n\n\x08_addressB\t\n\x07_prefixB\x08\n\x06_countB\x07\n\x05_step\"\xd8\x04\n\x10IsisV6RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V6RouteAddress\x12\x18\n\x0blink_metric\x18\x02 \x01(\rH\x00\x88\x01\x01\x12?\n\x0borigin_type\x18\x03 \x01(\x0e\x32%.otg.IsisV6RouteRange.OriginType.EnumH\x01\x88\x01\x01\x12O\n\x13redistribution_type\x18\x04 \x01(\x0e\x32-.otg.IsisV6RouteRange.RedistributionType.EnumH\x02\x88\x01\x01\x12\x11\n\x04name\x18\x05 \x01(\tH\x03\x88\x01\x01\x12 \n\x13prefix_attr_enabled\x18\x06 \x01(\x08H\x04\x88\x01\x01\x12\x13\n\x06x_flag\x18\x07 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06r_flag\x18\x08 \x01(\x08H\x06\x88\x01\x01\x12\x13\n\x06n_flag\x18\t \x01(\x08H\x07\x88\x01\x01\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x0e\n\x0c_link_metricB\x0e\n\x0c_origin_typeB\x16\n\x14_redistribution_typeB\x07\n\x05_nameB\x16\n\x14_prefix_attr_enabledB\t\n\x07_x_flagB\t\n\x07_r_flagB\t\n\x07_n_flag\"\x93\x01\n\x0f\x44\x65viceBgpRouter\x12\x16\n\trouter_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12,\n\x0fipv4_interfaces\x18\x02 \x03(\x0b\x32\x13.otg.BgpV4Interface\x12,\n\x0fipv6_interfaces\x18\x03 \x03(\x0b\x32\x13.otg.BgpV6InterfaceB\x0c\n\n_router_id\"\x90\x02\n\x1b\x44\x65viceBgpMessageHeaderError\x12\x43\n\x07subcode\x18\x01 \x01(\x0e\x32-.otg.DeviceBgpMessageHeaderError.Subcode.EnumH\x00\x88\x01\x01\x1a\x9f\x01\n\x07Subcode\"\x93\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12.\n*connection_not_synchronized_code1_subcode1\x10\x01\x12%\n!bad_message_length_code1_subcode2\x10\x02\x12#\n\x1f\x62\x61\x64_message_type_code1_subcode3\x10\x03\x42\n\n\x08_subcode\"\xaa\x03\n\x19\x44\x65viceBgpOpenMessageError\x12\x41\n\x07subcode\x18\x01 \x01(\x0e\x32+.otg.DeviceBgpOpenMessageError.Subcode.EnumH\x00\x88\x01\x01\x1a\xbd\x02\n\x07Subcode\"\xb1\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12-\n)unsupported_version_number_code2_subcode1\x10\x01\x12 \n\x1c\x65rror_peer_as_code2_subcode2\x10\x02\x12\x1f\n\x1b\x65rror_bgp_id_code2_subcode3\x10\x03\x12\x31\n-unsupported_optional_parameter_code2_subcode4\x10\x04\x12\x1e\n\x1a\x61uth_failed_code2_subcode5\x10\x05\x12(\n$unsupported_hold_time_code2_subcode6\x10\x06\x12)\n%unsupported_capability_code2_subcode7\x10\x07\x42\n\n\x08_subcode\"\xdc\x04\n\x1b\x44\x65viceBgpUpdateMessageError\x12\x43\n\x07subcode\x18\x01 \x01(\x0e\x32-.otg.DeviceBgpUpdateMessageError.Subcode.EnumH\x00\x88\x01\x01\x1a\xeb\x03\n\x07Subcode\"\xdf\x03\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12(\n$malformed_attrib_list_code3_subcode1\x10\x01\x12\x30\n,unrecognized_wellknown_attrib_code3_subcode2\x10\x02\x12+\n\'wellknown_attrib_missing_code3_subcode3\x10\x03\x12%\n!attrib_flags_error_code3_subcode4\x10\x04\x12&\n\"attrib_length_error_code3_subcode5\x10\x05\x12(\n$invalid_origin_attrib_code3_subcode6\x10\x06\x12\"\n\x1e\x61s_routing_loop_code3_subcode7\x10\x07\x12&\n\"invalid_nhop_attrib_code3_subcode8\x10\x08\x12(\n$error_optional_attrib_code3_subcode9\x10\t\x12)\n%invalid_network_field_code3_subcode10\x10\n\x12#\n\x1f\x61\x62normal_aspath_code3_subcode11\x10\x0b\x42\n\n\x08_subcode\"\x1b\n\x19\x44\x65viceBgpHoldTimerExpired\"\"\n DeviceBgpFiniteStateMachineError\"\xe3\x03\n\x13\x44\x65viceBgpCeaseError\x12;\n\x07subcode\x18\x01 \x01(\x0e\x32%.otg.DeviceBgpCeaseError.Subcode.EnumH\x00\x88\x01\x01\x1a\x82\x03\n\x07Subcode\"\xf6\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12,\n(max_number_prefix_reached_code6_subcode1\x10\x01\x12!\n\x1d\x61\x64min_shutdown_code6_subcode2\x10\x02\x12\x1f\n\x1bpeer_deleted_code6_subcode3\x10\x03\x12\x1e\n\x1a\x61\x64min_reset_code6_subcode4\x10\x04\x12$\n connection_reject_code6_subcode5\x10\x05\x12\'\n#other_config_changes_code6_subcode6\x10\x06\x12\x32\n.connection_collision_resolution_code6_subcode7\x10\x07\x12#\n\x1fout_of_resources_code6_subcode8\x10\x08\x12#\n\x1f\x62\x66\x64_session_down_code6_subcode9\x10\tB\n\n\x08_subcode\"T\n\x14\x44\x65viceBgpCustomError\x12\x11\n\x04\x63ode\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07subcode\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x07\n\x05_codeB\n\n\x08_subcode\"\xb2\x06\n\tBgpV4Peer\x12\x19\n\x0cpeer_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x39\n\x16\x65vpn_ethernet_segments\x18\x02 \x03(\x0b\x32\x19.otg.BgpV4EthernetSegment\x12\x30\n\x07\x61s_type\x18\x03 \x01(\x0e\x32\x1a.otg.BgpV4Peer.AsType.EnumH\x01\x88\x01\x01\x12\x16\n\tas_number\x18\x04 \x01(\rH\x02\x88\x01\x01\x12?\n\x0f\x61s_number_width\x18\x05 \x01(\x0e\x32!.otg.BgpV4Peer.AsNumberWidth.EnumH\x03\x88\x01\x01\x12\"\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x10.otg.BgpAdvanced\x12&\n\ncapability\x18\x07 \x01(\x0b\x32\x12.otg.BgpCapability\x12\x44\n\x1alearned_information_filter\x18\x08 \x01(\x0b\x32 .otg.BgpLearnedInformationFilter\x12\'\n\tv4_routes\x18\t \x03(\x0b\x32\x14.otg.BgpV4RouteRange\x12\'\n\tv6_routes\x18\n \x03(\x0b\x32\x14.otg.BgpV6RouteRange\x12.\n\x10v4_srte_policies\x18\x0b \x03(\x0b\x32\x14.otg.BgpSrteV4Policy\x12.\n\x10v6_srte_policies\x18\x0c \x03(\x0b\x32\x14.otg.BgpSrteV6Policy\x12\x11\n\x04name\x18\r \x01(\tH\x04\x88\x01\x01\x12\x31\n\x10graceful_restart\x18\x0e \x01(\x0b\x32\x17.otg.BgpGracefulRestart\x1a\x35\n\x06\x41sType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ibgp\x10\x01\x12\x08\n\x04\x65\x62gp\x10\x02\x1a;\n\rAsNumberWidth\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03two\x10\x01\x12\x08\n\x04\x66our\x10\x02\x42\x0f\n\r_peer_addressB\n\n\x08_as_typeB\x0c\n\n_as_numberB\x12\n\x10_as_number_widthB\x07\n\x05_name\"U\n\x0e\x42gpV4Interface\x12\x16\n\tipv4_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\x05peers\x18\x02 \x03(\x0b\x32\x0e.otg.BgpV4PeerB\x0c\n\n_ipv4_name\"\xf0\x03\n\x14\x42gpV4EthernetSegment\x12\x36\n\x0b\x64\x66_election\x18\x01 \x01(\x0b\x32!.otg.BgpEthernetSegmentDfElection\x12 \n\x04\x65vis\x18\x02 \x03(\x0b\x32\x12.otg.BgpV4EvpnEvis\x12\x10\n\x03\x65si\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x43\n\x0b\x61\x63tive_mode\x18\x04 \x01(\x0e\x32).otg.BgpV4EthernetSegment.ActiveMode.EnumH\x01\x88\x01\x01\x12\x16\n\tesi_label\x18\x05 \x01(\rH\x02\x88\x01\x01\x12\'\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvanced\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x08 \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12\x1f\n\x07\x61s_path\x18\t \x01(\x0b\x32\x0e.otg.BgpAsPath\x1aH\n\nActiveMode\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsingle_active\x10\x01\x12\x0e\n\nall_active\x10\x02\x42\x06\n\x04_esiB\x0e\n\x0c_active_modeB\x0c\n\n_esi_label\"N\n\x1c\x42gpEthernetSegmentDfElection\x12\x1b\n\x0e\x65lection_timer\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x11\n\x0f_election_timer\"\xda\x03\n\x10\x42gpRouteAdvanced\x12-\n include_multi_exit_discriminator\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12%\n\x18multi_exit_discriminator\x18\x01 \x01(\rH\x01\x88\x01\x01\x12\x1b\n\x0einclude_origin\x18\x04 \x01(\x08H\x02\x88\x01\x01\x12\x36\n\x06origin\x18\x02 \x01(\x0e\x32!.otg.BgpRouteAdvanced.Origin.EnumH\x03\x88\x01\x01\x12%\n\x18include_local_preference\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1d\n\x10local_preference\x18\x06 \x01(\rH\x05\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42#\n!_include_multi_exit_discriminatorB\x1b\n\x19_multi_exit_discriminatorB\x11\n\x0f_include_originB\t\n\x07_originB\x1b\n\x19_include_local_preferenceB\x13\n\x11_local_preference\"\xa4\x02\n\x0c\x42gpCommunity\x12.\n\x04type\x18\x01 \x01(\x0e\x32\x1b.otg.BgpCommunity.Type.EnumH\x00\x88\x01\x01\x12\x16\n\tas_number\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\tas_custom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a\x8e\x01\n\x04Type\"\x85\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x14\n\x10manual_as_number\x10\x01\x12\r\n\tno_export\x10\x02\x12\x11\n\rno_advertised\x10\x03\x12\x17\n\x13no_export_subconfed\x10\x04\x12\x0e\n\nllgr_stale\x10\x05\x12\x0b\n\x07no_llgr\x10\x06\x42\x07\n\x05_typeB\x0c\n\n_as_numberB\x0c\n\n_as_custom\"\xf9\x03\n\x0f\x42gpExtCommunity\x12\x31\n\x04type\x18\x01 \x01(\x0e\x32\x1e.otg.BgpExtCommunity.Type.EnumH\x00\x88\x01\x01\x12\x37\n\x07subtype\x18\x02 \x01(\x0e\x32!.otg.BgpExtCommunity.Subtype.EnumH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\xbc\x01\n\x04Type\"\xb3\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1b\n\x17\x61\x64ministrator_as_2octet\x10\x01\x12\x1e\n\x1a\x61\x64ministrator_ipv4_address\x10\x02\x12\x1b\n\x17\x61\x64ministrator_as_4octet\x10\x03\x12\n\n\x06opaque\x10\x04\x12\x08\n\x04\x65vpn\x10\x05\x12*\n&administrator_as_2octet_link_bandwidth\x10\x06\x1a\x87\x01\n\x07Subtype\"|\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0croute_target\x10\x01\x12\n\n\x06origin\x10\x02\x12\x16\n\x12\x65xtended_bandwidth\x10\x03\x12\t\n\x05\x63olor\x10\x04\x12\x11\n\rencapsulation\x10\x05\x12\x0f\n\x0bmac_address\x10\x06\x42\x07\n\x05_typeB\n\n\x08_subtypeB\x08\n\x06_value\"\xbe\x02\n\tBgpAsPath\x12\x37\n\x0b\x61s_set_mode\x18\x01 \x01(\x0e\x32\x1d.otg.BgpAsPath.AsSetMode.EnumH\x00\x88\x01\x01\x12\'\n\x08segments\x18\x02 \x03(\x0b\x32\x15.otg.BgpAsPathSegment\x1a\xbe\x01\n\tAsSetMode\"\xb0\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1b\n\x17\x64o_not_include_local_as\x10\x01\x12\x12\n\x0einclude_as_seq\x10\x02\x12\x12\n\x0einclude_as_set\x10\x03\x12\x19\n\x15include_as_confed_seq\x10\x04\x12\x19\n\x15include_as_confed_set\x10\x05\x12\x1c\n\x18prepend_to_first_segment\x10\x06\x42\x0e\n\x0c_as_set_mode\"\xc2\x01\n\x10\x42gpAsPathSegment\x12\x32\n\x04type\x18\x01 \x01(\x0e\x32\x1f.otg.BgpAsPathSegment.Type.EnumH\x00\x88\x01\x01\x12\x12\n\nas_numbers\x18\x02 \x03(\r\x1a]\n\x04Type\"U\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x61s_seq\x10\x01\x12\n\n\x06\x61s_set\x10\x02\x12\x11\n\ras_confed_seq\x10\x03\x12\x11\n\ras_confed_set\x10\x04\x42\x07\n\x05_type\"\xa8\x01\n\rBgpV4EvpnEvis\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.BgpV4EvpnEvis.Choice.EnumH\x00\x88\x01\x01\x12%\n\tevi_vxlan\x18\x02 \x01(\x0b\x32\x12.otg.BgpV4EviVxlan\x1a\x30\n\x06\x43hoice\"&\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tevi_vxlan\x10\x01\x42\t\n\x07_choice\"\xe3\x05\n\rBgpV4EviVxlan\x12<\n\x11\x62roadcast_domains\x18\x01 \x03(\x0b\x32!.otg.BgpV4EviVxlanBroadcastDomain\x12\x46\n\x10replication_type\x18\x02 \x01(\x0e\x32\'.otg.BgpV4EviVxlan.ReplicationType.EnumH\x00\x88\x01\x01\x12\x17\n\npmsi_label\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08\x61\x64_label\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x37\n\x13route_distinguisher\x18\x05 \x01(\x0b\x32\x1a.otg.BgpRouteDistinguisher\x12\x30\n\x13route_target_export\x18\x06 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x30\n\x13route_target_import\x18\x07 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_export\x18\x08 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_import\x18\t \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\'\n\x08\x61\x64vanced\x18\n \x01(\x0b\x32\x15.otg.BgpRouteAdvanced\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12\x1f\n\x07\x61s_path\x18\r \x01(\x0b\x32\x0e.otg.BgpAsPath\x1a\x43\n\x0fReplicationType\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13ingress_replication\x10\x01\x42\x13\n\x11_replication_typeB\r\n\x0b_pmsi_labelB\x0b\n\t_ad_label\"\xb4\x01\n\x1c\x42gpV4EviVxlanBroadcastDomain\x12*\n\rcmac_ip_range\x18\x01 \x03(\x0b\x32\x13.otg.BgpCMacIpRange\x12\x1c\n\x0f\x65thernet_tag_id\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1f\n\x12vlan_aware_service\x18\x03 \x01(\x08H\x01\x88\x01\x01\x42\x12\n\x10_ethernet_tag_idB\x15\n\x13_vlan_aware_service\"\xd2\x03\n\x0e\x42gpCMacIpRange\x12+\n\rmac_addresses\x18\x01 \x01(\x0b\x32\x14.otg.MACRouteAddress\x12\x12\n\x05l2vni\x18\x02 \x01(\rH\x00\x88\x01\x01\x12+\n\x0eipv4_addresses\x18\x03 \x01(\x0b\x32\x13.otg.V4RouteAddress\x12+\n\x0eipv6_addresses\x18\x04 \x01(\x0b\x32\x13.otg.V6RouteAddress\x12\x12\n\x05l3vni\x18\x05 \x01(\rH\x01\x88\x01\x01\x12$\n\x17include_default_gateway\x18\x06 \x01(\x08H\x02\x88\x01\x01\x12\'\n\x08\x61\x64vanced\x18\x07 \x01(\x0b\x32\x15.otg.BgpRouteAdvanced\x12&\n\x0b\x63ommunities\x18\x08 \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\t \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12\x1f\n\x07\x61s_path\x18\n \x01(\x0b\x32\x0e.otg.BgpAsPath\x12\x11\n\x04name\x18\x0b \x01(\tH\x03\x88\x01\x01\x42\x08\n\x06_l2vniB\x08\n\x06_l3vniB\x1a\n\x18_include_default_gatewayB\x07\n\x05_name\"\x98\x02\n\x15\x42gpRouteDistinguisher\x12<\n\x07rd_type\x18\x01 \x01(\x0e\x32&.otg.BgpRouteDistinguisher.RdType.EnumH\x00\x88\x01\x01\x12#\n\x16\x61uto_config_rd_ip_addr\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x15\n\x08rd_value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1aQ\n\x06RdType\"G\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tas_2octet\x10\x01\x12\x10\n\x0cipv4_address\x10\x02\x12\r\n\tas_4octet\x10\x03\x42\n\n\x08_rd_typeB\x19\n\x17_auto_config_rd_ip_addrB\x0b\n\t_rd_value\"\xca\x01\n\x0e\x42gpRouteTarget\x12\x35\n\x07rt_type\x18\x01 \x01(\x0e\x32\x1f.otg.BgpRouteTarget.RtType.EnumH\x00\x88\x01\x01\x12\x15\n\x08rt_value\x18\x02 \x01(\tH\x01\x88\x01\x01\x1aQ\n\x06RtType\"G\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tas_2octet\x10\x01\x12\x10\n\x0cipv4_address\x10\x02\x12\r\n\tas_4octet\x10\x03\x42\n\n\x08_rt_typeB\x0b\n\t_rt_value\"\x83\x03\n\x0b\x42gpAdvanced\x12\x1f\n\x12hold_time_interval\x18\x01 \x01(\rH\x00\x88\x01\x01\x12 \n\x13keep_alive_interval\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1c\n\x0fupdate_interval\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x19\n\x0ctime_to_live\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x14\n\x07md5_key\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x19\n\x0cpassive_mode\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x18\n\x0blisten_port\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x1a\n\rneighbor_port\x18\x08 \x01(\rH\x07\x88\x01\x01\x42\x15\n\x13_hold_time_intervalB\x16\n\x14_keep_alive_intervalB\x12\n\x10_update_intervalB\x0f\n\r_time_to_liveB\n\n\x08_md5_keyB\x0f\n\r_passive_modeB\x0e\n\x0c_listen_portB\x10\n\x0e_neighbor_port\"\x91\n\n\rBgpCapability\x12\x19\n\x0cipv4_unicast\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1b\n\x0eipv4_multicast\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x19\n\x0cipv6_unicast\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1b\n\x0eipv6_multicast\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x11\n\x04vpls\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1a\n\rroute_refresh\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x1d\n\x10route_constraint\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12\x1f\n\x12link_state_non_vpn\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12\x1b\n\x0elink_state_vpn\x18\t \x01(\x08H\x08\x88\x01\x01\x12\x11\n\x04\x65vpn\x18\n \x01(\x08H\t\x88\x01\x01\x12\'\n\x1a\x65xtended_next_hop_encoding\x18\x0b \x01(\x08H\n\x88\x01\x01\x12\x1f\n\x12ipv4_multicast_vpn\x18\x0c \x01(\x08H\x0b\x88\x01\x01\x12\x1a\n\ripv4_mpls_vpn\x18\r \x01(\x08H\x0c\x88\x01\x01\x12\x15\n\x08ipv4_mdt\x18\x0e \x01(\x08H\r\x88\x01\x01\x12$\n\x17ipv4_multicast_mpls_vpn\x18\x0f \x01(\x08H\x0e\x88\x01\x01\x12#\n\x16ipv4_unicast_flow_spec\x18\x10 \x01(\x08H\x0f\x88\x01\x01\x12\x1e\n\x11ipv4_sr_te_policy\x18\x11 \x01(\x08H\x10\x88\x01\x01\x12\"\n\x15ipv4_unicast_add_path\x18\x12 \x01(\x08H\x11\x88\x01\x01\x12\x1f\n\x12ipv6_multicast_vpn\x18\x13 \x01(\x08H\x12\x88\x01\x01\x12\x1a\n\ripv6_mpls_vpn\x18\x14 \x01(\x08H\x13\x88\x01\x01\x12\x15\n\x08ipv6_mdt\x18\x15 \x01(\x08H\x14\x88\x01\x01\x12$\n\x17ipv6_multicast_mpls_vpn\x18\x16 \x01(\x08H\x15\x88\x01\x01\x12#\n\x16ipv6_unicast_flow_spec\x18\x17 \x01(\x08H\x16\x88\x01\x01\x12\x1e\n\x11ipv6_sr_te_policy\x18\x18 \x01(\x08H\x17\x88\x01\x01\x12\"\n\x15ipv6_unicast_add_path\x18\x19 \x01(\x08H\x18\x88\x01\x01\x42\x0f\n\r_ipv4_unicastB\x11\n\x0f_ipv4_multicastB\x0f\n\r_ipv6_unicastB\x11\n\x0f_ipv6_multicastB\x07\n\x05_vplsB\x10\n\x0e_route_refreshB\x13\n\x11_route_constraintB\x15\n\x13_link_state_non_vpnB\x11\n\x0f_link_state_vpnB\x07\n\x05_evpnB\x1d\n\x1b_extended_next_hop_encodingB\x15\n\x13_ipv4_multicast_vpnB\x10\n\x0e_ipv4_mpls_vpnB\x0b\n\t_ipv4_mdtB\x1a\n\x18_ipv4_multicast_mpls_vpnB\x19\n\x17_ipv4_unicast_flow_specB\x14\n\x12_ipv4_sr_te_policyB\x18\n\x16_ipv4_unicast_add_pathB\x15\n\x13_ipv6_multicast_vpnB\x10\n\x0e_ipv6_mpls_vpnB\x0b\n\t_ipv6_mdtB\x1a\n\x18_ipv6_multicast_mpls_vpnB\x19\n\x17_ipv6_unicast_flow_specB\x14\n\x12_ipv6_sr_te_policyB\x18\n\x16_ipv6_unicast_add_path\"\x91\x01\n\x1b\x42gpLearnedInformationFilter\x12 \n\x13unicast_ipv4_prefix\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12 \n\x13unicast_ipv6_prefix\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\x16\n\x14_unicast_ipv4_prefixB\x16\n\x14_unicast_ipv6_prefix\"\x94\x06\n\x0f\x42gpV4RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V4RouteAddress\x12\x41\n\rnext_hop_mode\x18\x02 \x01(\x0e\x32%.otg.BgpV4RouteRange.NextHopMode.EnumH\x00\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x03 \x01(\x0e\x32,.otg.BgpV4RouteRange.NextHopAddressType.EnumH\x01\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x05 \x01(\tH\x03\x88\x01\x01\x12\'\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvanced\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12\x1f\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x0e.otg.BgpAsPath\x12!\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPath\x12\x11\n\x04name\x18\n \x01(\tH\x04\x88\x01\x01\x12-\n\x0f\x65xt_communities\x18\x0b \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12\x37\n\x14\x65xtended_communities\x18\x0c \x03(\x0b\x32\x19.otg.BgpExtendedCommunity\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x07\n\x05_name\".\n\nBgpAddPath\x12\x14\n\x07path_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\n\n\x08_path_id\"\xf3\x06\n\x14\x42gpExtendedCommunity\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.BgpExtendedCommunity.Choice.EnumH\x00\x88\x01\x01\x12R\n\x19transitive_2octet_as_type\x18\x02 \x01(\x0b\x32/.otg.BgpExtendedCommunityTransitive2OctetAsType\x12X\n\x1ctransitive_ipv4_address_type\x18\x03 \x01(\x0b\x32\x32.otg.BgpExtendedCommunityTransitiveIpv4AddressType\x12R\n\x19transitive_4octet_as_type\x18\x04 \x01(\x0b\x32/.otg.BgpExtendedCommunityTransitive4OctetAsType\x12M\n\x16transitive_opaque_type\x18\x05 \x01(\x0b\x32-.otg.BgpExtendedCommunityTransitiveOpaqueType\x12I\n\x14transitive_evpn_type\x18\x06 \x01(\x0b\x32+.otg.BgpExtendedCommunityTransitiveEvpnType\x12Y\n\x1dnon_transitive_2octet_as_type\x18\x07 \x01(\x0b\x32\x32.otg.BgpExtendedCommunityNonTransitive2OctetAsType\x12\x33\n\x06\x63ustom\x18\x08 \x01(\x0b\x32#.otg.BgpExtendedCommunityCustomType\x1a\xe7\x01\n\x06\x43hoice\"\xdc\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1d\n\x19transitive_2octet_as_type\x10\x01\x12 \n\x1ctransitive_ipv4_address_type\x10\x02\x12\x1d\n\x19transitive_4octet_as_type\x10\x03\x12\x1a\n\x16transitive_opaque_type\x10\x04\x12\x18\n\x14transitive_evpn_type\x10\x05\x12!\n\x1dnon_transitive_2octet_as_type\x10\x06\x12\n\n\x06\x63ustom\x10\x07\x42\t\n\x07_choice\"\x9f\x01\n5BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget\x12\x1c\n\x0fglobal_2byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11local_4byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x12\n\x10_global_2byte_asB\x14\n\x12_local_4byte_admin\"\x9f\x01\n5BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin\x12\x1c\n\x0fglobal_2byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11local_4byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x12\n\x10_global_2byte_asB\x14\n\x12_local_4byte_admin\"\x94\x03\n*BgpExtendedCommunityTransitive2OctetAsType\x12P\n\x06\x63hoice\x18\x01 \x01(\x0e\x32;.otg.BgpExtendedCommunityTransitive2OctetAsType.Choice.EnumH\x00\x88\x01\x01\x12X\n\x14route_target_subtype\x18\x02 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget\x12X\n\x14route_origin_subtype\x18\x03 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin\x1aU\n\x06\x43hoice\"K\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x18\n\x14route_target_subtype\x10\x01\x12\x18\n\x14route_origin_subtype\x10\x02\x42\t\n\x07_choice\"\xa6\x01\n8BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin\x12\x1e\n\x11global_ipv4_admin\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11local_2byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x14\n\x12_global_ipv4_adminB\x14\n\x12_local_2byte_admin\"\xa6\x01\n8BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget\x12\x1e\n\x11global_ipv4_admin\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11local_2byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x14\n\x12_global_ipv4_adminB\x14\n\x12_local_2byte_admin\"\xa0\x03\n-BgpExtendedCommunityTransitiveIpv4AddressType\x12S\n\x06\x63hoice\x18\x01 \x01(\x0e\x32>.otg.BgpExtendedCommunityTransitiveIpv4AddressType.Choice.EnumH\x00\x88\x01\x01\x12[\n\x14route_target_subtype\x18\x02 \x01(\x0b\x32=.otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget\x12[\n\x14route_origin_subtype\x18\x03 \x01(\x0b\x32=.otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin\x1aU\n\x06\x43hoice\"K\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x18\n\x14route_target_subtype\x10\x01\x12\x18\n\x14route_origin_subtype\x10\x02\x42\t\n\x07_choice\"\x9f\x01\n5BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget\x12\x1c\n\x0fglobal_4byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11local_2byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x12\n\x10_global_4byte_asB\x14\n\x12_local_2byte_admin\"\x9f\x01\n5BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin\x12\x1c\n\x0fglobal_4byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11local_2byte_admin\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x12\n\x10_global_4byte_asB\x14\n\x12_local_2byte_admin\"\x94\x03\n*BgpExtendedCommunityTransitive4OctetAsType\x12P\n\x06\x63hoice\x18\x01 \x01(\x0e\x32;.otg.BgpExtendedCommunityTransitive4OctetAsType.Choice.EnumH\x00\x88\x01\x01\x12X\n\x14route_target_subtype\x18\x02 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget\x12X\n\x14route_origin_subtype\x18\x03 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin\x1aU\n\x06\x43hoice\"K\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x18\n\x14route_target_subtype\x10\x01\x12\x18\n\x14route_origin_subtype\x10\x02\x42\t\n\x07_choice\"k\n-BgpExtendedCommunityTransitiveOpaqueTypeColor\x12\x12\n\x05\x66lags\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63olor\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x08\n\x06_flagsB\x08\n\x06_color\"\x85\x01\n5BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation\x12\x15\n\x08reserved\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x18\n\x0btunnel_type\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x0b\n\t_reservedB\x0e\n\x0c_tunnel_type\"\xfc\x02\n(BgpExtendedCommunityTransitiveOpaqueType\x12N\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x39.otg.BgpExtendedCommunityTransitiveOpaqueType.Choice.EnumH\x00\x88\x01\x01\x12I\n\rcolor_subtype\x18\x02 \x01(\x0b\x32\x32.otg.BgpExtendedCommunityTransitiveOpaqueTypeColor\x12Y\n\x15\x65ncapsulation_subtype\x18\x03 \x01(\x0b\x32:.otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation\x1aO\n\x06\x43hoice\"E\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rcolor_subtype\x10\x01\x12\x19\n\x15\x65ncapsulation_subtype\x10\x02\x42\t\n\x07_choice\"Y\n/BgpExtendedCommunityTransitiveEvpnTypeRouterMac\x12\x17\n\nrouter_mac\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_router_mac\"\x8e\x02\n&BgpExtendedCommunityTransitiveEvpnType\x12L\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x37.otg.BgpExtendedCommunityTransitiveEvpnType.Choice.EnumH\x00\x88\x01\x01\x12P\n\x12router_mac_subtype\x18\x02 \x01(\x0b\x32\x34.otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac\x1a\x39\n\x06\x43hoice\"/\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x16\n\x12router_mac_subtype\x10\x01\x42\t\n\x07_choice\"\x94\x01\n:BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth\x12\x1c\n\x0fglobal_2byte_as\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x16\n\tbandwidth\x18\x02 \x01(\x02H\x01\x88\x01\x01\x42\x12\n\x10_global_2byte_asB\x0c\n\n_bandwidth\"\xaf\x02\n-BgpExtendedCommunityNonTransitive2OctetAsType\x12S\n\x06\x63hoice\x18\x01 \x01(\x0e\x32>.otg.BgpExtendedCommunityNonTransitive2OctetAsType.Choice.EnumH\x00\x88\x01\x01\x12_\n\x16link_bandwidth_subtype\x18\x02 \x01(\x0b\x32?.otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1a\n\x16link_bandwidth_subtype\x10\x01\x42\t\n\x07_choice\"\xa4\x01\n\x1e\x42gpExtendedCommunityCustomType\x12\x1b\n\x0e\x63ommunity_type\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11\x63ommunity_subtype\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x11\n\x0f_community_typeB\x14\n\x12_community_subtypeB\x08\n\x06_value\"\x94\x06\n\x0f\x42gpV6RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V6RouteAddress\x12\x41\n\rnext_hop_mode\x18\x02 \x01(\x0e\x32%.otg.BgpV6RouteRange.NextHopMode.EnumH\x00\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x03 \x01(\x0e\x32,.otg.BgpV6RouteRange.NextHopAddressType.EnumH\x01\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x05 \x01(\tH\x03\x88\x01\x01\x12\'\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvanced\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12\x1f\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x0e.otg.BgpAsPath\x12!\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPath\x12\x11\n\x04name\x18\n \x01(\tH\x04\x88\x01\x01\x12-\n\x0f\x65xt_communities\x18\x0b \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12\x37\n\x14\x65xtended_communities\x18\x0c \x03(\x0b\x32\x19.otg.BgpExtendedCommunity\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x07\n\x05_name\"\xfb\x06\n\x0f\x42gpSrteV4Policy\x12\x1a\n\rdistinguisher\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63olor\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1a\n\ripv4_endpoint\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x41\n\rnext_hop_mode\x18\x04 \x01(\x0e\x32%.otg.BgpSrteV4Policy.NextHopMode.EnumH\x03\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x05 \x01(\x0e\x32,.otg.BgpSrteV4Policy.NextHopAddressType.EnumH\x04\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x07 \x01(\tH\x06\x88\x01\x01\x12\'\n\x08\x61\x64vanced\x18\x08 \x01(\x0b\x32\x15.otg.BgpRouteAdvanced\x12!\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPath\x12\x1f\n\x07\x61s_path\x18\n \x01(\x0b\x32\x0e.otg.BgpAsPath\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12,\n\x0btunnel_tlvs\x18\r \x03(\x0b\x32\x17.otg.BgpSrteV4TunnelTlv\x12\x11\n\x04name\x18\x0e \x01(\tH\x07\x88\x01\x01\x12\x13\n\x06\x61\x63tive\x18\x0f \x01(\x08H\x08\x88\x01\x01\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_distinguisherB\x08\n\x06_colorB\x10\n\x0e_ipv4_endpointB\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x07\n\x05_nameB\t\n\x07_active\"\xb6\x04\n\x12\x42gpSrteV4TunnelTlv\x12\x41\n\x17remote_endpoint_sub_tlv\x18\x01 \x01(\x0b\x32 .otg.BgpSrteRemoteEndpointSubTlv\x12.\n\rcolor_sub_tlv\x18\x02 \x01(\x0b\x32\x17.otg.BgpSrteColorSubTlv\x12\x32\n\x0f\x62inding_sub_tlv\x18\x03 \x01(\x0b\x32\x19.otg.BgpSrteBindingSubTlv\x12\x38\n\x12preference_sub_tlv\x18\x04 \x01(\x0b\x32\x1c.otg.BgpSrtePreferenceSubTlv\x12\x41\n\x17policy_priority_sub_tlv\x18\x05 \x01(\x0b\x32 .otg.BgpSrtePolicyPrioritySubTlv\x12\x39\n\x13policy_name_sub_tlv\x18\x06 \x01(\x0b\x32\x1c.otg.BgpSrtePolicyNameSubTlv\x12U\n\"explicit_null_label_policy_sub_tlv\x18\x07 \x01(\x0b\x32).otg.BgpSrteExplicitNullLabelPolicySubTlv\x12.\n\rsegment_lists\x18\x08 \x03(\x0b\x32\x17.otg.BgpSrteSegmentList\x12\x11\n\x04name\x18\t \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x61\x63tive\x18\n \x01(\x08H\x01\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_active\"\xbe\x02\n\x1b\x42gpSrteRemoteEndpointSubTlv\x12\x16\n\tas_number\x18\x01 \x01(\rH\x00\x88\x01\x01\x12P\n\x0e\x61\x64\x64ress_family\x18\x02 \x01(\x0e\x32\x33.otg.BgpSrteRemoteEndpointSubTlv.AddressFamily.EnumH\x01\x88\x01\x01\x12\x19\n\x0cipv4_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x19\n\x0cipv6_address\x18\x04 \x01(\tH\x03\x88\x01\x01\x1a<\n\rAddressFamily\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x0c\n\n_as_numberB\x11\n\x0f_address_familyB\x0f\n\r_ipv4_addressB\x0f\n\r_ipv6_address\"2\n\x12\x42gpSrteColorSubTlv\x12\x12\n\x05\x63olor\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_color\"\xea\x02\n\x14\x42gpSrteBindingSubTlv\x12L\n\x10\x62inding_sid_type\x18\x01 \x01(\x0e\x32-.otg.BgpSrteBindingSubTlv.BindingSidType.EnumH\x00\x88\x01\x01\x12\x1b\n\x0e\x66our_octet_sid\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08ipv6_sid\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x13\n\x06s_flag\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x13\n\x06i_flag\x18\x05 \x01(\x08H\x04\x88\x01\x01\x1a[\n\x0e\x42indingSidType\"I\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nno_binding\x10\x01\x12\x12\n\x0e\x66our_octet_sid\x10\x02\x12\x0c\n\x08ipv6_sid\x10\x03\x42\x13\n\x11_binding_sid_typeB\x11\n\x0f_four_octet_sidB\x0b\n\t_ipv6_sidB\t\n\x07_s_flagB\t\n\x07_i_flag\"A\n\x17\x42gpSrtePreferenceSubTlv\x12\x17\n\npreference\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\r\n\x0b_preference\"O\n\x1b\x42gpSrtePolicyPrioritySubTlv\x12\x1c\n\x0fpolicy_priority\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x12\n\x10_policy_priority\"C\n\x17\x42gpSrtePolicyNameSubTlv\x12\x18\n\x0bpolicy_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_policy_name\"\xd6\x02\n$BgpSrteExplicitNullLabelPolicySubTlv\x12o\n\x1a\x65xplicit_null_label_policy\x18\x01 \x01(\x0e\x32\x46.otg.BgpSrteExplicitNullLabelPolicySubTlv.ExplicitNullLabelPolicy.EnumH\x00\x88\x01\x01\x1a\x9d\x01\n\x17\x45xplicitNullLabelPolicy\"\x81\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rreserved_enlp\x10\x01\x12\x12\n\x0epush_ipv4_enlp\x10\x02\x12\x12\n\x0epush_ipv6_enlp\x10\x03\x12\x17\n\x13push_ipv4_ipv6_enlp\x10\x04\x12\x14\n\x10\x64o_not_push_enlp\x10\x05\x42\x1d\n\x1b_explicit_null_label_policy\"\x97\x01\n\x12\x42gpSrteSegmentList\x12\x13\n\x06weight\x18\x01 \x01(\rH\x00\x88\x01\x01\x12%\n\x08segments\x18\x02 \x03(\x0b\x32\x13.otg.BgpSrteSegment\x12\x11\n\x04name\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06\x61\x63tive\x18\x04 \x01(\x08H\x02\x88\x01\x01\x42\t\n\x07_weightB\x07\n\x05_nameB\t\n\x07_active\"\xdc\x06\n\x0e\x42gpSrteSegment\x12?\n\x0csegment_type\x18\x01 \x01(\x0e\x32$.otg.BgpSrteSegment.SegmentType.EnumH\x00\x88\x01\x01\x12.\n\x06type_a\x18\x02 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentATypeSubTlv\x12.\n\x06type_b\x18\x03 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentBTypeSubTlv\x12.\n\x06type_c\x18\x04 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentCTypeSubTlv\x12.\n\x06type_d\x18\x05 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentDTypeSubTlv\x12.\n\x06type_e\x18\x06 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentETypeSubTlv\x12.\n\x06type_f\x18\x07 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentFTypeSubTlv\x12.\n\x06type_g\x18\x08 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentGTypeSubTlv\x12.\n\x06type_h\x18\t \x01(\x0b\x32\x1e.otg.BgpSrteSegmentHTypeSubTlv\x12.\n\x06type_i\x18\n \x01(\x0b\x32\x1e.otg.BgpSrteSegmentITypeSubTlv\x12.\n\x06type_j\x18\x0b \x01(\x0b\x32\x1e.otg.BgpSrteSegmentJTypeSubTlv\x12.\n\x06type_k\x18\x0c \x01(\x0b\x32\x1e.otg.BgpSrteSegmentKTypeSubTlv\x12\x11\n\x04name\x18\r \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06\x61\x63tive\x18\x0e \x01(\x08H\x02\x88\x01\x01\x1a\xab\x01\n\x0bSegmentType\"\x9b\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06type_a\x10\x01\x12\n\n\x06type_b\x10\x02\x12\n\n\x06type_c\x10\x03\x12\n\n\x06type_d\x10\x04\x12\n\n\x06type_e\x10\x05\x12\n\n\x06type_f\x10\x06\x12\n\n\x06type_g\x10\x07\x12\n\n\x06type_h\x10\x08\x12\n\n\x06type_i\x10\t\x12\n\n\x06type_j\x10\n\x12\n\n\x06type_k\x10\x0b\x42\x0f\n\r_segment_typeB\x07\n\x05_nameB\t\n\x07_active\"\x80\x01\n\x10\x42gpSrteSrMplsSid\x12\x12\n\x05label\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x0f\n\x02tc\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05s_bit\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x10\n\x03ttl\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x08\n\x06_labelB\x05\n\x03_tcB\x08\n\x06_s_bitB\x06\n\x04_ttl\"\xca\x01\n*BgpSrteSRv6SIDEndpointBehaviorAndStructure\x12\x16\n\tlb_length\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x16\n\tln_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0b\x66unc_length\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x17\n\narg_length\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x0c\n\n_lb_lengthB\x0c\n\n_ln_lengthB\x0e\n\x0c_func_lengthB\r\n\x0b_arg_length\"\xa7\x01\n\x19\x42gpSrteSegmentATypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05label\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0f\n\x02tc\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x12\n\x05s_bit\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x10\n\x03ttl\x18\x05 \x01(\rH\x04\x88\x01\x01\x42\x08\n\x06_flagsB\x08\n\x06_labelB\x05\n\x03_tcB\x08\n\x06_s_bitB\x06\n\x04_ttl\"\xb2\x01\n\x19\x42gpSrteSegmentBTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08srv6_sid\x18\x02 \x01(\tH\x01\x88\x01\x01\x12S\n\x1asrv6_sid_endpoint_behavior\x18\x03 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureB\x08\n\x06_flagsB\x0b\n\t_srv6_sid\"\xc7\x01\n\x19\x42gpSrteSegmentCTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1e\n\x11ipv4_node_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x12*\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidB\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x14\n\x12_ipv4_node_address\"\xc7\x01\n\x19\x42gpSrteSegmentDTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1e\n\x11ipv6_node_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x12*\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidB\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x14\n\x12_ipv6_node_address\"\xd3\x01\n\x19\x42gpSrteSegmentETypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12local_interface_id\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1e\n\x11ipv4_node_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x12*\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidB\x08\n\x06_flagsB\x15\n\x13_local_interface_idB\x14\n\x12_ipv4_node_address\"\xd7\x01\n\x19\x42gpSrteSegmentFTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12local_ipv4_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12 \n\x13remote_ipv4_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x12*\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidB\x08\n\x06_flagsB\x15\n\x13_local_ipv4_addressB\x16\n\x14_remote_ipv4_address\"\xdd\x02\n\x19\x42gpSrteSegmentGTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12local_interface_id\x18\x02 \x01(\rH\x01\x88\x01\x01\x12$\n\x17local_ipv6_node_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x12 \n\x13remote_interface_id\x18\x04 \x01(\rH\x03\x88\x01\x01\x12%\n\x18remote_ipv6_node_address\x18\x05 \x01(\tH\x04\x88\x01\x01\x12*\n\x0bsr_mpls_sid\x18\x06 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidB\x08\n\x06_flagsB\x15\n\x13_local_interface_idB\x1a\n\x18_local_ipv6_node_addressB\x16\n\x14_remote_interface_idB\x1b\n\x19_remote_ipv6_node_address\"\xd7\x01\n\x19\x42gpSrteSegmentHTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12local_ipv6_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12 \n\x13remote_ipv6_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x12*\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidB\x08\n\x06_flagsB\x15\n\x13_local_ipv6_addressB\x16\n\x14_remote_ipv6_address\"\xe8\x01\n\x19\x42gpSrteSegmentITypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11ipv6_node_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x08srv6_sid\x18\x03 \x01(\tH\x02\x88\x01\x01\x12S\n\x1asrv6_sid_endpoint_behavior\x18\x04 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureB\x08\n\x06_flagsB\x14\n\x12_ipv6_node_addressB\x0b\n\t_srv6_sid\"\xd6\x03\n\x19\x42gpSrteSegmentJTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1f\n\x12local_interface_id\x18\x03 \x01(\rH\x02\x88\x01\x01\x12$\n\x17local_ipv6_node_address\x18\x04 \x01(\tH\x03\x88\x01\x01\x12 \n\x13remote_interface_id\x18\x05 \x01(\rH\x04\x88\x01\x01\x12%\n\x18remote_ipv6_node_address\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x15\n\x08srv6_sid\x18\x07 \x01(\tH\x06\x88\x01\x01\x12S\n\x1asrv6_sid_endpoint_behavior\x18\x08 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureB\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x15\n\x13_local_interface_idB\x1a\n\x18_local_ipv6_node_addressB\x16\n\x14_remote_interface_idB\x1b\n\x19_remote_ipv6_node_addressB\x0b\n\t_srv6_sid\"\xd0\x02\n\x19\x42gpSrteSegmentKTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1f\n\x12local_ipv6_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x12 \n\x13remote_ipv6_address\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x15\n\x08srv6_sid\x18\x05 \x01(\tH\x04\x88\x01\x01\x12S\n\x1asrv6_sid_endpoint_behavior\x18\x06 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureB\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x15\n\x13_local_ipv6_addressB\x16\n\x14_remote_ipv6_addressB\x0b\n\t_srv6_sid\"\xfa\x06\n\x0f\x42gpSrteV6Policy\x12\x1a\n\rdistinguisher\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x12\n\x05\x63olor\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1a\n\ripv6_endpoint\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x41\n\rnext_hop_mode\x18\x04 \x01(\x0e\x32%.otg.BgpSrteV6Policy.NextHopMode.EnumH\x03\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x05 \x01(\x0e\x32,.otg.BgpSrteV6Policy.NextHopAddressType.EnumH\x04\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x07 \x01(\tH\x06\x88\x01\x01\x12\'\n\x08\x61\x64vanced\x18\x08 \x01(\x0b\x32\x15.otg.BgpRouteAdvanced\x12!\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPath\x12\x1f\n\x07\x61s_path\x18\n \x01(\x0b\x32\x0e.otg.BgpAsPath\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12,\n\x0e\x65xtcommunities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12,\n\x0btunnel_tlvs\x18\r \x03(\x0b\x32\x17.otg.BgpSrteV6TunnelTlv\x12\x11\n\x04name\x18\x0e \x01(\tH\x07\x88\x01\x01\x12\x13\n\x06\x61\x63tive\x18\x0f \x01(\x08H\x08\x88\x01\x01\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_distinguisherB\x08\n\x06_colorB\x10\n\x0e_ipv6_endpointB\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x07\n\x05_nameB\t\n\x07_active\"\xb6\x04\n\x12\x42gpSrteV6TunnelTlv\x12\x41\n\x17remote_endpoint_sub_tlv\x18\x01 \x01(\x0b\x32 .otg.BgpSrteRemoteEndpointSubTlv\x12.\n\rcolor_sub_tlv\x18\x02 \x01(\x0b\x32\x17.otg.BgpSrteColorSubTlv\x12\x32\n\x0f\x62inding_sub_tlv\x18\x03 \x01(\x0b\x32\x19.otg.BgpSrteBindingSubTlv\x12\x38\n\x12preference_sub_tlv\x18\x04 \x01(\x0b\x32\x1c.otg.BgpSrtePreferenceSubTlv\x12\x41\n\x17policy_priority_sub_tlv\x18\x05 \x01(\x0b\x32 .otg.BgpSrtePolicyPrioritySubTlv\x12\x39\n\x13policy_name_sub_tlv\x18\x06 \x01(\x0b\x32\x1c.otg.BgpSrtePolicyNameSubTlv\x12U\n\"explicit_null_label_policy_sub_tlv\x18\x07 \x01(\x0b\x32).otg.BgpSrteExplicitNullLabelPolicySubTlv\x12.\n\rsegment_lists\x18\x08 \x03(\x0b\x32\x17.otg.BgpSrteSegmentList\x12\x11\n\x04name\x18\t \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x61\x63tive\x18\n \x01(\x08H\x01\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_active\"\xb8\x01\n\x12\x42gpGracefulRestart\x12\x16\n\tenable_gr\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x19\n\x0crestart_time\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0b\x65nable_llgr\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x17\n\nstale_time\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x0c\n\n_enable_grB\x0f\n\r_restart_timeB\x0e\n\x0c_enable_llgrB\r\n\x0b_stale_time\"\xe5\x06\n\tBgpV6Peer\x12\x19\n\x0cpeer_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x31\n\x0fsegment_routing\x18\x02 \x01(\x0b\x32\x18.otg.BgpV6SegmentRouting\x12\x39\n\x16\x65vpn_ethernet_segments\x18\x03 \x03(\x0b\x32\x19.otg.BgpV6EthernetSegment\x12\x30\n\x07\x61s_type\x18\x04 \x01(\x0e\x32\x1a.otg.BgpV6Peer.AsType.EnumH\x01\x88\x01\x01\x12\x16\n\tas_number\x18\x05 \x01(\rH\x02\x88\x01\x01\x12?\n\x0f\x61s_number_width\x18\x06 \x01(\x0e\x32!.otg.BgpV6Peer.AsNumberWidth.EnumH\x03\x88\x01\x01\x12\"\n\x08\x61\x64vanced\x18\x07 \x01(\x0b\x32\x10.otg.BgpAdvanced\x12&\n\ncapability\x18\x08 \x01(\x0b\x32\x12.otg.BgpCapability\x12\x44\n\x1alearned_information_filter\x18\t \x01(\x0b\x32 .otg.BgpLearnedInformationFilter\x12\'\n\tv4_routes\x18\n \x03(\x0b\x32\x14.otg.BgpV4RouteRange\x12\'\n\tv6_routes\x18\x0b \x03(\x0b\x32\x14.otg.BgpV6RouteRange\x12.\n\x10v4_srte_policies\x18\x0c \x03(\x0b\x32\x14.otg.BgpSrteV4Policy\x12.\n\x10v6_srte_policies\x18\r \x03(\x0b\x32\x14.otg.BgpSrteV6Policy\x12\x11\n\x04name\x18\x0e \x01(\tH\x04\x88\x01\x01\x12\x31\n\x10graceful_restart\x18\x0f \x01(\x0b\x32\x17.otg.BgpGracefulRestart\x1a\x35\n\x06\x41sType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ibgp\x10\x01\x12\x08\n\x04\x65\x62gp\x10\x02\x1a;\n\rAsNumberWidth\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03two\x10\x01\x12\x08\n\x04\x66our\x10\x02\x42\x0f\n\r_peer_addressB\n\n\x08_as_typeB\x0c\n\n_as_numberB\x12\n\x10_as_number_widthB\x07\n\x05_name\"U\n\x0e\x42gpV6Interface\x12\x16\n\tipv6_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\x05peers\x18\x02 \x03(\x0b\x32\x0e.otg.BgpV6PeerB\x0c\n\n_ipv6_name\"\xf1\x03\n\x13\x42gpV6SegmentRouting\x12!\n\x14ingress_supports_vpn\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x15reduced_encapsulation\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x1e\n\x11\x63opy_time_to_live\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x19\n\x0ctime_to_live\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1d\n\x10max_sids_per_srh\x18\x05 \x01(\rH\x04\x88\x01\x01\x12-\n auto_generate_segment_left_value\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x1f\n\x12segment_left_value\x18\x07 \x01(\rH\x06\x88\x01\x01\x12#\n\x16\x61\x64vertise_sr_te_policy\x18\x08 \x01(\x08H\x07\x88\x01\x01\x42\x17\n\x15_ingress_supports_vpnB\x18\n\x16_reduced_encapsulationB\x14\n\x12_copy_time_to_liveB\x0f\n\r_time_to_liveB\x13\n\x11_max_sids_per_srhB#\n!_auto_generate_segment_left_valueB\x15\n\x13_segment_left_valueB\x19\n\x17_advertise_sr_te_policy\"\xf0\x03\n\x14\x42gpV6EthernetSegment\x12\x36\n\x0b\x64\x66_election\x18\x01 \x01(\x0b\x32!.otg.BgpEthernetSegmentDfElection\x12 \n\x04\x65vis\x18\x02 \x03(\x0b\x32\x12.otg.BgpV6EvpnEvis\x12\x10\n\x03\x65si\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x43\n\x0b\x61\x63tive_mode\x18\x04 \x01(\x0e\x32).otg.BgpV6EthernetSegment.ActiveMode.EnumH\x01\x88\x01\x01\x12\x16\n\tesi_label\x18\x05 \x01(\rH\x02\x88\x01\x01\x12\'\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvanced\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x08 \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12\x1f\n\x07\x61s_path\x18\t \x01(\x0b\x32\x0e.otg.BgpAsPath\x1aH\n\nActiveMode\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsingle_active\x10\x01\x12\x0e\n\nall_active\x10\x02\x42\x06\n\x04_esiB\x0e\n\x0c_active_modeB\x0c\n\n_esi_label\"\xa8\x01\n\rBgpV6EvpnEvis\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.BgpV6EvpnEvis.Choice.EnumH\x00\x88\x01\x01\x12%\n\tevi_vxlan\x18\x02 \x01(\x0b\x32\x12.otg.BgpV6EviVxlan\x1a\x30\n\x06\x43hoice\"&\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tevi_vxlan\x10\x01\x42\t\n\x07_choice\"\xe3\x05\n\rBgpV6EviVxlan\x12<\n\x11\x62roadcast_domains\x18\x01 \x03(\x0b\x32!.otg.BgpV6EviVxlanBroadcastDomain\x12\x46\n\x10replication_type\x18\x02 \x01(\x0e\x32\'.otg.BgpV6EviVxlan.ReplicationType.EnumH\x00\x88\x01\x01\x12\x17\n\npmsi_label\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08\x61\x64_label\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x37\n\x13route_distinguisher\x18\x05 \x01(\x0b\x32\x1a.otg.BgpRouteDistinguisher\x12\x30\n\x13route_target_export\x18\x06 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x30\n\x13route_target_import\x18\x07 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_export\x18\x08 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_import\x18\t \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\'\n\x08\x61\x64vanced\x18\n \x01(\x0b\x32\x15.otg.BgpRouteAdvanced\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12\x1f\n\x07\x61s_path\x18\r \x01(\x0b\x32\x0e.otg.BgpAsPath\x1a\x43\n\x0fReplicationType\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13ingress_replication\x10\x01\x42\x13\n\x11_replication_typeB\r\n\x0b_pmsi_labelB\x0b\n\t_ad_label\"\xb4\x01\n\x1c\x42gpV6EviVxlanBroadcastDomain\x12*\n\rcmac_ip_range\x18\x01 \x03(\x0b\x32\x13.otg.BgpCMacIpRange\x12\x1c\n\x0f\x65thernet_tag_id\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1f\n\x12vlan_aware_service\x18\x03 \x01(\x08H\x01\x88\x01\x01\x42\x12\n\x10_ethernet_tag_idB\x15\n\x13_vlan_aware_service\"]\n\x0b\x44\x65viceVxlan\x12&\n\nv4_tunnels\x18\x01 \x03(\x0b\x32\x12.otg.VxlanV4Tunnel\x12&\n\nv6_tunnels\x18\x02 \x03(\x0b\x32\x12.otg.VxlanV6Tunnel\"\xbb\x01\n\rVxlanV4Tunnel\x12\x1d\n\x10source_interface\x18\x01 \x01(\tH\x00\x88\x01\x01\x12@\n\x13\x64\x65stination_ip_mode\x18\x02 \x01(\x0b\x32#.otg.VxlanV4TunnelDestinationIPMode\x12\x10\n\x03vni\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04name\x18\x04 \x01(\tH\x02\x88\x01\x01\x42\x13\n\x11_source_interfaceB\x06\n\x04_vniB\x07\n\x05_name\"\xbb\x01\n\rVxlanV6Tunnel\x12\x1d\n\x10source_interface\x18\x01 \x01(\tH\x00\x88\x01\x01\x12@\n\x13\x64\x65stination_ip_mode\x18\x02 \x01(\x0b\x32#.otg.VxlanV6TunnelDestinationIPMode\x12\x10\n\x03vni\x18\x03 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04name\x18\x04 \x01(\tH\x02\x88\x01\x01\x42\x13\n\x11_source_interfaceB\x06\n\x04_vniB\x07\n\x05_name\"\xae\x02\n\x1eVxlanV4TunnelDestinationIPMode\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.VxlanV4TunnelDestinationIPMode.Choice.EnumH\x00\x88\x01\x01\x12;\n\x07unicast\x18\x02 \x01(\x0b\x32*.otg.VxlanV4TunnelDestinationIPModeUnicast\x12?\n\tmulticast\x18\x03 \x01(\x0b\x32,.otg.VxlanV4TunnelDestinationIPModeMulticast\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07unicast\x10\x01\x12\r\n\tmulticast\x10\x02\x42\t\n\x07_choice\"\xae\x02\n\x1eVxlanV6TunnelDestinationIPMode\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.VxlanV6TunnelDestinationIPMode.Choice.EnumH\x00\x88\x01\x01\x12;\n\x07unicast\x18\x02 \x01(\x0b\x32*.otg.VxlanV6TunnelDestinationIPModeUnicast\x12?\n\tmulticast\x18\x03 \x01(\x0b\x32,.otg.VxlanV6TunnelDestinationIPModeMulticast\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07unicast\x10\x01\x12\r\n\tmulticast\x10\x02\x42\t\n\x07_choice\"f\n%VxlanV4TunnelDestinationIPModeUnicast\x12=\n\x05vteps\x18\x01 \x03(\x0b\x32..otg.VxlanV4TunnelDestinationIPModeUnicastVtep\"f\n%VxlanV6TunnelDestinationIPModeUnicast\x12=\n\x05vteps\x18\x01 \x03(\x0b\x32..otg.VxlanV6TunnelDestinationIPModeUnicastVtep\"\x96\x01\n6VxlanTunnelDestinationIPModeUnicastArpSuppressionCache\x12\x1a\n\rremote_vm_mac\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0eremote_vm_ipv4\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_remote_vm_macB\x11\n\x0f_remote_vm_ipv4\"\xc1\x01\n)VxlanV4TunnelDestinationIPModeUnicastVtep\x12 \n\x13remote_vtep_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12Z\n\x15\x61rp_suppression_cache\x18\x02 \x03(\x0b\x32;.otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCacheB\x16\n\x14_remote_vtep_address\"\xc1\x01\n)VxlanV6TunnelDestinationIPModeUnicastVtep\x12 \n\x13remote_vtep_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12Z\n\x15\x61rp_suppression_cache\x18\x02 \x03(\x0b\x32;.otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCacheB\x16\n\x14_remote_vtep_address\"K\n\'VxlanV4TunnelDestinationIPModeMulticast\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_address\"K\n\'VxlanV6TunnelDestinationIPModeMulticast\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_address\"\x91\x01\n\nDeviceRsvp\x12/\n\x0fipv4_interfaces\x18\x01 \x03(\x0b\x32\x16.otg.RsvpIpv4Interface\x12\x36\n\x13lsp_ipv4_interfaces\x18\x02 \x03(\x0b\x32\x19.otg.RsvpLspIpv4Interface\x12\x11\n\x04name\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_name\"\xc5\x04\n\x11RsvpIpv4Interface\x12\x16\n\tipv4_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0bneighbor_ip\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1e\n\x11label_space_start\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1c\n\x0flabel_space_end\x18\x04 \x01(\rH\x03\x88\x01\x01\x12%\n\x18\x65nable_refresh_reduction\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12%\n\x18summary_refresh_interval\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x18\n\x0bsend_bundle\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12\x1d\n\x10\x62undle_threshold\x18\x08 \x01(\rH\x07\x88\x01\x01\x12\x19\n\x0c\x65nable_hello\x18\t \x01(\x08H\x08\x88\x01\x01\x12\x1b\n\x0ehello_interval\x18\n \x01(\rH\t\x88\x01\x01\x12\x1f\n\x12timeout_multiplier\x18\x0b \x01(\rH\n\x88\x01\x01\x42\x0c\n\n_ipv4_nameB\x0e\n\x0c_neighbor_ipB\x14\n\x12_label_space_startB\x12\n\x10_label_space_endB\x1b\n\x19_enable_refresh_reductionB\x1b\n\x19_summary_refresh_intervalB\x0e\n\x0c_send_bundleB\x13\n\x11_bundle_thresholdB\x0f\n\r_enable_helloB\x11\n\x0f_hello_intervalB\x15\n\x13_timeout_multiplier\"\xd0\x01\n\x14RsvpLspIpv4Interface\x12\x16\n\tipv4_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12G\n\x14p2p_egress_ipv4_lsps\x18\x02 \x01(\x0b\x32).otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp\x12I\n\x15p2p_ingress_ipv4_lsps\x18\x03 \x03(\x0b\x32*.otg.RsvpLspIpv4InterfaceP2PIngressIpv4LspB\x0c\n\n_ipv4_name\"\xf1\x03\n$RsvpLspIpv4InterfaceP2PEgressIpv4Lsp\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1d\n\x10refresh_interval\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1f\n\x12timeout_multiplier\x18\x03 \x01(\rH\x02\x88\x01\x01\x12_\n\x11reservation_style\x18\x04 \x01(\x0e\x32?.otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ReservationStyle.EnumH\x03\x88\x01\x01\x12\x1f\n\x12\x65nable_fixed_label\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1e\n\x11\x66ixed_label_value\x18\x06 \x01(\rH\x05\x88\x01\x01\x1a\\\n\x10ReservationStyle\"H\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x13\n\x0fshared_explicit\x10\x01\x12\x10\n\x0c\x66ixed_filter\x10\x02\x12\x08\n\x04\x61uto\x10\x03\x42\x07\n\x05_nameB\x13\n\x11_refresh_intervalB\x15\n\x13_timeout_multiplierB\x14\n\x12_reservation_styleB\x15\n\x13_enable_fixed_labelB\x14\n\x12_fixed_label_value\"\xab\x04\n%RsvpLspIpv4InterfaceP2PIngressIpv4Lsp\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0eremote_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x16\n\ttunnel_id\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x13\n\x06lsp_id\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1d\n\x10refresh_interval\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x1f\n\x12timeout_multiplier\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x1a\n\rbackup_lsp_id\x18\x07 \x01(\rH\x06\x88\x01\x01\x12!\n\x14lsp_switchover_delay\x18\x08 \x01(\rH\x07\x88\x01\x01\x12\x34\n\x11session_attribute\x18\t \x01(\x0b\x32\x19.otg.RsvpSessionAttribute\x12\x1d\n\x05tspec\x18\n \x01(\x0b\x32\x0e.otg.RsvpTspec\x12*\n\x0c\x66\x61st_reroute\x18\x0b \x01(\x0b\x32\x14.otg.RsvpFastReroute\x12\x19\n\x03\x65ro\x18\x0c \x01(\x0b\x32\x0c.otg.RsvpEroB\x07\n\x05_nameB\x11\n\x0f_remote_addressB\x0c\n\n_tunnel_idB\t\n\x07_lsp_idB\x13\n\x11_refresh_intervalB\x15\n\x13_timeout_multiplierB\x10\n\x0e_backup_lsp_idB\x17\n\x15_lsp_switchover_delay\"\xf0\x04\n\x14RsvpSessionAttribute\x12\'\n\x1a\x61uto_generate_session_name\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x19\n\x0csession_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0esetup_priority\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1d\n\x10holding_priority\x18\x04 \x01(\rH\x03\x88\x01\x01\x12%\n\x18local_protection_desired\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12$\n\x17label_recording_desired\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x1d\n\x10se_style_desired\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12)\n\x1c\x62\x61ndwidth_protection_desired\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12$\n\x17node_protection_desired\x18\t \x01(\x08H\x08\x88\x01\x01\x12\x38\n\x13resource_affinities\x18\n \x01(\x0b\x32\x1b.otg.RsvpResourceAffinitiesB\x1d\n\x1b_auto_generate_session_nameB\x0f\n\r_session_nameB\x11\n\x0f_setup_priorityB\x13\n\x11_holding_priorityB\x1b\n\x19_local_protection_desiredB\x1a\n\x18_label_recording_desiredB\x13\n\x11_se_style_desiredB\x1f\n\x1d_bandwidth_protection_desiredB\x1a\n\x18_node_protection_desired\"\x96\x01\n\x16RsvpResourceAffinities\x12\x18\n\x0b\x65xclude_any\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0binclude_any\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0binclude_all\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x0e\n\x0c_exclude_anyB\x0e\n\x0c_include_anyB\x0e\n\x0c_include_all\"\x9f\x02\n\tRsvpTspec\x12\x1e\n\x11token_bucket_rate\x18\x01 \x01(\x02H\x00\x88\x01\x01\x12\x1e\n\x11token_bucket_size\x18\x02 \x01(\x02H\x01\x88\x01\x01\x12\x1b\n\x0epeak_data_rate\x18\x03 \x01(\x02H\x02\x88\x01\x01\x12!\n\x14minimum_policed_unit\x18\x04 \x01(\rH\x03\x88\x01\x01\x12!\n\x14maximum_policed_unit\x18\x05 \x01(\rH\x04\x88\x01\x01\x42\x14\n\x12_token_bucket_rateB\x14\n\x12_token_bucket_sizeB\x11\n\x0f_peak_data_rateB\x17\n\x15_minimum_policed_unitB\x17\n\x15_maximum_policed_unit\"\xc7\x03\n\x0fRsvpFastReroute\x12\x1b\n\x0esetup_priority\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1d\n\x10holding_priority\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\thop_limit\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x16\n\tbandwidth\x18\x04 \x01(\x02H\x03\x88\x01\x01\x12\x18\n\x0b\x65xclude_any\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x18\n\x0binclude_any\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x18\n\x0binclude_all\x18\x07 \x01(\tH\x06\x88\x01\x01\x12&\n\x19one_to_one_backup_desired\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12$\n\x17\x66\x61\x63ility_backup_desired\x18\t \x01(\x08H\x08\x88\x01\x01\x42\x11\n\x0f_setup_priorityB\x13\n\x11_holding_priorityB\x0c\n\n_hop_limitB\x0c\n\n_bandwidthB\x0e\n\x0c_exclude_anyB\x0e\n\x0c_include_anyB\x0e\n\x0c_include_allB\x1c\n\x1a_one_to_one_backup_desiredB\x1a\n\x18_facility_backup_desired\"\xa8\x02\n\x07RsvpEro\x12\x45\n\x13prepend_neighbor_ip\x18\x01 \x01(\x0e\x32#.otg.RsvpEro.PrependNeighborIp.EnumH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12)\n\nsubobjects\x18\x03 \x03(\x0b\x32\x15.otg.RsvpEroSubobject\x1a\x65\n\x11PrependNeighborIp\"P\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0c\x64ont_prepend\x10\x01\x12\x11\n\rprepend_loose\x10\x02\x12\x12\n\x0eprepend_strict\x10\x03\x42\x16\n\x14_prepend_neighbor_ipB\x10\n\x0e_prefix_length\"\x8c\x03\n\x10RsvpEroSubobject\x12\x32\n\x04type\x18\x01 \x01(\x0e\x32\x1f.otg.RsvpEroSubobject.Type.EnumH\x00\x88\x01\x01\x12\x19\n\x0cipv4_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x16\n\tas_number\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x39\n\x08hop_type\x18\x05 \x01(\x0e\x32\".otg.RsvpEroSubobject.HopType.EnumH\x04\x88\x01\x01\x1a\x38\n\x04Type\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\r\n\tas_number\x10\x02\x1a\x39\n\x07HopType\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06strict\x10\x01\x12\t\n\x05loose\x10\x02\x42\x07\n\x05_typeB\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\x0c\n\n_as_numberB\x0b\n\t_hop_type\"\x8b\x02\n\x04\x46low\x12\x1c\n\x05tx_rx\x18\x01 \x01(\x0b\x32\r.otg.FlowTxRx\x12\x1f\n\x06packet\x18\x02 \x03(\x0b\x32\x0f.otg.FlowHeader\x12&\n\regress_packet\x18\t \x03(\x0b\x32\x0f.otg.FlowHeader\x12\x1b\n\x04size\x18\x03 \x01(\x0b\x32\r.otg.FlowSize\x12\x1b\n\x04rate\x18\x04 \x01(\x0b\x32\r.otg.FlowRate\x12#\n\x08\x64uration\x18\x05 \x01(\x0b\x32\x11.otg.FlowDuration\x12!\n\x07metrics\x18\x06 \x01(\x0b\x32\x10.otg.FlowMetrics\x12\x11\n\x04name\x18\x07 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_name\"\xbc\x01\n\x08\x46lowTxRx\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowTxRx.Choice.EnumH\x00\x88\x01\x01\x12\x1b\n\x04port\x18\x02 \x01(\x0b\x32\r.otg.FlowPort\x12\x1f\n\x06\x64\x65vice\x18\x03 \x01(\x0b\x32\x0f.otg.FlowRouter\x1a\x37\n\x06\x43hoice\"-\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04port\x10\x01\x12\n\n\x06\x64\x65vice\x10\x02\x42\t\n\x07_choice\"`\n\x08\x46lowPort\x12\x14\n\x07tx_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07rx_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x10\n\x08rx_names\x18\x03 \x03(\tB\n\n\x08_tx_nameB\n\n\x08_rx_name\"\xa2\x01\n\nFlowRouter\x12,\n\x04mode\x18\x01 \x01(\x0e\x32\x19.otg.FlowRouter.Mode.EnumH\x00\x88\x01\x01\x12\x10\n\x08tx_names\x18\x02 \x03(\t\x12\x10\n\x08rx_names\x18\x03 \x03(\t\x1a\x39\n\x04Mode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04mesh\x10\x01\x12\x0e\n\none_to_one\x10\x02\x42\x07\n\x05_mode\"\xc2\x07\n\nFlowHeader\x12\x30\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1b.otg.FlowHeader.Choice.EnumH\x00\x88\x01\x01\x12\x1f\n\x06\x63ustom\x18\x02 \x01(\x0b\x32\x0f.otg.FlowCustom\x12#\n\x08\x65thernet\x18\x03 \x01(\x0b\x32\x11.otg.FlowEthernet\x12\x1b\n\x04vlan\x18\x04 \x01(\x0b\x32\r.otg.FlowVlan\x12\x1d\n\x05vxlan\x18\x05 \x01(\x0b\x32\x0e.otg.FlowVxlan\x12\x1b\n\x04ipv4\x18\x06 \x01(\x0b\x32\r.otg.FlowIpv4\x12\x1b\n\x04ipv6\x18\x07 \x01(\x0b\x32\r.otg.FlowIpv6\x12#\n\x08pfcpause\x18\x08 \x01(\x0b\x32\x11.otg.FlowPfcPause\x12-\n\rethernetpause\x18\t \x01(\x0b\x32\x16.otg.FlowEthernetPause\x12\x19\n\x03tcp\x18\n \x01(\x0b\x32\x0c.otg.FlowTcp\x12\x19\n\x03udp\x18\x0b \x01(\x0b\x32\x0c.otg.FlowUdp\x12\x19\n\x03gre\x18\x0c \x01(\x0b\x32\x0c.otg.FlowGre\x12\x1d\n\x05gtpv1\x18\r \x01(\x0b\x32\x0e.otg.FlowGtpv1\x12\x1d\n\x05gtpv2\x18\x0e \x01(\x0b\x32\x0e.otg.FlowGtpv2\x12\x19\n\x03\x61rp\x18\x0f \x01(\x0b\x32\x0c.otg.FlowArp\x12\x1b\n\x04icmp\x18\x10 \x01(\x0b\x32\r.otg.FlowIcmp\x12\x1f\n\x06icmpv6\x18\x11 \x01(\x0b\x32\x0f.otg.FlowIcmpv6\x12\x19\n\x03ppp\x18\x12 \x01(\x0b\x32\x0c.otg.FlowPpp\x12\x1f\n\x06igmpv1\x18\x13 \x01(\x0b\x32\x0f.otg.FlowIgmpv1\x12\x1b\n\x04mpls\x18\x14 \x01(\x0b\x32\r.otg.FlowMpls\x12!\n\x07snmpv2c\x18\x15 \x01(\x0b\x32\x10.otg.FlowSnmpv2c\x1a\x82\x02\n\x06\x43hoice\"\xf7\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x63ustom\x10\x01\x12\x0c\n\x08\x65thernet\x10\x02\x12\x08\n\x04vlan\x10\x03\x12\t\n\x05vxlan\x10\x04\x12\x08\n\x04ipv4\x10\x05\x12\x08\n\x04ipv6\x10\x06\x12\x0c\n\x08pfcpause\x10\x07\x12\x11\n\rethernetpause\x10\x08\x12\x07\n\x03tcp\x10\t\x12\x07\n\x03udp\x10\n\x12\x07\n\x03gre\x10\x0b\x12\t\n\x05gtpv1\x10\x0c\x12\t\n\x05gtpv2\x10\r\x12\x07\n\x03\x61rp\x10\x0e\x12\x08\n\x04icmp\x10\x0f\x12\n\n\x06icmpv6\x10\x10\x12\x07\n\x03ppp\x10\x11\x12\n\n\x06igmpv1\x10\x12\x12\x08\n\x04mpls\x10\x13\x12\x0b\n\x07snmpv2c\x10\x14\x42\t\n\x07_choice\"Y\n\nFlowCustom\x12\x12\n\x05\x62ytes\x18\x01 \x01(\tH\x00\x88\x01\x01\x12-\n\x0bmetric_tags\x18\x02 \x03(\x0b\x32\x18.otg.FlowCustomMetricTagB\x08\n\x06_bytes\"q\n\x13\x46lowCustomMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xce\x01\n\x0c\x46lowEthernet\x12(\n\x03\x64st\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowEthernetDst\x12(\n\x03src\x18\x02 \x01(\x0b\x32\x1b.otg.PatternFlowEthernetSrc\x12\x35\n\nether_type\x18\x03 \x01(\x0b\x32!.otg.PatternFlowEthernetEtherType\x12\x33\n\tpfc_queue\x18\x04 \x01(\x0b\x32 .otg.PatternFlowEthernetPfcQueue\"\xac\x01\n\x08\x46lowVlan\x12.\n\x08priority\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowVlanPriority\x12$\n\x03\x63\x66i\x18\x02 \x01(\x0b\x32\x17.otg.PatternFlowVlanCfi\x12\"\n\x02id\x18\x03 \x01(\x0b\x32\x16.otg.PatternFlowVlanId\x12&\n\x04tpid\x18\x04 \x01(\x0b\x32\x18.otg.PatternFlowVlanTpid\"\xc3\x01\n\tFlowVxlan\x12)\n\x05\x66lags\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowVxlanFlags\x12\x31\n\treserved0\x18\x02 \x01(\x0b\x32\x1e.otg.PatternFlowVxlanReserved0\x12%\n\x03vni\x18\x03 \x01(\x0b\x32\x18.otg.PatternFlowVxlanVni\x12\x31\n\treserved1\x18\x04 \x01(\x0b\x32\x1e.otg.PatternFlowVxlanReserved1\"\x84\x06\n\x08\x46lowIpv4\x12,\n\x07version\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowIpv4Version\x12\x37\n\rheader_length\x18\x02 \x01(\x0b\x32 .otg.PatternFlowIpv4HeaderLength\x12\'\n\x08priority\x18\x03 \x01(\x0b\x32\x15.otg.FlowIpv4Priority\x12\x35\n\x0ctotal_length\x18\x04 \x01(\x0b\x32\x1f.otg.PatternFlowIpv4TotalLength\x12:\n\x0eidentification\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4Identification\x12.\n\x08reserved\x18\x06 \x01(\x0b\x32\x1c.otg.PatternFlowIpv4Reserved\x12\x37\n\rdont_fragment\x18\x07 \x01(\x0b\x32 .otg.PatternFlowIpv4DontFragment\x12\x39\n\x0emore_fragments\x18\x08 \x01(\x0b\x32!.otg.PatternFlowIpv4MoreFragments\x12;\n\x0f\x66ragment_offset\x18\t \x01(\x0b\x32\".otg.PatternFlowIpv4FragmentOffset\x12\x34\n\x0ctime_to_live\x18\n \x01(\x0b\x32\x1e.otg.PatternFlowIpv4TimeToLive\x12.\n\x08protocol\x18\x0b \x01(\x0b\x32\x1c.otg.PatternFlowIpv4Protocol\x12;\n\x0fheader_checksum\x18\x0c \x01(\x0b\x32\".otg.PatternFlowIpv4HeaderChecksum\x12$\n\x03src\x18\r \x01(\x0b\x32\x17.otg.PatternFlowIpv4Src\x12$\n\x03\x64st\x18\x0e \x01(\x0b\x32\x17.otg.PatternFlowIpv4Dst\x12%\n\x07options\x18\x0f \x03(\x0b\x32\x14.otg.FlowIpv4Options\"\xc0\x01\n\x0f\x46lowIpv4Options\x12\x35\n\x06\x63hoice\x18\x01 \x01(\x0e\x32 .otg.FlowIpv4Options.Choice.EnumH\x00\x88\x01\x01\x12*\n\x06\x63ustom\x18\x02 \x01(\x0b\x32\x1a.otg.FlowIpv4OptionsCustom\x1a?\n\x06\x43hoice\"5\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0crouter_alert\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x42\t\n\x07_choice\"\x95\x01\n\x15\x46lowIpv4OptionsCustom\x12,\n\x04type\x18\x01 \x01(\x0b\x32\x1e.otg.FlowIpv4OptionsCustomType\x12\x30\n\x06length\x18\x02 \x01(\x0b\x32 .otg.FlowIpv4OptionsCustomLength\x12\x12\n\x05value\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_value\"\xf3\x01\n\x19\x46lowIpv4OptionsCustomType\x12\x44\n\x0b\x63opied_flag\x18\x01 \x01(\x0b\x32/.otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag\x12\x46\n\x0coption_class\x18\x02 \x01(\x0b\x32\x30.otg.PatternFlowIpv4OptionsCustomTypeOptionClass\x12H\n\roption_number\x18\x03 \x01(\x0b\x32\x31.otg.PatternFlowIpv4OptionsCustomTypeOptionNumber\"\xdd\x01\n\x1b\x46lowIpv4OptionsCustomLength\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.FlowIpv4OptionsCustomLength.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\x82\x02\n\x10\x46lowIpv4Priority\x12\x36\n\x06\x63hoice\x18\x01 \x01(\x0e\x32!.otg.FlowIpv4Priority.Choice.EnumH\x00\x88\x01\x01\x12,\n\x03raw\x18\x02 \x01(\x0b\x32\x1f.otg.PatternFlowIpv4PriorityRaw\x12\x1d\n\x03tos\x18\x03 \x01(\x0b\x32\x10.otg.FlowIpv4Tos\x12\x1f\n\x04\x64scp\x18\x04 \x01(\x0b\x32\x11.otg.FlowIpv4Dscp\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03raw\x10\x01\x12\x07\n\x03tos\x10\x02\x12\x08\n\x04\x64scp\x10\x03\x42\t\n\x07_choice\"b\n\x0c\x46lowIpv4Dscp\x12(\n\x03phb\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowIpv4DscpPhb\x12(\n\x03\x65\x63n\x18\x02 \x01(\x0b\x32\x1b.otg.PatternFlowIpv4DscpEcn\"\xc3\x02\n\x0b\x46lowIpv4Tos\x12\x35\n\nprecedence\x18\x01 \x01(\x0b\x32!.otg.PatternFlowIpv4TosPrecedence\x12+\n\x05\x64\x65lay\x18\x02 \x01(\x0b\x32\x1c.otg.PatternFlowIpv4TosDelay\x12\x35\n\nthroughput\x18\x03 \x01(\x0b\x32!.otg.PatternFlowIpv4TosThroughput\x12\x37\n\x0breliability\x18\x04 \x01(\x0b\x32\".otg.PatternFlowIpv4TosReliability\x12\x31\n\x08monetary\x18\x05 \x01(\x0b\x32\x1f.otg.PatternFlowIpv4TosMonetary\x12-\n\x06unused\x18\x06 \x01(\x0b\x32\x1d.otg.PatternFlowIpv4TosUnused\"\x91\x03\n\x08\x46lowIpv6\x12,\n\x07version\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowIpv6Version\x12\x37\n\rtraffic_class\x18\x02 \x01(\x0b\x32 .otg.PatternFlowIpv6TrafficClass\x12\x31\n\nflow_label\x18\x03 \x01(\x0b\x32\x1d.otg.PatternFlowIpv6FlowLabel\x12\x39\n\x0epayload_length\x18\x04 \x01(\x0b\x32!.otg.PatternFlowIpv6PayloadLength\x12\x33\n\x0bnext_header\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6NextHeader\x12/\n\thop_limit\x18\x06 \x01(\x0b\x32\x1c.otg.PatternFlowIpv6HopLimit\x12$\n\x03src\x18\x07 \x01(\x0b\x32\x17.otg.PatternFlowIpv6Src\x12$\n\x03\x64st\x18\x08 \x01(\x0b\x32\x17.otg.PatternFlowIpv6Dst\"\x81\x06\n\x0c\x46lowPfcPause\x12(\n\x03\x64st\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowPfcPauseDst\x12(\n\x03src\x18\x02 \x01(\x0b\x32\x1b.otg.PatternFlowPfcPauseSrc\x12\x35\n\nether_type\x18\x03 \x01(\x0b\x32!.otg.PatternFlowPfcPauseEtherType\x12>\n\x0f\x63ontrol_op_code\x18\x04 \x01(\x0b\x32%.otg.PatternFlowPfcPauseControlOpCode\x12\x46\n\x13\x63lass_enable_vector\x18\x05 \x01(\x0b\x32).otg.PatternFlowPfcPauseClassEnableVector\x12:\n\rpause_class_0\x18\x06 \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass0\x12:\n\rpause_class_1\x18\x07 \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass1\x12:\n\rpause_class_2\x18\x08 \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass2\x12:\n\rpause_class_3\x18\t \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass3\x12:\n\rpause_class_4\x18\n \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass4\x12:\n\rpause_class_5\x18\x0b \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass5\x12:\n\rpause_class_6\x18\x0c \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass6\x12:\n\rpause_class_7\x18\r \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass7\"\xa3\x02\n\x11\x46lowEthernetPause\x12-\n\x03\x64st\x18\x01 \x01(\x0b\x32 .otg.PatternFlowEthernetPauseDst\x12-\n\x03src\x18\x02 \x01(\x0b\x32 .otg.PatternFlowEthernetPauseSrc\x12:\n\nether_type\x18\x03 \x01(\x0b\x32&.otg.PatternFlowEthernetPauseEtherType\x12\x43\n\x0f\x63ontrol_op_code\x18\x04 \x01(\x0b\x32*.otg.PatternFlowEthernetPauseControlOpCode\x12/\n\x04time\x18\x05 \x01(\x0b\x32!.otg.PatternFlowEthernetPauseTime\"\xa8\x05\n\x07\x46lowTcp\x12,\n\x08src_port\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowTcpSrcPort\x12,\n\x08\x64st_port\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowTcpDstPort\x12*\n\x07seq_num\x18\x03 \x01(\x0b\x32\x19.otg.PatternFlowTcpSeqNum\x12*\n\x07\x61\x63k_num\x18\x04 \x01(\x0b\x32\x19.otg.PatternFlowTcpAckNum\x12\x32\n\x0b\x64\x61ta_offset\x18\x05 \x01(\x0b\x32\x1d.otg.PatternFlowTcpDataOffset\x12(\n\x06\x65\x63n_ns\x18\x06 \x01(\x0b\x32\x18.otg.PatternFlowTcpEcnNs\x12*\n\x07\x65\x63n_cwr\x18\x07 \x01(\x0b\x32\x19.otg.PatternFlowTcpEcnCwr\x12,\n\x08\x65\x63n_echo\x18\x08 \x01(\x0b\x32\x1a.otg.PatternFlowTcpEcnEcho\x12*\n\x07\x63tl_urg\x18\t \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlUrg\x12*\n\x07\x63tl_ack\x18\n \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlAck\x12*\n\x07\x63tl_psh\x18\x0b \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlPsh\x12*\n\x07\x63tl_rst\x18\x0c \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlRst\x12*\n\x07\x63tl_syn\x18\r \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlSyn\x12*\n\x07\x63tl_fin\x18\x0e \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlFin\x12)\n\x06window\x18\x0f \x01(\x0b\x32\x19.otg.PatternFlowTcpWindow\"\xbf\x01\n\x07\x46lowUdp\x12,\n\x08src_port\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowUdpSrcPort\x12,\n\x08\x64st_port\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowUdpDstPort\x12)\n\x06length\x18\x03 \x01(\x0b\x32\x19.otg.PatternFlowUdpLength\x12-\n\x08\x63hecksum\x18\x04 \x01(\x0b\x32\x1b.otg.PatternFlowUdpChecksum\"\xb4\x02\n\x07\x46lowGre\x12<\n\x10\x63hecksum_present\x18\x01 \x01(\x0b\x32\".otg.PatternFlowGreChecksumPresent\x12/\n\treserved0\x18\x02 \x01(\x0b\x32\x1c.otg.PatternFlowGreReserved0\x12+\n\x07version\x18\x03 \x01(\x0b\x32\x1a.otg.PatternFlowGreVersion\x12-\n\x08protocol\x18\x04 \x01(\x0b\x32\x1b.otg.PatternFlowGreProtocol\x12-\n\x08\x63hecksum\x18\x05 \x01(\x0b\x32\x1b.otg.PatternFlowGreChecksum\x12/\n\treserved1\x18\x06 \x01(\x0b\x32\x1c.otg.PatternFlowGreReserved1\"\xbf\x05\n\tFlowGtpv1\x12-\n\x07version\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowGtpv1Version\x12\x38\n\rprotocol_type\x18\x02 \x01(\x0b\x32!.otg.PatternFlowGtpv1ProtocolType\x12/\n\x08reserved\x18\x03 \x01(\x0b\x32\x1d.otg.PatternFlowGtpv1Reserved\x12*\n\x06\x65_flag\x18\x04 \x01(\x0b\x32\x1a.otg.PatternFlowGtpv1EFlag\x12*\n\x06s_flag\x18\x05 \x01(\x0b\x32\x1a.otg.PatternFlowGtpv1SFlag\x12,\n\x07pn_flag\x18\x06 \x01(\x0b\x32\x1b.otg.PatternFlowGtpv1PnFlag\x12\x36\n\x0cmessage_type\x18\x07 \x01(\x0b\x32 .otg.PatternFlowGtpv1MessageType\x12:\n\x0emessage_length\x18\x08 \x01(\x0b\x32\".otg.PatternFlowGtpv1MessageLength\x12\'\n\x04teid\x18\t \x01(\x0b\x32\x19.otg.PatternFlowGtpv1Teid\x12:\n\x0esquence_number\x18\n \x01(\x0b\x32\".otg.PatternFlowGtpv1SquenceNumber\x12\x35\n\x0cn_pdu_number\x18\x0b \x01(\x0b\x32\x1f.otg.PatternFlowGtpv1NPduNumber\x12P\n\x1anext_extension_header_type\x18\x0c \x01(\x0b\x32,.otg.PatternFlowGtpv1NextExtensionHeaderType\x12\x30\n\x11\x65xtension_headers\x18\r \x03(\x0b\x32\x15.otg.FlowGtpExtension\"\xe1\x01\n\x10\x46lowGtpExtension\x12\x45\n\x10\x65xtension_length\x18\x01 \x01(\x0b\x32+.otg.PatternFlowGtpExtensionExtensionLength\x12\x36\n\x08\x63ontents\x18\x02 \x01(\x0b\x32$.otg.PatternFlowGtpExtensionContents\x12N\n\x15next_extension_header\x18\x03 \x01(\x0b\x32/.otg.PatternFlowGtpExtensionNextExtensionHeader\"\xe3\x03\n\tFlowGtpv2\x12-\n\x07version\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowGtpv2Version\x12@\n\x11piggybacking_flag\x18\x02 \x01(\x0b\x32%.otg.PatternFlowGtpv2PiggybackingFlag\x12\x30\n\tteid_flag\x18\x03 \x01(\x0b\x32\x1d.otg.PatternFlowGtpv2TeidFlag\x12+\n\x06spare1\x18\x04 \x01(\x0b\x32\x1b.otg.PatternFlowGtpv2Spare1\x12\x36\n\x0cmessage_type\x18\x05 \x01(\x0b\x32 .otg.PatternFlowGtpv2MessageType\x12:\n\x0emessage_length\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv2MessageLength\x12\'\n\x04teid\x18\x07 \x01(\x0b\x32\x19.otg.PatternFlowGtpv2Teid\x12<\n\x0fsequence_number\x18\x08 \x01(\x0b\x32#.otg.PatternFlowGtpv2SequenceNumber\x12+\n\x06spare2\x18\t \x01(\x0b\x32\x1b.otg.PatternFlowGtpv2Spare2\"\xb6\x04\n\x07\x46lowArp\x12\x36\n\rhardware_type\x18\x01 \x01(\x0b\x32\x1f.otg.PatternFlowArpHardwareType\x12\x36\n\rprotocol_type\x18\x02 \x01(\x0b\x32\x1f.otg.PatternFlowArpProtocolType\x12:\n\x0fhardware_length\x18\x03 \x01(\x0b\x32!.otg.PatternFlowArpHardwareLength\x12:\n\x0fprotocol_length\x18\x04 \x01(\x0b\x32!.otg.PatternFlowArpProtocolLength\x12/\n\toperation\x18\x05 \x01(\x0b\x32\x1c.otg.PatternFlowArpOperation\x12\x43\n\x14sender_hardware_addr\x18\x06 \x01(\x0b\x32%.otg.PatternFlowArpSenderHardwareAddr\x12\x43\n\x14sender_protocol_addr\x18\x07 \x01(\x0b\x32%.otg.PatternFlowArpSenderProtocolAddr\x12\x43\n\x14target_hardware_addr\x18\x08 \x01(\x0b\x32%.otg.PatternFlowArpTargetHardwareAddr\x12\x43\n\x14target_protocol_addr\x18\t \x01(\x0b\x32%.otg.PatternFlowArpTargetProtocolAddr\"\x93\x01\n\x08\x46lowIcmp\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowIcmp.Choice.EnumH\x00\x88\x01\x01\x12\x1f\n\x04\x65\x63ho\x18\x02 \x01(\x0b\x32\x11.otg.FlowIcmpEcho\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x65\x63ho\x10\x01\x42\t\n\x07_choice\"\x93\x02\n\x0c\x46lowIcmpEcho\x12*\n\x04type\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowIcmpEchoType\x12*\n\x04\x63ode\x18\x02 \x01(\x0b\x32\x1c.otg.PatternFlowIcmpEchoCode\x12\x32\n\x08\x63hecksum\x18\x03 \x01(\x0b\x32 .otg.PatternFlowIcmpEchoChecksum\x12\x36\n\nidentifier\x18\x04 \x01(\x0b\x32\".otg.PatternFlowIcmpEchoIdentifier\x12?\n\x0fsequence_number\x18\x05 \x01(\x0b\x32&.otg.PatternFlowIcmpEchoSequenceNumber\"\x99\x01\n\nFlowIcmpv6\x12\x30\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1b.otg.FlowIcmpv6.Choice.EnumH\x00\x88\x01\x01\x12!\n\x04\x65\x63ho\x18\x02 \x01(\x0b\x32\x13.otg.FlowIcmpv6Echo\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x65\x63ho\x10\x01\x42\t\n\x07_choice\"\x9f\x02\n\x0e\x46lowIcmpv6Echo\x12,\n\x04type\x18\x01 \x01(\x0b\x32\x1e.otg.PatternFlowIcmpv6EchoType\x12,\n\x04\x63ode\x18\x02 \x01(\x0b\x32\x1e.otg.PatternFlowIcmpv6EchoCode\x12\x38\n\nidentifier\x18\x03 \x01(\x0b\x32$.otg.PatternFlowIcmpv6EchoIdentifier\x12\x41\n\x0fsequence_number\x18\x04 \x01(\x0b\x32(.otg.PatternFlowIcmpv6EchoSequenceNumber\x12\x34\n\x08\x63hecksum\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIcmpv6EchoChecksum\"\x9b\x01\n\x07\x46lowPpp\x12+\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowPppAddress\x12+\n\x07\x63ontrol\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowPppControl\x12\x36\n\rprotocol_type\x18\x03 \x01(\x0b\x32\x1f.otg.PatternFlowPppProtocolType\"\x81\x02\n\nFlowIgmpv1\x12.\n\x07version\x18\x01 \x01(\x0b\x32\x1d.otg.PatternFlowIgmpv1Version\x12(\n\x04type\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowIgmpv1Type\x12,\n\x06unused\x18\x03 \x01(\x0b\x32\x1c.otg.PatternFlowIgmpv1Unused\x12\x30\n\x08\x63hecksum\x18\x04 \x01(\x0b\x32\x1e.otg.PatternFlowIgmpv1Checksum\x12\x39\n\rgroup_address\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIgmpv1GroupAddress\"\xdf\x01\n\x08\x46lowMpls\x12(\n\x05label\x18\x01 \x01(\x0b\x32\x19.otg.PatternFlowMplsLabel\x12\x37\n\rtraffic_class\x18\x02 \x01(\x0b\x32 .otg.PatternFlowMplsTrafficClass\x12:\n\x0f\x62ottom_of_stack\x18\x03 \x01(\x0b\x32!.otg.PatternFlowMplsBottomOfStack\x12\x34\n\x0ctime_to_live\x18\x04 \x01(\x0b\x32\x1e.otg.PatternFlowMplsTimeToLive\"\x88\x01\n\x0b\x46lowSnmpv2c\x12/\n\x07version\x18\x01 \x01(\x0b\x32\x1e.otg.PatternFlowSnmpv2cVersion\x12\x16\n\tcommunity\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\"\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\x14.otg.FlowSnmpv2cDataB\x0c\n\n_community\"\xde\x04\n\x0f\x46lowSnmpv2cData\x12\x35\n\x06\x63hoice\x18\x01 \x01(\x0e\x32 .otg.FlowSnmpv2cData.Choice.EnumH\x00\x88\x01\x01\x12(\n\x0bget_request\x18\x02 \x01(\x0b\x32\x13.otg.FlowSnmpv2cPDU\x12-\n\x10get_next_request\x18\x03 \x01(\x0b\x32\x13.otg.FlowSnmpv2cPDU\x12%\n\x08response\x18\x04 \x01(\x0b\x32\x13.otg.FlowSnmpv2cPDU\x12(\n\x0bset_request\x18\x05 \x01(\x0b\x32\x13.otg.FlowSnmpv2cPDU\x12\x31\n\x10get_bulk_request\x18\x06 \x01(\x0b\x32\x17.otg.FlowSnmpv2cBulkPDU\x12+\n\x0einform_request\x18\x07 \x01(\x0b\x32\x13.otg.FlowSnmpv2cPDU\x12(\n\x0bsnmpv2_trap\x18\x08 \x01(\x0b\x32\x13.otg.FlowSnmpv2cPDU\x12#\n\x06report\x18\t \x01(\x0b\x32\x13.otg.FlowSnmpv2cPDU\x1a\xaf\x01\n\x06\x43hoice\"\xa4\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0f\n\x0bget_request\x10\x01\x12\x14\n\x10get_next_request\x10\x02\x12\x0c\n\x08response\x10\x03\x12\x0f\n\x0bset_request\x10\x04\x12\x14\n\x10get_bulk_request\x10\x05\x12\x12\n\x0einform_request\x10\x06\x12\x0f\n\x0bsnmpv2_trap\x10\x07\x12\n\n\x06report\x10\x08\x42\t\n\x07_choice\"\x93\x05\n\x0e\x46lowSnmpv2cPDU\x12\x37\n\nrequest_id\x18\x01 \x01(\x0b\x32#.otg.PatternFlowSnmpv2cPDURequestId\x12?\n\x0c\x65rror_status\x18\x02 \x01(\x0e\x32$.otg.FlowSnmpv2cPDU.ErrorStatus.EnumH\x00\x88\x01\x01\x12\x39\n\x0b\x65rror_index\x18\x03 \x01(\x0b\x32$.otg.PatternFlowSnmpv2cPDUErrorIndex\x12:\n\x11variable_bindings\x18\x04 \x03(\x0b\x32\x1f.otg.FlowSnmpv2cVariableBinding\x1a\xfe\x02\n\x0b\x45rrorStatus\"\xee\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08no_error\x10\x01\x12\x0b\n\x07too_big\x10\x02\x12\x10\n\x0cno_such_name\x10\x03\x12\r\n\tbad_value\x10\x04\x12\r\n\tread_only\x10\x05\x12\x0b\n\x07gen_err\x10\x06\x12\r\n\tno_access\x10\x07\x12\x0e\n\nwrong_type\x10\x08\x12\x10\n\x0cwrong_length\x10\t\x12\x12\n\x0ewrong_encoding\x10\n\x12\x0f\n\x0bwrong_value\x10\x0b\x12\x0f\n\x0bno_creation\x10\x0c\x12\x16\n\x12inconsistent_value\x10\r\x12\x18\n\x14resource_unavailable\x10\x0e\x12\x11\n\rcommit_failed\x10\x0f\x12\x0f\n\x0bundo_failed\x10\x10\x12\x17\n\x13\x61uthorization_error\x10\x11\x12\x10\n\x0cnot_writable\x10\x12\x12\x15\n\x11inconsistent_name\x10\x13\x42\x0f\n\r_error_status\"\x97\x02\n\x12\x46lowSnmpv2cBulkPDU\x12;\n\nrequest_id\x18\x01 \x01(\x0b\x32\'.otg.PatternFlowSnmpv2cBulkPDURequestId\x12\x41\n\rnon_repeaters\x18\x02 \x01(\x0b\x32*.otg.PatternFlowSnmpv2cBulkPDUNonRepeaters\x12\x45\n\x0fmax_repetitions\x18\x03 \x01(\x0b\x32,.otg.PatternFlowSnmpv2cBulkPDUMaxRepetitions\x12:\n\x11variable_bindings\x18\x04 \x03(\x0b\x32\x1f.otg.FlowSnmpv2cVariableBinding\"\x87\x01\n\x1a\x46lowSnmpv2cVariableBinding\x12\x1e\n\x11object_identifier\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x33\n\x05value\x18\x02 \x01(\x0b\x32$.otg.FlowSnmpv2cVariableBindingValueB\x14\n\x12_object_identifier\"\x8f\x08\n\x1f\x46lowSnmpv2cVariableBindingValue\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.FlowSnmpv2cVariableBindingValue.Choice.EnumH\x00\x88\x01\x01\x12N\n\rinteger_value\x18\x02 \x01(\x0b\x32\x37.otg.PatternFlowSnmpv2cVariableBindingValueIntegerValue\x12\x19\n\x0cstring_value\x18\x03 \x01(\tH\x01\x88\x01\x01\x12$\n\x17object_identifier_value\x18\x04 \x01(\tH\x02\x88\x01\x01\x12S\n\x10ip_address_value\x18\x05 \x01(\x0b\x32\x39.otg.PatternFlowSnmpv2cVariableBindingValueIpAddressValue\x12N\n\rcounter_value\x18\x06 \x01(\x0b\x32\x37.otg.PatternFlowSnmpv2cVariableBindingValueCounterValue\x12R\n\x0ftimeticks_value\x18\x07 \x01(\x0b\x32\x39.otg.PatternFlowSnmpv2cVariableBindingValueTimeticksValue\x12\x1c\n\x0f\x61rbitrary_value\x18\x08 \x01(\tH\x03\x88\x01\x01\x12U\n\x11\x62ig_counter_value\x18\t \x01(\x0b\x32:.otg.PatternFlowSnmpv2cVariableBindingValueBigCounterValue\x12_\n\x16unsigned_integer_value\x18\n \x01(\x0b\x32?.otg.PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValue\x1a\xf8\x01\n\x06\x43hoice\"\xed\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08no_value\x10\x01\x12\x11\n\rinteger_value\x10\x02\x12\x10\n\x0cstring_value\x10\x03\x12\x1b\n\x17object_identifier_value\x10\x04\x12\x14\n\x10ip_address_value\x10\x05\x12\x11\n\rcounter_value\x10\x06\x12\x13\n\x0ftimeticks_value\x10\x07\x12\x13\n\x0f\x61rbitrary_value\x10\x08\x12\x15\n\x11\x62ig_counter_value\x10\t\x12\x1a\n\x16unsigned_integer_value\x10\nB\t\n\x07_choiceB\x0f\n\r_string_valueB\x1a\n\x18_object_identifier_valueB\x12\n\x10_arbitrary_value\"\xbe\x02\n\x08\x46lowSize\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowSize.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05\x66ixed\x18\x02 \x01(\rH\x01\x88\x01\x01\x12)\n\tincrement\x18\x03 \x01(\x0b\x32\x16.otg.FlowSizeIncrement\x12#\n\x06random\x18\x04 \x01(\x0b\x32\x13.otg.FlowSizeRandom\x12.\n\x0cweight_pairs\x18\x05 \x01(\x0b\x32\x18.otg.FlowSizeWeightPairs\x1aY\n\x06\x43hoice\"O\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x66ixed\x10\x01\x12\r\n\tincrement\x10\x02\x12\n\n\x06random\x10\x03\x12\x10\n\x0cweight_pairs\x10\x04\x42\t\n\x07_choiceB\x08\n\x06_fixed\"g\n\x11\x46lowSizeIncrement\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03\x65nd\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04step\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x06\n\x04_endB\x07\n\x05_step\"D\n\x0e\x46lowSizeRandom\x12\x10\n\x03min\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03max\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x06\n\x04_minB\x06\n\x04_max\"\x8d\x03\n\x13\x46lowSizeWeightPairs\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.FlowSizeWeightPairs.Choice.EnumH\x00\x88\x01\x01\x12\x41\n\npredefined\x18\x02 \x01(\x0e\x32(.otg.FlowSizeWeightPairs.Predefined.EnumH\x01\x88\x01\x01\x12.\n\x06\x63ustom\x18\x03 \x03(\x0b\x32\x1e.otg.FlowSizeWeightPairsCustom\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\npredefined\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1ao\n\nPredefined\"a\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04imix\x10\x01\x12\x0e\n\nipsec_imix\x10\x02\x12\r\n\tipv6_imix\x10\x03\x12\x11\n\rstandard_imix\x10\x04\x12\x0c\n\x08tcp_imix\x10\x05\x42\t\n\x07_choiceB\r\n\x0b_predefined\"W\n\x19\x46lowSizeWeightPairsCustom\x12\x11\n\x04size\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06weight\x18\x02 \x01(\x02H\x01\x88\x01\x01\x42\x07\n\x05_sizeB\t\n\x07_weight\"\xd8\x02\n\x08\x46lowRate\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowRate.Choice.EnumH\x00\x88\x01\x01\x12\x10\n\x03pps\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x10\n\x03\x62ps\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x11\n\x04kbps\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x11\n\x04mbps\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x11\n\x04gbps\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x17\n\npercentage\x18\x07 \x01(\x02H\x06\x88\x01\x01\x1a\x61\n\x06\x43hoice\"W\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03pps\x10\x01\x12\x07\n\x03\x62ps\x10\x02\x12\x08\n\x04kbps\x10\x03\x12\x08\n\x04mbps\x10\x04\x12\x08\n\x04gbps\x10\x05\x12\x0e\n\npercentage\x10\x06\x42\t\n\x07_choiceB\x06\n\x04_ppsB\x06\n\x04_bpsB\x07\n\x05_kbpsB\x07\n\x05_mbpsB\x07\n\x05_gbpsB\r\n\x0b_percentage\"\xd5\x02\n\x0c\x46lowDuration\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.FlowDuration.Choice.EnumH\x00\x88\x01\x01\x12,\n\rfixed_packets\x18\x02 \x01(\x0b\x32\x15.otg.FlowFixedPackets\x12,\n\rfixed_seconds\x18\x03 \x01(\x0b\x32\x15.otg.FlowFixedSeconds\x12\x1d\n\x05\x62urst\x18\x04 \x01(\x0b\x32\x0e.otg.FlowBurst\x12\'\n\ncontinuous\x18\x05 \x01(\x0b\x32\x13.otg.FlowContinuous\x1a\x62\n\x06\x43hoice\"X\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rfixed_packets\x10\x01\x12\x11\n\rfixed_seconds\x10\x02\x12\t\n\x05\x62urst\x10\x03\x12\x0e\n\ncontinuous\x10\x04\x42\t\n\x07_choice\"I\n\x0e\x46lowContinuous\x12\x10\n\x03gap\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1d\n\x05\x64\x65lay\x18\x02 \x01(\x0b\x32\x0e.otg.FlowDelayB\x06\n\x04_gap\"\x8c\x02\n\tFlowDelay\x12/\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1a.otg.FlowDelay.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05\x62ytes\x18\x02 \x01(\x02H\x01\x88\x01\x01\x12\x18\n\x0bnanoseconds\x18\x03 \x01(\x02H\x02\x88\x01\x01\x12\x19\n\x0cmicroseconds\x18\x04 \x01(\x02H\x03\x88\x01\x01\x1aO\n\x06\x43hoice\"E\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x62ytes\x10\x01\x12\x0f\n\x0bnanoseconds\x10\x02\x12\x10\n\x0cmicroseconds\x10\x03\x42\t\n\x07_choiceB\x08\n\x06_bytesB\x0e\n\x0c_nanosecondsB\x0f\n\r_microseconds\"m\n\x10\x46lowFixedPackets\x12\x14\n\x07packets\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03gap\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1d\n\x05\x64\x65lay\x18\x03 \x01(\x0b\x32\x0e.otg.FlowDelayB\n\n\x08_packetsB\x06\n\x04_gap\"m\n\x10\x46lowFixedSeconds\x12\x14\n\x07seconds\x18\x01 \x01(\x02H\x00\x88\x01\x01\x12\x10\n\x03gap\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1d\n\x05\x64\x65lay\x18\x03 \x01(\x0b\x32\x0e.otg.FlowDelayB\n\n\x08_secondsB\x06\n\x04_gap\"\xa0\x01\n\tFlowBurst\x12\x13\n\x06\x62ursts\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07packets\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x10\n\x03gap\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x37\n\x0finter_burst_gap\x18\x04 \x01(\x0b\x32\x1e.otg.FlowDurationInterBurstGapB\t\n\x07_burstsB\n\n\x08_packetsB\x06\n\x04_gap\"\xac\x02\n\x19\x46lowDurationInterBurstGap\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.FlowDurationInterBurstGap.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05\x62ytes\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x18\n\x0bnanoseconds\x18\x03 \x01(\x01H\x02\x88\x01\x01\x12\x19\n\x0cmicroseconds\x18\x04 \x01(\x01H\x03\x88\x01\x01\x1aO\n\x06\x43hoice\"E\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x62ytes\x10\x01\x12\x0f\n\x0bnanoseconds\x10\x02\x12\x10\n\x0cmicroseconds\x10\x03\x42\t\n\x07_choiceB\x08\n\x06_bytesB\x0e\n\x0c_nanosecondsB\x0f\n\r_microseconds\"\xfd\x01\n\x0b\x46lowMetrics\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x11\n\x04loss\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\'\n\x0brx_tx_ratio\x18\x06 \x01(\x0b\x32\x12.otg.FlowRxTxRatio\x12\x17\n\ntimestamps\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12(\n\x07latency\x18\x04 \x01(\x0b\x32\x17.otg.FlowLatencyMetrics\x12\x37\n\x16predefined_metric_tags\x18\x05 \x01(\x0b\x32\x17.otg.FlowPredefinedTagsB\t\n\x07_enableB\x07\n\x05_lossB\r\n\x0b_timestamps\"\xb8\x01\n\x12\x46lowLatencyMetrics\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x34\n\x04mode\x18\x02 \x01(\x0e\x32!.otg.FlowLatencyMetrics.Mode.EnumH\x01\x88\x01\x01\x1a\x43\n\x04Mode\";\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rstore_forward\x10\x01\x12\x0f\n\x0b\x63ut_through\x10\x02\x42\t\n\x07_enableB\x07\n\x05_mode\"6\n\x12\x46lowPredefinedTags\x12\x14\n\x07rx_name\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\n\n\x08_rx_name\"\xd6\x01\n\rFlowRxTxRatio\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.FlowRxTxRatio.Choice.EnumH\x00\x88\x01\x01\x12+\n\x08rx_count\x18\x02 \x01(\x0b\x32\x19.otg.FlowRxTxRatioRxCount\x12\x12\n\x05value\x18\x03 \x01(\x02H\x01\x88\x01\x01\x1a:\n\x06\x43hoice\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08rx_count\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x08\n\x06_value\"\x16\n\x14\x46lowRxTxRatioRxCount\"\xbf\x01\n\x05\x45vent\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1c\n\x04link\x18\x02 \x01(\x0b\x32\x0e.otg.EventLink\x12\x34\n\x11rx_rate_threshold\x18\x03 \x01(\x0b\x32\x19.otg.EventRxRateThreshold\x12\x42\n\x18route_advertise_withdraw\x18\x04 \x01(\x0b\x32 .otg.EventRouteAdvertiseWithdrawB\t\n\x07_enable\"\\\n\x14\x45ventRxRateThreshold\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x16\n\tthreshold\x18\x02 \x01(\x02H\x01\x88\x01\x01\x42\t\n\x07_enableB\x0c\n\n_threshold\"+\n\tEventLink\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\t\n\x07_enable\"=\n\x1b\x45ventRouteAdvertiseWithdraw\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\t\n\x07_enable\"\xf5\x01\n\x0c\x45ventRequest\x12)\n\x04type\x18\x01 \x03(\x0e\x32\x1b.otg.EventRequest.Type.Enum\x12\x0e\n\x06source\x18\x02 \x03(\t\x1a\xa9\x01\n\x04Type\"\xa0\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tlink_down\x10\x01\x12\x0b\n\x07link_up\x10\x02\x12\x12\n\x0eroute_withdraw\x10\x03\x12\x13\n\x0froute_advertise\x10\x04\x12 \n\x1c\x66low_rx_rate_above_threshold\x10\x05\x12 \n\x1c\x66low_rx_rate_below_threshold\x10\x06\"b\n\x11\x45ventSubscription\x12!\n\x06\x65vents\x18\x01 \x01(\x0b\x32\x11.otg.EventRequest\x12\x19\n\x0c\x63\x61llback_url\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x0f\n\r_callback_url\"\xa5\x02\n\x04Lldp\x12\'\n\nconnection\x18\x01 \x01(\x0b\x32\x13.otg.LldpConnection\x12&\n\nchassis_id\x18\x02 \x01(\x0b\x32\x12.otg.LldpChassisId\x12 \n\x07port_id\x18\x03 \x01(\x0b\x32\x0f.otg.LldpPortId\x12(\n\x0bsystem_name\x18\x04 \x01(\x0b\x32\x13.otg.LldpSystemName\x12\x16\n\thold_time\x18\x05 \x01(\rH\x00\x88\x01\x01\x12#\n\x16\x61\x64vertisement_interval\x18\x06 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04name\x18\x07 \x01(\tH\x02\x88\x01\x01\x42\x0c\n\n_hold_timeB\x19\n\x17_advertisement_intervalB\x07\n\x05_name\"\xa9\x01\n\x0eLldpConnection\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.LldpConnection.Choice.EnumH\x00\x88\x01\x01\x12\x16\n\tport_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x1a\x30\n\x06\x43hoice\"&\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tport_name\x10\x01\x42\t\n\x07_choiceB\x0c\n\n_port_name\"\xe1\x02\n\rLldpChassisId\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.LldpChassisId.Choice.EnumH\x00\x88\x01\x01\x12\x37\n\x13mac_address_subtype\x18\x02 \x01(\x0b\x32\x1a.otg.LldpChassisMacSubType\x12#\n\x16interface_name_subtype\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x1a\n\rlocal_subtype\x18\x04 \x01(\tH\x02\x88\x01\x01\x1ai\n\x06\x43hoice\"_\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13mac_address_subtype\x10\x01\x12\x1a\n\x16interface_name_subtype\x10\x02\x12\x11\n\rlocal_subtype\x10\x03\x42\t\n\x07_choiceB\x19\n\x17_interface_name_subtypeB\x10\n\x0e_local_subtype\"\xdf\x02\n\nLldpPortId\x12\x30\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1b.otg.LldpPortId.Choice.EnumH\x00\x88\x01\x01\x12 \n\x13mac_address_subtype\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x41\n\x16interface_name_subtype\x18\x03 \x01(\x0b\x32!.otg.LldpPortInterfaceNameSubType\x12\x1a\n\rlocal_subtype\x18\x04 \x01(\tH\x02\x88\x01\x01\x1ai\n\x06\x43hoice\"_\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13mac_address_subtype\x10\x01\x12\x1a\n\x16interface_name_subtype\x10\x02\x12\x11\n\rlocal_subtype\x10\x03\x42\t\n\x07_choiceB\x16\n\x14_mac_address_subtypeB\x10\n\x0e_local_subtype\"\xd1\x01\n\x15LldpChassisMacSubType\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.LldpChassisMacSubType.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xdf\x01\n\x1cLldpPortInterfaceNameSubType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.LldpPortInterfaceNameSubType.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xc3\x01\n\x0eLldpSystemName\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.LldpSystemName.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xa4\x01\n\x05\x45rror\x12\x11\n\x04\x63ode\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\'\n\x04kind\x18\x02 \x01(\x0e\x32\x14.otg.Error.Kind.EnumH\x01\x88\x01\x01\x12\x0e\n\x06\x65rrors\x18\x03 \x03(\t\x1a=\n\x04Kind\"5\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nvalidation\x10\x01\x12\x0c\n\x08internal\x10\x02\x42\x07\n\x05_codeB\x07\n\x05_kind\"\x1b\n\x07Warning\x12\x10\n\x08warnings\x18\x01 \x03(\t\"\x9c\x01\n\x0c\x43onfigUpdate\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.ConfigUpdate.Choice.EnumH\x00\x88\x01\x01\x12\x1f\n\x05\x66lows\x18\x02 \x01(\x0b\x32\x10.otg.FlowsUpdate\x1a,\n\x06\x43hoice\"\"\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x66lows\x10\x01\x42\t\n\x07_choice\"\xa2\x01\n\x0b\x46lowsUpdate\x12;\n\x0eproperty_names\x18\x01 \x03(\x0e\x32#.otg.FlowsUpdate.PropertyNames.Enum\x12\x18\n\x05\x66lows\x18\x02 \x03(\x0b\x32\t.otg.Flow\x1a<\n\rPropertyNames\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04rate\x10\x01\x12\x08\n\x04size\x10\x02\"\xfd\x01\n\x0c\x43ontrolState\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.ControlState.Choice.EnumH\x00\x88\x01\x01\x12\x1c\n\x04port\x18\x02 \x01(\x0b\x32\x0e.otg.StatePort\x12$\n\x08protocol\x18\x03 \x01(\x0b\x32\x12.otg.StateProtocol\x12\"\n\x07traffic\x18\x04 \x01(\x0b\x32\x11.otg.StateTraffic\x1a\x46\n\x06\x43hoice\"<\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04port\x10\x01\x12\x0c\n\x08protocol\x10\x02\x12\x0b\n\x07traffic\x10\x03\x42\t\n\x07_choice\"\xcb\x01\n\tStatePort\x12/\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1a.otg.StatePort.Choice.EnumH\x00\x88\x01\x01\x12 \n\x04link\x18\x02 \x01(\x0b\x32\x12.otg.StatePortLink\x12&\n\x07\x63\x61pture\x18\x03 \x01(\x0b\x32\x15.otg.StatePortCapture\x1a\x38\n\x06\x43hoice\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04link\x10\x01\x12\x0b\n\x07\x63\x61pture\x10\x02\x42\t\n\x07_choice\"\xb9\x01\n\x0cStateTraffic\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.StateTraffic.Choice.EnumH\x00\x88\x01\x01\x12\x34\n\rflow_transmit\x18\x02 \x01(\x0b\x32\x1d.otg.StateTrafficFlowTransmit\x1a\x34\n\x06\x43hoice\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rflow_transmit\x10\x01\x42\t\n\x07_choice\"\xdf\x02\n\rStateProtocol\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.StateProtocol.Choice.EnumH\x00\x88\x01\x01\x12\"\n\x03\x61ll\x18\x02 \x01(\x0b\x32\x15.otg.StateProtocolAll\x12&\n\x05route\x18\x03 \x01(\x0b\x32\x17.otg.StateProtocolRoute\x12$\n\x04lacp\x18\x04 \x01(\x0b\x32\x16.otg.StateProtocolLacp\x12\"\n\x03\x62gp\x18\x05 \x01(\x0b\x32\x15.otg.StateProtocolBgp\x12$\n\x04isis\x18\x06 \x01(\x0b\x32\x16.otg.StateProtocolIsis\x1aR\n\x06\x43hoice\"H\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03\x61ll\x10\x01\x12\t\n\x05route\x10\x02\x12\x08\n\x04lacp\x10\x03\x12\x07\n\x03\x62gp\x10\x04\x12\x08\n\x04isis\x10\x05\x42\t\n\x07_choice\"\x94\x01\n\rStatePortLink\x12\x12\n\nport_names\x18\x01 \x03(\t\x12\x31\n\x05state\x18\x02 \x01(\x0e\x32\x1d.otg.StatePortLink.State.EnumH\x00\x88\x01\x01\x1a\x32\n\x05State\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x08\n\x06_state\"\x9d\x01\n\x10StatePortCapture\x12\x12\n\nport_names\x18\x01 \x03(\t\x12\x34\n\x05state\x18\x02 \x01(\x0e\x32 .otg.StatePortCapture.State.EnumH\x00\x88\x01\x01\x1a\x35\n\x05State\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\x42\x08\n\x06_state\"\xc4\x01\n\x18StateTrafficFlowTransmit\x12\x12\n\nflow_names\x18\x01 \x03(\t\x12<\n\x05state\x18\x02 \x01(\x0e\x32(.otg.StateTrafficFlowTransmit.State.EnumH\x00\x88\x01\x01\x1aL\n\x05State\"C\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\x12\t\n\x05pause\x10\x03\x12\n\n\x06resume\x10\x04\x42\x08\n\x06_state\"\x89\x01\n\x10StateProtocolAll\x12\x34\n\x05state\x18\x01 \x01(\x0e\x32 .otg.StateProtocolAll.State.EnumH\x00\x88\x01\x01\x1a\x35\n\x05State\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\x42\x08\n\x06_state\"\xa4\x01\n\x12StateProtocolRoute\x12\r\n\x05names\x18\x01 \x03(\t\x12\x36\n\x05state\x18\x02 \x01(\x0e\x32\".otg.StateProtocolRoute.State.EnumH\x00\x88\x01\x01\x1a=\n\x05State\"4\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08withdraw\x10\x01\x12\r\n\tadvertise\x10\x02\x42\x08\n\x06_state\"\xfc\x01\n\x11StateProtocolLacp\x12\x37\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.StateProtocolLacp.Choice.EnumH\x00\x88\x01\x01\x12*\n\x05\x61\x64min\x18\x02 \x01(\x0b\x32\x1b.otg.StateProtocolLacpAdmin\x12\x37\n\x0cmember_ports\x18\x03 \x01(\x0b\x32!.otg.StateProtocolLacpMemberPorts\x1a>\n\x06\x43hoice\"4\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x61\x64min\x10\x01\x12\x10\n\x0cmember_ports\x10\x02\x42\t\n\x07_choice\"\xac\x01\n\x16StateProtocolLacpAdmin\x12\x18\n\x10lag_member_names\x18\x01 \x03(\t\x12:\n\x05state\x18\x02 \x01(\x0e\x32&.otg.StateProtocolLacpAdmin.State.EnumH\x00\x88\x01\x01\x1a\x32\n\x05State\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x08\n\x06_state\"\xb8\x01\n\x1cStateProtocolLacpMemberPorts\x12\x18\n\x10lag_member_names\x18\x01 \x03(\t\x12@\n\x05state\x18\x02 \x01(\x0e\x32,.otg.StateProtocolLacpMemberPorts.State.EnumH\x00\x88\x01\x01\x1a\x32\n\x05State\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x08\n\x06_state\"\xae\x01\n\x10StateProtocolBgp\x12\x36\n\x06\x63hoice\x18\x01 \x01(\x0e\x32!.otg.StateProtocolBgp.Choice.EnumH\x00\x88\x01\x01\x12)\n\x05peers\x18\x02 \x01(\x0b\x32\x1a.otg.StateProtocolBgpPeers\x1a,\n\x06\x43hoice\"\"\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05peers\x10\x01\x42\t\n\x07_choice\"\xa4\x01\n\x15StateProtocolBgpPeers\x12\x12\n\npeer_names\x18\x01 \x03(\t\x12\x39\n\x05state\x18\x02 \x01(\x0e\x32%.otg.StateProtocolBgpPeers.State.EnumH\x00\x88\x01\x01\x1a\x32\n\x05State\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x08\n\x06_state\"\xb7\x01\n\x11StateProtocolIsis\x12\x37\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.StateProtocolIsis.Choice.EnumH\x00\x88\x01\x01\x12.\n\x07routers\x18\x02 \x01(\x0b\x32\x1d.otg.StateProtocolIsisRouters\x1a.\n\x06\x43hoice\"$\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07routers\x10\x01\x42\t\n\x07_choice\"\xac\x01\n\x18StateProtocolIsisRouters\x12\x14\n\x0crouter_names\x18\x01 \x03(\t\x12<\n\x05state\x18\x02 \x01(\x0e\x32(.otg.StateProtocolIsisRouters.State.EnumH\x00\x88\x01\x01\x1a\x32\n\x05State\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x08\n\x06_state\"\xa7\x01\n\rControlAction\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.ControlAction.Choice.EnumH\x00\x88\x01\x01\x12%\n\x08protocol\x18\x02 \x01(\x0b\x32\x13.otg.ActionProtocol\x1a/\n\x06\x43hoice\"%\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08protocol\x10\x01\x42\t\n\x07_choice\"P\n\x15\x43ontrolActionResponse\x12\x10\n\x08warnings\x18\x01 \x03(\t\x12%\n\x08response\x18\x02 \x01(\x0b\x32\x13.otg.ActionResponse\"\xb1\x01\n\x0e\x41\x63tionResponse\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.ActionResponse.Choice.EnumH\x00\x88\x01\x01\x12-\n\x08protocol\x18\x02 \x01(\x0b\x32\x1b.otg.ActionResponseProtocol\x1a/\n\x06\x43hoice\"%\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08protocol\x10\x01\x42\t\n\x07_choice\"\x84\x02\n\x0e\x41\x63tionProtocol\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.ActionProtocol.Choice.EnumH\x00\x88\x01\x01\x12%\n\x04ipv4\x18\x02 \x01(\x0b\x32\x17.otg.ActionProtocolIpv4\x12%\n\x04ipv6\x18\x03 \x01(\x0b\x32\x17.otg.ActionProtocolIpv6\x12#\n\x03\x62gp\x18\x04 \x01(\x0b\x32\x16.otg.ActionProtocolBgp\x1a>\n\x06\x43hoice\"4\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x12\x07\n\x03\x62gp\x10\x03\x42\t\n\x07_choice\"\xf6\x01\n\x16\x41\x63tionResponseProtocol\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.ActionResponseProtocol.Choice.EnumH\x00\x88\x01\x01\x12-\n\x04ipv4\x18\x02 \x01(\x0b\x32\x1f.otg.ActionResponseProtocolIpv4\x12-\n\x04ipv6\x18\x03 \x01(\x0b\x32\x1f.otg.ActionResponseProtocolIpv6\x1a\x35\n\x06\x43hoice\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\t\n\x07_choice\"\xb1\x01\n\x12\x41\x63tionProtocolIpv4\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.ActionProtocolIpv4.Choice.EnumH\x00\x88\x01\x01\x12)\n\x04ping\x18\x02 \x01(\x0b\x32\x1b.otg.ActionProtocolIpv4Ping\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\t\n\x07_choice\"\xc9\x01\n\x1a\x41\x63tionResponseProtocolIpv4\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.ActionResponseProtocolIpv4.Choice.EnumH\x00\x88\x01\x01\x12\x31\n\x04ping\x18\x02 \x01(\x0b\x32#.otg.ActionResponseProtocolIpv4Ping\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\t\n\x07_choice\"N\n\x16\x41\x63tionProtocolIpv4Ping\x12\x34\n\x08requests\x18\x01 \x03(\x0b\x32\".otg.ActionProtocolIpv4PingRequest\"c\n\x1d\x41\x63tionProtocolIpv4PingRequest\x12\x15\n\x08src_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x64st_ip\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_src_nameB\t\n\x07_dst_ip\"`\n\x1e\x41\x63tionResponseProtocolIpv4Ping\x12>\n\tresponses\x18\x01 \x03(\x0b\x32+.otg.ActionResponseProtocolIpv4PingResponse\"\x83\x02\n&ActionResponseProtocolIpv4PingResponse\x12\x15\n\x08src_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x64st_ip\x18\x02 \x01(\tH\x01\x88\x01\x01\x12L\n\x06result\x18\x03 \x01(\x0e\x32\x37.otg.ActionResponseProtocolIpv4PingResponse.Result.EnumH\x02\x88\x01\x01\x1a<\n\x06Result\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tsucceeded\x10\x01\x12\n\n\x06\x66\x61iled\x10\x02\x42\x0b\n\t_src_nameB\t\n\x07_dst_ipB\t\n\x07_result\"\xb1\x01\n\x12\x41\x63tionProtocolIpv6\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.ActionProtocolIpv6.Choice.EnumH\x00\x88\x01\x01\x12)\n\x04ping\x18\x02 \x01(\x0b\x32\x1b.otg.ActionProtocolIpv6Ping\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\t\n\x07_choice\"\xc9\x01\n\x1a\x41\x63tionResponseProtocolIpv6\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.ActionResponseProtocolIpv6.Choice.EnumH\x00\x88\x01\x01\x12\x31\n\x04ping\x18\x02 \x01(\x0b\x32#.otg.ActionResponseProtocolIpv6Ping\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\t\n\x07_choice\"N\n\x16\x41\x63tionProtocolIpv6Ping\x12\x34\n\x08requests\x18\x01 \x03(\x0b\x32\".otg.ActionProtocolIpv6PingRequest\"c\n\x1d\x41\x63tionProtocolIpv6PingRequest\x12\x15\n\x08src_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x64st_ip\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_src_nameB\t\n\x07_dst_ip\"`\n\x1e\x41\x63tionResponseProtocolIpv6Ping\x12>\n\tresponses\x18\x01 \x03(\x0b\x32+.otg.ActionResponseProtocolIpv6PingResponse\"\x83\x02\n&ActionResponseProtocolIpv6PingResponse\x12\x15\n\x08src_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x64st_ip\x18\x02 \x01(\tH\x01\x88\x01\x01\x12L\n\x06result\x18\x03 \x01(\x0e\x32\x37.otg.ActionResponseProtocolIpv6PingResponse.Result.EnumH\x02\x88\x01\x01\x1a<\n\x06Result\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tsucceeded\x10\x01\x12\n\n\x06\x66\x61iled\x10\x02\x42\x0b\n\t_src_nameB\t\n\x07_dst_ipB\t\n\x07_result\"\xb7\x02\n\x11\x41\x63tionProtocolBgp\x12\x37\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.ActionProtocolBgp.Choice.EnumH\x00\x88\x01\x01\x12\x38\n\x0cnotification\x18\x02 \x01(\x0b\x32\".otg.ActionProtocolBgpNotification\x12P\n\x19initiate_graceful_restart\x18\x03 \x01(\x0b\x32-.otg.ActionProtocolBgpInitiateGracefulRestart\x1aR\n\x06\x43hoice\"H\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0cnotification\x10\x01\x12\x1d\n\x19initiate_graceful_restart\x10\x02\x42\t\n\x07_choice\"\xd5\x05\n\x1d\x41\x63tionProtocolBgpNotification\x12\r\n\x05names\x18\x01 \x03(\t\x12\x43\n\x06\x63hoice\x18\x02 \x01(\x0e\x32..otg.ActionProtocolBgpNotification.Choice.EnumH\x00\x88\x01\x01\x12\'\n\x05\x63\x65\x61se\x18\x03 \x01(\x0b\x32\x18.otg.DeviceBgpCeaseError\x12>\n\x14message_header_error\x18\x04 \x01(\x0b\x32 .otg.DeviceBgpMessageHeaderError\x12:\n\x12open_message_error\x18\x05 \x01(\x0b\x32\x1e.otg.DeviceBgpOpenMessageError\x12>\n\x14update_message_error\x18\x06 \x01(\x0b\x32 .otg.DeviceBgpUpdateMessageError\x12:\n\x12hold_timer_expired\x18\x07 \x01(\x0b\x32\x1e.otg.DeviceBgpHoldTimerExpired\x12I\n\x1a\x66inite_state_machine_error\x18\x08 \x01(\x0b\x32%.otg.DeviceBgpFiniteStateMachineError\x12)\n\x06\x63ustom\x18\t \x01(\x0b\x32\x19.otg.DeviceBgpCustomError\x1a\xbd\x01\n\x06\x43hoice\"\xb2\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x63\x65\x61se\x10\x01\x12\x18\n\x14message_header_error\x10\x02\x12\x16\n\x12open_message_error\x10\x03\x12\x18\n\x14update_message_error\x10\x04\x12\x16\n\x12hold_timer_expired\x10\x05\x12\x1e\n\x1a\x66inite_state_machine_error\x10\x06\x12\n\n\x06\x63ustom\x10\x07\x42\t\n\x07_choice\"l\n(ActionProtocolBgpInitiateGracefulRestart\x12\x12\n\npeer_names\x18\x01 \x03(\t\x12\x1a\n\rrestart_delay\x18\x02 \x01(\rH\x00\x88\x01\x01\x42\x10\n\x0e_restart_delay\"\xb0\x04\n\x0eMetricsRequest\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.MetricsRequest.Choice.EnumH\x00\x88\x01\x01\x12%\n\x04port\x18\x02 \x01(\x0b\x32\x17.otg.PortMetricsRequest\x12%\n\x04\x66low\x18\x03 \x01(\x0b\x32\x17.otg.FlowMetricsRequest\x12\'\n\x05\x62gpv4\x18\x04 \x01(\x0b\x32\x18.otg.Bgpv4MetricsRequest\x12\'\n\x05\x62gpv6\x18\x05 \x01(\x0b\x32\x18.otg.Bgpv6MetricsRequest\x12%\n\x04isis\x18\x06 \x01(\x0b\x32\x17.otg.IsisMetricsRequest\x12#\n\x03lag\x18\x07 \x01(\x0b\x32\x16.otg.LagMetricsRequest\x12%\n\x04lacp\x18\x08 \x01(\x0b\x32\x17.otg.LacpMetricsRequest\x12%\n\x04lldp\x18\t \x01(\x0b\x32\x17.otg.LldpMetricsRequest\x12%\n\x04rsvp\x18\n \x01(\x0b\x32\x17.otg.RsvpMetricsRequest\x1a|\n\x06\x43hoice\"r\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04port\x10\x01\x12\x08\n\x04\x66low\x10\x02\x12\t\n\x05\x62gpv4\x10\x03\x12\t\n\x05\x62gpv6\x10\x04\x12\x08\n\x04isis\x10\x05\x12\x07\n\x03lag\x10\x06\x12\x08\n\x04lacp\x10\x07\x12\x08\n\x04lldp\x10\x08\x12\x08\n\x04rsvp\x10\tB\t\n\x07_choice\"\xfc\x04\n\x0fMetricsResponse\x12\x35\n\x06\x63hoice\x18\x01 \x01(\x0e\x32 .otg.MetricsResponse.Choice.EnumH\x00\x88\x01\x01\x12%\n\x0cport_metrics\x18\x02 \x03(\x0b\x32\x0f.otg.PortMetric\x12%\n\x0c\x66low_metrics\x18\x03 \x03(\x0b\x32\x0f.otg.FlowMetric\x12\'\n\rbgpv4_metrics\x18\x04 \x03(\x0b\x32\x10.otg.Bgpv4Metric\x12\'\n\rbgpv6_metrics\x18\x05 \x03(\x0b\x32\x10.otg.Bgpv6Metric\x12%\n\x0cisis_metrics\x18\x06 \x03(\x0b\x32\x0f.otg.IsisMetric\x12#\n\x0blag_metrics\x18\x07 \x03(\x0b\x32\x0e.otg.LagMetric\x12%\n\x0clacp_metrics\x18\x08 \x03(\x0b\x32\x0f.otg.LacpMetric\x12%\n\x0clldp_metrics\x18\t \x03(\x0b\x32\x0f.otg.LldpMetric\x12%\n\x0crsvp_metrics\x18\n \x03(\x0b\x32\x0f.otg.RsvpMetric\x1a\xc5\x01\n\x06\x43hoice\"\xba\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0c\x66low_metrics\x10\x01\x12\x10\n\x0cport_metrics\x10\x02\x12\x11\n\rbgpv4_metrics\x10\x03\x12\x11\n\rbgpv6_metrics\x10\x04\x12\x10\n\x0cisis_metrics\x10\x05\x12\x0f\n\x0blag_metrics\x10\x06\x12\x10\n\x0clacp_metrics\x10\x07\x12\x10\n\x0clldp_metrics\x10\x08\x12\x10\n\x0crsvp_metrics\x10\tB\t\n\x07_choice\"\xcd\x02\n\x12PortMetricsRequest\x12\x12\n\nport_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.PortMetricsRequest.ColumnNames.Enum\x1a\xe2\x01\n\x0b\x43olumnNames\"\xd2\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08transmit\x10\x01\x12\x0c\n\x08location\x10\x02\x12\x08\n\x04link\x10\x03\x12\x0b\n\x07\x63\x61pture\x10\x04\x12\r\n\tframes_tx\x10\x05\x12\r\n\tframes_rx\x10\x06\x12\x0c\n\x08\x62ytes_tx\x10\x07\x12\x0c\n\x08\x62ytes_rx\x10\x08\x12\x12\n\x0e\x66rames_tx_rate\x10\t\x12\x12\n\x0e\x66rames_rx_rate\x10\n\x12\x11\n\rbytes_tx_rate\x10\x0b\x12\x11\n\rbytes_rx_rate\x10\x0c\"\x86\x06\n\nPortMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08location\x18\x02 \x01(\tH\x01\x88\x01\x01\x12,\n\x04link\x18\x03 \x01(\x0e\x32\x19.otg.PortMetric.Link.EnumH\x02\x88\x01\x01\x12\x32\n\x07\x63\x61pture\x18\x04 \x01(\x0e\x32\x1c.otg.PortMetric.Capture.EnumH\x03\x88\x01\x01\x12\x16\n\tframes_tx\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x16\n\tframes_rx\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\t \x01(\x02H\x08\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\n \x01(\x02H\t\x88\x01\x01\x12\x1a\n\rbytes_tx_rate\x18\x0b \x01(\x02H\n\x88\x01\x01\x12\x1a\n\rbytes_rx_rate\x18\x0c \x01(\x02H\x0b\x88\x01\x01\x12\x34\n\x08transmit\x18\r \x01(\x0e\x32\x1d.otg.PortMetric.Transmit.EnumH\x0c\x88\x01\x01\x1a\x31\n\x04Link\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1a<\n\x07\x43\x61pture\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07started\x10\x01\x12\x0b\n\x07stopped\x10\x02\x1a=\n\x08Transmit\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07started\x10\x01\x12\x0b\n\x07stopped\x10\x02\x42\x07\n\x05_nameB\x0b\n\t_locationB\x07\n\x05_linkB\n\n\x08_captureB\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x10\n\x0e_bytes_tx_rateB\x10\n\x0e_bytes_rx_rateB\x0b\n\t_transmit\"\xb8\x02\n\x12\x46lowMetricsRequest\x12\x12\n\nflow_names\x18\x01 \x03(\t\x12>\n\x0cmetric_names\x18\x03 \x03(\x0e\x32(.otg.FlowMetricsRequest.MetricNames.Enum\x12\x34\n\x0etagged_metrics\x18\x04 \x01(\x0b\x32\x1c.otg.FlowTaggedMetricsFilter\x1a\x97\x01\n\x0bMetricNames\"\x87\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08transmit\x10\x01\x12\r\n\tframes_tx\x10\x02\x12\r\n\tframes_rx\x10\x03\x12\x0c\n\x08\x62ytes_tx\x10\x04\x12\x0c\n\x08\x62ytes_rx\x10\x05\x12\x12\n\x0e\x66rames_tx_rate\x10\x06\x12\x12\n\x0e\x66rames_rx_rate\x10\x07\"\xf4\x02\n\x17\x46lowTaggedMetricsFilter\x12\x14\n\x07include\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x15include_empty_metrics\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x43\n\x0cmetric_names\x18\x03 \x03(\x0e\x32-.otg.FlowTaggedMetricsFilter.MetricNames.Enum\x12)\n\x07\x66ilters\x18\x04 \x03(\x0b\x32\x18.otg.FlowMetricTagFilter\x1a\x88\x01\n\x0bMetricNames\"y\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tframes_tx\x10\x01\x12\r\n\tframes_rx\x10\x02\x12\x0c\n\x08\x62ytes_tx\x10\x03\x12\x0c\n\x08\x62ytes_rx\x10\x04\x12\x12\n\x0e\x66rames_tx_rate\x10\x05\x12\x12\n\x0e\x66rames_rx_rate\x10\x06\x42\n\n\x08_includeB\x18\n\x16_include_empty_metrics\"A\n\x13\x46lowMetricTagFilter\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0e\n\x06values\x18\x02 \x03(\tB\x07\n\x05_name\"\x88\x05\n\nFlowMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07port_tx\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07port_rx\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x34\n\x08transmit\x18\x05 \x01(\x0e\x32\x1d.otg.FlowMetric.Transmit.EnumH\x03\x88\x01\x01\x12\x16\n\tframes_tx\x18\x06 \x01(\x04H\x04\x88\x01\x01\x12\x16\n\tframes_rx\x18\x07 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x08 \x01(\x04H\x06\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\t \x01(\x04H\x07\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\n \x01(\x02H\x08\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\x0b \x01(\x02H\t\x88\x01\x01\x12\x11\n\x04loss\x18\x0c \x01(\x02H\n\x88\x01\x01\x12(\n\ntimestamps\x18\r \x01(\x0b\x32\x14.otg.MetricTimestamp\x12#\n\x07latency\x18\x0e \x01(\x0b\x32\x12.otg.MetricLatency\x12-\n\x0etagged_metrics\x18\x0f \x03(\x0b\x32\x15.otg.FlowTaggedMetric\x1aI\n\x08Transmit\"=\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07started\x10\x01\x12\x0b\n\x07stopped\x10\x02\x12\n\n\x06paused\x10\x03\x42\x07\n\x05_nameB\n\n\x08_port_txB\n\n\x08_port_rxB\x0b\n\t_transmitB\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x07\n\x05_loss\"\x93\x03\n\x10\x46lowTaggedMetric\x12 \n\x04tags\x18\x01 \x03(\x0b\x32\x12.otg.FlowMetricTag\x12\x16\n\tframes_tx\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x16\n\tframes_rx\x18\x03 \x01(\x04H\x01\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\x05 \x01(\x04H\x03\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\x06 \x01(\x02H\x04\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\x07 \x01(\x02H\x05\x88\x01\x01\x12\x11\n\x04loss\x18\x08 \x01(\x02H\x06\x88\x01\x01\x12(\n\ntimestamps\x18\t \x01(\x0b\x32\x14.otg.MetricTimestamp\x12#\n\x07latency\x18\n \x01(\x0b\x32\x12.otg.MetricLatencyB\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x07\n\x05_loss\"S\n\rFlowMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.otg.FlowMetricTagValueB\x07\n\x05_name\"\xc2\x01\n\x12\x46lowMetricTagValue\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.FlowMetricTagValue.Choice.EnumH\x00\x88\x01\x01\x12\x10\n\x03hex\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x10\n\x03str\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x33\n\x06\x43hoice\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03hex\x10\x01\x12\x07\n\x03str\x10\x02\x42\t\n\x07_choiceB\x06\n\x04_hexB\x06\n\x04_str\"\x7f\n\x0fMetricTimestamp\x12\x1f\n\x12\x66irst_timestamp_ns\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x1e\n\x11last_timestamp_ns\x18\x02 \x01(\x01H\x01\x88\x01\x01\x42\x15\n\x13_first_timestamp_nsB\x14\n\x12_last_timestamp_ns\"\x87\x01\n\rMetricLatency\x12\x17\n\nminimum_ns\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x17\n\nmaximum_ns\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x17\n\naverage_ns\x18\x03 \x01(\x01H\x02\x88\x01\x01\x42\r\n\x0b_minimum_nsB\r\n\x0b_maximum_nsB\r\n\x0b_average_ns\"\xf9\x03\n\x13\x42gpv4MetricsRequest\x12\x12\n\npeer_names\x18\x01 \x03(\t\x12?\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32).otg.Bgpv4MetricsRequest.ColumnNames.Enum\x1a\x8c\x03\n\x0b\x43olumnNames\"\xfc\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsession_state\x10\x01\x12\x16\n\x12session_flap_count\x10\x02\x12\x15\n\x11routes_advertised\x10\x03\x12\x13\n\x0froutes_received\x10\x04\x12\x18\n\x14route_withdraws_sent\x10\x05\x12\x1c\n\x18route_withdraws_received\x10\x06\x12\x10\n\x0cupdates_sent\x10\x07\x12\x14\n\x10updates_received\x10\x08\x12\x0e\n\nopens_sent\x10\t\x12\x12\n\x0eopens_received\x10\n\x12\x13\n\x0fkeepalives_sent\x10\x0b\x12\x17\n\x13keepalives_received\x10\x0c\x12\x16\n\x12notifications_sent\x10\r\x12\x1a\n\x16notifications_received\x10\x0e\x12\r\n\tfsm_state\x10\x0f\x12\x17\n\x13\x65nd_of_rib_received\x10\x10\"\xea\x08\n\x0b\x42gpv4Metric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12>\n\rsession_state\x18\x02 \x01(\x0e\x32\".otg.Bgpv4Metric.SessionState.EnumH\x01\x88\x01\x01\x12\x1f\n\x12session_flap_count\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1e\n\x11routes_advertised\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1c\n\x0froutes_received\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12!\n\x14route_withdraws_sent\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12%\n\x18route_withdraws_received\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x19\n\x0cupdates_sent\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x1d\n\x10updates_received\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x17\n\nopens_sent\x18\n \x01(\x04H\t\x88\x01\x01\x12\x1b\n\x0eopens_received\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1c\n\x0fkeepalives_sent\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12 \n\x13keepalives_received\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1f\n\x12notifications_sent\x18\x0e \x01(\x04H\r\x88\x01\x01\x12#\n\x16notifications_received\x18\x0f \x01(\x04H\x0e\x88\x01\x01\x12\x36\n\tfsm_state\x18\x10 \x01(\x0e\x32\x1e.otg.Bgpv4Metric.FsmState.EnumH\x0f\x88\x01\x01\x12 \n\x13\x65nd_of_rib_received\x18\x11 \x01(\x04H\x10\x88\x01\x01\x1a\x39\n\x0cSessionState\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1av\n\x08\x46smState\"j\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04idle\x10\x01\x12\x0b\n\x07\x63onnect\x10\x02\x12\n\n\x06\x61\x63tive\x10\x03\x12\x0c\n\x08opensent\x10\x04\x12\x0f\n\x0bopenconfirm\x10\x05\x12\x0f\n\x0b\x65stablished\x10\x06\x42\x07\n\x05_nameB\x10\n\x0e_session_stateB\x15\n\x13_session_flap_countB\x14\n\x12_routes_advertisedB\x12\n\x10_routes_receivedB\x17\n\x15_route_withdraws_sentB\x1b\n\x19_route_withdraws_receivedB\x0f\n\r_updates_sentB\x13\n\x11_updates_receivedB\r\n\x0b_opens_sentB\x11\n\x0f_opens_receivedB\x12\n\x10_keepalives_sentB\x16\n\x14_keepalives_receivedB\x15\n\x13_notifications_sentB\x19\n\x17_notifications_receivedB\x0c\n\n_fsm_stateB\x16\n\x14_end_of_rib_received\"\xf9\x03\n\x13\x42gpv6MetricsRequest\x12\x12\n\npeer_names\x18\x01 \x03(\t\x12?\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32).otg.Bgpv6MetricsRequest.ColumnNames.Enum\x1a\x8c\x03\n\x0b\x43olumnNames\"\xfc\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsession_state\x10\x01\x12\x16\n\x12session_flap_count\x10\x02\x12\x15\n\x11routes_advertised\x10\x03\x12\x13\n\x0froutes_received\x10\x04\x12\x18\n\x14route_withdraws_sent\x10\x05\x12\x1c\n\x18route_withdraws_received\x10\x06\x12\x10\n\x0cupdates_sent\x10\x07\x12\x14\n\x10updates_received\x10\x08\x12\x0e\n\nopens_sent\x10\t\x12\x12\n\x0eopens_received\x10\n\x12\x13\n\x0fkeepalives_sent\x10\x0b\x12\x17\n\x13keepalives_received\x10\x0c\x12\x16\n\x12notifications_sent\x10\r\x12\x1a\n\x16notifications_received\x10\x0e\x12\r\n\tfsm_state\x10\x0f\x12\x17\n\x13\x65nd_of_rib_received\x10\x10\"\xea\x08\n\x0b\x42gpv6Metric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12>\n\rsession_state\x18\x02 \x01(\x0e\x32\".otg.Bgpv6Metric.SessionState.EnumH\x01\x88\x01\x01\x12\x1f\n\x12session_flap_count\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1e\n\x11routes_advertised\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1c\n\x0froutes_received\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12!\n\x14route_withdraws_sent\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12%\n\x18route_withdraws_received\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x19\n\x0cupdates_sent\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x1d\n\x10updates_received\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x17\n\nopens_sent\x18\n \x01(\x04H\t\x88\x01\x01\x12\x1b\n\x0eopens_received\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1c\n\x0fkeepalives_sent\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12 \n\x13keepalives_received\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1f\n\x12notifications_sent\x18\x0e \x01(\x04H\r\x88\x01\x01\x12#\n\x16notifications_received\x18\x0f \x01(\x04H\x0e\x88\x01\x01\x12\x36\n\tfsm_state\x18\x10 \x01(\x0e\x32\x1e.otg.Bgpv6Metric.FsmState.EnumH\x0f\x88\x01\x01\x12 \n\x13\x65nd_of_rib_received\x18\x11 \x01(\x04H\x10\x88\x01\x01\x1a\x39\n\x0cSessionState\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1av\n\x08\x46smState\"j\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04idle\x10\x01\x12\x0b\n\x07\x63onnect\x10\x02\x12\n\n\x06\x61\x63tive\x10\x03\x12\x0c\n\x08opensent\x10\x04\x12\x0f\n\x0bopenconfirm\x10\x05\x12\x0f\n\x0b\x65stablished\x10\x06\x42\x07\n\x05_nameB\x10\n\x0e_session_stateB\x15\n\x13_session_flap_countB\x14\n\x12_routes_advertisedB\x12\n\x10_routes_receivedB\x17\n\x15_route_withdraws_sentB\x1b\n\x19_route_withdraws_receivedB\x0f\n\r_updates_sentB\x13\n\x11_updates_receivedB\r\n\x0b_opens_sentB\x11\n\x0f_opens_receivedB\x12\n\x10_keepalives_sentB\x16\n\x14_keepalives_receivedB\x15\n\x13_notifications_sentB\x19\n\x17_notifications_receivedB\x0c\n\n_fsm_stateB\x16\n\x14_end_of_rib_received\"\x92\x06\n\x12IsisMetricsRequest\x12\x14\n\x0crouter_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.IsisMetricsRequest.ColumnNames.Enum\x1a\xa5\x05\n\x0b\x43olumnNames\"\x95\x05\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0el1_sessions_up\x10\x01\x12\x13\n\x0fl1_session_flap\x10\x02\x12\x14\n\x10l1_database_size\x10\x03\x12\x1c\n\x18l1_broadcast_hellos_sent\x10\x04\x12 \n\x1cl1_broadcast_hellos_received\x10\x05\x12!\n\x1dl1_point_to_point_hellos_sent\x10\x06\x12%\n!l1_point_to_point_hellos_received\x10\x07\x12\x10\n\x0cl1_psnp_sent\x10\x08\x12\x14\n\x10l1_psnp_received\x10\t\x12\x10\n\x0cl1_csnp_sent\x10\n\x12\x14\n\x10l1_csnp_received\x10\x0b\x12\x0f\n\x0bl1_lsp_sent\x10\x0c\x12\x13\n\x0fl1_lsp_received\x10\r\x12\x12\n\x0el2_sessions_up\x10\x0e\x12\x13\n\x0fl2_session_flap\x10\x0f\x12\x14\n\x10l2_database_size\x10\x10\x12\x1c\n\x18l2_broadcast_hellos_sent\x10\x11\x12 \n\x1cl2_broadcast_hellos_received\x10\x12\x12!\n\x1dl2_point_to_point_hellos_sent\x10\x13\x12%\n!l2_point_to_point_hellos_received\x10\x14\x12\x10\n\x0cl2_psnp_sent\x10\x15\x12\x14\n\x10l2_psnp_received\x10\x16\x12\x10\n\x0cl2_csnp_sent\x10\x17\x12\x14\n\x10l2_csnp_received\x10\x18\x12\x0f\n\x0bl2_lsp_sent\x10\x19\x12\x13\n\x0fl2_lsp_received\x10\x1a\"\xf4\x0b\n\nIsisMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0el1_sessions_up\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1c\n\x0fl1_session_flap\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12%\n\x18l1_broadcast_hellos_sent\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12)\n\x1cl1_broadcast_hellos_received\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12*\n\x1dl1_point_to_point_hellos_sent\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12.\n!l1_point_to_point_hellos_received\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x1d\n\x10l1_database_size\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x19\n\x0cl1_psnp_sent\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x1d\n\x10l1_psnp_received\x18\n \x01(\x04H\t\x88\x01\x01\x12\x19\n\x0cl1_csnp_sent\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1d\n\x10l1_csnp_received\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12\x18\n\x0bl1_lsp_sent\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1c\n\x0fl1_lsp_received\x18\x0e \x01(\x04H\r\x88\x01\x01\x12\x1b\n\x0el2_sessions_up\x18\x0f \x01(\rH\x0e\x88\x01\x01\x12\x1c\n\x0fl2_session_flap\x18\x10 \x01(\x04H\x0f\x88\x01\x01\x12%\n\x18l2_broadcast_hellos_sent\x18\x11 \x01(\x04H\x10\x88\x01\x01\x12)\n\x1cl2_broadcast_hellos_received\x18\x12 \x01(\x04H\x11\x88\x01\x01\x12*\n\x1dl2_point_to_point_hellos_sent\x18\x13 \x01(\x04H\x12\x88\x01\x01\x12.\n!l2_point_to_point_hellos_received\x18\x14 \x01(\x04H\x13\x88\x01\x01\x12\x1d\n\x10l2_database_size\x18\x15 \x01(\x04H\x14\x88\x01\x01\x12\x19\n\x0cl2_psnp_sent\x18\x16 \x01(\x04H\x15\x88\x01\x01\x12\x1d\n\x10l2_psnp_received\x18\x17 \x01(\x04H\x16\x88\x01\x01\x12\x19\n\x0cl2_csnp_sent\x18\x18 \x01(\x04H\x17\x88\x01\x01\x12\x1d\n\x10l2_csnp_received\x18\x19 \x01(\x04H\x18\x88\x01\x01\x12\x18\n\x0bl2_lsp_sent\x18\x1a \x01(\x04H\x19\x88\x01\x01\x12\x1c\n\x0fl2_lsp_received\x18\x1b \x01(\x04H\x1a\x88\x01\x01\x42\x07\n\x05_nameB\x11\n\x0f_l1_sessions_upB\x12\n\x10_l1_session_flapB\x1b\n\x19_l1_broadcast_hellos_sentB\x1f\n\x1d_l1_broadcast_hellos_receivedB \n\x1e_l1_point_to_point_hellos_sentB$\n\"_l1_point_to_point_hellos_receivedB\x13\n\x11_l1_database_sizeB\x0f\n\r_l1_psnp_sentB\x13\n\x11_l1_psnp_receivedB\x0f\n\r_l1_csnp_sentB\x13\n\x11_l1_csnp_receivedB\x0e\n\x0c_l1_lsp_sentB\x12\n\x10_l1_lsp_receivedB\x11\n\x0f_l2_sessions_upB\x12\n\x10_l2_session_flapB\x1b\n\x19_l2_broadcast_hellos_sentB\x1f\n\x1d_l2_broadcast_hellos_receivedB \n\x1e_l2_point_to_point_hellos_sentB$\n\"_l2_point_to_point_hellos_receivedB\x13\n\x11_l2_database_sizeB\x0f\n\r_l2_psnp_sentB\x13\n\x11_l2_psnp_receivedB\x0f\n\r_l2_csnp_sentB\x13\n\x11_l2_csnp_receivedB\x0e\n\x0c_l2_lsp_sentB\x12\n\x10_l2_lsp_received\"\xbd\x02\n\x11LagMetricsRequest\x12\x11\n\tlag_names\x18\x01 \x03(\t\x12=\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32\'.otg.LagMetricsRequest.ColumnNames.Enum\x1a\xd5\x01\n\x0b\x43olumnNames\"\xc5\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0f\n\x0boper_status\x10\x01\x12\x13\n\x0fmember_ports_up\x10\x02\x12\r\n\tframes_tx\x10\x03\x12\r\n\tframes_rx\x10\x04\x12\x0c\n\x08\x62ytes_tx\x10\x05\x12\x0c\n\x08\x62ytes_rx\x10\x06\x12\x12\n\x0e\x66rames_tx_rate\x10\x07\x12\x12\n\x0e\x66rames_rx_rate\x10\x08\x12\x11\n\rbytes_tx_rate\x10\t\x12\x11\n\rbytes_rx_rate\x10\n\"\xac\x04\n\tLagMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x38\n\x0boper_status\x18\x02 \x01(\x0e\x32\x1e.otg.LagMetric.OperStatus.EnumH\x01\x88\x01\x01\x12\x1c\n\x0fmember_ports_up\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x16\n\tframes_tx\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x16\n\tframes_rx\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\x08 \x01(\x02H\x07\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\t \x01(\x02H\x08\x88\x01\x01\x12\x1a\n\rbytes_tx_rate\x18\n \x01(\x02H\t\x88\x01\x01\x12\x1a\n\rbytes_rx_rate\x18\x0b \x01(\x02H\n\x88\x01\x01\x1a\x37\n\nOperStatus\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x07\n\x05_nameB\x0e\n\x0c_oper_statusB\x12\n\x10_member_ports_upB\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x10\n\x0e_bytes_tx_rateB\x10\n\x0e_bytes_rx_rate\"\xb4\x03\n\x12LacpMetricsRequest\x12\x11\n\tlag_names\x18\x01 \x03(\t\x12\x1d\n\x15lag_member_port_names\x18\x02 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x03 \x03(\x0e\x32(.otg.LacpMetricsRequest.ColumnNames.Enum\x1a\xab\x02\n\x0b\x43olumnNames\"\x9b\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x13\n\x0flacp_packets_rx\x10\x01\x12\x13\n\x0flacp_packets_tx\x10\x02\x12\x12\n\x0elacp_rx_errors\x10\x03\x12\x0c\n\x08\x61\x63tivity\x10\x04\x12\x0b\n\x07timeout\x10\x05\x12\x13\n\x0fsynchronization\x10\x06\x12\x10\n\x0c\x61ggregatable\x10\x07\x12\x0e\n\ncollecting\x10\x08\x12\x10\n\x0c\x64istributing\x10\t\x12\r\n\tsystem_id\x10\n\x12\x0c\n\x08oper_key\x10\x0b\x12\x0e\n\npartner_id\x10\x0c\x12\x0f\n\x0bpartner_key\x10\r\x12\x0c\n\x08port_num\x10\x0e\x12\x14\n\x10partner_port_num\x10\x0f\"\x8d\x08\n\nLacpMetric\x12\x15\n\x08lag_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12!\n\x14lag_member_port_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0flacp_packets_rx\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1c\n\x0flacp_packets_tx\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1b\n\x0elacp_rx_errors\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x34\n\x08\x61\x63tivity\x18\x06 \x01(\x0e\x32\x1d.otg.LacpMetric.Activity.EnumH\x05\x88\x01\x01\x12\x32\n\x07timeout\x18\x07 \x01(\x0e\x32\x1c.otg.LacpMetric.Timeout.EnumH\x06\x88\x01\x01\x12\x42\n\x0fsynchronization\x18\x08 \x01(\x0e\x32$.otg.LacpMetric.Synchronization.EnumH\x07\x88\x01\x01\x12\x19\n\x0c\x61ggregatable\x18\t \x01(\x08H\x08\x88\x01\x01\x12\x17\n\ncollecting\x18\n \x01(\x08H\t\x88\x01\x01\x12\x19\n\x0c\x64istributing\x18\x0b \x01(\x08H\n\x88\x01\x01\x12\x16\n\tsystem_id\x18\x0c \x01(\tH\x0b\x88\x01\x01\x12\x15\n\x08oper_key\x18\r \x01(\rH\x0c\x88\x01\x01\x12\x17\n\npartner_id\x18\x0e \x01(\tH\r\x88\x01\x01\x12\x18\n\x0bpartner_key\x18\x0f \x01(\rH\x0e\x88\x01\x01\x12\x15\n\x08port_num\x18\x10 \x01(\rH\x0f\x88\x01\x01\x12\x1d\n\x10partner_port_num\x18\x11 \x01(\rH\x10\x88\x01\x01\x1a<\n\x08\x41\x63tivity\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x61\x63tive\x10\x01\x12\x0b\n\x07passive\x10\x02\x1a\x37\n\x07Timeout\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05short\x10\x01\x12\x08\n\x04long\x10\x02\x1a\x45\n\x0fSynchronization\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07in_sync\x10\x01\x12\x0c\n\x08out_sync\x10\x02\x42\x0b\n\t_lag_nameB\x17\n\x15_lag_member_port_nameB\x12\n\x10_lacp_packets_rxB\x12\n\x10_lacp_packets_txB\x11\n\x0f_lacp_rx_errorsB\x0b\n\t_activityB\n\n\x08_timeoutB\x12\n\x10_synchronizationB\x0f\n\r_aggregatableB\r\n\x0b_collectingB\x0f\n\r_distributingB\x0c\n\n_system_idB\x0b\n\t_oper_keyB\r\n\x0b_partner_idB\x0e\n\x0c_partner_keyB\x0b\n\t_port_numB\x13\n\x11_partner_port_num\"\xfd\x01\n\x12LldpMetricsRequest\x12\x12\n\nlldp_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.LldpMetricsRequest.ColumnNames.Enum\x1a\x92\x01\n\x0b\x43olumnNames\"\x82\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tframes_rx\x10\x01\x12\r\n\tframes_tx\x10\x02\x12\x13\n\x0f\x66rames_error_rx\x10\x03\x12\x12\n\x0e\x66rames_discard\x10\x04\x12\x10\n\x0ctlvs_discard\x10\x05\x12\x10\n\x0ctlvs_unknown\x10\x06\"\xae\x02\n\nLldpMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tframes_rx\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x16\n\tframes_tx\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1c\n\x0f\x66rames_error_rx\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1b\n\x0e\x66rames_discard\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x19\n\x0ctlvs_discard\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x19\n\x0ctlvs_unknown\x18\x07 \x01(\x04H\x06\x88\x01\x01\x42\x07\n\x05_nameB\x0c\n\n_frames_rxB\x0c\n\n_frames_txB\x12\n\x10_frames_error_rxB\x11\n\x0f_frames_discardB\x0f\n\r_tlvs_discardB\x0f\n\r_tlvs_unknown\"\xc2\x05\n\x12RsvpMetricsRequest\x12\x14\n\x0crouter_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.RsvpMetricsRequest.ColumnNames.Enum\x1a\xd5\x04\n\x0b\x43olumnNames\"\xc5\x04\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1f\n\x1bingress_p2p_lsps_configured\x10\x01\x12\x17\n\x13ingress_p2p_lsps_up\x10\x02\x12\x16\n\x12\x65gress_p2p_lsps_up\x10\x03\x12\x12\n\x0elsp_flap_count\x10\x04\x12\x0c\n\x08paths_tx\x10\x05\x12\x0c\n\x08paths_rx\x10\x06\x12\x0c\n\x08resvs_tx\x10\x07\x12\x0c\n\x08resvs_rx\x10\x08\x12\x11\n\rpath_tears_tx\x10\t\x12\x11\n\rpath_tears_rx\x10\n\x12\x11\n\rresv_tears_tx\x10\x0b\x12\x11\n\rresv_tears_rx\x10\x0c\x12\x12\n\x0epath_errors_tx\x10\r\x12\x12\n\x0epath_errors_rx\x10\x0e\x12\x12\n\x0eresv_errors_tx\x10\x0f\x12\x12\n\x0eresv_errors_rx\x10\x10\x12\x10\n\x0cresv_conf_tx\x10\x11\x12\x10\n\x0cresv_conf_rx\x10\x12\x12\r\n\thellos_tx\x10\x13\x12\r\n\thellos_rx\x10\x14\x12\x0b\n\x07\x61\x63ks_tx\x10\x15\x12\x0b\n\x07\x61\x63ks_rx\x10\x16\x12\x0c\n\x08nacks_tx\x10\x17\x12\x0c\n\x08nacks_rx\x10\x18\x12\x0f\n\x0bsrefresh_tx\x10\x19\x12\x0f\n\x0bsrefresh_rx\x10\x1a\x12\r\n\tbundle_tx\x10\x1b\x12\r\n\tbundle_rx\x10\x1c\x12 \n\x1cpath_reevaluation_request_tx\x10\x1d\x12\x18\n\x14path_reoptimizations\x10\x1e\"\xf4\n\n\nRsvpMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12(\n\x1bingress_p2p_lsps_configured\x18\x02 \x01(\rH\x01\x88\x01\x01\x12 \n\x13ingress_p2p_lsps_up\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1f\n\x12\x65gress_p2p_lsps_up\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1b\n\x0elsp_flap_count\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x15\n\x08paths_tx\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x15\n\x08paths_rx\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x15\n\x08resvs_tx\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x15\n\x08resvs_rx\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x1a\n\rpath_tears_tx\x18\n \x01(\x04H\t\x88\x01\x01\x12\x1a\n\rpath_tears_rx\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1a\n\rresv_tears_tx\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12\x1a\n\rresv_tears_rx\x18\r \x01(\x04H\x0c\x88\x01\x01\x12\x1b\n\x0epath_errors_tx\x18\x0e \x01(\x04H\r\x88\x01\x01\x12\x1b\n\x0epath_errors_rx\x18\x0f \x01(\x04H\x0e\x88\x01\x01\x12\x1b\n\x0eresv_errors_tx\x18\x10 \x01(\x04H\x0f\x88\x01\x01\x12\x1b\n\x0eresv_errors_rx\x18\x11 \x01(\x04H\x10\x88\x01\x01\x12\x19\n\x0cresv_conf_tx\x18\x12 \x01(\x04H\x11\x88\x01\x01\x12\x19\n\x0cresv_conf_rx\x18\x13 \x01(\x04H\x12\x88\x01\x01\x12\x16\n\thellos_tx\x18\x14 \x01(\x04H\x13\x88\x01\x01\x12\x16\n\thellos_rx\x18\x15 \x01(\x04H\x14\x88\x01\x01\x12\x14\n\x07\x61\x63ks_tx\x18\x16 \x01(\x04H\x15\x88\x01\x01\x12\x14\n\x07\x61\x63ks_rx\x18\x17 \x01(\x04H\x16\x88\x01\x01\x12\x15\n\x08nacks_tx\x18\x18 \x01(\x04H\x17\x88\x01\x01\x12\x15\n\x08nacks_rx\x18\x19 \x01(\x04H\x18\x88\x01\x01\x12\x18\n\x0bsrefresh_tx\x18\x1a \x01(\x04H\x19\x88\x01\x01\x12\x18\n\x0bsrefresh_rx\x18\x1b \x01(\x04H\x1a\x88\x01\x01\x12\x16\n\tbundle_tx\x18\x1c \x01(\x04H\x1b\x88\x01\x01\x12\x16\n\tbundle_rx\x18\x1d \x01(\x04H\x1c\x88\x01\x01\x12)\n\x1cpath_reevaluation_request_tx\x18\x1e \x01(\x04H\x1d\x88\x01\x01\x12!\n\x14path_reoptimizations\x18\x1f \x01(\x04H\x1e\x88\x01\x01\x42\x07\n\x05_nameB\x1e\n\x1c_ingress_p2p_lsps_configuredB\x16\n\x14_ingress_p2p_lsps_upB\x15\n\x13_egress_p2p_lsps_upB\x11\n\x0f_lsp_flap_countB\x0b\n\t_paths_txB\x0b\n\t_paths_rxB\x0b\n\t_resvs_txB\x0b\n\t_resvs_rxB\x10\n\x0e_path_tears_txB\x10\n\x0e_path_tears_rxB\x10\n\x0e_resv_tears_txB\x10\n\x0e_resv_tears_rxB\x11\n\x0f_path_errors_txB\x11\n\x0f_path_errors_rxB\x11\n\x0f_resv_errors_txB\x11\n\x0f_resv_errors_rxB\x0f\n\r_resv_conf_txB\x0f\n\r_resv_conf_rxB\x0c\n\n_hellos_txB\x0c\n\n_hellos_rxB\n\n\x08_acks_txB\n\n\x08_acks_rxB\x0b\n\t_nacks_txB\x0b\n\t_nacks_rxB\x0e\n\x0c_srefresh_txB\x0e\n\x0c_srefresh_rxB\x0c\n\n_bundle_txB\x0c\n\n_bundle_rxB\x1f\n\x1d_path_reevaluation_request_txB\x17\n\x15_path_reoptimizations\"\x94\x04\n\rStatesRequest\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.StatesRequest.Choice.EnumH\x00\x88\x01\x01\x12\x35\n\x0eipv4_neighbors\x18\x02 \x01(\x0b\x32\x1d.otg.Neighborsv4StatesRequest\x12\x35\n\x0eipv6_neighbors\x18\x03 \x01(\x0b\x32\x1d.otg.Neighborsv6StatesRequest\x12\x30\n\x0c\x62gp_prefixes\x18\x04 \x01(\x0b\x32\x1a.otg.BgpPrefixStateRequest\x12,\n\tisis_lsps\x18\x05 \x01(\x0b\x32\x19.otg.IsisLspsStateRequest\x12\x36\n\x0elldp_neighbors\x18\x06 \x01(\x0b\x32\x1e.otg.LldpNeighborsStateRequest\x12,\n\trsvp_lsps\x18\x07 \x01(\x0b\x32\x19.otg.RsvpLspsStateRequest\x1a\x8e\x01\n\x06\x43hoice\"\x83\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eipv4_neighbors\x10\x01\x12\x12\n\x0eipv6_neighbors\x10\x02\x12\x10\n\x0c\x62gp_prefixes\x10\x03\x12\r\n\tisis_lsps\x10\x04\x12\x12\n\x0elldp_neighbors\x10\x05\x12\r\n\trsvp_lsps\x10\x06\x42\t\n\x07_choice\"\xec\x03\n\x0eStatesResponse\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.StatesResponse.Choice.EnumH\x00\x88\x01\x01\x12-\n\x0eipv4_neighbors\x18\x02 \x03(\x0b\x32\x15.otg.Neighborsv4State\x12-\n\x0eipv6_neighbors\x18\x03 \x03(\x0b\x32\x15.otg.Neighborsv6State\x12+\n\x0c\x62gp_prefixes\x18\x04 \x03(\x0b\x32\x15.otg.BgpPrefixesState\x12%\n\tisis_lsps\x18\x05 \x03(\x0b\x32\x12.otg.IsisLspsState\x12/\n\x0elldp_neighbors\x18\x06 \x03(\x0b\x32\x17.otg.LldpNeighborsState\x12%\n\trsvp_lsps\x18\x07 \x03(\x0b\x32\x12.otg.RsvpLspsState\x1a\x8e\x01\n\x06\x43hoice\"\x83\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eipv4_neighbors\x10\x01\x12\x12\n\x0eipv6_neighbors\x10\x02\x12\x10\n\x0c\x62gp_prefixes\x10\x03\x12\r\n\tisis_lsps\x10\x04\x12\x12\n\x0elldp_neighbors\x10\x05\x12\r\n\trsvp_lsps\x10\x06\x42\t\n\x07_choice\"2\n\x18Neighborsv4StatesRequest\x12\x16\n\x0e\x65thernet_names\x18\x01 \x03(\t\"\xa4\x01\n\x10Neighborsv4State\x12\x1a\n\rethernet_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0cipv4_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12link_layer_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x10\n\x0e_ethernet_nameB\x0f\n\r_ipv4_addressB\x15\n\x13_link_layer_address\"2\n\x18Neighborsv6StatesRequest\x12\x16\n\x0e\x65thernet_names\x18\x01 \x03(\t\"\xa4\x01\n\x10Neighborsv6State\x12\x1a\n\rethernet_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0cipv6_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12link_layer_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x10\n\x0e_ethernet_nameB\x0f\n\r_ipv6_addressB\x15\n\x13_link_layer_address\"\xc2\x02\n\x15\x42gpPrefixStateRequest\x12\x16\n\x0e\x62gp_peer_names\x18\x01 \x03(\t\x12\x45\n\x0eprefix_filters\x18\x02 \x03(\x0e\x32-.otg.BgpPrefixStateRequest.PrefixFilters.Enum\x12=\n\x14ipv4_unicast_filters\x18\x03 \x03(\x0b\x32\x1f.otg.BgpPrefixIpv4UnicastFilter\x12=\n\x14ipv6_unicast_filters\x18\x04 \x03(\x0b\x32\x1f.otg.BgpPrefixIpv6UnicastFilter\x1aL\n\rPrefixFilters\";\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0cipv4_unicast\x10\x01\x12\x10\n\x0cipv6_unicast\x10\x02\"\x91\x02\n\x1a\x42gpPrefixIpv4UnicastFilter\x12\x11\n\taddresses\x18\x01 \x03(\t\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x00\x88\x01\x01\x12@\n\x06origin\x18\x03 \x01(\x0e\x32+.otg.BgpPrefixIpv4UnicastFilter.Origin.EnumH\x01\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x02\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_id\"\x91\x02\n\x1a\x42gpPrefixIpv6UnicastFilter\x12\x11\n\taddresses\x18\x01 \x03(\t\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x00\x88\x01\x01\x12@\n\x06origin\x18\x03 \x01(\x0e\x32+.otg.BgpPrefixIpv6UnicastFilter.Origin.EnumH\x01\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x02\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_id\"\xbe\x01\n\x10\x42gpPrefixesState\x12\x1a\n\rbgp_peer_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12=\n\x15ipv4_unicast_prefixes\x18\x02 \x03(\x0b\x32\x1e.otg.BgpPrefixIpv4UnicastState\x12=\n\x15ipv6_unicast_prefixes\x18\x03 \x03(\x0b\x32\x1e.otg.BgpPrefixIpv6UnicastStateB\x10\n\x0e_bgp_peer_name\"\xd1\x04\n\x19\x42gpPrefixIpv4UnicastState\x12\x19\n\x0cipv4_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12?\n\x06origin\x18\x03 \x01(\x0e\x32*.otg.BgpPrefixIpv4UnicastState.Origin.EnumH\x02\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1a\n\ripv4_next_hop\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x1a\n\ripv6_next_hop\x18\x06 \x01(\tH\x05\x88\x01\x01\x12,\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x17.otg.ResultBgpCommunity\x12%\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x14.otg.ResultBgpAsPath\x12\x1d\n\x10local_preference\x18\t \x01(\rH\x06\x88\x01\x01\x12%\n\x18multi_exit_discriminator\x18\n \x01(\rH\x07\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_idB\x10\n\x0e_ipv4_next_hopB\x10\n\x0e_ipv6_next_hopB\x13\n\x11_local_preferenceB\x1b\n\x19_multi_exit_discriminator\"\xd1\x04\n\x19\x42gpPrefixIpv6UnicastState\x12\x19\n\x0cipv6_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12?\n\x06origin\x18\x03 \x01(\x0e\x32*.otg.BgpPrefixIpv6UnicastState.Origin.EnumH\x02\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1a\n\ripv4_next_hop\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x1a\n\ripv6_next_hop\x18\x06 \x01(\tH\x05\x88\x01\x01\x12,\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x17.otg.ResultBgpCommunity\x12%\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x14.otg.ResultBgpAsPath\x12\x1d\n\x10local_preference\x18\t \x01(\rH\x06\x88\x01\x01\x12%\n\x18multi_exit_discriminator\x18\n \x01(\rH\x07\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x0f\n\r_ipv6_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_idB\x10\n\x0e_ipv4_next_hopB\x10\n\x0e_ipv6_next_hopB\x13\n\x11_local_preferenceB\x1b\n\x19_multi_exit_discriminator\"\xb0\x02\n\x12ResultBgpCommunity\x12\x34\n\x04type\x18\x01 \x01(\x0e\x32!.otg.ResultBgpCommunity.Type.EnumH\x00\x88\x01\x01\x12\x16\n\tas_number\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\tas_custom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a\x8e\x01\n\x04Type\"\x85\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x14\n\x10manual_as_number\x10\x01\x12\r\n\tno_export\x10\x02\x12\x11\n\rno_advertised\x10\x03\x12\x17\n\x13no_export_subconfed\x10\x04\x12\x0e\n\nllgr_stale\x10\x05\x12\x0b\n\x07no_llgr\x10\x06\x42\x07\n\x05_typeB\x0c\n\n_as_numberB\x0c\n\n_as_custom\"@\n\x0fResultBgpAsPath\x12-\n\x08segments\x18\x01 \x03(\x0b\x32\x1b.otg.ResultBgpAsPathSegment\"\xce\x01\n\x16ResultBgpAsPathSegment\x12\x38\n\x04type\x18\x01 \x01(\x0e\x32%.otg.ResultBgpAsPathSegment.Type.EnumH\x00\x88\x01\x01\x12\x12\n\nas_numbers\x18\x02 \x03(\r\x1a]\n\x04Type\"U\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x61s_seq\x10\x01\x12\n\n\x06\x61s_set\x10\x02\x12\x11\n\ras_confed_seq\x10\x03\x12\x11\n\ras_confed_set\x10\x04\x42\x07\n\x05_type\"1\n\x14IsisLspsStateRequest\x12\x19\n\x11isis_router_names\x18\x01 \x03(\t\"d\n\rIsisLspsState\x12\x1d\n\x10isis_router_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x04lsps\x18\x02 \x03(\x0b\x32\x11.otg.IsisLspStateB\x13\n\x11_isis_router_name\"\xa6\x03\n\x0cIsisLspState\x12\x13\n\x06lsp_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x35\n\x08pdu_type\x18\x02 \x01(\x0e\x32\x1e.otg.IsisLspState.PduType.EnumH\x01\x88\x01\x01\x12\x1f\n\x12remaining_lifetime\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1c\n\x0fsequence_number\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x17\n\npdu_length\x18\x05 \x01(\rH\x04\x88\x01\x01\x12 \n\x05\x66lags\x18\x06 \x01(\x0b\x32\x11.otg.IsisLspFlags\x12\x14\n\x07is_type\x18\x07 \x01(\rH\x05\x88\x01\x01\x12\x1e\n\x04tlvs\x18\x08 \x01(\x0b\x32\x10.otg.IsisLspTlvs\x1a<\n\x07PduType\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07level_1\x10\x01\x12\x0b\n\x07level_2\x10\x02\x42\t\n\x07_lsp_idB\x0b\n\t_pdu_typeB\x15\n\x13_remaining_lifetimeB\x12\n\x10_sequence_numberB\r\n\x0b_pdu_lengthB\n\n\x08_is_type\"\xfc\x03\n\x0bIsisLspTlvs\x12+\n\rhostname_tlvs\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspHostname\x12;\n\x14is_reachability_tlvs\x18\x02 \x03(\x0b\x32\x1d.otg.IsisLspIsReachabilityTlv\x12L\n\x1d\x65xtended_is_reachability_tlvs\x18\x03 \x03(\x0b\x32%.otg.IsisLspExtendedIsReachabilityTlv\x12P\n\x1fipv4_internal_reachability_tlvs\x18\x04 \x03(\x0b\x32\'.otg.IsisLspIpv4InternalReachabilityTlv\x12P\n\x1fipv4_external_reachability_tlvs\x18\x05 \x03(\x0b\x32\'.otg.IsisLspIpv4ExternalReachabilityTlv\x12P\n\x1f\x65xtended_ipv4_reachability_tlvs\x18\x06 \x03(\x0b\x32\'.otg.IsisLspExtendedIpv4ReachabilityTlv\x12?\n\x16ipv6_reachability_tlvs\x18\x07 \x03(\x0b\x32\x1f.otg.IsisLspIpv6ReachabilityTlv\"5\n\x0fIsisLspHostname\x12\x15\n\x08hostname\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_hostname\"\xae\x02\n\x0cIsisLspFlags\x12\x1d\n\x10partition_repair\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1b\n\x0e\x61ttached_error\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x1d\n\x10\x61ttached_expense\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1b\n\x0e\x61ttached_delay\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x1d\n\x10\x61ttached_default\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x15\n\x08overload\x18\x06 \x01(\x08H\x05\x88\x01\x01\x42\x13\n\x11_partition_repairB\x11\n\x0f_attached_errorB\x13\n\x11_attached_expenseB\x11\n\x0f_attached_delayB\x13\n\x11_attached_defaultB\x0b\n\t_overload\"C\n\x18IsisLspIsReachabilityTlv\x12\'\n\tneighbors\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspneighbor\"K\n IsisLspExtendedIsReachabilityTlv\x12\'\n\tneighbors\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspneighbor\"7\n\x0fIsisLspneighbor\x12\x16\n\tsystem_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_system_id\"L\n\"IsisLspIpv4InternalReachabilityTlv\x12&\n\x08prefixes\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspV4Prefix\"L\n\"IsisLspIpv4ExternalReachabilityTlv\x12&\n\x08prefixes\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspV4Prefix\"\xd7\x03\n\x0fIsisLspV4Prefix\x12\x19\n\x0cipv4_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12N\n\x13redistribution_type\x18\x03 \x01(\x0e\x32,.otg.IsisLspV4Prefix.RedistributionType.EnumH\x02\x88\x01\x01\x12\x1b\n\x0e\x64\x65\x66\x61ult_metric\x18\x04 \x01(\rH\x03\x88\x01\x01\x12>\n\x0borigin_type\x18\x05 \x01(\x0e\x32$.otg.IsisLspV4Prefix.OriginType.EnumH\x04\x88\x01\x01\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x42\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\x16\n\x14_redistribution_typeB\x11\n\x0f_default_metricB\x0e\n\x0c_origin_type\"T\n\"IsisLspExtendedIpv4ReachabilityTlv\x12.\n\x08prefixes\x18\x01 \x03(\x0b\x32\x1c.otg.IsisLspExtendedV4Prefix\"\xfd\x02\n\x17IsisLspExtendedV4Prefix\x12\x19\n\x0cipv4_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06metric\x18\x03 \x01(\rH\x02\x88\x01\x01\x12V\n\x13redistribution_type\x18\x04 \x01(\x0e\x32\x34.otg.IsisLspExtendedV4Prefix.RedistributionType.EnumH\x03\x88\x01\x01\x12\x37\n\x11prefix_attributes\x18\x05 \x01(\x0b\x32\x1c.otg.IsisLspPrefixAttributes\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_metricB\x16\n\x14_redistribution_type\"D\n\x1aIsisLspIpv6ReachabilityTlv\x12&\n\x08prefixes\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspV6Prefix\"\x80\x04\n\x0fIsisLspV6Prefix\x12\x19\n\x0cipv6_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06metric\x18\x03 \x01(\rH\x02\x88\x01\x01\x12N\n\x13redistribution_type\x18\x04 \x01(\x0e\x32,.otg.IsisLspV6Prefix.RedistributionType.EnumH\x03\x88\x01\x01\x12>\n\x0borigin_type\x18\x05 \x01(\x0e\x32$.otg.IsisLspV6Prefix.OriginType.EnumH\x04\x88\x01\x01\x12\x37\n\x11prefix_attributes\x18\x06 \x01(\x0b\x32\x1c.otg.IsisLspPrefixAttributes\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x42\x0f\n\r_ipv6_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_metricB\x16\n\x14_redistribution_typeB\x0e\n\x0c_origin_type\"y\n\x17IsisLspPrefixAttributes\x12\x13\n\x06x_flag\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x13\n\x06r_flag\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x13\n\x06n_flag\x18\x03 \x01(\x08H\x02\x88\x01\x01\x42\t\n\x07_x_flagB\t\n\x07_r_flagB\t\n\x07_n_flag\"L\n\x19LldpNeighborsStateRequest\x12\x12\n\nlldp_names\x18\x01 \x03(\t\x12\x1b\n\x13neighbor_id_filters\x18\x02 \x03(\t\"\x8b\t\n\x12LldpNeighborsState\x12\x16\n\tlldp_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0bsystem_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12system_description\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x17\n\nchassis_id\x18\x04 \x01(\tH\x03\x88\x01\x01\x12H\n\x0f\x63hassis_id_type\x18\x05 \x01(\x0e\x32*.otg.LldpNeighborsState.ChassisIdType.EnumH\x04\x88\x01\x01\x12\x18\n\x0bneighbor_id\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x10\n\x03\x61ge\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x18\n\x0blast_update\x18\x08 \x01(\rH\x07\x88\x01\x01\x12\x10\n\x03ttl\x18\t \x01(\rH\x08\x88\x01\x01\x12\x14\n\x07port_id\x18\n \x01(\tH\t\x88\x01\x01\x12\x42\n\x0cport_id_type\x18\x0b \x01(\x0e\x32\'.otg.LldpNeighborsState.PortIdType.EnumH\n\x88\x01\x01\x12\x1d\n\x10port_description\x18\x0c \x01(\tH\x0b\x88\x01\x01\x12\x1f\n\x12management_address\x18\r \x01(\tH\x0c\x88\x01\x01\x12$\n\x17management_address_type\x18\x0e \x01(\tH\r\x88\x01\x01\x12,\n\x0b\x63ustom_tlvs\x18\x0f \x03(\x0b\x32\x17.otg.LldpCustomTLVState\x12.\n\x0c\x63\x61pabilities\x18\x10 \x03(\x0b\x32\x18.otg.LldpCapabilityState\x1a\xae\x01\n\rChassisIdType\"\x9c\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eport_component\x10\x01\x12\x13\n\x0fnetwork_address\x10\x02\x12\x15\n\x11\x63hassis_component\x10\x03\x12\x0f\n\x0bmac_address\x10\x04\x12\x12\n\x0einterface_name\x10\x05\x12\t\n\x05local\x10\x06\x12\x13\n\x0finterface_alias\x10\x07\x1a\xaa\x01\n\nPortIdType\"\x9b\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eport_component\x10\x01\x12\x13\n\x0fnetwork_address\x10\x02\x12\x14\n\x10\x61gent_circuit_id\x10\x03\x12\x0f\n\x0bmac_address\x10\x04\x12\x12\n\x0einterface_name\x10\x05\x12\t\n\x05local\x10\x06\x12\x13\n\x0finterface_alias\x10\x07\x42\x0c\n\n_lldp_nameB\x0e\n\x0c_system_nameB\x15\n\x13_system_descriptionB\r\n\x0b_chassis_idB\x12\n\x10_chassis_id_typeB\x0e\n\x0c_neighbor_idB\x06\n\x04_ageB\x0e\n\x0c_last_updateB\x06\n\x04_ttlB\n\n\x08_port_idB\x0f\n\r_port_id_typeB\x13\n\x11_port_descriptionB\x15\n\x13_management_addressB\x1a\n\x18_management_address_type\"\x82\x01\n\x12LldpCustomTLVState\x12\x18\n\x0b\x63ustom_type\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03oui\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0boui_subtype\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x0e\n\x0c_custom_typeB\x06\n\x04_ouiB\x0e\n\x0c_oui_subtype\"\x90\x03\n\x13LldpCapabilityState\x12J\n\x0f\x63\x61pability_name\x18\x01 \x01(\x0e\x32,.otg.LldpCapabilityState.CapabilityName.EnumH\x00\x88\x01\x01\x12\x1f\n\x12\x63\x61pability_enabled\x18\x02 \x01(\x08H\x01\x88\x01\x01\x1a\xe0\x01\n\x0e\x43\x61pabilityName\"\xcd\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nmac_bridge\x10\x01\x12\x16\n\x12two_port_mac_relay\x10\x02\x12\x0c\n\x08repeater\x10\x03\x12\x17\n\x13\x64ocsis_cable_device\x10\x04\x12\n\n\x06s_vlan\x10\x05\x12\r\n\ttelephone\x10\x06\x12\t\n\x05other\x10\x07\x12\n\n\x06router\x10\x08\x12\n\n\x06\x63_vlan\x10\t\x12\x10\n\x0cstation_only\x10\n\x12\x15\n\x11wlan_access_point\x10\x0b\x42\x12\n\x10_capability_nameB\x15\n\x13_capability_enabled\"1\n\x14RsvpLspsStateRequest\x12\x19\n\x11rsvp_router_names\x18\x01 \x03(\t\"m\n\rRsvpLspsState\x12\x1d\n\x10rsvp_router_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12(\n\tipv4_lsps\x18\x02 \x03(\x0b\x32\x15.otg.RsvpIPv4LspStateB\x13\n\x11_rsvp_router_name\"\xe2\x01\n\x10RsvpIPv4LspState\x12\x1b\n\x0esource_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12 \n\x13\x64\x65stination_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1e\n\x03lsp\x18\x03 \x01(\x0b\x32\x11.otg.RsvpLspState\x12!\n\x04rros\x18\x04 \x03(\x0b\x32\x13.otg.RsvpLspIpv4Rro\x12!\n\x04\x65ros\x18\x05 \x03(\x0b\x32\x13.otg.RsvpLspIpv4EroB\x11\n\x0f_source_addressB\x16\n\x14_destination_address\"\xb4\x04\n\x0cRsvpLspState\x12\x16\n\ttunnel_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06lsp_id\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0csession_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x15\n\x08label_in\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x16\n\tlabel_out\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x41\n\x0esession_status\x18\x06 \x01(\x0e\x32$.otg.RsvpLspState.SessionStatus.EnumH\x05\x88\x01\x01\x12\x44\n\x10last_flap_reason\x18\x07 \x01(\x0e\x32%.otg.RsvpLspState.LastFlapReason.EnumH\x06\x88\x01\x01\x12\x14\n\x07up_time\x18\x08 \x01(\x04H\x07\x88\x01\x01\x1a:\n\rSessionStatus\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1aY\n\x0eLastFlapReason\"G\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tresv_tear\x10\x01\x12\r\n\tpath_tear\x10\x02\x12\x10\n\x0cpath_timeout\x10\x03\x42\x0c\n\n_tunnel_idB\t\n\x07_lsp_idB\x0f\n\r_session_nameB\x0b\n\t_label_inB\x0c\n\n_label_outB\x11\n\x0f_session_statusB\x13\n\x11_last_flap_reasonB\n\n\x08_up_time\"b\n\x0eRsvpLspIpv4Rro\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0ereported_label\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\n\n\x08_addressB\x11\n\x0f_reported_label\"\xf2\x01\n\x0eRsvpLspIpv4Ero\x12\x13\n\x06prefix\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x03\x61sn\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x30\n\x04type\x18\x03 \x01(\x0e\x32\x1d.otg.RsvpLspIpv4Ero.Type.EnumH\x02\x88\x01\x01\x1ak\n\x04Type\"c\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x12\x07\n\x03\x61sn\x10\x03\x12\x08\n\x04\x61sn4\x10\x04\x12\t\n\x05label\x10\x05\x12\x18\n\x14unnumbered_interface\x10\x06\x42\t\n\x07_prefixB\x06\n\x04_asnB\x07\n\x05_type\"6\n\x0e\x43\x61ptureRequest\x12\x16\n\tport_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_port_name\"w\n\x1dPatternFlowEthernetDstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n\x1fPatternFlowEthernetDstMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb6\x03\n\x16PatternFlowEthernetDst\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowEthernetDst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x11\n\x04\x61uto\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x35\n\tincrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowEthernetDstCounter\x12\x35\n\tdecrement\x18\x07 \x01(\x0b\x32\".otg.PatternFlowEthernetDstCounter\x12\x39\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32$.otg.PatternFlowEthernetDstMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_auto\"w\n\x1dPatternFlowEthernetSrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n\x1fPatternFlowEthernetSrcMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x90\x03\n\x16PatternFlowEthernetSrc\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowEthernetSrc.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowEthernetSrcCounter\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowEthernetSrcCounter\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowEthernetSrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"}\n#PatternFlowEthernetEtherTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n%PatternFlowEthernetEtherTypeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowEthernetEtherType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowEthernetEtherType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12;\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowEthernetEtherTypeCounter\x12;\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowEthernetEtherTypeCounter\x12?\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32*.otg.PatternFlowEthernetEtherTypeMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_auto\"|\n\"PatternFlowEthernetPfcQueueCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x82\x01\n$PatternFlowEthernetPfcQueueMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa9\x03\n\x1bPatternFlowEthernetPfcQueue\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowEthernetPfcQueue.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowEthernetPfcQueueCounter\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowEthernetPfcQueueCounter\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowEthernetPfcQueueMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"x\n\x1ePatternFlowVlanPriorityCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n PatternFlowVlanPriorityMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x95\x03\n\x17PatternFlowVlanPriority\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowVlanPriority.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowVlanPriorityCounter\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowVlanPriorityCounter\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowVlanPriorityMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"s\n\x19PatternFlowVlanCfiCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n\x1bPatternFlowVlanCfiMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xfc\x02\n\x12PatternFlowVlanCfi\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowVlanCfi.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x31\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowVlanCfiCounter\x12\x31\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowVlanCfiCounter\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowVlanCfiMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"r\n\x18PatternFlowVlanIdCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"x\n\x1aPatternFlowVlanIdMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xf7\x02\n\x11PatternFlowVlanId\x12\x37\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.PatternFlowVlanId.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x30\n\tincrement\x18\x05 \x01(\x0b\x32\x1d.otg.PatternFlowVlanIdCounter\x12\x30\n\tdecrement\x18\x06 \x01(\x0b\x32\x1d.otg.PatternFlowVlanIdCounter\x12\x34\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x1f.otg.PatternFlowVlanIdMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"t\n\x1aPatternFlowVlanTpidCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"z\n\x1cPatternFlowVlanTpidMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x81\x03\n\x13PatternFlowVlanTpid\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.PatternFlowVlanTpid.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x32\n\tincrement\x18\x05 \x01(\x0b\x32\x1f.otg.PatternFlowVlanTpidCounter\x12\x32\n\tdecrement\x18\x06 \x01(\x0b\x32\x1f.otg.PatternFlowVlanTpidCounter\x12\x36\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32!.otg.PatternFlowVlanTpidMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"v\n\x1cPatternFlowVxlanFlagsCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n\x1ePatternFlowVxlanFlagsMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x8b\x03\n\x15PatternFlowVxlanFlags\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowVxlanFlags.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x34\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowVxlanFlagsCounter\x12\x34\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowVxlanFlagsCounter\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowVxlanFlagsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"z\n PatternFlowVxlanReserved0Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x80\x01\n\"PatternFlowVxlanReserved0MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x9f\x03\n\x19PatternFlowVxlanReserved0\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowVxlanReserved0.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved0Counter\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved0Counter\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowVxlanReserved0MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"t\n\x1aPatternFlowVxlanVniCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"z\n\x1cPatternFlowVxlanVniMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa7\x03\n\x13PatternFlowVxlanVni\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.PatternFlowVxlanVni.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x32\n\tincrement\x18\x06 \x01(\x0b\x32\x1f.otg.PatternFlowVxlanVniCounter\x12\x32\n\tdecrement\x18\x07 \x01(\x0b\x32\x1f.otg.PatternFlowVxlanVniCounter\x12\x36\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32!.otg.PatternFlowVxlanVniMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_auto\"z\n PatternFlowVxlanReserved1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x80\x01\n\"PatternFlowVxlanReserved1MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x9f\x03\n\x19PatternFlowVxlanReserved1\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowVxlanReserved1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved1Counter\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved1Counter\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowVxlanReserved1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"w\n\x1dPatternFlowIpv4VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n\x1fPatternFlowIpv4VersionMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x90\x03\n\x16PatternFlowIpv4Version\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv4Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4VersionCounter\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv4VersionCounter\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv4VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"|\n\"PatternFlowIpv4HeaderLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x82\x01\n$PatternFlowIpv4HeaderLengthMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xcf\x03\n\x1bPatternFlowIpv4HeaderLength\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIpv4HeaderLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12:\n\tincrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowIpv4HeaderLengthCounter\x12:\n\tdecrement\x18\x07 \x01(\x0b\x32\'.otg.PatternFlowIpv4HeaderLengthCounter\x12>\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32).otg.PatternFlowIpv4HeaderLengthMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_auto\"{\n!PatternFlowIpv4TotalLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x81\x01\n#PatternFlowIpv4TotalLengthMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowIpv4TotalLength\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowIpv4TotalLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x39\n\tincrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowIpv4TotalLengthCounter\x12\x39\n\tdecrement\x18\x07 \x01(\x0b\x32&.otg.PatternFlowIpv4TotalLengthCounter\x12=\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32(.otg.PatternFlowIpv4TotalLengthMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_auto\"~\n$PatternFlowIpv4IdentificationCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x84\x01\n&PatternFlowIpv4IdentificationMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb3\x03\n\x1dPatternFlowIpv4Identification\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4Identification.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIpv4IdentificationCounter\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIpv4IdentificationCounter\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIpv4IdentificationMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"x\n\x1ePatternFlowIpv4ReservedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n PatternFlowIpv4ReservedMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x95\x03\n\x17PatternFlowIpv4Reserved\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv4Reserved.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIpv4ReservedCounter\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv4ReservedCounter\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIpv4ReservedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"|\n\"PatternFlowIpv4DontFragmentCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x82\x01\n$PatternFlowIpv4DontFragmentMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa9\x03\n\x1bPatternFlowIpv4DontFragment\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIpv4DontFragment.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowIpv4DontFragmentCounter\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowIpv4DontFragmentCounter\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowIpv4DontFragmentMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"}\n#PatternFlowIpv4MoreFragmentsCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n%PatternFlowIpv4MoreFragmentsMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xae\x03\n\x1cPatternFlowIpv4MoreFragments\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv4MoreFragments.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowIpv4MoreFragmentsCounter\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv4MoreFragmentsCounter\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowIpv4MoreFragmentsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"~\n$PatternFlowIpv4FragmentOffsetCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x84\x01\n&PatternFlowIpv4FragmentOffsetMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb3\x03\n\x1dPatternFlowIpv4FragmentOffset\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4FragmentOffset.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIpv4FragmentOffsetCounter\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIpv4FragmentOffsetCounter\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIpv4FragmentOffsetMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"z\n PatternFlowIpv4TimeToLiveCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x80\x01\n\"PatternFlowIpv4TimeToLiveMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x9f\x03\n\x19PatternFlowIpv4TimeToLive\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIpv4TimeToLive.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowIpv4TimeToLiveCounter\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIpv4TimeToLiveCounter\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowIpv4TimeToLiveMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"x\n\x1ePatternFlowIpv4ProtocolCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n PatternFlowIpv4ProtocolMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xbb\x03\n\x17PatternFlowIpv4Protocol\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv4Protocol.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x36\n\tincrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv4ProtocolCounter\x12\x36\n\tdecrement\x18\x07 \x01(\x0b\x32#.otg.PatternFlowIpv4ProtocolCounter\x12:\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32%.otg.PatternFlowIpv4ProtocolMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_auto\"\xdf\x02\n\x1dPatternFlowIpv4HeaderChecksum\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4HeaderChecksum.Choice.EnumH\x00\x88\x01\x01\x12I\n\tgenerated\x18\x02 \x01(\x0e\x32\x31.otg.PatternFlowIpv4HeaderChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"s\n\x19PatternFlowIpv4SrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n\x1bPatternFlowIpv4SrcMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xfc\x02\n\x12PatternFlowIpv4Src\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv4Src.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x31\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4SrcCounter\x12\x31\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4SrcCounter\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv4SrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"s\n\x19PatternFlowIpv4DstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n\x1bPatternFlowIpv4DstMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xfc\x02\n\x12PatternFlowIpv4Dst\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv4Dst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x31\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4DstCounter\x12\x31\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4DstCounter\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv4DstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x8b\x01\n1PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xa5\x03\n*PatternFlowIpv4OptionsCustomTypeCopiedFlag\x12P\n\x06\x63hoice\x18\x01 \x01(\x0e\x32;.otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12I\n\tincrement\x18\x05 \x01(\x0b\x32\x36.otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter\x12I\n\tdecrement\x18\x06 \x01(\x0b\x32\x36.otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x8c\x01\n2PatternFlowIpv4OptionsCustomTypeOptionClassCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xa9\x03\n+PatternFlowIpv4OptionsCustomTypeOptionClass\x12Q\n\x06\x63hoice\x18\x01 \x01(\x0e\x32<.otg.PatternFlowIpv4OptionsCustomTypeOptionClass.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12J\n\tincrement\x18\x05 \x01(\x0b\x32\x37.otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter\x12J\n\tdecrement\x18\x06 \x01(\x0b\x32\x37.otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x8d\x01\n3PatternFlowIpv4OptionsCustomTypeOptionNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xad\x03\n,PatternFlowIpv4OptionsCustomTypeOptionNumber\x12R\n\x06\x63hoice\x18\x01 \x01(\x0e\x32=.otg.PatternFlowIpv4OptionsCustomTypeOptionNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12K\n\tincrement\x18\x05 \x01(\x0b\x32\x38.otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter\x12K\n\tdecrement\x18\x06 \x01(\x0b\x32\x38.otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"{\n!PatternFlowIpv4PriorityRawCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x81\x01\n#PatternFlowIpv4PriorityRawMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa4\x03\n\x1aPatternFlowIpv4PriorityRaw\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowIpv4PriorityRaw.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowIpv4PriorityRawCounter\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowIpv4PriorityRawCounter\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowIpv4PriorityRawMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"w\n\x1dPatternFlowIpv4DscpPhbCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n\x1fPatternFlowIpv4DscpPhbMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x90\x03\n\x16PatternFlowIpv4DscpPhb\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv4DscpPhb.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpPhbCounter\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpPhbCounter\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv4DscpPhbMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"w\n\x1dPatternFlowIpv4DscpEcnCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n\x1fPatternFlowIpv4DscpEcnMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x90\x03\n\x16PatternFlowIpv4DscpEcn\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv4DscpEcn.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpEcnCounter\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpEcnCounter\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv4DscpEcnMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"}\n#PatternFlowIpv4TosPrecedenceCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n%PatternFlowIpv4TosPrecedenceMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xae\x03\n\x1cPatternFlowIpv4TosPrecedence\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv4TosPrecedence.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowIpv4TosPrecedenceCounter\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv4TosPrecedenceCounter\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowIpv4TosPrecedenceMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"x\n\x1ePatternFlowIpv4TosDelayCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n PatternFlowIpv4TosDelayMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x95\x03\n\x17PatternFlowIpv4TosDelay\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv4TosDelay.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIpv4TosDelayCounter\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv4TosDelayCounter\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIpv4TosDelayMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"}\n#PatternFlowIpv4TosThroughputCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n%PatternFlowIpv4TosThroughputMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xae\x03\n\x1cPatternFlowIpv4TosThroughput\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv4TosThroughput.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowIpv4TosThroughputCounter\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv4TosThroughputCounter\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowIpv4TosThroughputMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"~\n$PatternFlowIpv4TosReliabilityCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x84\x01\n&PatternFlowIpv4TosReliabilityMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb3\x03\n\x1dPatternFlowIpv4TosReliability\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4TosReliability.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIpv4TosReliabilityCounter\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIpv4TosReliabilityCounter\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIpv4TosReliabilityMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"{\n!PatternFlowIpv4TosMonetaryCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x81\x01\n#PatternFlowIpv4TosMonetaryMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa4\x03\n\x1aPatternFlowIpv4TosMonetary\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowIpv4TosMonetary.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowIpv4TosMonetaryCounter\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowIpv4TosMonetaryCounter\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowIpv4TosMonetaryMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"y\n\x1fPatternFlowIpv4TosUnusedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x7f\n!PatternFlowIpv4TosUnusedMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x9a\x03\n\x18PatternFlowIpv4TosUnused\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowIpv4TosUnused.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x37\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowIpv4TosUnusedCounter\x12\x37\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowIpv4TosUnusedCounter\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowIpv4TosUnusedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"w\n\x1dPatternFlowIpv6VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n\x1fPatternFlowIpv6VersionMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x90\x03\n\x16PatternFlowIpv6Version\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv6Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv6VersionCounter\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv6VersionCounter\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowIpv6VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"|\n\"PatternFlowIpv6TrafficClassCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x82\x01\n$PatternFlowIpv6TrafficClassMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa9\x03\n\x1bPatternFlowIpv6TrafficClass\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIpv6TrafficClass.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowIpv6TrafficClassCounter\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowIpv6TrafficClassCounter\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowIpv6TrafficClassMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"y\n\x1fPatternFlowIpv6FlowLabelCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x7f\n!PatternFlowIpv6FlowLabelMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x9a\x03\n\x18PatternFlowIpv6FlowLabel\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowIpv6FlowLabel.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x37\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowIpv6FlowLabelCounter\x12\x37\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowIpv6FlowLabelCounter\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowIpv6FlowLabelMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"}\n#PatternFlowIpv6PayloadLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n%PatternFlowIpv6PayloadLengthMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowIpv6PayloadLength\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv6PayloadLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12;\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv6PayloadLengthCounter\x12;\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowIpv6PayloadLengthCounter\x12?\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32*.otg.PatternFlowIpv6PayloadLengthMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_auto\"z\n PatternFlowIpv6NextHeaderCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x80\x01\n\"PatternFlowIpv6NextHeaderMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xc5\x03\n\x19PatternFlowIpv6NextHeader\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIpv6NextHeader.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x38\n\tincrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIpv6NextHeaderCounter\x12\x38\n\tdecrement\x18\x07 \x01(\x0b\x32%.otg.PatternFlowIpv6NextHeaderCounter\x12<\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32\'.otg.PatternFlowIpv6NextHeaderMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_auto\"x\n\x1ePatternFlowIpv6HopLimitCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n PatternFlowIpv6HopLimitMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x95\x03\n\x17PatternFlowIpv6HopLimit\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv6HopLimit.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIpv6HopLimitCounter\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv6HopLimitCounter\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIpv6HopLimitMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"s\n\x19PatternFlowIpv6SrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n\x1bPatternFlowIpv6SrcMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xfc\x02\n\x12PatternFlowIpv6Src\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv6Src.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x31\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6SrcCounter\x12\x31\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6SrcCounter\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv6SrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"s\n\x19PatternFlowIpv6DstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"y\n\x1bPatternFlowIpv6DstMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xfc\x02\n\x12PatternFlowIpv6Dst\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv6Dst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x31\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6DstCounter\x12\x31\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6DstCounter\x12\x35\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32 .otg.PatternFlowIpv6DstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"w\n\x1dPatternFlowPfcPauseDstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n\x1fPatternFlowPfcPauseDstMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x90\x03\n\x16PatternFlowPfcPauseDst\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowPfcPauseDst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowPfcPauseDstCounter\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowPfcPauseDstCounter\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowPfcPauseDstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"w\n\x1dPatternFlowPfcPauseSrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n\x1fPatternFlowPfcPauseSrcMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x90\x03\n\x16PatternFlowPfcPauseSrc\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowPfcPauseSrc.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowPfcPauseSrcCounter\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowPfcPauseSrcCounter\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowPfcPauseSrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"}\n#PatternFlowPfcPauseEtherTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n%PatternFlowPfcPauseEtherTypeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xae\x03\n\x1cPatternFlowPfcPauseEtherType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowPfcPauseEtherType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowPfcPauseEtherTypeCounter\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowPfcPauseEtherTypeCounter\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowPfcPauseEtherTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x81\x01\n\'PatternFlowPfcPauseControlOpCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x87\x01\n)PatternFlowPfcPauseControlOpCodeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xc2\x03\n PatternFlowPfcPauseControlOpCode\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowPfcPauseControlOpCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowPfcPauseControlOpCodeCounter\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowPfcPauseControlOpCodeCounter\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowPfcPauseControlOpCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x85\x01\n+PatternFlowPfcPauseClassEnableVectorCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x8b\x01\n-PatternFlowPfcPauseClassEnableVectorMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xd6\x03\n$PatternFlowPfcPauseClassEnableVector\x12J\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x35.otg.PatternFlowPfcPauseClassEnableVector.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x43\n\tincrement\x18\x05 \x01(\x0b\x32\x30.otg.PatternFlowPfcPauseClassEnableVectorCounter\x12\x43\n\tdecrement\x18\x06 \x01(\x0b\x32\x30.otg.PatternFlowPfcPauseClassEnableVectorCounter\x12G\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x32.otg.PatternFlowPfcPauseClassEnableVectorMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x7f\n%PatternFlowPfcPausePauseClass0Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x85\x01\n\'PatternFlowPfcPausePauseClass0MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb8\x03\n\x1ePatternFlowPfcPausePauseClass0\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass0.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass0Counter\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass0Counter\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass0MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x7f\n%PatternFlowPfcPausePauseClass1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x85\x01\n\'PatternFlowPfcPausePauseClass1MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb8\x03\n\x1ePatternFlowPfcPausePauseClass1\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass1Counter\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass1Counter\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x7f\n%PatternFlowPfcPausePauseClass2Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x85\x01\n\'PatternFlowPfcPausePauseClass2MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb8\x03\n\x1ePatternFlowPfcPausePauseClass2\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass2.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass2Counter\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass2Counter\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass2MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x7f\n%PatternFlowPfcPausePauseClass3Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x85\x01\n\'PatternFlowPfcPausePauseClass3MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb8\x03\n\x1ePatternFlowPfcPausePauseClass3\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass3.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass3Counter\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass3Counter\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass3MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x7f\n%PatternFlowPfcPausePauseClass4Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x85\x01\n\'PatternFlowPfcPausePauseClass4MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb8\x03\n\x1ePatternFlowPfcPausePauseClass4\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass4.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass4Counter\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass4Counter\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass4MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x7f\n%PatternFlowPfcPausePauseClass5Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x85\x01\n\'PatternFlowPfcPausePauseClass5MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb8\x03\n\x1ePatternFlowPfcPausePauseClass5\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass5.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass5Counter\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass5Counter\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass5MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x7f\n%PatternFlowPfcPausePauseClass6Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x85\x01\n\'PatternFlowPfcPausePauseClass6MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb8\x03\n\x1ePatternFlowPfcPausePauseClass6\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass6.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass6Counter\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass6Counter\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass6MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x7f\n%PatternFlowPfcPausePauseClass7Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x85\x01\n\'PatternFlowPfcPausePauseClass7MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb8\x03\n\x1ePatternFlowPfcPausePauseClass7\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass7.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass7Counter\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass7Counter\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass7MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"|\n\"PatternFlowEthernetPauseDstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x82\x01\n$PatternFlowEthernetPauseDstMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa9\x03\n\x1bPatternFlowEthernetPauseDst\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowEthernetPauseDst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseDstCounter\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseDstCounter\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowEthernetPauseDstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"|\n\"PatternFlowEthernetPauseSrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x82\x01\n$PatternFlowEthernetPauseSrcMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa9\x03\n\x1bPatternFlowEthernetPauseSrc\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowEthernetPauseSrc.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseSrcCounter\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseSrcCounter\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowEthernetPauseSrcMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x82\x01\n(PatternFlowEthernetPauseEtherTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x88\x01\n*PatternFlowEthernetPauseEtherTypeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xc7\x03\n!PatternFlowEthernetPauseEtherType\x12G\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x32.otg.PatternFlowEthernetPauseEtherType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32-.otg.PatternFlowEthernetPauseEtherTypeCounter\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32-.otg.PatternFlowEthernetPauseEtherTypeCounter\x12\x44\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32/.otg.PatternFlowEthernetPauseEtherTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x86\x01\n,PatternFlowEthernetPauseControlOpCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x8c\x01\n.PatternFlowEthernetPauseControlOpCodeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xdb\x03\n%PatternFlowEthernetPauseControlOpCode\x12K\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x36.otg.PatternFlowEthernetPauseControlOpCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32\x31.otg.PatternFlowEthernetPauseControlOpCodeCounter\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32\x31.otg.PatternFlowEthernetPauseControlOpCodeCounter\x12H\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x33.otg.PatternFlowEthernetPauseControlOpCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"}\n#PatternFlowEthernetPauseTimeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n%PatternFlowEthernetPauseTimeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xae\x03\n\x1cPatternFlowEthernetPauseTime\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowEthernetPauseTime.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowEthernetPauseTimeCounter\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowEthernetPauseTimeCounter\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowEthernetPauseTimeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"v\n\x1cPatternFlowTcpSrcPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n\x1ePatternFlowTcpSrcPortMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x8b\x03\n\x15PatternFlowTcpSrcPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowTcpSrcPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x34\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowTcpSrcPortCounter\x12\x34\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowTcpSrcPortCounter\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowTcpSrcPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"v\n\x1cPatternFlowTcpDstPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n\x1ePatternFlowTcpDstPortMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x8b\x03\n\x15PatternFlowTcpDstPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowTcpDstPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x34\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowTcpDstPortCounter\x12\x34\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowTcpDstPortCounter\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowTcpDstPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowTcpSeqNumCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowTcpSeqNumMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x86\x03\n\x14PatternFlowTcpSeqNum\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpSeqNum.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x33\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpSeqNumCounter\x12\x33\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpSeqNumCounter\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpSeqNumMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowTcpAckNumCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowTcpAckNumMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x86\x03\n\x14PatternFlowTcpAckNum\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpAckNum.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x33\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpAckNumCounter\x12\x33\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpAckNumCounter\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpAckNumMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"y\n\x1fPatternFlowTcpDataOffsetCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x7f\n!PatternFlowTcpDataOffsetMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x9a\x03\n\x18PatternFlowTcpDataOffset\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowTcpDataOffset.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x37\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowTcpDataOffsetCounter\x12\x37\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowTcpDataOffsetCounter\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowTcpDataOffsetMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"t\n\x1aPatternFlowTcpEcnNsCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"z\n\x1cPatternFlowTcpEcnNsMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x81\x03\n\x13PatternFlowTcpEcnNs\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.PatternFlowTcpEcnNs.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x32\n\tincrement\x18\x05 \x01(\x0b\x32\x1f.otg.PatternFlowTcpEcnNsCounter\x12\x32\n\tdecrement\x18\x06 \x01(\x0b\x32\x1f.otg.PatternFlowTcpEcnNsCounter\x12\x36\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32!.otg.PatternFlowTcpEcnNsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowTcpEcnCwrCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowTcpEcnCwrMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x86\x03\n\x14PatternFlowTcpEcnCwr\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpEcnCwr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x33\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpEcnCwrCounter\x12\x33\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpEcnCwrCounter\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpEcnCwrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"v\n\x1cPatternFlowTcpEcnEchoCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n\x1ePatternFlowTcpEcnEchoMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x8b\x03\n\x15PatternFlowTcpEcnEcho\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowTcpEcnEcho.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x34\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowTcpEcnEchoCounter\x12\x34\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowTcpEcnEchoCounter\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowTcpEcnEchoMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowTcpCtlUrgCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowTcpCtlUrgMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x86\x03\n\x14PatternFlowTcpCtlUrg\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlUrg.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x33\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlUrgCounter\x12\x33\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlUrgCounter\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlUrgMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowTcpCtlAckCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowTcpCtlAckMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x86\x03\n\x14PatternFlowTcpCtlAck\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlAck.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x33\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlAckCounter\x12\x33\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlAckCounter\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlAckMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowTcpCtlPshCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowTcpCtlPshMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x86\x03\n\x14PatternFlowTcpCtlPsh\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlPsh.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x33\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlPshCounter\x12\x33\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlPshCounter\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlPshMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowTcpCtlRstCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowTcpCtlRstMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x86\x03\n\x14PatternFlowTcpCtlRst\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlRst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x33\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlRstCounter\x12\x33\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlRstCounter\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlRstMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowTcpCtlSynCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowTcpCtlSynMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x86\x03\n\x14PatternFlowTcpCtlSyn\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlSyn.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x33\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlSynCounter\x12\x33\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlSynCounter\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlSynMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowTcpCtlFinCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowTcpCtlFinMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x86\x03\n\x14PatternFlowTcpCtlFin\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlFin.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x33\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlFinCounter\x12\x33\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlFinCounter\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpCtlFinMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowTcpWindowCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowTcpWindowMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x86\x03\n\x14PatternFlowTcpWindow\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpWindow.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x33\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpWindowCounter\x12\x33\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpWindowCounter\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowTcpWindowMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"v\n\x1cPatternFlowUdpSrcPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n\x1ePatternFlowUdpSrcPortMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x8b\x03\n\x15PatternFlowUdpSrcPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowUdpSrcPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x34\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowUdpSrcPortCounter\x12\x34\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowUdpSrcPortCounter\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowUdpSrcPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"v\n\x1cPatternFlowUdpDstPortCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n\x1ePatternFlowUdpDstPortMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x8b\x03\n\x15PatternFlowUdpDstPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowUdpDstPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x34\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowUdpDstPortCounter\x12\x34\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowUdpDstPortCounter\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowUdpDstPortMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowUdpLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowUdpLengthMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x86\x03\n\x14PatternFlowUdpLength\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowUdpLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x33\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowUdpLengthCounter\x12\x33\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowUdpLengthCounter\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowUdpLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\xca\x02\n\x16PatternFlowUdpChecksum\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowUdpChecksum.Choice.EnumH\x00\x88\x01\x01\x12\x42\n\tgenerated\x18\x02 \x01(\x0e\x32*.otg.PatternFlowUdpChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"~\n$PatternFlowGreChecksumPresentCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x84\x01\n&PatternFlowGreChecksumPresentMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb3\x03\n\x1dPatternFlowGreChecksumPresent\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGreChecksumPresent.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGreChecksumPresentCounter\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGreChecksumPresentCounter\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGreChecksumPresentMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"x\n\x1ePatternFlowGreReserved0Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n PatternFlowGreReserved0MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x95\x03\n\x17PatternFlowGreReserved0\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGreReserved0.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGreReserved0Counter\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGreReserved0Counter\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGreReserved0MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"v\n\x1cPatternFlowGreVersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n\x1ePatternFlowGreVersionMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x8b\x03\n\x15PatternFlowGreVersion\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowGreVersion.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x34\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowGreVersionCounter\x12\x34\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowGreVersionCounter\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowGreVersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"w\n\x1dPatternFlowGreProtocolCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n\x1fPatternFlowGreProtocolMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x90\x03\n\x16PatternFlowGreProtocol\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGreProtocol.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGreProtocolCounter\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGreProtocolCounter\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGreProtocolMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\xca\x02\n\x16PatternFlowGreChecksum\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGreChecksum.Choice.EnumH\x00\x88\x01\x01\x12\x42\n\tgenerated\x18\x02 \x01(\x0e\x32*.otg.PatternFlowGreChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"x\n\x1ePatternFlowGreReserved1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n PatternFlowGreReserved1MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x95\x03\n\x17PatternFlowGreReserved1\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGreReserved1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGreReserved1Counter\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGreReserved1Counter\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGreReserved1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"x\n\x1ePatternFlowGtpv1VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n PatternFlowGtpv1VersionMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x95\x03\n\x17PatternFlowGtpv1Version\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGtpv1Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGtpv1VersionCounter\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGtpv1VersionCounter\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGtpv1VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"}\n#PatternFlowGtpv1ProtocolTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n%PatternFlowGtpv1ProtocolTypeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xae\x03\n\x1cPatternFlowGtpv1ProtocolType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowGtpv1ProtocolType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowGtpv1ProtocolTypeCounter\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowGtpv1ProtocolTypeCounter\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowGtpv1ProtocolTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"y\n\x1fPatternFlowGtpv1ReservedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x7f\n!PatternFlowGtpv1ReservedMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x9a\x03\n\x18PatternFlowGtpv1Reserved\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowGtpv1Reserved.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x37\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowGtpv1ReservedCounter\x12\x37\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowGtpv1ReservedCounter\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowGtpv1ReservedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"v\n\x1cPatternFlowGtpv1EFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n\x1ePatternFlowGtpv1EFlagMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x8b\x03\n\x15PatternFlowGtpv1EFlag\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowGtpv1EFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x34\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowGtpv1EFlagCounter\x12\x34\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowGtpv1EFlagCounter\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowGtpv1EFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"v\n\x1cPatternFlowGtpv1SFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n\x1ePatternFlowGtpv1SFlagMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x8b\x03\n\x15PatternFlowGtpv1SFlag\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowGtpv1SFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x34\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowGtpv1SFlagCounter\x12\x34\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowGtpv1SFlagCounter\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowGtpv1SFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"w\n\x1dPatternFlowGtpv1PnFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n\x1fPatternFlowGtpv1PnFlagMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x90\x03\n\x16PatternFlowGtpv1PnFlag\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGtpv1PnFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGtpv1PnFlagCounter\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv1PnFlagCounter\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGtpv1PnFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"|\n\"PatternFlowGtpv1MessageTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x82\x01\n$PatternFlowGtpv1MessageTypeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa9\x03\n\x1bPatternFlowGtpv1MessageType\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowGtpv1MessageType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowGtpv1MessageTypeCounter\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowGtpv1MessageTypeCounter\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowGtpv1MessageTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"~\n$PatternFlowGtpv1MessageLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x84\x01\n&PatternFlowGtpv1MessageLengthMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb3\x03\n\x1dPatternFlowGtpv1MessageLength\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGtpv1MessageLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGtpv1MessageLengthCounter\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGtpv1MessageLengthCounter\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGtpv1MessageLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowGtpv1TeidCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowGtpv1TeidMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x86\x03\n\x14PatternFlowGtpv1Teid\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowGtpv1Teid.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x33\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowGtpv1TeidCounter\x12\x33\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowGtpv1TeidCounter\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowGtpv1TeidMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"~\n$PatternFlowGtpv1SquenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x84\x01\n&PatternFlowGtpv1SquenceNumberMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb3\x03\n\x1dPatternFlowGtpv1SquenceNumber\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGtpv1SquenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGtpv1SquenceNumberCounter\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGtpv1SquenceNumberCounter\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGtpv1SquenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"{\n!PatternFlowGtpv1NPduNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x81\x01\n#PatternFlowGtpv1NPduNumberMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa4\x03\n\x1aPatternFlowGtpv1NPduNumber\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowGtpv1NPduNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowGtpv1NPduNumberCounter\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowGtpv1NPduNumberCounter\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowGtpv1NPduNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x88\x01\n.PatternFlowGtpv1NextExtensionHeaderTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x8e\x01\n0PatternFlowGtpv1NextExtensionHeaderTypeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xe5\x03\n\'PatternFlowGtpv1NextExtensionHeaderType\x12M\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x38.otg.PatternFlowGtpv1NextExtensionHeaderType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x46\n\tincrement\x18\x05 \x01(\x0b\x32\x33.otg.PatternFlowGtpv1NextExtensionHeaderTypeCounter\x12\x46\n\tdecrement\x18\x06 \x01(\x0b\x32\x33.otg.PatternFlowGtpv1NextExtensionHeaderTypeCounter\x12J\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x35.otg.PatternFlowGtpv1NextExtensionHeaderTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x87\x01\n-PatternFlowGtpExtensionExtensionLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x8d\x01\n/PatternFlowGtpExtensionExtensionLengthMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xe0\x03\n&PatternFlowGtpExtensionExtensionLength\x12L\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x37.otg.PatternFlowGtpExtensionExtensionLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x45\n\tincrement\x18\x05 \x01(\x0b\x32\x32.otg.PatternFlowGtpExtensionExtensionLengthCounter\x12\x45\n\tdecrement\x18\x06 \x01(\x0b\x32\x32.otg.PatternFlowGtpExtensionExtensionLengthCounter\x12I\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x34.otg.PatternFlowGtpExtensionExtensionLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x80\x01\n&PatternFlowGtpExtensionContentsCounter\x12\x12\n\x05start\x18\x01 \x01(\x04H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x04H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x86\x01\n(PatternFlowGtpExtensionContentsMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x04H\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xbd\x03\n\x1fPatternFlowGtpExtensionContents\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.PatternFlowGtpExtensionContents.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x04\x12>\n\tincrement\x18\x05 \x01(\x0b\x32+.otg.PatternFlowGtpExtensionContentsCounter\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32+.otg.PatternFlowGtpExtensionContentsCounter\x12\x42\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32-.otg.PatternFlowGtpExtensionContentsMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x8b\x01\n1PatternFlowGtpExtensionNextExtensionHeaderCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x91\x01\n3PatternFlowGtpExtensionNextExtensionHeaderMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xf4\x03\n*PatternFlowGtpExtensionNextExtensionHeader\x12P\n\x06\x63hoice\x18\x01 \x01(\x0e\x32;.otg.PatternFlowGtpExtensionNextExtensionHeader.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12I\n\tincrement\x18\x05 \x01(\x0b\x32\x36.otg.PatternFlowGtpExtensionNextExtensionHeaderCounter\x12I\n\tdecrement\x18\x06 \x01(\x0b\x32\x36.otg.PatternFlowGtpExtensionNextExtensionHeaderCounter\x12M\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x38.otg.PatternFlowGtpExtensionNextExtensionHeaderMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"x\n\x1ePatternFlowGtpv2VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n PatternFlowGtpv2VersionMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x95\x03\n\x17PatternFlowGtpv2Version\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGtpv2Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGtpv2VersionCounter\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGtpv2VersionCounter\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowGtpv2VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x81\x01\n\'PatternFlowGtpv2PiggybackingFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x87\x01\n)PatternFlowGtpv2PiggybackingFlagMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xc2\x03\n PatternFlowGtpv2PiggybackingFlag\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowGtpv2PiggybackingFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12?\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowGtpv2PiggybackingFlagCounter\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowGtpv2PiggybackingFlagCounter\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowGtpv2PiggybackingFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"y\n\x1fPatternFlowGtpv2TeidFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x7f\n!PatternFlowGtpv2TeidFlagMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x9a\x03\n\x18PatternFlowGtpv2TeidFlag\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowGtpv2TeidFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x37\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowGtpv2TeidFlagCounter\x12\x37\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowGtpv2TeidFlagCounter\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowGtpv2TeidFlagMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"w\n\x1dPatternFlowGtpv2Spare1Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n\x1fPatternFlowGtpv2Spare1MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x90\x03\n\x16PatternFlowGtpv2Spare1\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGtpv2Spare1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare1Counter\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare1Counter\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGtpv2Spare1MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"|\n\"PatternFlowGtpv2MessageTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x82\x01\n$PatternFlowGtpv2MessageTypeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa9\x03\n\x1bPatternFlowGtpv2MessageType\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowGtpv2MessageType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowGtpv2MessageTypeCounter\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowGtpv2MessageTypeCounter\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowGtpv2MessageTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"~\n$PatternFlowGtpv2MessageLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x84\x01\n&PatternFlowGtpv2MessageLengthMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb3\x03\n\x1dPatternFlowGtpv2MessageLength\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGtpv2MessageLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGtpv2MessageLengthCounter\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGtpv2MessageLengthCounter\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowGtpv2MessageLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowGtpv2TeidCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowGtpv2TeidMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x86\x03\n\x14PatternFlowGtpv2Teid\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowGtpv2Teid.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x33\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowGtpv2TeidCounter\x12\x33\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowGtpv2TeidCounter\x12\x37\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\".otg.PatternFlowGtpv2TeidMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x7f\n%PatternFlowGtpv2SequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x85\x01\n\'PatternFlowGtpv2SequenceNumberMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb8\x03\n\x1ePatternFlowGtpv2SequenceNumber\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowGtpv2SequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12=\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowGtpv2SequenceNumberCounter\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowGtpv2SequenceNumberCounter\x12\x41\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32,.otg.PatternFlowGtpv2SequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"w\n\x1dPatternFlowGtpv2Spare2Counter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"}\n\x1fPatternFlowGtpv2Spare2MetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x90\x03\n\x16PatternFlowGtpv2Spare2\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGtpv2Spare2.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare2Counter\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare2Counter\x12\x39\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32$.otg.PatternFlowGtpv2Spare2MetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"{\n!PatternFlowArpHardwareTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x81\x01\n#PatternFlowArpHardwareTypeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa4\x03\n\x1aPatternFlowArpHardwareType\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowArpHardwareType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowArpHardwareTypeCounter\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowArpHardwareTypeCounter\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowArpHardwareTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"{\n!PatternFlowArpProtocolTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x81\x01\n#PatternFlowArpProtocolTypeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa4\x03\n\x1aPatternFlowArpProtocolType\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowArpProtocolType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowArpProtocolTypeCounter\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowArpProtocolTypeCounter\x12=\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32(.otg.PatternFlowArpProtocolTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"}\n#PatternFlowArpHardwareLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n%PatternFlowArpHardwareLengthMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xae\x03\n\x1cPatternFlowArpHardwareLength\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowArpHardwareLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowArpHardwareLengthCounter\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowArpHardwareLengthCounter\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowArpHardwareLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"}\n#PatternFlowArpProtocolLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n%PatternFlowArpProtocolLengthMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xae\x03\n\x1cPatternFlowArpProtocolLength\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowArpProtocolLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12;\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowArpProtocolLengthCounter\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowArpProtocolLengthCounter\x12?\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32*.otg.PatternFlowArpProtocolLengthMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"x\n\x1ePatternFlowArpOperationCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n PatternFlowArpOperationMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x95\x03\n\x17PatternFlowArpOperation\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowArpOperation.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowArpOperationCounter\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowArpOperationCounter\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowArpOperationMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x81\x01\n\'PatternFlowArpSenderHardwareAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x87\x01\n)PatternFlowArpSenderHardwareAddrMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xc2\x03\n PatternFlowArpSenderHardwareAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpSenderHardwareAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12?\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpSenderHardwareAddrCounter\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpSenderHardwareAddrCounter\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpSenderHardwareAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x81\x01\n\'PatternFlowArpSenderProtocolAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x87\x01\n)PatternFlowArpSenderProtocolAddrMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xc2\x03\n PatternFlowArpSenderProtocolAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpSenderProtocolAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12?\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpSenderProtocolAddrCounter\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpSenderProtocolAddrCounter\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpSenderProtocolAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x81\x01\n\'PatternFlowArpTargetHardwareAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x87\x01\n)PatternFlowArpTargetHardwareAddrMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xc2\x03\n PatternFlowArpTargetHardwareAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpTargetHardwareAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12?\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpTargetHardwareAddrCounter\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpTargetHardwareAddrCounter\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpTargetHardwareAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x81\x01\n\'PatternFlowArpTargetProtocolAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x87\x01\n)PatternFlowArpTargetProtocolAddrMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xc2\x03\n PatternFlowArpTargetProtocolAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpTargetProtocolAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12?\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpTargetProtocolAddrCounter\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpTargetProtocolAddrCounter\x12\x43\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32..otg.PatternFlowArpTargetProtocolAddrMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"x\n\x1ePatternFlowIcmpEchoTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n PatternFlowIcmpEchoTypeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x95\x03\n\x17PatternFlowIcmpEchoType\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIcmpEchoType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoTypeCounter\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoTypeCounter\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIcmpEchoTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"x\n\x1ePatternFlowIcmpEchoCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n PatternFlowIcmpEchoCodeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x95\x03\n\x17PatternFlowIcmpEchoCode\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIcmpEchoCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoCodeCounter\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoCodeCounter\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIcmpEchoCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\xd9\x02\n\x1bPatternFlowIcmpEchoChecksum\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIcmpEchoChecksum.Choice.EnumH\x00\x88\x01\x01\x12G\n\tgenerated\x18\x02 \x01(\x0e\x32/.otg.PatternFlowIcmpEchoChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"~\n$PatternFlowIcmpEchoIdentifierCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x84\x01\n&PatternFlowIcmpEchoIdentifierMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb3\x03\n\x1dPatternFlowIcmpEchoIdentifier\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIcmpEchoIdentifier.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12<\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIcmpEchoIdentifierCounter\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIcmpEchoIdentifierCounter\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIcmpEchoIdentifierMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x82\x01\n(PatternFlowIcmpEchoSequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x88\x01\n*PatternFlowIcmpEchoSequenceNumberMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xc7\x03\n!PatternFlowIcmpEchoSequenceNumber\x12G\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x32.otg.PatternFlowIcmpEchoSequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12@\n\tincrement\x18\x05 \x01(\x0b\x32-.otg.PatternFlowIcmpEchoSequenceNumberCounter\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32-.otg.PatternFlowIcmpEchoSequenceNumberCounter\x12\x44\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32/.otg.PatternFlowIcmpEchoSequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\xdf\x02\n\x1dPatternFlowIcmpCommonChecksum\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIcmpCommonChecksum.Choice.EnumH\x00\x88\x01\x01\x12I\n\tgenerated\x18\x02 \x01(\x0e\x32\x31.otg.PatternFlowIcmpCommonChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"\x84\x01\n*PatternFlowIcmpNextFieldsIdentifierCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x8a\x01\n,PatternFlowIcmpNextFieldsIdentifierMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xd1\x03\n#PatternFlowIcmpNextFieldsIdentifier\x12I\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x34.otg.PatternFlowIcmpNextFieldsIdentifier.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32/.otg.PatternFlowIcmpNextFieldsIdentifierCounter\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32/.otg.PatternFlowIcmpNextFieldsIdentifierCounter\x12\x46\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x31.otg.PatternFlowIcmpNextFieldsIdentifierMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x88\x01\n.PatternFlowIcmpNextFieldsSequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x8e\x01\n0PatternFlowIcmpNextFieldsSequenceNumberMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xe5\x03\n\'PatternFlowIcmpNextFieldsSequenceNumber\x12M\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x38.otg.PatternFlowIcmpNextFieldsSequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x46\n\tincrement\x18\x05 \x01(\x0b\x32\x33.otg.PatternFlowIcmpNextFieldsSequenceNumberCounter\x12\x46\n\tdecrement\x18\x06 \x01(\x0b\x32\x33.otg.PatternFlowIcmpNextFieldsSequenceNumberCounter\x12J\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x35.otg.PatternFlowIcmpNextFieldsSequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"z\n PatternFlowIcmpv6EchoTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x80\x01\n\"PatternFlowIcmpv6EchoTypeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x9f\x03\n\x19PatternFlowIcmpv6EchoType\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIcmpv6EchoType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoTypeCounter\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoTypeCounter\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowIcmpv6EchoTypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"z\n PatternFlowIcmpv6EchoCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x80\x01\n\"PatternFlowIcmpv6EchoCodeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x9f\x03\n\x19PatternFlowIcmpv6EchoCode\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIcmpv6EchoCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoCodeCounter\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoCodeCounter\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowIcmpv6EchoCodeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x80\x01\n&PatternFlowIcmpv6EchoIdentifierCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x86\x01\n(PatternFlowIcmpv6EchoIdentifierMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xbd\x03\n\x1fPatternFlowIcmpv6EchoIdentifier\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.PatternFlowIcmpv6EchoIdentifier.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12>\n\tincrement\x18\x05 \x01(\x0b\x32+.otg.PatternFlowIcmpv6EchoIdentifierCounter\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32+.otg.PatternFlowIcmpv6EchoIdentifierCounter\x12\x42\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32-.otg.PatternFlowIcmpv6EchoIdentifierMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x84\x01\n*PatternFlowIcmpv6EchoSequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x8a\x01\n,PatternFlowIcmpv6EchoSequenceNumberMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xd1\x03\n#PatternFlowIcmpv6EchoSequenceNumber\x12I\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x34.otg.PatternFlowIcmpv6EchoSequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32/.otg.PatternFlowIcmpv6EchoSequenceNumberCounter\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32/.otg.PatternFlowIcmpv6EchoSequenceNumberCounter\x12\x46\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\x31.otg.PatternFlowIcmpv6EchoSequenceNumberMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\xdf\x02\n\x1dPatternFlowIcmpv6EchoChecksum\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIcmpv6EchoChecksum.Choice.EnumH\x00\x88\x01\x01\x12I\n\tgenerated\x18\x02 \x01(\x0e\x32\x31.otg.PatternFlowIcmpv6EchoChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"\xe5\x02\n\x1fPatternFlowIcmpv6CommonChecksum\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.PatternFlowIcmpv6CommonChecksum.Choice.EnumH\x00\x88\x01\x01\x12K\n\tgenerated\x18\x02 \x01(\x0e\x32\x33.otg.PatternFlowIcmpv6CommonChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"v\n\x1cPatternFlowPppAddressCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n\x1ePatternFlowPppAddressMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x8b\x03\n\x15PatternFlowPppAddress\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowPppAddress.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x34\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowPppAddressCounter\x12\x34\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowPppAddressCounter\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowPppAddressMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"v\n\x1cPatternFlowPppControlCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n\x1ePatternFlowPppControlMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x8b\x03\n\x15PatternFlowPppControl\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowPppControl.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x34\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowPppControlCounter\x12\x34\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowPppControlCounter\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowPppControlMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"{\n!PatternFlowPppProtocolTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x81\x01\n#PatternFlowPppProtocolTypeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xca\x03\n\x1aPatternFlowPppProtocolType\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowPppProtocolType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x39\n\tincrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowPppProtocolTypeCounter\x12\x39\n\tdecrement\x18\x07 \x01(\x0b\x32&.otg.PatternFlowPppProtocolTypeCounter\x12=\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32(.otg.PatternFlowPppProtocolTypeMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_auto\"y\n\x1fPatternFlowIgmpv1VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x7f\n!PatternFlowIgmpv1VersionMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x9a\x03\n\x18PatternFlowIgmpv1Version\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowIgmpv1Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x37\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowIgmpv1VersionCounter\x12\x37\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowIgmpv1VersionCounter\x12;\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32&.otg.PatternFlowIgmpv1VersionMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"v\n\x1cPatternFlowIgmpv1TypeCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"|\n\x1ePatternFlowIgmpv1TypeMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x8b\x03\n\x15PatternFlowIgmpv1Type\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowIgmpv1Type.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x34\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowIgmpv1TypeCounter\x12\x34\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowIgmpv1TypeCounter\x12\x38\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32#.otg.PatternFlowIgmpv1TypeMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"x\n\x1ePatternFlowIgmpv1UnusedCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"~\n PatternFlowIgmpv1UnusedMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x95\x03\n\x17PatternFlowIgmpv1Unused\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIgmpv1Unused.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIgmpv1UnusedCounter\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIgmpv1UnusedCounter\x12:\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32%.otg.PatternFlowIgmpv1UnusedMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\xd3\x02\n\x19PatternFlowIgmpv1Checksum\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIgmpv1Checksum.Choice.EnumH\x00\x88\x01\x01\x12\x45\n\tgenerated\x18\x02 \x01(\x0e\x32-.otg.PatternFlowIgmpv1Checksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\rH\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"~\n$PatternFlowIgmpv1GroupAddressCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x84\x01\n&PatternFlowIgmpv1GroupAddressMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xb3\x03\n\x1dPatternFlowIgmpv1GroupAddress\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIgmpv1GroupAddress.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12<\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIgmpv1GroupAddressCounter\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIgmpv1GroupAddressCounter\x12@\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32+.otg.PatternFlowIgmpv1GroupAddressMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"u\n\x1bPatternFlowMplsLabelCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"{\n\x1dPatternFlowMplsLabelMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xac\x03\n\x14PatternFlowMplsLabel\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowMplsLabel.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12\x33\n\tincrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowMplsLabelCounter\x12\x33\n\tdecrement\x18\x07 \x01(\x0b\x32 .otg.PatternFlowMplsLabelCounter\x12\x37\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32\".otg.PatternFlowMplsLabelMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_auto\"|\n\"PatternFlowMplsTrafficClassCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x82\x01\n$PatternFlowMplsTrafficClassMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xa9\x03\n\x1bPatternFlowMplsTrafficClass\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowMplsTrafficClass.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowMplsTrafficClassCounter\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowMplsTrafficClassCounter\x12>\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32).otg.PatternFlowMplsTrafficClassMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"}\n#PatternFlowMplsBottomOfStackCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x83\x01\n%PatternFlowMplsBottomOfStackMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\xd4\x03\n\x1cPatternFlowMplsBottomOfStack\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowMplsBottomOfStack.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x11\n\x04\x61uto\x18\x04 \x01(\rH\x02\x88\x01\x01\x12;\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowMplsBottomOfStackCounter\x12;\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowMplsBottomOfStackCounter\x12?\n\x0bmetric_tags\x18\x08 \x03(\x0b\x32*.otg.PatternFlowMplsBottomOfStackMetricTag\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_auto\"z\n PatternFlowMplsTimeToLiveCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x80\x01\n\"PatternFlowMplsTimeToLiveMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06offset\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x07\n\x05_nameB\t\n\x07_offsetB\t\n\x07_length\"\x9f\x03\n\x19PatternFlowMplsTimeToLive\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowMplsTimeToLive.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowMplsTimeToLiveCounter\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowMplsTimeToLiveCounter\x12<\n\x0bmetric_tags\x18\x07 \x03(\x0b\x32\'.otg.PatternFlowMplsTimeToLiveMetricTag\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"z\n PatternFlowSnmpv2cVersionCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xe1\x02\n\x19PatternFlowSnmpv2cVersion\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowSnmpv2cVersion.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowSnmpv2cVersionCounter\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowSnmpv2cVersionCounter\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x7f\n%PatternFlowSnmpv2cPDURequestIdCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xf5\x02\n\x1ePatternFlowSnmpv2cPDURequestId\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowSnmpv2cPDURequestId.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12=\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowSnmpv2cPDURequestIdCounter\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowSnmpv2cPDURequestIdCounter\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x80\x01\n&PatternFlowSnmpv2cPDUErrorIndexCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xf9\x02\n\x1fPatternFlowSnmpv2cPDUErrorIndex\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.PatternFlowSnmpv2cPDUErrorIndex.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12>\n\tincrement\x18\x05 \x01(\x0b\x32+.otg.PatternFlowSnmpv2cPDUErrorIndexCounter\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32+.otg.PatternFlowSnmpv2cPDUErrorIndexCounter\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x83\x01\n)PatternFlowSnmpv2cBulkPDURequestIdCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x85\x03\n\"PatternFlowSnmpv2cBulkPDURequestId\x12H\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x33.otg.PatternFlowSnmpv2cBulkPDURequestId.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32..otg.PatternFlowSnmpv2cBulkPDURequestIdCounter\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32..otg.PatternFlowSnmpv2cBulkPDURequestIdCounter\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\xe7\x01\n%PatternFlowSnmpv2cBulkPDUNonRepeaters\x12K\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x36.otg.PatternFlowSnmpv2cBulkPDUNonRepeaters.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x1a\x38\n\x06\x43hoice\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x42\t\n\x07_choiceB\x08\n\x06_value\"\x88\x01\n.PatternFlowSnmpv2cBulkPDUMaxRepetitionsCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x99\x03\n\'PatternFlowSnmpv2cBulkPDUMaxRepetitions\x12M\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x38.otg.PatternFlowSnmpv2cBulkPDUMaxRepetitions.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12\x46\n\tincrement\x18\x05 \x01(\x0b\x32\x33.otg.PatternFlowSnmpv2cBulkPDUMaxRepetitionsCounter\x12\x46\n\tdecrement\x18\x06 \x01(\x0b\x32\x33.otg.PatternFlowSnmpv2cBulkPDUMaxRepetitionsCounter\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x93\x01\n9PatternFlowSnmpv2cVariableBindingValueIntegerValueCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xc5\x03\n2PatternFlowSnmpv2cVariableBindingValueIntegerValue\x12X\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x43.otg.PatternFlowSnmpv2cVariableBindingValueIntegerValue.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12Q\n\tincrement\x18\x05 \x01(\x0b\x32>.otg.PatternFlowSnmpv2cVariableBindingValueIntegerValueCounter\x12Q\n\tdecrement\x18\x06 \x01(\x0b\x32>.otg.PatternFlowSnmpv2cVariableBindingValueIntegerValueCounter\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x95\x01\n;PatternFlowSnmpv2cVariableBindingValueIpAddressValueCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xcd\x03\n4PatternFlowSnmpv2cVariableBindingValueIpAddressValue\x12Z\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x45.otg.PatternFlowSnmpv2cVariableBindingValueIpAddressValue.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12S\n\tincrement\x18\x05 \x01(\x0b\x32@.otg.PatternFlowSnmpv2cVariableBindingValueIpAddressValueCounter\x12S\n\tdecrement\x18\x06 \x01(\x0b\x32@.otg.PatternFlowSnmpv2cVariableBindingValueIpAddressValueCounter\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x93\x01\n9PatternFlowSnmpv2cVariableBindingValueCounterValueCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xc5\x03\n2PatternFlowSnmpv2cVariableBindingValueCounterValue\x12X\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x43.otg.PatternFlowSnmpv2cVariableBindingValueCounterValue.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12Q\n\tincrement\x18\x05 \x01(\x0b\x32>.otg.PatternFlowSnmpv2cVariableBindingValueCounterValueCounter\x12Q\n\tdecrement\x18\x06 \x01(\x0b\x32>.otg.PatternFlowSnmpv2cVariableBindingValueCounterValueCounter\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x95\x01\n;PatternFlowSnmpv2cVariableBindingValueTimeticksValueCounter\x12\x12\n\x05start\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\rH\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xcd\x03\n4PatternFlowSnmpv2cVariableBindingValueTimeticksValue\x12Z\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x45.otg.PatternFlowSnmpv2cVariableBindingValueTimeticksValue.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\r\x12S\n\tincrement\x18\x05 \x01(\x0b\x32@.otg.PatternFlowSnmpv2cVariableBindingValueTimeticksValueCounter\x12S\n\tdecrement\x18\x06 \x01(\x0b\x32@.otg.PatternFlowSnmpv2cVariableBindingValueTimeticksValueCounter\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x96\x01\n\n\x10GetStatesRequest\x12*\n\x0estates_request\x18\x01 \x01(\x0b\x32\x12.otg.StatesRequest\"A\n\x11GetStatesResponse\x12,\n\x0fstates_response\x18\x01 \x01(\x0b\x32\x13.otg.StatesResponse\"A\n\x11GetCaptureRequest\x12,\n\x0f\x63\x61pture_request\x18\x01 \x01(\x0b\x32\x13.otg.CaptureRequest\",\n\x12GetCaptureResponse\x12\x16\n\x0eresponse_bytes\x18\x01 \x01(\x0c\"3\n\x12GetVersionResponse\x12\x1d\n\x07version\x18\x01 \x01(\x0b\x32\x0c.otg.Version2\xdf\x04\n\x07Openapi\x12:\n\tSetConfig\x12\x15.otg.SetConfigRequest\x1a\x16.otg.SetConfigResponse\x12;\n\tGetConfig\x12\x16.google.protobuf.Empty\x1a\x16.otg.GetConfigResponse\x12\x43\n\x0cUpdateConfig\x12\x18.otg.UpdateConfigRequest\x1a\x19.otg.UpdateConfigResponse\x12L\n\x0fSetControlState\x12\x1b.otg.SetControlStateRequest\x1a\x1c.otg.SetControlStateResponse\x12O\n\x10SetControlAction\x12\x1c.otg.SetControlActionRequest\x1a\x1d.otg.SetControlActionResponse\x12=\n\nGetMetrics\x12\x16.otg.GetMetricsRequest\x1a\x17.otg.GetMetricsResponse\x12:\n\tGetStates\x12\x15.otg.GetStatesRequest\x1a\x16.otg.GetStatesResponse\x12=\n\nGetCapture\x12\x16.otg.GetCaptureRequest\x1a\x17.otg.GetCaptureResponse\x12=\n\nGetVersion\x12\x16.google.protobuf.Empty\x1a\x17.otg.GetVersionResponseB\x0bZ\t./otg;otgb\x06proto3') _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'otg_pb2', globals()) @@ -620,669 +620,693 @@ _FLOWROUTER_MODE_ENUM._serialized_start=47980 _FLOWROUTER_MODE_ENUM._serialized_end=48029 _FLOWHEADER._serialized_start=48041 - _FLOWHEADER._serialized_end=48955 - _FLOWHEADER_CHOICE._serialized_start=48699 - _FLOWHEADER_CHOICE._serialized_end=48944 - _FLOWHEADER_CHOICE_ENUM._serialized_start=48710 - _FLOWHEADER_CHOICE_ENUM._serialized_end=48944 - _FLOWCUSTOM._serialized_start=48957 - _FLOWCUSTOM._serialized_end=49046 - _FLOWCUSTOMMETRICTAG._serialized_start=49048 - _FLOWCUSTOMMETRICTAG._serialized_end=49161 - _FLOWETHERNET._serialized_start=49164 - _FLOWETHERNET._serialized_end=49370 - _FLOWVLAN._serialized_start=49373 - _FLOWVLAN._serialized_end=49545 - _FLOWVXLAN._serialized_start=49548 - _FLOWVXLAN._serialized_end=49743 - _FLOWIPV4._serialized_start=49746 - _FLOWIPV4._serialized_end=50518 - _FLOWIPV4OPTIONS._serialized_start=50521 - _FLOWIPV4OPTIONS._serialized_end=50713 - _FLOWIPV4OPTIONS_CHOICE._serialized_start=50639 - _FLOWIPV4OPTIONS_CHOICE._serialized_end=50702 - _FLOWIPV4OPTIONS_CHOICE_ENUM._serialized_start=50649 - _FLOWIPV4OPTIONS_CHOICE_ENUM._serialized_end=50702 - _FLOWIPV4OPTIONSCUSTOM._serialized_start=50716 - _FLOWIPV4OPTIONSCUSTOM._serialized_end=50865 - _FLOWIPV4OPTIONSCUSTOMTYPE._serialized_start=50868 - _FLOWIPV4OPTIONSCUSTOMTYPE._serialized_end=51111 - _FLOWIPV4OPTIONSCUSTOMLENGTH._serialized_start=51114 - _FLOWIPV4OPTIONSCUSTOMLENGTH._serialized_end=51335 + _FLOWHEADER._serialized_end=49003 + _FLOWHEADER_CHOICE._serialized_start=48734 + _FLOWHEADER_CHOICE._serialized_end=48992 + _FLOWHEADER_CHOICE_ENUM._serialized_start=48745 + _FLOWHEADER_CHOICE_ENUM._serialized_end=48992 + _FLOWCUSTOM._serialized_start=49005 + _FLOWCUSTOM._serialized_end=49094 + _FLOWCUSTOMMETRICTAG._serialized_start=49096 + _FLOWCUSTOMMETRICTAG._serialized_end=49209 + _FLOWETHERNET._serialized_start=49212 + _FLOWETHERNET._serialized_end=49418 + _FLOWVLAN._serialized_start=49421 + _FLOWVLAN._serialized_end=49593 + _FLOWVXLAN._serialized_start=49596 + _FLOWVXLAN._serialized_end=49791 + _FLOWIPV4._serialized_start=49794 + _FLOWIPV4._serialized_end=50566 + _FLOWIPV4OPTIONS._serialized_start=50569 + _FLOWIPV4OPTIONS._serialized_end=50761 + _FLOWIPV4OPTIONS_CHOICE._serialized_start=50687 + _FLOWIPV4OPTIONS_CHOICE._serialized_end=50750 + _FLOWIPV4OPTIONS_CHOICE_ENUM._serialized_start=50697 + _FLOWIPV4OPTIONS_CHOICE_ENUM._serialized_end=50750 + _FLOWIPV4OPTIONSCUSTOM._serialized_start=50764 + _FLOWIPV4OPTIONSCUSTOM._serialized_end=50913 + _FLOWIPV4OPTIONSCUSTOMTYPE._serialized_start=50916 + _FLOWIPV4OPTIONSCUSTOMTYPE._serialized_end=51159 + _FLOWIPV4OPTIONSCUSTOMLENGTH._serialized_start=51162 + _FLOWIPV4OPTIONSCUSTOMLENGTH._serialized_end=51383 _FLOWIPV4OPTIONSCUSTOMLENGTH_CHOICE._serialized_start=3062 _FLOWIPV4OPTIONSCUSTOMLENGTH_CHOICE._serialized_end=3116 _FLOWIPV4OPTIONSCUSTOMLENGTH_CHOICE_ENUM._serialized_start=3072 _FLOWIPV4OPTIONSCUSTOMLENGTH_CHOICE_ENUM._serialized_end=3116 - _FLOWIPV4PRIORITY._serialized_start=51338 - _FLOWIPV4PRIORITY._serialized_end=51596 - _FLOWIPV4PRIORITY_CHOICE._serialized_start=51524 - _FLOWIPV4PRIORITY_CHOICE._serialized_end=51585 - _FLOWIPV4PRIORITY_CHOICE_ENUM._serialized_start=51534 - _FLOWIPV4PRIORITY_CHOICE_ENUM._serialized_end=51585 - _FLOWIPV4DSCP._serialized_start=51598 - _FLOWIPV4DSCP._serialized_end=51696 - _FLOWIPV4TOS._serialized_start=51699 - _FLOWIPV4TOS._serialized_end=52022 - _FLOWIPV6._serialized_start=52025 - _FLOWIPV6._serialized_end=52426 - _FLOWPFCPAUSE._serialized_start=52429 - _FLOWPFCPAUSE._serialized_end=53198 - _FLOWETHERNETPAUSE._serialized_start=53201 - _FLOWETHERNETPAUSE._serialized_end=53492 - _FLOWTCP._serialized_start=53495 - _FLOWTCP._serialized_end=54175 - _FLOWUDP._serialized_start=54178 - _FLOWUDP._serialized_end=54369 - _FLOWGRE._serialized_start=54372 - _FLOWGRE._serialized_end=54680 - _FLOWGTPV1._serialized_start=54683 - _FLOWGTPV1._serialized_end=55386 - _FLOWGTPEXTENSION._serialized_start=55389 - _FLOWGTPEXTENSION._serialized_end=55614 - _FLOWGTPV2._serialized_start=55617 - _FLOWGTPV2._serialized_end=56100 - _FLOWARP._serialized_start=56103 - _FLOWARP._serialized_end=56669 - _FLOWICMP._serialized_start=56672 - _FLOWICMP._serialized_end=56819 - _FLOWICMP_CHOICE._serialized_start=56765 - _FLOWICMP_CHOICE._serialized_end=56808 - _FLOWICMP_CHOICE_ENUM._serialized_start=56775 - _FLOWICMP_CHOICE_ENUM._serialized_end=56808 - _FLOWICMPECHO._serialized_start=56822 - _FLOWICMPECHO._serialized_end=57097 - _FLOWICMPV6._serialized_start=57100 - _FLOWICMPV6._serialized_end=57253 - _FLOWICMPV6_CHOICE._serialized_start=56765 - _FLOWICMPV6_CHOICE._serialized_end=56808 - _FLOWICMPV6_CHOICE_ENUM._serialized_start=56775 - _FLOWICMPV6_CHOICE_ENUM._serialized_end=56808 - _FLOWICMPV6ECHO._serialized_start=57256 - _FLOWICMPV6ECHO._serialized_end=57543 - _FLOWPPP._serialized_start=57546 - _FLOWPPP._serialized_end=57701 - _FLOWIGMPV1._serialized_start=57704 - _FLOWIGMPV1._serialized_end=57961 - _FLOWMPLS._serialized_start=57964 - _FLOWMPLS._serialized_end=58187 - _FLOWSIZE._serialized_start=58190 - _FLOWSIZE._serialized_end=58508 - _FLOWSIZE_CHOICE._serialized_start=58398 - _FLOWSIZE_CHOICE._serialized_end=58487 - _FLOWSIZE_CHOICE_ENUM._serialized_start=58408 - _FLOWSIZE_CHOICE_ENUM._serialized_end=58487 - _FLOWSIZEINCREMENT._serialized_start=58510 - _FLOWSIZEINCREMENT._serialized_end=58613 - _FLOWSIZERANDOM._serialized_start=58615 - _FLOWSIZERANDOM._serialized_end=58683 - _FLOWSIZEWEIGHTPAIRS._serialized_start=58686 - _FLOWSIZEWEIGHTPAIRS._serialized_end=59083 - _FLOWSIZEWEIGHTPAIRS_CHOICE._serialized_start=58883 - _FLOWSIZEWEIGHTPAIRS_CHOICE._serialized_end=58944 - _FLOWSIZEWEIGHTPAIRS_CHOICE_ENUM._serialized_start=58893 - _FLOWSIZEWEIGHTPAIRS_CHOICE_ENUM._serialized_end=58944 - _FLOWSIZEWEIGHTPAIRS_PREDEFINED._serialized_start=58946 - _FLOWSIZEWEIGHTPAIRS_PREDEFINED._serialized_end=59057 - _FLOWSIZEWEIGHTPAIRS_PREDEFINED_ENUM._serialized_start=58960 - _FLOWSIZEWEIGHTPAIRS_PREDEFINED_ENUM._serialized_end=59057 - _FLOWSIZEWEIGHTPAIRSCUSTOM._serialized_start=59085 - _FLOWSIZEWEIGHTPAIRSCUSTOM._serialized_end=59172 - _FLOWRATE._serialized_start=59175 - _FLOWRATE._serialized_end=59519 - _FLOWRATE_CHOICE._serialized_start=59353 - _FLOWRATE_CHOICE._serialized_end=59450 - _FLOWRATE_CHOICE_ENUM._serialized_start=59363 - _FLOWRATE_CHOICE_ENUM._serialized_end=59450 - _FLOWDURATION._serialized_start=59522 - _FLOWDURATION._serialized_end=59863 - _FLOWDURATION_CHOICE._serialized_start=59754 - _FLOWDURATION_CHOICE._serialized_end=59852 - _FLOWDURATION_CHOICE_ENUM._serialized_start=59764 - _FLOWDURATION_CHOICE_ENUM._serialized_end=59852 - _FLOWCONTINUOUS._serialized_start=59865 - _FLOWCONTINUOUS._serialized_end=59938 - _FLOWDELAY._serialized_start=59941 - _FLOWDELAY._serialized_end=60209 - _FLOWDELAY_CHOICE._serialized_start=60076 - _FLOWDELAY_CHOICE._serialized_end=60155 - _FLOWDELAY_CHOICE_ENUM._serialized_start=60086 - _FLOWDELAY_CHOICE_ENUM._serialized_end=60155 - _FLOWFIXEDPACKETS._serialized_start=60211 - _FLOWFIXEDPACKETS._serialized_end=60320 - _FLOWFIXEDSECONDS._serialized_start=60322 - _FLOWFIXEDSECONDS._serialized_end=60431 - _FLOWBURST._serialized_start=60434 - _FLOWBURST._serialized_end=60594 - _FLOWDURATIONINTERBURSTGAP._serialized_start=60597 - _FLOWDURATIONINTERBURSTGAP._serialized_end=60897 - _FLOWDURATIONINTERBURSTGAP_CHOICE._serialized_start=60076 - _FLOWDURATIONINTERBURSTGAP_CHOICE._serialized_end=60155 - _FLOWDURATIONINTERBURSTGAP_CHOICE_ENUM._serialized_start=60086 - _FLOWDURATIONINTERBURSTGAP_CHOICE_ENUM._serialized_end=60155 - _FLOWMETRICS._serialized_start=60900 - _FLOWMETRICS._serialized_end=61153 - _FLOWLATENCYMETRICS._serialized_start=61156 - _FLOWLATENCYMETRICS._serialized_end=61340 - _FLOWLATENCYMETRICS_MODE._serialized_start=61253 - _FLOWLATENCYMETRICS_MODE._serialized_end=61320 - _FLOWLATENCYMETRICS_MODE_ENUM._serialized_start=61261 - _FLOWLATENCYMETRICS_MODE_ENUM._serialized_end=61320 - _FLOWPREDEFINEDTAGS._serialized_start=61342 - _FLOWPREDEFINEDTAGS._serialized_end=61396 - _FLOWRXTXRATIO._serialized_start=61399 - _FLOWRXTXRATIO._serialized_end=61613 - _FLOWRXTXRATIO_CHOICE._serialized_start=61534 - _FLOWRXTXRATIO_CHOICE._serialized_end=61592 - _FLOWRXTXRATIO_CHOICE_ENUM._serialized_start=61544 - _FLOWRXTXRATIO_CHOICE_ENUM._serialized_end=61592 - _FLOWRXTXRATIORXCOUNT._serialized_start=61615 - _FLOWRXTXRATIORXCOUNT._serialized_end=61637 - _EVENT._serialized_start=61640 - _EVENT._serialized_end=61831 - _EVENTRXRATETHRESHOLD._serialized_start=61833 - _EVENTRXRATETHRESHOLD._serialized_end=61925 - _EVENTLINK._serialized_start=61927 - _EVENTLINK._serialized_end=61970 - _EVENTROUTEADVERTISEWITHDRAW._serialized_start=61972 - _EVENTROUTEADVERTISEWITHDRAW._serialized_end=62033 - _EVENTREQUEST._serialized_start=62036 - _EVENTREQUEST._serialized_end=62281 - _EVENTREQUEST_TYPE._serialized_start=62112 - _EVENTREQUEST_TYPE._serialized_end=62281 - _EVENTREQUEST_TYPE_ENUM._serialized_start=62121 - _EVENTREQUEST_TYPE_ENUM._serialized_end=62281 - _EVENTSUBSCRIPTION._serialized_start=62283 - _EVENTSUBSCRIPTION._serialized_end=62381 - _LLDP._serialized_start=62384 - _LLDP._serialized_end=62677 - _LLDPCONNECTION._serialized_start=62680 - _LLDPCONNECTION._serialized_end=62849 - _LLDPCONNECTION_CHOICE._serialized_start=62776 - _LLDPCONNECTION_CHOICE._serialized_end=62824 + _FLOWIPV4PRIORITY._serialized_start=51386 + _FLOWIPV4PRIORITY._serialized_end=51644 + _FLOWIPV4PRIORITY_CHOICE._serialized_start=51572 + _FLOWIPV4PRIORITY_CHOICE._serialized_end=51633 + _FLOWIPV4PRIORITY_CHOICE_ENUM._serialized_start=51582 + _FLOWIPV4PRIORITY_CHOICE_ENUM._serialized_end=51633 + _FLOWIPV4DSCP._serialized_start=51646 + _FLOWIPV4DSCP._serialized_end=51744 + _FLOWIPV4TOS._serialized_start=51747 + _FLOWIPV4TOS._serialized_end=52070 + _FLOWIPV6._serialized_start=52073 + _FLOWIPV6._serialized_end=52474 + _FLOWPFCPAUSE._serialized_start=52477 + _FLOWPFCPAUSE._serialized_end=53246 + _FLOWETHERNETPAUSE._serialized_start=53249 + _FLOWETHERNETPAUSE._serialized_end=53540 + _FLOWTCP._serialized_start=53543 + _FLOWTCP._serialized_end=54223 + _FLOWUDP._serialized_start=54226 + _FLOWUDP._serialized_end=54417 + _FLOWGRE._serialized_start=54420 + _FLOWGRE._serialized_end=54728 + _FLOWGTPV1._serialized_start=54731 + _FLOWGTPV1._serialized_end=55434 + _FLOWGTPEXTENSION._serialized_start=55437 + _FLOWGTPEXTENSION._serialized_end=55662 + _FLOWGTPV2._serialized_start=55665 + _FLOWGTPV2._serialized_end=56148 + _FLOWARP._serialized_start=56151 + _FLOWARP._serialized_end=56717 + _FLOWICMP._serialized_start=56720 + _FLOWICMP._serialized_end=56867 + _FLOWICMP_CHOICE._serialized_start=56813 + _FLOWICMP_CHOICE._serialized_end=56856 + _FLOWICMP_CHOICE_ENUM._serialized_start=56823 + _FLOWICMP_CHOICE_ENUM._serialized_end=56856 + _FLOWICMPECHO._serialized_start=56870 + _FLOWICMPECHO._serialized_end=57145 + _FLOWICMPV6._serialized_start=57148 + _FLOWICMPV6._serialized_end=57301 + _FLOWICMPV6_CHOICE._serialized_start=56813 + _FLOWICMPV6_CHOICE._serialized_end=56856 + _FLOWICMPV6_CHOICE_ENUM._serialized_start=56823 + _FLOWICMPV6_CHOICE_ENUM._serialized_end=56856 + _FLOWICMPV6ECHO._serialized_start=57304 + _FLOWICMPV6ECHO._serialized_end=57591 + _FLOWPPP._serialized_start=57594 + _FLOWPPP._serialized_end=57749 + _FLOWIGMPV1._serialized_start=57752 + _FLOWIGMPV1._serialized_end=58009 + _FLOWMPLS._serialized_start=58012 + _FLOWMPLS._serialized_end=58235 + _FLOWSNMPV2C._serialized_start=58238 + _FLOWSNMPV2C._serialized_end=58374 + _FLOWSNMPV2CDATA._serialized_start=58377 + _FLOWSNMPV2CDATA._serialized_end=58983 + _FLOWSNMPV2CDATA_CHOICE._serialized_start=58797 + _FLOWSNMPV2CDATA_CHOICE._serialized_end=58972 + _FLOWSNMPV2CDATA_CHOICE_ENUM._serialized_start=58808 + _FLOWSNMPV2CDATA_CHOICE_ENUM._serialized_end=58972 + _FLOWSNMPV2CPDU._serialized_start=58986 + _FLOWSNMPV2CPDU._serialized_end=59645 + _FLOWSNMPV2CPDU_ERRORSTATUS._serialized_start=59246 + _FLOWSNMPV2CPDU_ERRORSTATUS._serialized_end=59628 + _FLOWSNMPV2CPDU_ERRORSTATUS_ENUM._serialized_start=59262 + _FLOWSNMPV2CPDU_ERRORSTATUS_ENUM._serialized_end=59628 + _FLOWSNMPV2CBULKPDU._serialized_start=59648 + _FLOWSNMPV2CBULKPDU._serialized_end=59927 + _FLOWSNMPV2CVARIABLEBINDING._serialized_start=59930 + _FLOWSNMPV2CVARIABLEBINDING._serialized_end=60065 + _FLOWSNMPV2CVARIABLEBINDINGVALUE._serialized_start=60068 + _FLOWSNMPV2CVARIABLEBINDINGVALUE._serialized_end=61107 + _FLOWSNMPV2CVARIABLEBINDINGVALUE_CHOICE._serialized_start=60783 + _FLOWSNMPV2CVARIABLEBINDINGVALUE_CHOICE._serialized_end=61031 + _FLOWSNMPV2CVARIABLEBINDINGVALUE_CHOICE_ENUM._serialized_start=60794 + _FLOWSNMPV2CVARIABLEBINDINGVALUE_CHOICE_ENUM._serialized_end=61031 + _FLOWSIZE._serialized_start=61110 + _FLOWSIZE._serialized_end=61428 + _FLOWSIZE_CHOICE._serialized_start=61318 + _FLOWSIZE_CHOICE._serialized_end=61407 + _FLOWSIZE_CHOICE_ENUM._serialized_start=61328 + _FLOWSIZE_CHOICE_ENUM._serialized_end=61407 + _FLOWSIZEINCREMENT._serialized_start=61430 + _FLOWSIZEINCREMENT._serialized_end=61533 + _FLOWSIZERANDOM._serialized_start=61535 + _FLOWSIZERANDOM._serialized_end=61603 + _FLOWSIZEWEIGHTPAIRS._serialized_start=61606 + _FLOWSIZEWEIGHTPAIRS._serialized_end=62003 + _FLOWSIZEWEIGHTPAIRS_CHOICE._serialized_start=61803 + _FLOWSIZEWEIGHTPAIRS_CHOICE._serialized_end=61864 + _FLOWSIZEWEIGHTPAIRS_CHOICE_ENUM._serialized_start=61813 + _FLOWSIZEWEIGHTPAIRS_CHOICE_ENUM._serialized_end=61864 + _FLOWSIZEWEIGHTPAIRS_PREDEFINED._serialized_start=61866 + _FLOWSIZEWEIGHTPAIRS_PREDEFINED._serialized_end=61977 + _FLOWSIZEWEIGHTPAIRS_PREDEFINED_ENUM._serialized_start=61880 + _FLOWSIZEWEIGHTPAIRS_PREDEFINED_ENUM._serialized_end=61977 + _FLOWSIZEWEIGHTPAIRSCUSTOM._serialized_start=62005 + _FLOWSIZEWEIGHTPAIRSCUSTOM._serialized_end=62092 + _FLOWRATE._serialized_start=62095 + _FLOWRATE._serialized_end=62439 + _FLOWRATE_CHOICE._serialized_start=62273 + _FLOWRATE_CHOICE._serialized_end=62370 + _FLOWRATE_CHOICE_ENUM._serialized_start=62283 + _FLOWRATE_CHOICE_ENUM._serialized_end=62370 + _FLOWDURATION._serialized_start=62442 + _FLOWDURATION._serialized_end=62783 + _FLOWDURATION_CHOICE._serialized_start=62674 + _FLOWDURATION_CHOICE._serialized_end=62772 + _FLOWDURATION_CHOICE_ENUM._serialized_start=62684 + _FLOWDURATION_CHOICE_ENUM._serialized_end=62772 + _FLOWCONTINUOUS._serialized_start=62785 + _FLOWCONTINUOUS._serialized_end=62858 + _FLOWDELAY._serialized_start=62861 + _FLOWDELAY._serialized_end=63129 + _FLOWDELAY_CHOICE._serialized_start=62996 + _FLOWDELAY_CHOICE._serialized_end=63075 + _FLOWDELAY_CHOICE_ENUM._serialized_start=63006 + _FLOWDELAY_CHOICE_ENUM._serialized_end=63075 + _FLOWFIXEDPACKETS._serialized_start=63131 + _FLOWFIXEDPACKETS._serialized_end=63240 + _FLOWFIXEDSECONDS._serialized_start=63242 + _FLOWFIXEDSECONDS._serialized_end=63351 + _FLOWBURST._serialized_start=63354 + _FLOWBURST._serialized_end=63514 + _FLOWDURATIONINTERBURSTGAP._serialized_start=63517 + _FLOWDURATIONINTERBURSTGAP._serialized_end=63817 + _FLOWDURATIONINTERBURSTGAP_CHOICE._serialized_start=62996 + _FLOWDURATIONINTERBURSTGAP_CHOICE._serialized_end=63075 + _FLOWDURATIONINTERBURSTGAP_CHOICE_ENUM._serialized_start=63006 + _FLOWDURATIONINTERBURSTGAP_CHOICE_ENUM._serialized_end=63075 + _FLOWMETRICS._serialized_start=63820 + _FLOWMETRICS._serialized_end=64073 + _FLOWLATENCYMETRICS._serialized_start=64076 + _FLOWLATENCYMETRICS._serialized_end=64260 + _FLOWLATENCYMETRICS_MODE._serialized_start=64173 + _FLOWLATENCYMETRICS_MODE._serialized_end=64240 + _FLOWLATENCYMETRICS_MODE_ENUM._serialized_start=64181 + _FLOWLATENCYMETRICS_MODE_ENUM._serialized_end=64240 + _FLOWPREDEFINEDTAGS._serialized_start=64262 + _FLOWPREDEFINEDTAGS._serialized_end=64316 + _FLOWRXTXRATIO._serialized_start=64319 + _FLOWRXTXRATIO._serialized_end=64533 + _FLOWRXTXRATIO_CHOICE._serialized_start=64454 + _FLOWRXTXRATIO_CHOICE._serialized_end=64512 + _FLOWRXTXRATIO_CHOICE_ENUM._serialized_start=64464 + _FLOWRXTXRATIO_CHOICE_ENUM._serialized_end=64512 + _FLOWRXTXRATIORXCOUNT._serialized_start=64535 + _FLOWRXTXRATIORXCOUNT._serialized_end=64557 + _EVENT._serialized_start=64560 + _EVENT._serialized_end=64751 + _EVENTRXRATETHRESHOLD._serialized_start=64753 + _EVENTRXRATETHRESHOLD._serialized_end=64845 + _EVENTLINK._serialized_start=64847 + _EVENTLINK._serialized_end=64890 + _EVENTROUTEADVERTISEWITHDRAW._serialized_start=64892 + _EVENTROUTEADVERTISEWITHDRAW._serialized_end=64953 + _EVENTREQUEST._serialized_start=64956 + _EVENTREQUEST._serialized_end=65201 + _EVENTREQUEST_TYPE._serialized_start=65032 + _EVENTREQUEST_TYPE._serialized_end=65201 + _EVENTREQUEST_TYPE_ENUM._serialized_start=65041 + _EVENTREQUEST_TYPE_ENUM._serialized_end=65201 + _EVENTSUBSCRIPTION._serialized_start=65203 + _EVENTSUBSCRIPTION._serialized_end=65301 + _LLDP._serialized_start=65304 + _LLDP._serialized_end=65597 + _LLDPCONNECTION._serialized_start=65600 + _LLDPCONNECTION._serialized_end=65769 + _LLDPCONNECTION_CHOICE._serialized_start=65696 + _LLDPCONNECTION_CHOICE._serialized_end=65744 _LLDPCONNECTION_CHOICE_ENUM._serialized_start=2258 _LLDPCONNECTION_CHOICE_ENUM._serialized_end=2296 - _LLDPCHASSISID._serialized_start=62852 - _LLDPCHASSISID._serialized_end=63205 - _LLDPCHASSISID_CHOICE._serialized_start=63044 - _LLDPCHASSISID_CHOICE._serialized_end=63149 - _LLDPCHASSISID_CHOICE_ENUM._serialized_start=63054 - _LLDPCHASSISID_CHOICE_ENUM._serialized_end=63149 - _LLDPPORTID._serialized_start=63208 - _LLDPPORTID._serialized_end=63559 - _LLDPPORTID_CHOICE._serialized_start=63044 - _LLDPPORTID_CHOICE._serialized_end=63149 - _LLDPPORTID_CHOICE_ENUM._serialized_start=63054 - _LLDPPORTID_CHOICE_ENUM._serialized_end=63149 - _LLDPCHASSISMACSUBTYPE._serialized_start=63562 - _LLDPCHASSISMACSUBTYPE._serialized_end=63771 + _LLDPCHASSISID._serialized_start=65772 + _LLDPCHASSISID._serialized_end=66125 + _LLDPCHASSISID_CHOICE._serialized_start=65964 + _LLDPCHASSISID_CHOICE._serialized_end=66069 + _LLDPCHASSISID_CHOICE_ENUM._serialized_start=65974 + _LLDPCHASSISID_CHOICE_ENUM._serialized_end=66069 + _LLDPPORTID._serialized_start=66128 + _LLDPPORTID._serialized_end=66479 + _LLDPPORTID_CHOICE._serialized_start=65964 + _LLDPPORTID_CHOICE._serialized_end=66069 + _LLDPPORTID_CHOICE_ENUM._serialized_start=65974 + _LLDPPORTID_CHOICE_ENUM._serialized_end=66069 + _LLDPCHASSISMACSUBTYPE._serialized_start=66482 + _LLDPCHASSISMACSUBTYPE._serialized_end=66691 _LLDPCHASSISMACSUBTYPE_CHOICE._serialized_start=3062 _LLDPCHASSISMACSUBTYPE_CHOICE._serialized_end=3116 _LLDPCHASSISMACSUBTYPE_CHOICE_ENUM._serialized_start=3072 _LLDPCHASSISMACSUBTYPE_CHOICE_ENUM._serialized_end=3116 - _LLDPPORTINTERFACENAMESUBTYPE._serialized_start=63774 - _LLDPPORTINTERFACENAMESUBTYPE._serialized_end=63997 + _LLDPPORTINTERFACENAMESUBTYPE._serialized_start=66694 + _LLDPPORTINTERFACENAMESUBTYPE._serialized_end=66917 _LLDPPORTINTERFACENAMESUBTYPE_CHOICE._serialized_start=3062 _LLDPPORTINTERFACENAMESUBTYPE_CHOICE._serialized_end=3116 _LLDPPORTINTERFACENAMESUBTYPE_CHOICE_ENUM._serialized_start=3072 _LLDPPORTINTERFACENAMESUBTYPE_CHOICE_ENUM._serialized_end=3116 - _LLDPSYSTEMNAME._serialized_start=64000 - _LLDPSYSTEMNAME._serialized_end=64195 + _LLDPSYSTEMNAME._serialized_start=66920 + _LLDPSYSTEMNAME._serialized_end=67115 _LLDPSYSTEMNAME_CHOICE._serialized_start=3062 _LLDPSYSTEMNAME_CHOICE._serialized_end=3116 _LLDPSYSTEMNAME_CHOICE_ENUM._serialized_start=3072 _LLDPSYSTEMNAME_CHOICE_ENUM._serialized_end=3116 - _ERROR._serialized_start=64198 - _ERROR._serialized_end=64362 - _ERROR_KIND._serialized_start=64283 - _ERROR_KIND._serialized_end=64344 - _ERROR_KIND_ENUM._serialized_start=64291 - _ERROR_KIND_ENUM._serialized_end=64344 - _WARNING._serialized_start=64364 - _WARNING._serialized_end=64391 - _CONFIGUPDATE._serialized_start=64394 - _CONFIGUPDATE._serialized_end=64550 - _CONFIGUPDATE_CHOICE._serialized_start=64495 - _CONFIGUPDATE_CHOICE._serialized_end=64539 - _CONFIGUPDATE_CHOICE_ENUM._serialized_start=64505 - _CONFIGUPDATE_CHOICE_ENUM._serialized_end=64539 - _FLOWSUPDATE._serialized_start=64553 - _FLOWSUPDATE._serialized_end=64715 - _FLOWSUPDATE_PROPERTYNAMES._serialized_start=64655 - _FLOWSUPDATE_PROPERTYNAMES._serialized_end=64715 - _FLOWSUPDATE_PROPERTYNAMES_ENUM._serialized_start=64672 - _FLOWSUPDATE_PROPERTYNAMES_ENUM._serialized_end=64715 - _CONTROLSTATE._serialized_start=64718 - _CONTROLSTATE._serialized_end=64971 - _CONTROLSTATE_CHOICE._serialized_start=64890 - _CONTROLSTATE_CHOICE._serialized_end=64960 - _CONTROLSTATE_CHOICE_ENUM._serialized_start=64900 - _CONTROLSTATE_CHOICE_ENUM._serialized_end=64960 - _STATEPORT._serialized_start=64974 - _STATEPORT._serialized_end=65177 - _STATEPORT_CHOICE._serialized_start=65110 - _STATEPORT_CHOICE._serialized_end=65166 - _STATEPORT_CHOICE_ENUM._serialized_start=65120 - _STATEPORT_CHOICE_ENUM._serialized_end=65166 - _STATETRAFFIC._serialized_start=65180 - _STATETRAFFIC._serialized_end=65365 - _STATETRAFFIC_CHOICE._serialized_start=65302 - _STATETRAFFIC_CHOICE._serialized_end=65354 - _STATETRAFFIC_CHOICE_ENUM._serialized_start=65312 - _STATETRAFFIC_CHOICE_ENUM._serialized_end=65354 - _STATEPROTOCOL._serialized_start=65368 - _STATEPROTOCOL._serialized_end=65719 - _STATEPROTOCOL_CHOICE._serialized_start=65626 - _STATEPROTOCOL_CHOICE._serialized_end=65708 - _STATEPROTOCOL_CHOICE_ENUM._serialized_start=65636 - _STATEPROTOCOL_CHOICE_ENUM._serialized_end=65708 - _STATEPORTLINK._serialized_start=65722 - _STATEPORTLINK._serialized_end=65870 - _STATEPORTLINK_STATE._serialized_start=65810 - _STATEPORTLINK_STATE._serialized_end=65860 + _ERROR._serialized_start=67118 + _ERROR._serialized_end=67282 + _ERROR_KIND._serialized_start=67203 + _ERROR_KIND._serialized_end=67264 + _ERROR_KIND_ENUM._serialized_start=67211 + _ERROR_KIND_ENUM._serialized_end=67264 + _WARNING._serialized_start=67284 + _WARNING._serialized_end=67311 + _CONFIGUPDATE._serialized_start=67314 + _CONFIGUPDATE._serialized_end=67470 + _CONFIGUPDATE_CHOICE._serialized_start=67415 + _CONFIGUPDATE_CHOICE._serialized_end=67459 + _CONFIGUPDATE_CHOICE_ENUM._serialized_start=67425 + _CONFIGUPDATE_CHOICE_ENUM._serialized_end=67459 + _FLOWSUPDATE._serialized_start=67473 + _FLOWSUPDATE._serialized_end=67635 + _FLOWSUPDATE_PROPERTYNAMES._serialized_start=67575 + _FLOWSUPDATE_PROPERTYNAMES._serialized_end=67635 + _FLOWSUPDATE_PROPERTYNAMES_ENUM._serialized_start=67592 + _FLOWSUPDATE_PROPERTYNAMES_ENUM._serialized_end=67635 + _CONTROLSTATE._serialized_start=67638 + _CONTROLSTATE._serialized_end=67891 + _CONTROLSTATE_CHOICE._serialized_start=67810 + _CONTROLSTATE_CHOICE._serialized_end=67880 + _CONTROLSTATE_CHOICE_ENUM._serialized_start=67820 + _CONTROLSTATE_CHOICE_ENUM._serialized_end=67880 + _STATEPORT._serialized_start=67894 + _STATEPORT._serialized_end=68097 + _STATEPORT_CHOICE._serialized_start=68030 + _STATEPORT_CHOICE._serialized_end=68086 + _STATEPORT_CHOICE_ENUM._serialized_start=68040 + _STATEPORT_CHOICE_ENUM._serialized_end=68086 + _STATETRAFFIC._serialized_start=68100 + _STATETRAFFIC._serialized_end=68285 + _STATETRAFFIC_CHOICE._serialized_start=68222 + _STATETRAFFIC_CHOICE._serialized_end=68274 + _STATETRAFFIC_CHOICE_ENUM._serialized_start=68232 + _STATETRAFFIC_CHOICE_ENUM._serialized_end=68274 + _STATEPROTOCOL._serialized_start=68288 + _STATEPROTOCOL._serialized_end=68639 + _STATEPROTOCOL_CHOICE._serialized_start=68546 + _STATEPROTOCOL_CHOICE._serialized_end=68628 + _STATEPROTOCOL_CHOICE_ENUM._serialized_start=68556 + _STATEPROTOCOL_CHOICE_ENUM._serialized_end=68628 + _STATEPORTLINK._serialized_start=68642 + _STATEPORTLINK._serialized_end=68790 + _STATEPORTLINK_STATE._serialized_start=68730 + _STATEPORTLINK_STATE._serialized_end=68780 _STATEPORTLINK_STATE_ENUM._serialized_start=12651 _STATEPORTLINK_STATE_ENUM._serialized_end=12692 - _STATEPORTCAPTURE._serialized_start=65873 - _STATEPORTCAPTURE._serialized_end=66030 - _STATEPORTCAPTURE_STATE._serialized_start=65967 - _STATEPORTCAPTURE_STATE._serialized_end=66020 - _STATEPORTCAPTURE_STATE_ENUM._serialized_start=65976 - _STATEPORTCAPTURE_STATE_ENUM._serialized_end=66020 - _STATETRAFFICFLOWTRANSMIT._serialized_start=66033 - _STATETRAFFICFLOWTRANSMIT._serialized_end=66229 - _STATETRAFFICFLOWTRANSMIT_STATE._serialized_start=66143 - _STATETRAFFICFLOWTRANSMIT_STATE._serialized_end=66219 - _STATETRAFFICFLOWTRANSMIT_STATE_ENUM._serialized_start=66152 - _STATETRAFFICFLOWTRANSMIT_STATE_ENUM._serialized_end=66219 - _STATEPROTOCOLALL._serialized_start=66232 - _STATEPROTOCOLALL._serialized_end=66369 - _STATEPROTOCOLALL_STATE._serialized_start=65967 - _STATEPROTOCOLALL_STATE._serialized_end=66020 - _STATEPROTOCOLALL_STATE_ENUM._serialized_start=65976 - _STATEPROTOCOLALL_STATE_ENUM._serialized_end=66020 - _STATEPROTOCOLROUTE._serialized_start=66372 - _STATEPROTOCOLROUTE._serialized_end=66536 - _STATEPROTOCOLROUTE_STATE._serialized_start=66465 - _STATEPROTOCOLROUTE_STATE._serialized_end=66526 - _STATEPROTOCOLROUTE_STATE_ENUM._serialized_start=66474 - _STATEPROTOCOLROUTE_STATE_ENUM._serialized_end=66526 - _STATEPROTOCOLLACP._serialized_start=66539 - _STATEPROTOCOLLACP._serialized_end=66791 - _STATEPROTOCOLLACP_CHOICE._serialized_start=66718 - _STATEPROTOCOLLACP_CHOICE._serialized_end=66780 - _STATEPROTOCOLLACP_CHOICE_ENUM._serialized_start=66728 - _STATEPROTOCOLLACP_CHOICE_ENUM._serialized_end=66780 - _STATEPROTOCOLLACPADMIN._serialized_start=66794 - _STATEPROTOCOLLACPADMIN._serialized_end=66966 - _STATEPROTOCOLLACPADMIN_STATE._serialized_start=65810 - _STATEPROTOCOLLACPADMIN_STATE._serialized_end=65860 + _STATEPORTCAPTURE._serialized_start=68793 + _STATEPORTCAPTURE._serialized_end=68950 + _STATEPORTCAPTURE_STATE._serialized_start=68887 + _STATEPORTCAPTURE_STATE._serialized_end=68940 + _STATEPORTCAPTURE_STATE_ENUM._serialized_start=68896 + _STATEPORTCAPTURE_STATE_ENUM._serialized_end=68940 + _STATETRAFFICFLOWTRANSMIT._serialized_start=68953 + _STATETRAFFICFLOWTRANSMIT._serialized_end=69149 + _STATETRAFFICFLOWTRANSMIT_STATE._serialized_start=69063 + _STATETRAFFICFLOWTRANSMIT_STATE._serialized_end=69139 + _STATETRAFFICFLOWTRANSMIT_STATE_ENUM._serialized_start=69072 + _STATETRAFFICFLOWTRANSMIT_STATE_ENUM._serialized_end=69139 + _STATEPROTOCOLALL._serialized_start=69152 + _STATEPROTOCOLALL._serialized_end=69289 + _STATEPROTOCOLALL_STATE._serialized_start=68887 + _STATEPROTOCOLALL_STATE._serialized_end=68940 + _STATEPROTOCOLALL_STATE_ENUM._serialized_start=68896 + _STATEPROTOCOLALL_STATE_ENUM._serialized_end=68940 + _STATEPROTOCOLROUTE._serialized_start=69292 + _STATEPROTOCOLROUTE._serialized_end=69456 + _STATEPROTOCOLROUTE_STATE._serialized_start=69385 + _STATEPROTOCOLROUTE_STATE._serialized_end=69446 + _STATEPROTOCOLROUTE_STATE_ENUM._serialized_start=69394 + _STATEPROTOCOLROUTE_STATE_ENUM._serialized_end=69446 + _STATEPROTOCOLLACP._serialized_start=69459 + _STATEPROTOCOLLACP._serialized_end=69711 + _STATEPROTOCOLLACP_CHOICE._serialized_start=69638 + _STATEPROTOCOLLACP_CHOICE._serialized_end=69700 + _STATEPROTOCOLLACP_CHOICE_ENUM._serialized_start=69648 + _STATEPROTOCOLLACP_CHOICE_ENUM._serialized_end=69700 + _STATEPROTOCOLLACPADMIN._serialized_start=69714 + _STATEPROTOCOLLACPADMIN._serialized_end=69886 + _STATEPROTOCOLLACPADMIN_STATE._serialized_start=68730 + _STATEPROTOCOLLACPADMIN_STATE._serialized_end=68780 _STATEPROTOCOLLACPADMIN_STATE_ENUM._serialized_start=12651 _STATEPROTOCOLLACPADMIN_STATE_ENUM._serialized_end=12692 - _STATEPROTOCOLLACPMEMBERPORTS._serialized_start=66969 - _STATEPROTOCOLLACPMEMBERPORTS._serialized_end=67153 - _STATEPROTOCOLLACPMEMBERPORTS_STATE._serialized_start=65810 - _STATEPROTOCOLLACPMEMBERPORTS_STATE._serialized_end=65860 + _STATEPROTOCOLLACPMEMBERPORTS._serialized_start=69889 + _STATEPROTOCOLLACPMEMBERPORTS._serialized_end=70073 + _STATEPROTOCOLLACPMEMBERPORTS_STATE._serialized_start=68730 + _STATEPROTOCOLLACPMEMBERPORTS_STATE._serialized_end=68780 _STATEPROTOCOLLACPMEMBERPORTS_STATE_ENUM._serialized_start=12651 _STATEPROTOCOLLACPMEMBERPORTS_STATE_ENUM._serialized_end=12692 - _STATEPROTOCOLBGP._serialized_start=67156 - _STATEPROTOCOLBGP._serialized_end=67330 - _STATEPROTOCOLBGP_CHOICE._serialized_start=67275 - _STATEPROTOCOLBGP_CHOICE._serialized_end=67319 - _STATEPROTOCOLBGP_CHOICE_ENUM._serialized_start=67285 - _STATEPROTOCOLBGP_CHOICE_ENUM._serialized_end=67319 - _STATEPROTOCOLBGPPEERS._serialized_start=67333 - _STATEPROTOCOLBGPPEERS._serialized_end=67497 - _STATEPROTOCOLBGPPEERS_STATE._serialized_start=65810 - _STATEPROTOCOLBGPPEERS_STATE._serialized_end=65860 + _STATEPROTOCOLBGP._serialized_start=70076 + _STATEPROTOCOLBGP._serialized_end=70250 + _STATEPROTOCOLBGP_CHOICE._serialized_start=70195 + _STATEPROTOCOLBGP_CHOICE._serialized_end=70239 + _STATEPROTOCOLBGP_CHOICE_ENUM._serialized_start=70205 + _STATEPROTOCOLBGP_CHOICE_ENUM._serialized_end=70239 + _STATEPROTOCOLBGPPEERS._serialized_start=70253 + _STATEPROTOCOLBGPPEERS._serialized_end=70417 + _STATEPROTOCOLBGPPEERS_STATE._serialized_start=68730 + _STATEPROTOCOLBGPPEERS_STATE._serialized_end=68780 _STATEPROTOCOLBGPPEERS_STATE_ENUM._serialized_start=12651 _STATEPROTOCOLBGPPEERS_STATE_ENUM._serialized_end=12692 - _STATEPROTOCOLISIS._serialized_start=67500 - _STATEPROTOCOLISIS._serialized_end=67683 - _STATEPROTOCOLISIS_CHOICE._serialized_start=67626 - _STATEPROTOCOLISIS_CHOICE._serialized_end=67672 - _STATEPROTOCOLISIS_CHOICE_ENUM._serialized_start=67636 - _STATEPROTOCOLISIS_CHOICE_ENUM._serialized_end=67672 - _STATEPROTOCOLISISROUTERS._serialized_start=67686 - _STATEPROTOCOLISISROUTERS._serialized_end=67858 - _STATEPROTOCOLISISROUTERS_STATE._serialized_start=65810 - _STATEPROTOCOLISISROUTERS_STATE._serialized_end=65860 + _STATEPROTOCOLISIS._serialized_start=70420 + _STATEPROTOCOLISIS._serialized_end=70603 + _STATEPROTOCOLISIS_CHOICE._serialized_start=70546 + _STATEPROTOCOLISIS_CHOICE._serialized_end=70592 + _STATEPROTOCOLISIS_CHOICE_ENUM._serialized_start=70556 + _STATEPROTOCOLISIS_CHOICE_ENUM._serialized_end=70592 + _STATEPROTOCOLISISROUTERS._serialized_start=70606 + _STATEPROTOCOLISISROUTERS._serialized_end=70778 + _STATEPROTOCOLISISROUTERS_STATE._serialized_start=68730 + _STATEPROTOCOLISISROUTERS_STATE._serialized_end=68780 _STATEPROTOCOLISISROUTERS_STATE_ENUM._serialized_start=12651 _STATEPROTOCOLISISROUTERS_STATE_ENUM._serialized_end=12692 - _CONTROLACTION._serialized_start=67861 - _CONTROLACTION._serialized_end=68028 - _CONTROLACTION_CHOICE._serialized_start=67970 - _CONTROLACTION_CHOICE._serialized_end=68017 - _CONTROLACTION_CHOICE_ENUM._serialized_start=67980 - _CONTROLACTION_CHOICE_ENUM._serialized_end=68017 - _CONTROLACTIONRESPONSE._serialized_start=68030 - _CONTROLACTIONRESPONSE._serialized_end=68110 - _ACTIONRESPONSE._serialized_start=68113 - _ACTIONRESPONSE._serialized_end=68290 - _ACTIONRESPONSE_CHOICE._serialized_start=67970 - _ACTIONRESPONSE_CHOICE._serialized_end=68017 - _ACTIONRESPONSE_CHOICE_ENUM._serialized_start=67980 - _ACTIONRESPONSE_CHOICE_ENUM._serialized_end=68017 - _ACTIONPROTOCOL._serialized_start=68293 - _ACTIONPROTOCOL._serialized_end=68553 - _ACTIONPROTOCOL_CHOICE._serialized_start=68480 - _ACTIONPROTOCOL_CHOICE._serialized_end=68542 - _ACTIONPROTOCOL_CHOICE_ENUM._serialized_start=68490 - _ACTIONPROTOCOL_CHOICE_ENUM._serialized_end=68542 - _ACTIONRESPONSEPROTOCOL._serialized_start=68556 - _ACTIONRESPONSEPROTOCOL._serialized_end=68802 - _ACTIONRESPONSEPROTOCOL_CHOICE._serialized_start=68738 - _ACTIONRESPONSEPROTOCOL_CHOICE._serialized_end=68791 + _CONTROLACTION._serialized_start=70781 + _CONTROLACTION._serialized_end=70948 + _CONTROLACTION_CHOICE._serialized_start=70890 + _CONTROLACTION_CHOICE._serialized_end=70937 + _CONTROLACTION_CHOICE_ENUM._serialized_start=70900 + _CONTROLACTION_CHOICE_ENUM._serialized_end=70937 + _CONTROLACTIONRESPONSE._serialized_start=70950 + _CONTROLACTIONRESPONSE._serialized_end=71030 + _ACTIONRESPONSE._serialized_start=71033 + _ACTIONRESPONSE._serialized_end=71210 + _ACTIONRESPONSE_CHOICE._serialized_start=70890 + _ACTIONRESPONSE_CHOICE._serialized_end=70937 + _ACTIONRESPONSE_CHOICE_ENUM._serialized_start=70900 + _ACTIONRESPONSE_CHOICE_ENUM._serialized_end=70937 + _ACTIONPROTOCOL._serialized_start=71213 + _ACTIONPROTOCOL._serialized_end=71473 + _ACTIONPROTOCOL_CHOICE._serialized_start=71400 + _ACTIONPROTOCOL_CHOICE._serialized_end=71462 + _ACTIONPROTOCOL_CHOICE_ENUM._serialized_start=71410 + _ACTIONPROTOCOL_CHOICE_ENUM._serialized_end=71462 + _ACTIONRESPONSEPROTOCOL._serialized_start=71476 + _ACTIONRESPONSEPROTOCOL._serialized_end=71722 + _ACTIONRESPONSEPROTOCOL_CHOICE._serialized_start=71658 + _ACTIONRESPONSEPROTOCOL_CHOICE._serialized_end=71711 _ACTIONRESPONSEPROTOCOL_CHOICE_ENUM._serialized_start=23764 _ACTIONRESPONSEPROTOCOL_CHOICE_ENUM._serialized_end=23807 - _ACTIONPROTOCOLIPV4._serialized_start=68805 - _ACTIONPROTOCOLIPV4._serialized_end=68982 - _ACTIONPROTOCOLIPV4_CHOICE._serialized_start=68928 - _ACTIONPROTOCOLIPV4_CHOICE._serialized_end=68971 - _ACTIONPROTOCOLIPV4_CHOICE_ENUM._serialized_start=68938 - _ACTIONPROTOCOLIPV4_CHOICE_ENUM._serialized_end=68971 - _ACTIONRESPONSEPROTOCOLIPV4._serialized_start=68985 - _ACTIONRESPONSEPROTOCOLIPV4._serialized_end=69186 - _ACTIONRESPONSEPROTOCOLIPV4_CHOICE._serialized_start=68928 - _ACTIONRESPONSEPROTOCOLIPV4_CHOICE._serialized_end=68971 - _ACTIONRESPONSEPROTOCOLIPV4_CHOICE_ENUM._serialized_start=68938 - _ACTIONRESPONSEPROTOCOLIPV4_CHOICE_ENUM._serialized_end=68971 - _ACTIONPROTOCOLIPV4PING._serialized_start=69188 - _ACTIONPROTOCOLIPV4PING._serialized_end=69266 - _ACTIONPROTOCOLIPV4PINGREQUEST._serialized_start=69268 - _ACTIONPROTOCOLIPV4PINGREQUEST._serialized_end=69367 - _ACTIONRESPONSEPROTOCOLIPV4PING._serialized_start=69369 - _ACTIONRESPONSEPROTOCOLIPV4PING._serialized_end=69465 - _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE._serialized_start=69468 - _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE._serialized_end=69727 - _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT._serialized_start=69632 - _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT._serialized_end=69692 - _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT_ENUM._serialized_start=69642 - _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT_ENUM._serialized_end=69692 - _ACTIONPROTOCOLIPV6._serialized_start=69730 - _ACTIONPROTOCOLIPV6._serialized_end=69907 - _ACTIONPROTOCOLIPV6_CHOICE._serialized_start=68928 - _ACTIONPROTOCOLIPV6_CHOICE._serialized_end=68971 - _ACTIONPROTOCOLIPV6_CHOICE_ENUM._serialized_start=68938 - _ACTIONPROTOCOLIPV6_CHOICE_ENUM._serialized_end=68971 - _ACTIONRESPONSEPROTOCOLIPV6._serialized_start=69910 - _ACTIONRESPONSEPROTOCOLIPV6._serialized_end=70111 - _ACTIONRESPONSEPROTOCOLIPV6_CHOICE._serialized_start=68928 - _ACTIONRESPONSEPROTOCOLIPV6_CHOICE._serialized_end=68971 - _ACTIONRESPONSEPROTOCOLIPV6_CHOICE_ENUM._serialized_start=68938 - _ACTIONRESPONSEPROTOCOLIPV6_CHOICE_ENUM._serialized_end=68971 - _ACTIONPROTOCOLIPV6PING._serialized_start=70113 - _ACTIONPROTOCOLIPV6PING._serialized_end=70191 - _ACTIONPROTOCOLIPV6PINGREQUEST._serialized_start=70193 - _ACTIONPROTOCOLIPV6PINGREQUEST._serialized_end=70292 - _ACTIONRESPONSEPROTOCOLIPV6PING._serialized_start=70294 - _ACTIONRESPONSEPROTOCOLIPV6PING._serialized_end=70390 - _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE._serialized_start=70393 - _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE._serialized_end=70652 - _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT._serialized_start=69632 - _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT._serialized_end=69692 - _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT_ENUM._serialized_start=69642 - _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT_ENUM._serialized_end=69692 - _ACTIONPROTOCOLBGP._serialized_start=70655 - _ACTIONPROTOCOLBGP._serialized_end=70966 - _ACTIONPROTOCOLBGP_CHOICE._serialized_start=70873 - _ACTIONPROTOCOLBGP_CHOICE._serialized_end=70955 - _ACTIONPROTOCOLBGP_CHOICE_ENUM._serialized_start=70883 - _ACTIONPROTOCOLBGP_CHOICE_ENUM._serialized_end=70955 - _ACTIONPROTOCOLBGPNOTIFICATION._serialized_start=70969 - _ACTIONPROTOCOLBGPNOTIFICATION._serialized_end=71694 - _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE._serialized_start=71494 - _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE._serialized_end=71683 - _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE_ENUM._serialized_start=71505 - _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE_ENUM._serialized_end=71683 - _ACTIONPROTOCOLBGPINITIATEGRACEFULRESTART._serialized_start=71696 - _ACTIONPROTOCOLBGPINITIATEGRACEFULRESTART._serialized_end=71804 - _METRICSREQUEST._serialized_start=71807 - _METRICSREQUEST._serialized_end=72367 - _METRICSREQUEST_CHOICE._serialized_start=72232 - _METRICSREQUEST_CHOICE._serialized_end=72356 - _METRICSREQUEST_CHOICE_ENUM._serialized_start=72242 - _METRICSREQUEST_CHOICE_ENUM._serialized_end=72356 - _METRICSRESPONSE._serialized_start=72370 - _METRICSRESPONSE._serialized_end=73006 - _METRICSRESPONSE_CHOICE._serialized_start=72798 - _METRICSRESPONSE_CHOICE._serialized_end=72995 - _METRICSRESPONSE_CHOICE_ENUM._serialized_start=72809 - _METRICSRESPONSE_CHOICE_ENUM._serialized_end=72995 - _PORTMETRICSREQUEST._serialized_start=73009 - _PORTMETRICSREQUEST._serialized_end=73342 - _PORTMETRICSREQUEST_COLUMNNAMES._serialized_start=73116 - _PORTMETRICSREQUEST_COLUMNNAMES._serialized_end=73342 - _PORTMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=73132 - _PORTMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=73342 - _PORTMETRIC._serialized_start=73345 - _PORTMETRIC._serialized_end=74119 - _PORTMETRIC_LINK._serialized_start=73761 - _PORTMETRIC_LINK._serialized_end=73810 + _ACTIONPROTOCOLIPV4._serialized_start=71725 + _ACTIONPROTOCOLIPV4._serialized_end=71902 + _ACTIONPROTOCOLIPV4_CHOICE._serialized_start=71848 + _ACTIONPROTOCOLIPV4_CHOICE._serialized_end=71891 + _ACTIONPROTOCOLIPV4_CHOICE_ENUM._serialized_start=71858 + _ACTIONPROTOCOLIPV4_CHOICE_ENUM._serialized_end=71891 + _ACTIONRESPONSEPROTOCOLIPV4._serialized_start=71905 + _ACTIONRESPONSEPROTOCOLIPV4._serialized_end=72106 + _ACTIONRESPONSEPROTOCOLIPV4_CHOICE._serialized_start=71848 + _ACTIONRESPONSEPROTOCOLIPV4_CHOICE._serialized_end=71891 + _ACTIONRESPONSEPROTOCOLIPV4_CHOICE_ENUM._serialized_start=71858 + _ACTIONRESPONSEPROTOCOLIPV4_CHOICE_ENUM._serialized_end=71891 + _ACTIONPROTOCOLIPV4PING._serialized_start=72108 + _ACTIONPROTOCOLIPV4PING._serialized_end=72186 + _ACTIONPROTOCOLIPV4PINGREQUEST._serialized_start=72188 + _ACTIONPROTOCOLIPV4PINGREQUEST._serialized_end=72287 + _ACTIONRESPONSEPROTOCOLIPV4PING._serialized_start=72289 + _ACTIONRESPONSEPROTOCOLIPV4PING._serialized_end=72385 + _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE._serialized_start=72388 + _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE._serialized_end=72647 + _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT._serialized_start=72552 + _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT._serialized_end=72612 + _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT_ENUM._serialized_start=72562 + _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT_ENUM._serialized_end=72612 + _ACTIONPROTOCOLIPV6._serialized_start=72650 + _ACTIONPROTOCOLIPV6._serialized_end=72827 + _ACTIONPROTOCOLIPV6_CHOICE._serialized_start=71848 + _ACTIONPROTOCOLIPV6_CHOICE._serialized_end=71891 + _ACTIONPROTOCOLIPV6_CHOICE_ENUM._serialized_start=71858 + _ACTIONPROTOCOLIPV6_CHOICE_ENUM._serialized_end=71891 + _ACTIONRESPONSEPROTOCOLIPV6._serialized_start=72830 + _ACTIONRESPONSEPROTOCOLIPV6._serialized_end=73031 + _ACTIONRESPONSEPROTOCOLIPV6_CHOICE._serialized_start=71848 + _ACTIONRESPONSEPROTOCOLIPV6_CHOICE._serialized_end=71891 + _ACTIONRESPONSEPROTOCOLIPV6_CHOICE_ENUM._serialized_start=71858 + _ACTIONRESPONSEPROTOCOLIPV6_CHOICE_ENUM._serialized_end=71891 + _ACTIONPROTOCOLIPV6PING._serialized_start=73033 + _ACTIONPROTOCOLIPV6PING._serialized_end=73111 + _ACTIONPROTOCOLIPV6PINGREQUEST._serialized_start=73113 + _ACTIONPROTOCOLIPV6PINGREQUEST._serialized_end=73212 + _ACTIONRESPONSEPROTOCOLIPV6PING._serialized_start=73214 + _ACTIONRESPONSEPROTOCOLIPV6PING._serialized_end=73310 + _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE._serialized_start=73313 + _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE._serialized_end=73572 + _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT._serialized_start=72552 + _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT._serialized_end=72612 + _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT_ENUM._serialized_start=72562 + _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT_ENUM._serialized_end=72612 + _ACTIONPROTOCOLBGP._serialized_start=73575 + _ACTIONPROTOCOLBGP._serialized_end=73886 + _ACTIONPROTOCOLBGP_CHOICE._serialized_start=73793 + _ACTIONPROTOCOLBGP_CHOICE._serialized_end=73875 + _ACTIONPROTOCOLBGP_CHOICE_ENUM._serialized_start=73803 + _ACTIONPROTOCOLBGP_CHOICE_ENUM._serialized_end=73875 + _ACTIONPROTOCOLBGPNOTIFICATION._serialized_start=73889 + _ACTIONPROTOCOLBGPNOTIFICATION._serialized_end=74614 + _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE._serialized_start=74414 + _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE._serialized_end=74603 + _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE_ENUM._serialized_start=74425 + _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE_ENUM._serialized_end=74603 + _ACTIONPROTOCOLBGPINITIATEGRACEFULRESTART._serialized_start=74616 + _ACTIONPROTOCOLBGPINITIATEGRACEFULRESTART._serialized_end=74724 + _METRICSREQUEST._serialized_start=74727 + _METRICSREQUEST._serialized_end=75287 + _METRICSREQUEST_CHOICE._serialized_start=75152 + _METRICSREQUEST_CHOICE._serialized_end=75276 + _METRICSREQUEST_CHOICE_ENUM._serialized_start=75162 + _METRICSREQUEST_CHOICE_ENUM._serialized_end=75276 + _METRICSRESPONSE._serialized_start=75290 + _METRICSRESPONSE._serialized_end=75926 + _METRICSRESPONSE_CHOICE._serialized_start=75718 + _METRICSRESPONSE_CHOICE._serialized_end=75915 + _METRICSRESPONSE_CHOICE_ENUM._serialized_start=75729 + _METRICSRESPONSE_CHOICE_ENUM._serialized_end=75915 + _PORTMETRICSREQUEST._serialized_start=75929 + _PORTMETRICSREQUEST._serialized_end=76262 + _PORTMETRICSREQUEST_COLUMNNAMES._serialized_start=76036 + _PORTMETRICSREQUEST_COLUMNNAMES._serialized_end=76262 + _PORTMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=76052 + _PORTMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=76262 + _PORTMETRIC._serialized_start=76265 + _PORTMETRIC._serialized_end=77039 + _PORTMETRIC_LINK._serialized_start=76681 + _PORTMETRIC_LINK._serialized_end=76730 _PORTMETRIC_LINK_ENUM._serialized_start=12651 _PORTMETRIC_LINK_ENUM._serialized_end=12692 - _PORTMETRIC_CAPTURE._serialized_start=73812 - _PORTMETRIC_CAPTURE._serialized_end=73872 - _PORTMETRIC_CAPTURE_ENUM._serialized_start=73823 - _PORTMETRIC_CAPTURE_ENUM._serialized_end=73872 - _PORTMETRIC_TRANSMIT._serialized_start=73874 - _PORTMETRIC_TRANSMIT._serialized_end=73935 - _PORTMETRIC_TRANSMIT_ENUM._serialized_start=73823 - _PORTMETRIC_TRANSMIT_ENUM._serialized_end=73872 - _FLOWMETRICSREQUEST._serialized_start=74122 - _FLOWMETRICSREQUEST._serialized_end=74434 - _FLOWMETRICSREQUEST_METRICNAMES._serialized_start=74283 - _FLOWMETRICSREQUEST_METRICNAMES._serialized_end=74434 - _FLOWMETRICSREQUEST_METRICNAMES_ENUM._serialized_start=74299 - _FLOWMETRICSREQUEST_METRICNAMES_ENUM._serialized_end=74434 - _FLOWTAGGEDMETRICSFILTER._serialized_start=74437 - _FLOWTAGGEDMETRICSFILTER._serialized_end=74809 - _FLOWTAGGEDMETRICSFILTER_METRICNAMES._serialized_start=74635 - _FLOWTAGGEDMETRICSFILTER_METRICNAMES._serialized_end=74771 - _FLOWTAGGEDMETRICSFILTER_METRICNAMES_ENUM._serialized_start=74650 - _FLOWTAGGEDMETRICSFILTER_METRICNAMES_ENUM._serialized_end=74771 - _FLOWMETRICTAGFILTER._serialized_start=74811 - _FLOWMETRICTAGFILTER._serialized_end=74876 - _FLOWMETRIC._serialized_start=74879 - _FLOWMETRIC._serialized_end=75527 - _FLOWMETRIC_TRANSMIT._serialized_start=75307 - _FLOWMETRIC_TRANSMIT._serialized_end=75380 - _FLOWMETRIC_TRANSMIT_ENUM._serialized_start=75319 - _FLOWMETRIC_TRANSMIT_ENUM._serialized_end=75380 - _FLOWTAGGEDMETRIC._serialized_start=75530 - _FLOWTAGGEDMETRIC._serialized_end=75933 - _FLOWMETRICTAG._serialized_start=75935 - _FLOWMETRICTAG._serialized_end=76018 - _FLOWMETRICTAGVALUE._serialized_start=76021 - _FLOWMETRICTAGVALUE._serialized_end=76215 - _FLOWMETRICTAGVALUE_CHOICE._serialized_start=76137 - _FLOWMETRICTAGVALUE_CHOICE._serialized_end=76188 - _FLOWMETRICTAGVALUE_CHOICE_ENUM._serialized_start=76147 - _FLOWMETRICTAGVALUE_CHOICE_ENUM._serialized_end=76188 - _METRICTIMESTAMP._serialized_start=76217 - _METRICTIMESTAMP._serialized_end=76344 - _METRICLATENCY._serialized_start=76347 - _METRICLATENCY._serialized_end=76482 - _BGPV4METRICSREQUEST._serialized_start=76485 - _BGPV4METRICSREQUEST._serialized_end=76990 - _BGPV4METRICSREQUEST_COLUMNNAMES._serialized_start=76594 - _BGPV4METRICSREQUEST_COLUMNNAMES._serialized_end=76990 - _BGPV4METRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=76610 - _BGPV4METRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=76990 - _BGPV4METRIC._serialized_start=76993 - _BGPV4METRIC._serialized_end=78123 - _BGPV4METRIC_SESSIONSTATE._serialized_start=77596 - _BGPV4METRIC_SESSIONSTATE._serialized_end=77653 + _PORTMETRIC_CAPTURE._serialized_start=76732 + _PORTMETRIC_CAPTURE._serialized_end=76792 + _PORTMETRIC_CAPTURE_ENUM._serialized_start=76743 + _PORTMETRIC_CAPTURE_ENUM._serialized_end=76792 + _PORTMETRIC_TRANSMIT._serialized_start=76794 + _PORTMETRIC_TRANSMIT._serialized_end=76855 + _PORTMETRIC_TRANSMIT_ENUM._serialized_start=76743 + _PORTMETRIC_TRANSMIT_ENUM._serialized_end=76792 + _FLOWMETRICSREQUEST._serialized_start=77042 + _FLOWMETRICSREQUEST._serialized_end=77354 + _FLOWMETRICSREQUEST_METRICNAMES._serialized_start=77203 + _FLOWMETRICSREQUEST_METRICNAMES._serialized_end=77354 + _FLOWMETRICSREQUEST_METRICNAMES_ENUM._serialized_start=77219 + _FLOWMETRICSREQUEST_METRICNAMES_ENUM._serialized_end=77354 + _FLOWTAGGEDMETRICSFILTER._serialized_start=77357 + _FLOWTAGGEDMETRICSFILTER._serialized_end=77729 + _FLOWTAGGEDMETRICSFILTER_METRICNAMES._serialized_start=77555 + _FLOWTAGGEDMETRICSFILTER_METRICNAMES._serialized_end=77691 + _FLOWTAGGEDMETRICSFILTER_METRICNAMES_ENUM._serialized_start=77570 + _FLOWTAGGEDMETRICSFILTER_METRICNAMES_ENUM._serialized_end=77691 + _FLOWMETRICTAGFILTER._serialized_start=77731 + _FLOWMETRICTAGFILTER._serialized_end=77796 + _FLOWMETRIC._serialized_start=77799 + _FLOWMETRIC._serialized_end=78447 + _FLOWMETRIC_TRANSMIT._serialized_start=78227 + _FLOWMETRIC_TRANSMIT._serialized_end=78300 + _FLOWMETRIC_TRANSMIT_ENUM._serialized_start=78239 + _FLOWMETRIC_TRANSMIT_ENUM._serialized_end=78300 + _FLOWTAGGEDMETRIC._serialized_start=78450 + _FLOWTAGGEDMETRIC._serialized_end=78853 + _FLOWMETRICTAG._serialized_start=78855 + _FLOWMETRICTAG._serialized_end=78938 + _FLOWMETRICTAGVALUE._serialized_start=78941 + _FLOWMETRICTAGVALUE._serialized_end=79135 + _FLOWMETRICTAGVALUE_CHOICE._serialized_start=79057 + _FLOWMETRICTAGVALUE_CHOICE._serialized_end=79108 + _FLOWMETRICTAGVALUE_CHOICE_ENUM._serialized_start=79067 + _FLOWMETRICTAGVALUE_CHOICE_ENUM._serialized_end=79108 + _METRICTIMESTAMP._serialized_start=79137 + _METRICTIMESTAMP._serialized_end=79264 + _METRICLATENCY._serialized_start=79267 + _METRICLATENCY._serialized_end=79402 + _BGPV4METRICSREQUEST._serialized_start=79405 + _BGPV4METRICSREQUEST._serialized_end=79910 + _BGPV4METRICSREQUEST_COLUMNNAMES._serialized_start=79514 + _BGPV4METRICSREQUEST_COLUMNNAMES._serialized_end=79910 + _BGPV4METRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=79530 + _BGPV4METRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=79910 + _BGPV4METRIC._serialized_start=79913 + _BGPV4METRIC._serialized_end=81043 + _BGPV4METRIC_SESSIONSTATE._serialized_start=80516 + _BGPV4METRIC_SESSIONSTATE._serialized_end=80573 _BGPV4METRIC_SESSIONSTATE_ENUM._serialized_start=12651 _BGPV4METRIC_SESSIONSTATE_ENUM._serialized_end=12692 - _BGPV4METRIC_FSMSTATE._serialized_start=77655 - _BGPV4METRIC_FSMSTATE._serialized_end=77773 - _BGPV4METRIC_FSMSTATE_ENUM._serialized_start=77667 - _BGPV4METRIC_FSMSTATE_ENUM._serialized_end=77773 - _BGPV6METRICSREQUEST._serialized_start=78126 - _BGPV6METRICSREQUEST._serialized_end=78631 - _BGPV6METRICSREQUEST_COLUMNNAMES._serialized_start=76594 - _BGPV6METRICSREQUEST_COLUMNNAMES._serialized_end=76990 - _BGPV6METRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=76610 - _BGPV6METRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=76990 - _BGPV6METRIC._serialized_start=78634 - _BGPV6METRIC._serialized_end=79764 - _BGPV6METRIC_SESSIONSTATE._serialized_start=77596 - _BGPV6METRIC_SESSIONSTATE._serialized_end=77653 + _BGPV4METRIC_FSMSTATE._serialized_start=80575 + _BGPV4METRIC_FSMSTATE._serialized_end=80693 + _BGPV4METRIC_FSMSTATE_ENUM._serialized_start=80587 + _BGPV4METRIC_FSMSTATE_ENUM._serialized_end=80693 + _BGPV6METRICSREQUEST._serialized_start=81046 + _BGPV6METRICSREQUEST._serialized_end=81551 + _BGPV6METRICSREQUEST_COLUMNNAMES._serialized_start=79514 + _BGPV6METRICSREQUEST_COLUMNNAMES._serialized_end=79910 + _BGPV6METRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=79530 + _BGPV6METRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=79910 + _BGPV6METRIC._serialized_start=81554 + _BGPV6METRIC._serialized_end=82684 + _BGPV6METRIC_SESSIONSTATE._serialized_start=80516 + _BGPV6METRIC_SESSIONSTATE._serialized_end=80573 _BGPV6METRIC_SESSIONSTATE_ENUM._serialized_start=12651 _BGPV6METRIC_SESSIONSTATE_ENUM._serialized_end=12692 - _BGPV6METRIC_FSMSTATE._serialized_start=77655 - _BGPV6METRIC_FSMSTATE._serialized_end=77773 - _BGPV6METRIC_FSMSTATE_ENUM._serialized_start=77667 - _BGPV6METRIC_FSMSTATE_ENUM._serialized_end=77773 - _ISISMETRICSREQUEST._serialized_start=79767 - _ISISMETRICSREQUEST._serialized_end=80553 - _ISISMETRICSREQUEST_COLUMNNAMES._serialized_start=79876 - _ISISMETRICSREQUEST_COLUMNNAMES._serialized_end=80553 - _ISISMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=79892 - _ISISMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=80553 - _ISISMETRIC._serialized_start=80556 - _ISISMETRIC._serialized_end=82080 - _LAGMETRICSREQUEST._serialized_start=82083 - _LAGMETRICSREQUEST._serialized_end=82400 - _LAGMETRICSREQUEST_COLUMNNAMES._serialized_start=82187 - _LAGMETRICSREQUEST_COLUMNNAMES._serialized_end=82400 - _LAGMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=82203 - _LAGMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=82400 - _LAGMETRIC._serialized_start=82403 - _LAGMETRIC._serialized_end=82959 - _LAGMETRIC_OPERSTATUS._serialized_start=82731 - _LAGMETRIC_OPERSTATUS._serialized_end=82786 + _BGPV6METRIC_FSMSTATE._serialized_start=80575 + _BGPV6METRIC_FSMSTATE._serialized_end=80693 + _BGPV6METRIC_FSMSTATE_ENUM._serialized_start=80587 + _BGPV6METRIC_FSMSTATE_ENUM._serialized_end=80693 + _ISISMETRICSREQUEST._serialized_start=82687 + _ISISMETRICSREQUEST._serialized_end=83473 + _ISISMETRICSREQUEST_COLUMNNAMES._serialized_start=82796 + _ISISMETRICSREQUEST_COLUMNNAMES._serialized_end=83473 + _ISISMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=82812 + _ISISMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=83473 + _ISISMETRIC._serialized_start=83476 + _ISISMETRIC._serialized_end=85000 + _LAGMETRICSREQUEST._serialized_start=85003 + _LAGMETRICSREQUEST._serialized_end=85320 + _LAGMETRICSREQUEST_COLUMNNAMES._serialized_start=85107 + _LAGMETRICSREQUEST_COLUMNNAMES._serialized_end=85320 + _LAGMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=85123 + _LAGMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=85320 + _LAGMETRIC._serialized_start=85323 + _LAGMETRIC._serialized_end=85879 + _LAGMETRIC_OPERSTATUS._serialized_start=85651 + _LAGMETRIC_OPERSTATUS._serialized_end=85706 _LAGMETRIC_OPERSTATUS_ENUM._serialized_start=12651 _LAGMETRIC_OPERSTATUS_ENUM._serialized_end=12692 - _LACPMETRICSREQUEST._serialized_start=82962 - _LACPMETRICSREQUEST._serialized_end=83398 - _LACPMETRICSREQUEST_COLUMNNAMES._serialized_start=83099 - _LACPMETRICSREQUEST_COLUMNNAMES._serialized_end=83398 - _LACPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=83115 - _LACPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=83398 - _LACPMETRIC._serialized_start=83401 - _LACPMETRIC._serialized_end=84438 - _LACPMETRIC_ACTIVITY._serialized_start=83967 - _LACPMETRIC_ACTIVITY._serialized_end=84027 - _LACPMETRIC_ACTIVITY_ENUM._serialized_start=83979 - _LACPMETRIC_ACTIVITY_ENUM._serialized_end=84027 - _LACPMETRIC_TIMEOUT._serialized_start=84029 - _LACPMETRIC_TIMEOUT._serialized_end=84084 - _LACPMETRIC_TIMEOUT_ENUM._serialized_start=84040 - _LACPMETRIC_TIMEOUT_ENUM._serialized_end=84084 - _LACPMETRIC_SYNCHRONIZATION._serialized_start=84086 - _LACPMETRIC_SYNCHRONIZATION._serialized_end=84155 - _LACPMETRIC_SYNCHRONIZATION_ENUM._serialized_start=84105 - _LACPMETRIC_SYNCHRONIZATION_ENUM._serialized_end=84155 - _LLDPMETRICSREQUEST._serialized_start=84441 - _LLDPMETRICSREQUEST._serialized_end=84694 - _LLDPMETRICSREQUEST_COLUMNNAMES._serialized_start=84548 - _LLDPMETRICSREQUEST_COLUMNNAMES._serialized_end=84694 - _LLDPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=84564 - _LLDPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=84694 - _LLDPMETRIC._serialized_start=84697 - _LLDPMETRIC._serialized_end=84999 - _RSVPMETRICSREQUEST._serialized_start=85002 - _RSVPMETRICSREQUEST._serialized_end=85708 - _RSVPMETRICSREQUEST_COLUMNNAMES._serialized_start=85111 - _RSVPMETRICSREQUEST_COLUMNNAMES._serialized_end=85708 - _RSVPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=85127 - _RSVPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=85708 - _RSVPMETRIC._serialized_start=85711 - _RSVPMETRIC._serialized_end=87107 - _STATESREQUEST._serialized_start=87110 - _STATESREQUEST._serialized_end=87642 - _STATESREQUEST_CHOICE._serialized_start=87489 - _STATESREQUEST_CHOICE._serialized_end=87631 - _STATESREQUEST_CHOICE_ENUM._serialized_start=87500 - _STATESREQUEST_CHOICE_ENUM._serialized_end=87631 - _STATESRESPONSE._serialized_start=87645 - _STATESRESPONSE._serialized_end=88137 - _STATESRESPONSE_CHOICE._serialized_start=87489 - _STATESRESPONSE_CHOICE._serialized_end=87631 - _STATESRESPONSE_CHOICE_ENUM._serialized_start=87500 - _STATESRESPONSE_CHOICE_ENUM._serialized_end=87631 - _NEIGHBORSV4STATESREQUEST._serialized_start=88139 - _NEIGHBORSV4STATESREQUEST._serialized_end=88189 - _NEIGHBORSV4STATE._serialized_start=88192 - _NEIGHBORSV4STATE._serialized_end=88356 - _NEIGHBORSV6STATESREQUEST._serialized_start=88358 - _NEIGHBORSV6STATESREQUEST._serialized_end=88408 - _NEIGHBORSV6STATE._serialized_start=88411 - _NEIGHBORSV6STATE._serialized_end=88575 - _BGPPREFIXSTATEREQUEST._serialized_start=88578 - _BGPPREFIXSTATEREQUEST._serialized_end=88900 - _BGPPREFIXSTATEREQUEST_PREFIXFILTERS._serialized_start=88824 - _BGPPREFIXSTATEREQUEST_PREFIXFILTERS._serialized_end=88900 - _BGPPREFIXSTATEREQUEST_PREFIXFILTERS_ENUM._serialized_start=88841 - _BGPPREFIXSTATEREQUEST_PREFIXFILTERS_ENUM._serialized_end=88900 - _BGPPREFIXIPV4UNICASTFILTER._serialized_start=88903 - _BGPPREFIXIPV4UNICASTFILTER._serialized_end=89176 + _LACPMETRICSREQUEST._serialized_start=85882 + _LACPMETRICSREQUEST._serialized_end=86318 + _LACPMETRICSREQUEST_COLUMNNAMES._serialized_start=86019 + _LACPMETRICSREQUEST_COLUMNNAMES._serialized_end=86318 + _LACPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=86035 + _LACPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=86318 + _LACPMETRIC._serialized_start=86321 + _LACPMETRIC._serialized_end=87358 + _LACPMETRIC_ACTIVITY._serialized_start=86887 + _LACPMETRIC_ACTIVITY._serialized_end=86947 + _LACPMETRIC_ACTIVITY_ENUM._serialized_start=86899 + _LACPMETRIC_ACTIVITY_ENUM._serialized_end=86947 + _LACPMETRIC_TIMEOUT._serialized_start=86949 + _LACPMETRIC_TIMEOUT._serialized_end=87004 + _LACPMETRIC_TIMEOUT_ENUM._serialized_start=86960 + _LACPMETRIC_TIMEOUT_ENUM._serialized_end=87004 + _LACPMETRIC_SYNCHRONIZATION._serialized_start=87006 + _LACPMETRIC_SYNCHRONIZATION._serialized_end=87075 + _LACPMETRIC_SYNCHRONIZATION_ENUM._serialized_start=87025 + _LACPMETRIC_SYNCHRONIZATION_ENUM._serialized_end=87075 + _LLDPMETRICSREQUEST._serialized_start=87361 + _LLDPMETRICSREQUEST._serialized_end=87614 + _LLDPMETRICSREQUEST_COLUMNNAMES._serialized_start=87468 + _LLDPMETRICSREQUEST_COLUMNNAMES._serialized_end=87614 + _LLDPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=87484 + _LLDPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=87614 + _LLDPMETRIC._serialized_start=87617 + _LLDPMETRIC._serialized_end=87919 + _RSVPMETRICSREQUEST._serialized_start=87922 + _RSVPMETRICSREQUEST._serialized_end=88628 + _RSVPMETRICSREQUEST_COLUMNNAMES._serialized_start=88031 + _RSVPMETRICSREQUEST_COLUMNNAMES._serialized_end=88628 + _RSVPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=88047 + _RSVPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=88628 + _RSVPMETRIC._serialized_start=88631 + _RSVPMETRIC._serialized_end=90027 + _STATESREQUEST._serialized_start=90030 + _STATESREQUEST._serialized_end=90562 + _STATESREQUEST_CHOICE._serialized_start=90409 + _STATESREQUEST_CHOICE._serialized_end=90551 + _STATESREQUEST_CHOICE_ENUM._serialized_start=90420 + _STATESREQUEST_CHOICE_ENUM._serialized_end=90551 + _STATESRESPONSE._serialized_start=90565 + _STATESRESPONSE._serialized_end=91057 + _STATESRESPONSE_CHOICE._serialized_start=90409 + _STATESRESPONSE_CHOICE._serialized_end=90551 + _STATESRESPONSE_CHOICE_ENUM._serialized_start=90420 + _STATESRESPONSE_CHOICE_ENUM._serialized_end=90551 + _NEIGHBORSV4STATESREQUEST._serialized_start=91059 + _NEIGHBORSV4STATESREQUEST._serialized_end=91109 + _NEIGHBORSV4STATE._serialized_start=91112 + _NEIGHBORSV4STATE._serialized_end=91276 + _NEIGHBORSV6STATESREQUEST._serialized_start=91278 + _NEIGHBORSV6STATESREQUEST._serialized_end=91328 + _NEIGHBORSV6STATE._serialized_start=91331 + _NEIGHBORSV6STATE._serialized_end=91495 + _BGPPREFIXSTATEREQUEST._serialized_start=91498 + _BGPPREFIXSTATEREQUEST._serialized_end=91820 + _BGPPREFIXSTATEREQUEST_PREFIXFILTERS._serialized_start=91744 + _BGPPREFIXSTATEREQUEST_PREFIXFILTERS._serialized_end=91820 + _BGPPREFIXSTATEREQUEST_PREFIXFILTERS_ENUM._serialized_start=91761 + _BGPPREFIXSTATEREQUEST_PREFIXFILTERS_ENUM._serialized_end=91820 + _BGPPREFIXIPV4UNICASTFILTER._serialized_start=91823 + _BGPPREFIXIPV4UNICASTFILTER._serialized_end=92096 _BGPPREFIXIPV4UNICASTFILTER_ORIGIN._serialized_start=17696 _BGPPREFIXIPV4UNICASTFILTER_ORIGIN._serialized_end=17763 _BGPPREFIXIPV4UNICASTFILTER_ORIGIN_ENUM._serialized_start=17706 _BGPPREFIXIPV4UNICASTFILTER_ORIGIN_ENUM._serialized_end=17763 - _BGPPREFIXIPV6UNICASTFILTER._serialized_start=89179 - _BGPPREFIXIPV6UNICASTFILTER._serialized_end=89452 + _BGPPREFIXIPV6UNICASTFILTER._serialized_start=92099 + _BGPPREFIXIPV6UNICASTFILTER._serialized_end=92372 _BGPPREFIXIPV6UNICASTFILTER_ORIGIN._serialized_start=17696 _BGPPREFIXIPV6UNICASTFILTER_ORIGIN._serialized_end=17763 _BGPPREFIXIPV6UNICASTFILTER_ORIGIN_ENUM._serialized_start=17706 _BGPPREFIXIPV6UNICASTFILTER_ORIGIN_ENUM._serialized_end=17763 - _BGPPREFIXESSTATE._serialized_start=89455 - _BGPPREFIXESSTATE._serialized_end=89645 - _BGPPREFIXIPV4UNICASTSTATE._serialized_start=89648 - _BGPPREFIXIPV4UNICASTSTATE._serialized_end=90241 + _BGPPREFIXESSTATE._serialized_start=92375 + _BGPPREFIXESSTATE._serialized_end=92565 + _BGPPREFIXIPV4UNICASTSTATE._serialized_start=92568 + _BGPPREFIXIPV4UNICASTSTATE._serialized_end=93161 _BGPPREFIXIPV4UNICASTSTATE_ORIGIN._serialized_start=17696 _BGPPREFIXIPV4UNICASTSTATE_ORIGIN._serialized_end=17763 _BGPPREFIXIPV4UNICASTSTATE_ORIGIN_ENUM._serialized_start=17706 _BGPPREFIXIPV4UNICASTSTATE_ORIGIN_ENUM._serialized_end=17763 - _BGPPREFIXIPV6UNICASTSTATE._serialized_start=90244 - _BGPPREFIXIPV6UNICASTSTATE._serialized_end=90837 + _BGPPREFIXIPV6UNICASTSTATE._serialized_start=93164 + _BGPPREFIXIPV6UNICASTSTATE._serialized_end=93757 _BGPPREFIXIPV6UNICASTSTATE_ORIGIN._serialized_start=17696 _BGPPREFIXIPV6UNICASTSTATE_ORIGIN._serialized_end=17763 _BGPPREFIXIPV6UNICASTSTATE_ORIGIN_ENUM._serialized_start=17706 _BGPPREFIXIPV6UNICASTSTATE_ORIGIN_ENUM._serialized_end=17763 - _RESULTBGPCOMMUNITY._serialized_start=90840 - _RESULTBGPCOMMUNITY._serialized_end=91144 + _RESULTBGPCOMMUNITY._serialized_start=93760 + _RESULTBGPCOMMUNITY._serialized_end=94064 _RESULTBGPCOMMUNITY_TYPE._serialized_start=18025 _RESULTBGPCOMMUNITY_TYPE._serialized_end=18167 _RESULTBGPCOMMUNITY_TYPE_ENUM._serialized_start=18034 _RESULTBGPCOMMUNITY_TYPE_ENUM._serialized_end=18167 - _RESULTBGPASPATH._serialized_start=91146 - _RESULTBGPASPATH._serialized_end=91210 - _RESULTBGPASPATHSEGMENT._serialized_start=91213 - _RESULTBGPASPATHSEGMENT._serialized_end=91419 + _RESULTBGPASPATH._serialized_start=94066 + _RESULTBGPASPATH._serialized_end=94130 + _RESULTBGPASPATHSEGMENT._serialized_start=94133 + _RESULTBGPASPATHSEGMENT._serialized_end=94339 _RESULTBGPASPATHSEGMENT_TYPE._serialized_start=19128 _RESULTBGPASPATHSEGMENT_TYPE._serialized_end=19221 _RESULTBGPASPATHSEGMENT_TYPE_ENUM._serialized_start=19136 _RESULTBGPASPATHSEGMENT_TYPE_ENUM._serialized_end=19221 - _ISISLSPSSTATEREQUEST._serialized_start=91421 - _ISISLSPSSTATEREQUEST._serialized_end=91470 - _ISISLSPSSTATE._serialized_start=91472 - _ISISLSPSSTATE._serialized_end=91572 - _ISISLSPSTATE._serialized_start=91575 - _ISISLSPSTATE._serialized_end=91997 - _ISISLSPSTATE_PDUTYPE._serialized_start=91843 - _ISISLSPSTATE_PDUTYPE._serialized_end=91903 + _ISISLSPSSTATEREQUEST._serialized_start=94341 + _ISISLSPSSTATEREQUEST._serialized_end=94390 + _ISISLSPSSTATE._serialized_start=94392 + _ISISLSPSSTATE._serialized_end=94492 + _ISISLSPSTATE._serialized_start=94495 + _ISISLSPSTATE._serialized_end=94917 + _ISISLSPSTATE_PDUTYPE._serialized_start=94763 + _ISISLSPSTATE_PDUTYPE._serialized_end=94823 _ISISLSPSTATE_PDUTYPE_ENUM._serialized_start=9202 _ISISLSPSTATE_PDUTYPE_ENUM._serialized_end=9251 - _ISISLSPTLVS._serialized_start=92000 - _ISISLSPTLVS._serialized_end=92508 - _ISISLSPHOSTNAME._serialized_start=92510 - _ISISLSPHOSTNAME._serialized_end=92563 - _ISISLSPFLAGS._serialized_start=92566 - _ISISLSPFLAGS._serialized_end=92868 - _ISISLSPISREACHABILITYTLV._serialized_start=92870 - _ISISLSPISREACHABILITYTLV._serialized_end=92937 - _ISISLSPEXTENDEDISREACHABILITYTLV._serialized_start=92939 - _ISISLSPEXTENDEDISREACHABILITYTLV._serialized_end=93014 - _ISISLSPNEIGHBOR._serialized_start=93016 - _ISISLSPNEIGHBOR._serialized_end=93071 - _ISISLSPIPV4INTERNALREACHABILITYTLV._serialized_start=93073 - _ISISLSPIPV4INTERNALREACHABILITYTLV._serialized_end=93149 - _ISISLSPIPV4EXTERNALREACHABILITYTLV._serialized_start=93151 - _ISISLSPIPV4EXTERNALREACHABILITYTLV._serialized_end=93227 - _ISISLSPV4PREFIX._serialized_start=93230 - _ISISLSPV4PREFIX._serialized_end=93701 + _ISISLSPTLVS._serialized_start=94920 + _ISISLSPTLVS._serialized_end=95428 + _ISISLSPHOSTNAME._serialized_start=95430 + _ISISLSPHOSTNAME._serialized_end=95483 + _ISISLSPFLAGS._serialized_start=95486 + _ISISLSPFLAGS._serialized_end=95788 + _ISISLSPISREACHABILITYTLV._serialized_start=95790 + _ISISLSPISREACHABILITYTLV._serialized_end=95857 + _ISISLSPEXTENDEDISREACHABILITYTLV._serialized_start=95859 + _ISISLSPEXTENDEDISREACHABILITYTLV._serialized_end=95934 + _ISISLSPNEIGHBOR._serialized_start=95936 + _ISISLSPNEIGHBOR._serialized_end=95991 + _ISISLSPIPV4INTERNALREACHABILITYTLV._serialized_start=95993 + _ISISLSPIPV4INTERNALREACHABILITYTLV._serialized_end=96069 + _ISISLSPIPV4EXTERNALREACHABILITYTLV._serialized_start=96071 + _ISISLSPIPV4EXTERNALREACHABILITYTLV._serialized_end=96147 + _ISISLSPV4PREFIX._serialized_start=96150 + _ISISLSPV4PREFIX._serialized_end=96621 _ISISLSPV4PREFIX_REDISTRIBUTIONTYPE._serialized_start=12629 _ISISLSPV4PREFIX_REDISTRIBUTIONTYPE._serialized_end=12692 _ISISLSPV4PREFIX_REDISTRIBUTIONTYPE_ENUM._serialized_start=12651 @@ -1291,18 +1315,18 @@ _ISISLSPV4PREFIX_ORIGINTYPE._serialized_end=12627 _ISISLSPV4PREFIX_ORIGINTYPE_ENUM._serialized_start=12576 _ISISLSPV4PREFIX_ORIGINTYPE_ENUM._serialized_end=12627 - _ISISLSPEXTENDEDIPV4REACHABILITYTLV._serialized_start=93703 - _ISISLSPEXTENDEDIPV4REACHABILITYTLV._serialized_end=93787 - _ISISLSPEXTENDEDV4PREFIX._serialized_start=93790 - _ISISLSPEXTENDEDV4PREFIX._serialized_end=94171 + _ISISLSPEXTENDEDIPV4REACHABILITYTLV._serialized_start=96623 + _ISISLSPEXTENDEDIPV4REACHABILITYTLV._serialized_end=96707 + _ISISLSPEXTENDEDV4PREFIX._serialized_start=96710 + _ISISLSPEXTENDEDV4PREFIX._serialized_end=97091 _ISISLSPEXTENDEDV4PREFIX_REDISTRIBUTIONTYPE._serialized_start=12629 _ISISLSPEXTENDEDV4PREFIX_REDISTRIBUTIONTYPE._serialized_end=12692 _ISISLSPEXTENDEDV4PREFIX_REDISTRIBUTIONTYPE_ENUM._serialized_start=12651 _ISISLSPEXTENDEDV4PREFIX_REDISTRIBUTIONTYPE_ENUM._serialized_end=12692 - _ISISLSPIPV6REACHABILITYTLV._serialized_start=94173 - _ISISLSPIPV6REACHABILITYTLV._serialized_end=94241 - _ISISLSPV6PREFIX._serialized_start=94244 - _ISISLSPV6PREFIX._serialized_end=94756 + _ISISLSPIPV6REACHABILITYTLV._serialized_start=97093 + _ISISLSPIPV6REACHABILITYTLV._serialized_end=97161 + _ISISLSPV6PREFIX._serialized_start=97164 + _ISISLSPV6PREFIX._serialized_end=97676 _ISISLSPV6PREFIX_REDISTRIBUTIONTYPE._serialized_start=12629 _ISISLSPV6PREFIX_REDISTRIBUTIONTYPE._serialized_end=12692 _ISISLSPV6PREFIX_REDISTRIBUTIONTYPE_ENUM._serialized_start=12651 @@ -1311,1556 +1335,1658 @@ _ISISLSPV6PREFIX_ORIGINTYPE._serialized_end=12627 _ISISLSPV6PREFIX_ORIGINTYPE_ENUM._serialized_start=12576 _ISISLSPV6PREFIX_ORIGINTYPE_ENUM._serialized_end=12627 - _ISISLSPPREFIXATTRIBUTES._serialized_start=94758 - _ISISLSPPREFIXATTRIBUTES._serialized_end=94879 - _LLDPNEIGHBORSSTATEREQUEST._serialized_start=94881 - _LLDPNEIGHBORSSTATEREQUEST._serialized_end=94957 - _LLDPNEIGHBORSSTATE._serialized_start=94960 - _LLDPNEIGHBORSSTATE._serialized_end=96123 - _LLDPNEIGHBORSSTATE_CHASSISIDTYPE._serialized_start=95539 - _LLDPNEIGHBORSSTATE_CHASSISIDTYPE._serialized_end=95713 - _LLDPNEIGHBORSSTATE_CHASSISIDTYPE_ENUM._serialized_start=95557 - _LLDPNEIGHBORSSTATE_CHASSISIDTYPE_ENUM._serialized_end=95713 - _LLDPNEIGHBORSSTATE_PORTIDTYPE._serialized_start=95716 - _LLDPNEIGHBORSSTATE_PORTIDTYPE._serialized_end=95886 - _LLDPNEIGHBORSSTATE_PORTIDTYPE_ENUM._serialized_start=95731 - _LLDPNEIGHBORSSTATE_PORTIDTYPE_ENUM._serialized_end=95886 - _LLDPCUSTOMTLVSTATE._serialized_start=96126 - _LLDPCUSTOMTLVSTATE._serialized_end=96256 - _LLDPCAPABILITYSTATE._serialized_start=96259 - _LLDPCAPABILITYSTATE._serialized_end=96659 - _LLDPCAPABILITYSTATE_CAPABILITYNAME._serialized_start=96392 - _LLDPCAPABILITYSTATE_CAPABILITYNAME._serialized_end=96616 - _LLDPCAPABILITYSTATE_CAPABILITYNAME_ENUM._serialized_start=96411 - _LLDPCAPABILITYSTATE_CAPABILITYNAME_ENUM._serialized_end=96616 - _RSVPLSPSSTATEREQUEST._serialized_start=96661 - _RSVPLSPSSTATEREQUEST._serialized_end=96710 - _RSVPLSPSSTATE._serialized_start=96712 - _RSVPLSPSSTATE._serialized_end=96821 - _RSVPIPV4LSPSTATE._serialized_start=96824 - _RSVPIPV4LSPSTATE._serialized_end=97050 - _RSVPLSPSTATE._serialized_start=97053 - _RSVPLSPSTATE._serialized_end=97617 - _RSVPLSPSTATE_SESSIONSTATUS._serialized_start=97347 - _RSVPLSPSTATE_SESSIONSTATUS._serialized_end=97405 + _ISISLSPPREFIXATTRIBUTES._serialized_start=97678 + _ISISLSPPREFIXATTRIBUTES._serialized_end=97799 + _LLDPNEIGHBORSSTATEREQUEST._serialized_start=97801 + _LLDPNEIGHBORSSTATEREQUEST._serialized_end=97877 + _LLDPNEIGHBORSSTATE._serialized_start=97880 + _LLDPNEIGHBORSSTATE._serialized_end=99043 + _LLDPNEIGHBORSSTATE_CHASSISIDTYPE._serialized_start=98459 + _LLDPNEIGHBORSSTATE_CHASSISIDTYPE._serialized_end=98633 + _LLDPNEIGHBORSSTATE_CHASSISIDTYPE_ENUM._serialized_start=98477 + _LLDPNEIGHBORSSTATE_CHASSISIDTYPE_ENUM._serialized_end=98633 + _LLDPNEIGHBORSSTATE_PORTIDTYPE._serialized_start=98636 + _LLDPNEIGHBORSSTATE_PORTIDTYPE._serialized_end=98806 + _LLDPNEIGHBORSSTATE_PORTIDTYPE_ENUM._serialized_start=98651 + _LLDPNEIGHBORSSTATE_PORTIDTYPE_ENUM._serialized_end=98806 + _LLDPCUSTOMTLVSTATE._serialized_start=99046 + _LLDPCUSTOMTLVSTATE._serialized_end=99176 + _LLDPCAPABILITYSTATE._serialized_start=99179 + _LLDPCAPABILITYSTATE._serialized_end=99579 + _LLDPCAPABILITYSTATE_CAPABILITYNAME._serialized_start=99312 + _LLDPCAPABILITYSTATE_CAPABILITYNAME._serialized_end=99536 + _LLDPCAPABILITYSTATE_CAPABILITYNAME_ENUM._serialized_start=99331 + _LLDPCAPABILITYSTATE_CAPABILITYNAME_ENUM._serialized_end=99536 + _RSVPLSPSSTATEREQUEST._serialized_start=99581 + _RSVPLSPSSTATEREQUEST._serialized_end=99630 + _RSVPLSPSSTATE._serialized_start=99632 + _RSVPLSPSSTATE._serialized_end=99741 + _RSVPIPV4LSPSTATE._serialized_start=99744 + _RSVPIPV4LSPSTATE._serialized_end=99970 + _RSVPLSPSTATE._serialized_start=99973 + _RSVPLSPSTATE._serialized_end=100537 + _RSVPLSPSTATE_SESSIONSTATUS._serialized_start=100267 + _RSVPLSPSTATE_SESSIONSTATUS._serialized_end=100325 _RSVPLSPSTATE_SESSIONSTATUS_ENUM._serialized_start=12651 _RSVPLSPSTATE_SESSIONSTATUS_ENUM._serialized_end=12692 - _RSVPLSPSTATE_LASTFLAPREASON._serialized_start=97407 - _RSVPLSPSTATE_LASTFLAPREASON._serialized_end=97496 - _RSVPLSPSTATE_LASTFLAPREASON_ENUM._serialized_start=97425 - _RSVPLSPSTATE_LASTFLAPREASON_ENUM._serialized_end=97496 - _RSVPLSPIPV4RRO._serialized_start=97619 - _RSVPLSPIPV4RRO._serialized_end=97717 - _RSVPLSPIPV4ERO._serialized_start=97720 - _RSVPLSPIPV4ERO._serialized_end=97962 - _RSVPLSPIPV4ERO_TYPE._serialized_start=97827 - _RSVPLSPIPV4ERO_TYPE._serialized_end=97934 - _RSVPLSPIPV4ERO_TYPE_ENUM._serialized_start=97835 - _RSVPLSPIPV4ERO_TYPE_ENUM._serialized_end=97934 - _CAPTUREREQUEST._serialized_start=97964 - _CAPTUREREQUEST._serialized_end=98018 - _PATTERNFLOWETHERNETDSTCOUNTER._serialized_start=98020 - _PATTERNFLOWETHERNETDSTCOUNTER._serialized_end=98139 - _PATTERNFLOWETHERNETDSTMETRICTAG._serialized_start=98141 - _PATTERNFLOWETHERNETDSTMETRICTAG._serialized_end=98266 - _PATTERNFLOWETHERNETDST._serialized_start=98269 - _PATTERNFLOWETHERNETDST._serialized_end=98707 - _PATTERNFLOWETHERNETDST_CHOICE._serialized_start=98581 - _PATTERNFLOWETHERNETDST_CHOICE._serialized_end=98677 - _PATTERNFLOWETHERNETDST_CHOICE_ENUM._serialized_start=98591 - _PATTERNFLOWETHERNETDST_CHOICE_ENUM._serialized_end=98677 - _PATTERNFLOWETHERNETSRCCOUNTER._serialized_start=98709 - _PATTERNFLOWETHERNETSRCCOUNTER._serialized_end=98828 - _PATTERNFLOWETHERNETSRCMETRICTAG._serialized_start=98830 - _PATTERNFLOWETHERNETSRCMETRICTAG._serialized_end=98955 - _PATTERNFLOWETHERNETSRC._serialized_start=98958 - _PATTERNFLOWETHERNETSRC._serialized_end=99358 - _PATTERNFLOWETHERNETSRC_CHOICE._serialized_start=99251 - _PATTERNFLOWETHERNETSRC_CHOICE._serialized_end=99337 - _PATTERNFLOWETHERNETSRC_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWETHERNETSRC_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWETHERNETETHERTYPECOUNTER._serialized_start=99360 - _PATTERNFLOWETHERNETETHERTYPECOUNTER._serialized_end=99485 - _PATTERNFLOWETHERNETETHERTYPEMETRICTAG._serialized_start=99488 - _PATTERNFLOWETHERNETETHERTYPEMETRICTAG._serialized_end=99619 - _PATTERNFLOWETHERNETETHERTYPE._serialized_start=99622 - _PATTERNFLOWETHERNETETHERTYPE._serialized_end=100090 - _PATTERNFLOWETHERNETETHERTYPE_CHOICE._serialized_start=98581 - _PATTERNFLOWETHERNETETHERTYPE_CHOICE._serialized_end=98677 - _PATTERNFLOWETHERNETETHERTYPE_CHOICE_ENUM._serialized_start=98591 - _PATTERNFLOWETHERNETETHERTYPE_CHOICE_ENUM._serialized_end=98677 - _PATTERNFLOWETHERNETPFCQUEUECOUNTER._serialized_start=100092 - _PATTERNFLOWETHERNETPFCQUEUECOUNTER._serialized_end=100216 - _PATTERNFLOWETHERNETPFCQUEUEMETRICTAG._serialized_start=100219 - _PATTERNFLOWETHERNETPFCQUEUEMETRICTAG._serialized_end=100349 - _PATTERNFLOWETHERNETPFCQUEUE._serialized_start=100352 - _PATTERNFLOWETHERNETPFCQUEUE._serialized_end=100777 - _PATTERNFLOWETHERNETPFCQUEUE_CHOICE._serialized_start=99251 - _PATTERNFLOWETHERNETPFCQUEUE_CHOICE._serialized_end=99337 - _PATTERNFLOWETHERNETPFCQUEUE_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWETHERNETPFCQUEUE_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWVLANPRIORITYCOUNTER._serialized_start=100779 - _PATTERNFLOWVLANPRIORITYCOUNTER._serialized_end=100899 - _PATTERNFLOWVLANPRIORITYMETRICTAG._serialized_start=100901 - _PATTERNFLOWVLANPRIORITYMETRICTAG._serialized_end=101027 - _PATTERNFLOWVLANPRIORITY._serialized_start=101030 - _PATTERNFLOWVLANPRIORITY._serialized_end=101435 - _PATTERNFLOWVLANPRIORITY_CHOICE._serialized_start=99251 - _PATTERNFLOWVLANPRIORITY_CHOICE._serialized_end=99337 - _PATTERNFLOWVLANPRIORITY_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWVLANPRIORITY_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWVLANCFICOUNTER._serialized_start=101437 - _PATTERNFLOWVLANCFICOUNTER._serialized_end=101552 - _PATTERNFLOWVLANCFIMETRICTAG._serialized_start=101554 - _PATTERNFLOWVLANCFIMETRICTAG._serialized_end=101675 - _PATTERNFLOWVLANCFI._serialized_start=101678 - _PATTERNFLOWVLANCFI._serialized_end=102058 - _PATTERNFLOWVLANCFI_CHOICE._serialized_start=99251 - _PATTERNFLOWVLANCFI_CHOICE._serialized_end=99337 - _PATTERNFLOWVLANCFI_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWVLANCFI_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWVLANIDCOUNTER._serialized_start=102060 - _PATTERNFLOWVLANIDCOUNTER._serialized_end=102174 - _PATTERNFLOWVLANIDMETRICTAG._serialized_start=102176 - _PATTERNFLOWVLANIDMETRICTAG._serialized_end=102296 - _PATTERNFLOWVLANID._serialized_start=102299 - _PATTERNFLOWVLANID._serialized_end=102674 - _PATTERNFLOWVLANID_CHOICE._serialized_start=99251 - _PATTERNFLOWVLANID_CHOICE._serialized_end=99337 - _PATTERNFLOWVLANID_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWVLANID_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWVLANTPIDCOUNTER._serialized_start=102676 - _PATTERNFLOWVLANTPIDCOUNTER._serialized_end=102792 - _PATTERNFLOWVLANTPIDMETRICTAG._serialized_start=102794 - _PATTERNFLOWVLANTPIDMETRICTAG._serialized_end=102916 - _PATTERNFLOWVLANTPID._serialized_start=102919 - _PATTERNFLOWVLANTPID._serialized_end=103304 - _PATTERNFLOWVLANTPID_CHOICE._serialized_start=99251 - _PATTERNFLOWVLANTPID_CHOICE._serialized_end=99337 - _PATTERNFLOWVLANTPID_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWVLANTPID_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWVXLANFLAGSCOUNTER._serialized_start=103306 - _PATTERNFLOWVXLANFLAGSCOUNTER._serialized_end=103424 - _PATTERNFLOWVXLANFLAGSMETRICTAG._serialized_start=103426 - _PATTERNFLOWVXLANFLAGSMETRICTAG._serialized_end=103550 - _PATTERNFLOWVXLANFLAGS._serialized_start=103553 - _PATTERNFLOWVXLANFLAGS._serialized_end=103948 - _PATTERNFLOWVXLANFLAGS_CHOICE._serialized_start=99251 - _PATTERNFLOWVXLANFLAGS_CHOICE._serialized_end=99337 - _PATTERNFLOWVXLANFLAGS_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWVXLANFLAGS_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWVXLANRESERVED0COUNTER._serialized_start=103950 - _PATTERNFLOWVXLANRESERVED0COUNTER._serialized_end=104072 - _PATTERNFLOWVXLANRESERVED0METRICTAG._serialized_start=104075 - _PATTERNFLOWVXLANRESERVED0METRICTAG._serialized_end=104203 - _PATTERNFLOWVXLANRESERVED0._serialized_start=104206 - _PATTERNFLOWVXLANRESERVED0._serialized_end=104621 - _PATTERNFLOWVXLANRESERVED0_CHOICE._serialized_start=99251 - _PATTERNFLOWVXLANRESERVED0_CHOICE._serialized_end=99337 - _PATTERNFLOWVXLANRESERVED0_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWVXLANRESERVED0_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWVXLANVNICOUNTER._serialized_start=104623 - _PATTERNFLOWVXLANVNICOUNTER._serialized_end=104739 - _PATTERNFLOWVXLANVNIMETRICTAG._serialized_start=104741 - _PATTERNFLOWVXLANVNIMETRICTAG._serialized_end=104863 - _PATTERNFLOWVXLANVNI._serialized_start=104866 - _PATTERNFLOWVXLANVNI._serialized_end=105289 - _PATTERNFLOWVXLANVNI_CHOICE._serialized_start=98581 - _PATTERNFLOWVXLANVNI_CHOICE._serialized_end=98677 - _PATTERNFLOWVXLANVNI_CHOICE_ENUM._serialized_start=98591 - _PATTERNFLOWVXLANVNI_CHOICE_ENUM._serialized_end=98677 - _PATTERNFLOWVXLANRESERVED1COUNTER._serialized_start=105291 - _PATTERNFLOWVXLANRESERVED1COUNTER._serialized_end=105413 - _PATTERNFLOWVXLANRESERVED1METRICTAG._serialized_start=105416 - _PATTERNFLOWVXLANRESERVED1METRICTAG._serialized_end=105544 - _PATTERNFLOWVXLANRESERVED1._serialized_start=105547 - _PATTERNFLOWVXLANRESERVED1._serialized_end=105962 - _PATTERNFLOWVXLANRESERVED1_CHOICE._serialized_start=99251 - _PATTERNFLOWVXLANRESERVED1_CHOICE._serialized_end=99337 - _PATTERNFLOWVXLANRESERVED1_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWVXLANRESERVED1_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWIPV4VERSIONCOUNTER._serialized_start=105964 - _PATTERNFLOWIPV4VERSIONCOUNTER._serialized_end=106083 - _PATTERNFLOWIPV4VERSIONMETRICTAG._serialized_start=106085 - _PATTERNFLOWIPV4VERSIONMETRICTAG._serialized_end=106210 - _PATTERNFLOWIPV4VERSION._serialized_start=106213 - _PATTERNFLOWIPV4VERSION._serialized_end=106613 - _PATTERNFLOWIPV4VERSION_CHOICE._serialized_start=99251 - _PATTERNFLOWIPV4VERSION_CHOICE._serialized_end=99337 - _PATTERNFLOWIPV4VERSION_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWIPV4VERSION_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWIPV4HEADERLENGTHCOUNTER._serialized_start=106615 - _PATTERNFLOWIPV4HEADERLENGTHCOUNTER._serialized_end=106739 - _PATTERNFLOWIPV4HEADERLENGTHMETRICTAG._serialized_start=106742 - _PATTERNFLOWIPV4HEADERLENGTHMETRICTAG._serialized_end=106872 - _PATTERNFLOWIPV4HEADERLENGTH._serialized_start=106875 - _PATTERNFLOWIPV4HEADERLENGTH._serialized_end=107338 - _PATTERNFLOWIPV4HEADERLENGTH_CHOICE._serialized_start=98581 - _PATTERNFLOWIPV4HEADERLENGTH_CHOICE._serialized_end=98677 - _PATTERNFLOWIPV4HEADERLENGTH_CHOICE_ENUM._serialized_start=98591 - _PATTERNFLOWIPV4HEADERLENGTH_CHOICE_ENUM._serialized_end=98677 - _PATTERNFLOWIPV4TOTALLENGTHCOUNTER._serialized_start=107340 - _PATTERNFLOWIPV4TOTALLENGTHCOUNTER._serialized_end=107463 - _PATTERNFLOWIPV4TOTALLENGTHMETRICTAG._serialized_start=107466 - _PATTERNFLOWIPV4TOTALLENGTHMETRICTAG._serialized_end=107595 - _PATTERNFLOWIPV4TOTALLENGTH._serialized_start=107598 - _PATTERNFLOWIPV4TOTALLENGTH._serialized_end=108056 - _PATTERNFLOWIPV4TOTALLENGTH_CHOICE._serialized_start=98581 - _PATTERNFLOWIPV4TOTALLENGTH_CHOICE._serialized_end=98677 - _PATTERNFLOWIPV4TOTALLENGTH_CHOICE_ENUM._serialized_start=98591 - _PATTERNFLOWIPV4TOTALLENGTH_CHOICE_ENUM._serialized_end=98677 - _PATTERNFLOWIPV4IDENTIFICATIONCOUNTER._serialized_start=108058 - _PATTERNFLOWIPV4IDENTIFICATIONCOUNTER._serialized_end=108184 - _PATTERNFLOWIPV4IDENTIFICATIONMETRICTAG._serialized_start=108187 - _PATTERNFLOWIPV4IDENTIFICATIONMETRICTAG._serialized_end=108319 - _PATTERNFLOWIPV4IDENTIFICATION._serialized_start=108322 - _PATTERNFLOWIPV4IDENTIFICATION._serialized_end=108757 - _PATTERNFLOWIPV4IDENTIFICATION_CHOICE._serialized_start=99251 - _PATTERNFLOWIPV4IDENTIFICATION_CHOICE._serialized_end=99337 - _PATTERNFLOWIPV4IDENTIFICATION_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWIPV4IDENTIFICATION_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWIPV4RESERVEDCOUNTER._serialized_start=108759 - _PATTERNFLOWIPV4RESERVEDCOUNTER._serialized_end=108879 - _PATTERNFLOWIPV4RESERVEDMETRICTAG._serialized_start=108881 - _PATTERNFLOWIPV4RESERVEDMETRICTAG._serialized_end=109007 - _PATTERNFLOWIPV4RESERVED._serialized_start=109010 - _PATTERNFLOWIPV4RESERVED._serialized_end=109415 - _PATTERNFLOWIPV4RESERVED_CHOICE._serialized_start=99251 - _PATTERNFLOWIPV4RESERVED_CHOICE._serialized_end=99337 - _PATTERNFLOWIPV4RESERVED_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWIPV4RESERVED_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWIPV4DONTFRAGMENTCOUNTER._serialized_start=109417 - _PATTERNFLOWIPV4DONTFRAGMENTCOUNTER._serialized_end=109541 - _PATTERNFLOWIPV4DONTFRAGMENTMETRICTAG._serialized_start=109544 - _PATTERNFLOWIPV4DONTFRAGMENTMETRICTAG._serialized_end=109674 - _PATTERNFLOWIPV4DONTFRAGMENT._serialized_start=109677 - _PATTERNFLOWIPV4DONTFRAGMENT._serialized_end=110102 - _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE._serialized_start=99251 - _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE._serialized_end=99337 - _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWIPV4MOREFRAGMENTSCOUNTER._serialized_start=110104 - _PATTERNFLOWIPV4MOREFRAGMENTSCOUNTER._serialized_end=110229 - _PATTERNFLOWIPV4MOREFRAGMENTSMETRICTAG._serialized_start=110232 - _PATTERNFLOWIPV4MOREFRAGMENTSMETRICTAG._serialized_end=110363 - _PATTERNFLOWIPV4MOREFRAGMENTS._serialized_start=110366 - _PATTERNFLOWIPV4MOREFRAGMENTS._serialized_end=110796 - _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE._serialized_start=99251 - _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE._serialized_end=99337 - _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWIPV4FRAGMENTOFFSETCOUNTER._serialized_start=110798 - _PATTERNFLOWIPV4FRAGMENTOFFSETCOUNTER._serialized_end=110924 - _PATTERNFLOWIPV4FRAGMENTOFFSETMETRICTAG._serialized_start=110927 - _PATTERNFLOWIPV4FRAGMENTOFFSETMETRICTAG._serialized_end=111059 - _PATTERNFLOWIPV4FRAGMENTOFFSET._serialized_start=111062 - _PATTERNFLOWIPV4FRAGMENTOFFSET._serialized_end=111497 - _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE._serialized_start=99251 - _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE._serialized_end=99337 - _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWIPV4TIMETOLIVECOUNTER._serialized_start=111499 - _PATTERNFLOWIPV4TIMETOLIVECOUNTER._serialized_end=111621 - _PATTERNFLOWIPV4TIMETOLIVEMETRICTAG._serialized_start=111624 - _PATTERNFLOWIPV4TIMETOLIVEMETRICTAG._serialized_end=111752 - _PATTERNFLOWIPV4TIMETOLIVE._serialized_start=111755 - _PATTERNFLOWIPV4TIMETOLIVE._serialized_end=112170 - _PATTERNFLOWIPV4TIMETOLIVE_CHOICE._serialized_start=99251 - _PATTERNFLOWIPV4TIMETOLIVE_CHOICE._serialized_end=99337 - _PATTERNFLOWIPV4TIMETOLIVE_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWIPV4TIMETOLIVE_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWIPV4PROTOCOLCOUNTER._serialized_start=112172 - _PATTERNFLOWIPV4PROTOCOLCOUNTER._serialized_end=112292 - _PATTERNFLOWIPV4PROTOCOLMETRICTAG._serialized_start=112294 - _PATTERNFLOWIPV4PROTOCOLMETRICTAG._serialized_end=112420 - _PATTERNFLOWIPV4PROTOCOL._serialized_start=112423 - _PATTERNFLOWIPV4PROTOCOL._serialized_end=112866 - _PATTERNFLOWIPV4PROTOCOL_CHOICE._serialized_start=98581 - _PATTERNFLOWIPV4PROTOCOL_CHOICE._serialized_end=98677 - _PATTERNFLOWIPV4PROTOCOL_CHOICE_ENUM._serialized_start=98591 - _PATTERNFLOWIPV4PROTOCOL_CHOICE_ENUM._serialized_end=98677 - _PATTERNFLOWIPV4HEADERCHECKSUM._serialized_start=112869 - _PATTERNFLOWIPV4HEADERCHECKSUM._serialized_end=113220 - _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE._serialized_start=113067 - _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE._serialized_end=113127 - _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE_ENUM._serialized_start=113077 - _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE_ENUM._serialized_end=113127 - _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED._serialized_start=113129 - _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED._serialized_end=113184 - _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED_ENUM._serialized_start=113142 - _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED_ENUM._serialized_end=113184 - _PATTERNFLOWIPV4SRCCOUNTER._serialized_start=113222 - _PATTERNFLOWIPV4SRCCOUNTER._serialized_end=113337 - _PATTERNFLOWIPV4SRCMETRICTAG._serialized_start=113339 - _PATTERNFLOWIPV4SRCMETRICTAG._serialized_end=113460 - _PATTERNFLOWIPV4SRC._serialized_start=113463 - _PATTERNFLOWIPV4SRC._serialized_end=113843 - _PATTERNFLOWIPV4SRC_CHOICE._serialized_start=99251 - _PATTERNFLOWIPV4SRC_CHOICE._serialized_end=99337 - _PATTERNFLOWIPV4SRC_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWIPV4SRC_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWIPV4DSTCOUNTER._serialized_start=113845 - _PATTERNFLOWIPV4DSTCOUNTER._serialized_end=113960 - _PATTERNFLOWIPV4DSTMETRICTAG._serialized_start=113962 - _PATTERNFLOWIPV4DSTMETRICTAG._serialized_end=114083 - _PATTERNFLOWIPV4DST._serialized_start=114086 - _PATTERNFLOWIPV4DST._serialized_end=114466 - _PATTERNFLOWIPV4DST_CHOICE._serialized_start=99251 - _PATTERNFLOWIPV4DST_CHOICE._serialized_end=99337 - _PATTERNFLOWIPV4DST_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWIPV4DST_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWIPV4OPTIONSCUSTOMTYPECOPIEDFLAGCOUNTER._serialized_start=114469 - _PATTERNFLOWIPV4OPTIONSCUSTOMTYPECOPIEDFLAGCOUNTER._serialized_end=114608 - _PATTERNFLOWIPV4OPTIONSCUSTOMTYPECOPIEDFLAG._serialized_start=114611 - _PATTERNFLOWIPV4OPTIONSCUSTOMTYPECOPIEDFLAG._serialized_end=115032 - _PATTERNFLOWIPV4OPTIONSCUSTOMTYPECOPIEDFLAG_CHOICE._serialized_start=99251 - _PATTERNFLOWIPV4OPTIONSCUSTOMTYPECOPIEDFLAG_CHOICE._serialized_end=99337 - _PATTERNFLOWIPV4OPTIONSCUSTOMTYPECOPIEDFLAG_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWIPV4OPTIONSCUSTOMTYPECOPIEDFLAG_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONCLASSCOUNTER._serialized_start=115035 - _PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONCLASSCOUNTER._serialized_end=115175 - _PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONCLASS._serialized_start=115178 - _PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONCLASS._serialized_end=115603 - _PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONCLASS_CHOICE._serialized_start=99251 - _PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONCLASS_CHOICE._serialized_end=99337 - _PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONCLASS_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONCLASS_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONNUMBERCOUNTER._serialized_start=115606 - _PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONNUMBERCOUNTER._serialized_end=115747 - _PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONNUMBER._serialized_start=115750 - _PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONNUMBER._serialized_end=116179 - _PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONNUMBER_CHOICE._serialized_start=99251 - _PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONNUMBER_CHOICE._serialized_end=99337 - _PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONNUMBER_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONNUMBER_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWIPV4PRIORITYRAWCOUNTER._serialized_start=116181 - _PATTERNFLOWIPV4PRIORITYRAWCOUNTER._serialized_end=116304 - _PATTERNFLOWIPV4PRIORITYRAWMETRICTAG._serialized_start=116307 - _PATTERNFLOWIPV4PRIORITYRAWMETRICTAG._serialized_end=116436 - _PATTERNFLOWIPV4PRIORITYRAW._serialized_start=116439 - _PATTERNFLOWIPV4PRIORITYRAW._serialized_end=116859 - _PATTERNFLOWIPV4PRIORITYRAW_CHOICE._serialized_start=99251 - _PATTERNFLOWIPV4PRIORITYRAW_CHOICE._serialized_end=99337 - _PATTERNFLOWIPV4PRIORITYRAW_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWIPV4PRIORITYRAW_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWIPV4DSCPPHBCOUNTER._serialized_start=116861 - _PATTERNFLOWIPV4DSCPPHBCOUNTER._serialized_end=116980 - _PATTERNFLOWIPV4DSCPPHBMETRICTAG._serialized_start=116982 - _PATTERNFLOWIPV4DSCPPHBMETRICTAG._serialized_end=117107 - _PATTERNFLOWIPV4DSCPPHB._serialized_start=117110 - _PATTERNFLOWIPV4DSCPPHB._serialized_end=117510 - _PATTERNFLOWIPV4DSCPPHB_CHOICE._serialized_start=99251 - _PATTERNFLOWIPV4DSCPPHB_CHOICE._serialized_end=99337 - _PATTERNFLOWIPV4DSCPPHB_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWIPV4DSCPPHB_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWIPV4DSCPECNCOUNTER._serialized_start=117512 - _PATTERNFLOWIPV4DSCPECNCOUNTER._serialized_end=117631 - _PATTERNFLOWIPV4DSCPECNMETRICTAG._serialized_start=117633 - _PATTERNFLOWIPV4DSCPECNMETRICTAG._serialized_end=117758 - _PATTERNFLOWIPV4DSCPECN._serialized_start=117761 - _PATTERNFLOWIPV4DSCPECN._serialized_end=118161 - _PATTERNFLOWIPV4DSCPECN_CHOICE._serialized_start=99251 - _PATTERNFLOWIPV4DSCPECN_CHOICE._serialized_end=99337 - _PATTERNFLOWIPV4DSCPECN_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWIPV4DSCPECN_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWIPV4TOSPRECEDENCECOUNTER._serialized_start=118163 - _PATTERNFLOWIPV4TOSPRECEDENCECOUNTER._serialized_end=118288 - _PATTERNFLOWIPV4TOSPRECEDENCEMETRICTAG._serialized_start=118291 - _PATTERNFLOWIPV4TOSPRECEDENCEMETRICTAG._serialized_end=118422 - _PATTERNFLOWIPV4TOSPRECEDENCE._serialized_start=118425 - _PATTERNFLOWIPV4TOSPRECEDENCE._serialized_end=118855 - _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE._serialized_start=99251 - _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE._serialized_end=99337 - _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWIPV4TOSDELAYCOUNTER._serialized_start=118857 - _PATTERNFLOWIPV4TOSDELAYCOUNTER._serialized_end=118977 - _PATTERNFLOWIPV4TOSDELAYMETRICTAG._serialized_start=118979 - _PATTERNFLOWIPV4TOSDELAYMETRICTAG._serialized_end=119105 - _PATTERNFLOWIPV4TOSDELAY._serialized_start=119108 - _PATTERNFLOWIPV4TOSDELAY._serialized_end=119513 - _PATTERNFLOWIPV4TOSDELAY_CHOICE._serialized_start=99251 - _PATTERNFLOWIPV4TOSDELAY_CHOICE._serialized_end=99337 - _PATTERNFLOWIPV4TOSDELAY_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWIPV4TOSDELAY_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWIPV4TOSTHROUGHPUTCOUNTER._serialized_start=119515 - _PATTERNFLOWIPV4TOSTHROUGHPUTCOUNTER._serialized_end=119640 - _PATTERNFLOWIPV4TOSTHROUGHPUTMETRICTAG._serialized_start=119643 - _PATTERNFLOWIPV4TOSTHROUGHPUTMETRICTAG._serialized_end=119774 - _PATTERNFLOWIPV4TOSTHROUGHPUT._serialized_start=119777 - _PATTERNFLOWIPV4TOSTHROUGHPUT._serialized_end=120207 - _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE._serialized_start=99251 - _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE._serialized_end=99337 - _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWIPV4TOSRELIABILITYCOUNTER._serialized_start=120209 - _PATTERNFLOWIPV4TOSRELIABILITYCOUNTER._serialized_end=120335 - _PATTERNFLOWIPV4TOSRELIABILITYMETRICTAG._serialized_start=120338 - _PATTERNFLOWIPV4TOSRELIABILITYMETRICTAG._serialized_end=120470 - _PATTERNFLOWIPV4TOSRELIABILITY._serialized_start=120473 - _PATTERNFLOWIPV4TOSRELIABILITY._serialized_end=120908 - _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE._serialized_start=99251 - _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE._serialized_end=99337 - _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWIPV4TOSMONETARYCOUNTER._serialized_start=120910 - _PATTERNFLOWIPV4TOSMONETARYCOUNTER._serialized_end=121033 - _PATTERNFLOWIPV4TOSMONETARYMETRICTAG._serialized_start=121036 - _PATTERNFLOWIPV4TOSMONETARYMETRICTAG._serialized_end=121165 - _PATTERNFLOWIPV4TOSMONETARY._serialized_start=121168 - _PATTERNFLOWIPV4TOSMONETARY._serialized_end=121588 - _PATTERNFLOWIPV4TOSMONETARY_CHOICE._serialized_start=99251 - _PATTERNFLOWIPV4TOSMONETARY_CHOICE._serialized_end=99337 - _PATTERNFLOWIPV4TOSMONETARY_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWIPV4TOSMONETARY_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWIPV4TOSUNUSEDCOUNTER._serialized_start=121590 - _PATTERNFLOWIPV4TOSUNUSEDCOUNTER._serialized_end=121711 - _PATTERNFLOWIPV4TOSUNUSEDMETRICTAG._serialized_start=121713 - _PATTERNFLOWIPV4TOSUNUSEDMETRICTAG._serialized_end=121840 - _PATTERNFLOWIPV4TOSUNUSED._serialized_start=121843 - _PATTERNFLOWIPV4TOSUNUSED._serialized_end=122253 - _PATTERNFLOWIPV4TOSUNUSED_CHOICE._serialized_start=99251 - _PATTERNFLOWIPV4TOSUNUSED_CHOICE._serialized_end=99337 - _PATTERNFLOWIPV4TOSUNUSED_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWIPV4TOSUNUSED_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWIPV6VERSIONCOUNTER._serialized_start=122255 - _PATTERNFLOWIPV6VERSIONCOUNTER._serialized_end=122374 - _PATTERNFLOWIPV6VERSIONMETRICTAG._serialized_start=122376 - _PATTERNFLOWIPV6VERSIONMETRICTAG._serialized_end=122501 - _PATTERNFLOWIPV6VERSION._serialized_start=122504 - _PATTERNFLOWIPV6VERSION._serialized_end=122904 - _PATTERNFLOWIPV6VERSION_CHOICE._serialized_start=99251 - _PATTERNFLOWIPV6VERSION_CHOICE._serialized_end=99337 - _PATTERNFLOWIPV6VERSION_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWIPV6VERSION_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWIPV6TRAFFICCLASSCOUNTER._serialized_start=122906 - _PATTERNFLOWIPV6TRAFFICCLASSCOUNTER._serialized_end=123030 - _PATTERNFLOWIPV6TRAFFICCLASSMETRICTAG._serialized_start=123033 - _PATTERNFLOWIPV6TRAFFICCLASSMETRICTAG._serialized_end=123163 - _PATTERNFLOWIPV6TRAFFICCLASS._serialized_start=123166 - _PATTERNFLOWIPV6TRAFFICCLASS._serialized_end=123591 - _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE._serialized_start=99251 - _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE._serialized_end=99337 - _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWIPV6FLOWLABELCOUNTER._serialized_start=123593 - _PATTERNFLOWIPV6FLOWLABELCOUNTER._serialized_end=123714 - _PATTERNFLOWIPV6FLOWLABELMETRICTAG._serialized_start=123716 - _PATTERNFLOWIPV6FLOWLABELMETRICTAG._serialized_end=123843 - _PATTERNFLOWIPV6FLOWLABEL._serialized_start=123846 - _PATTERNFLOWIPV6FLOWLABEL._serialized_end=124256 - _PATTERNFLOWIPV6FLOWLABEL_CHOICE._serialized_start=99251 - _PATTERNFLOWIPV6FLOWLABEL_CHOICE._serialized_end=99337 - _PATTERNFLOWIPV6FLOWLABEL_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWIPV6FLOWLABEL_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWIPV6PAYLOADLENGTHCOUNTER._serialized_start=124258 - _PATTERNFLOWIPV6PAYLOADLENGTHCOUNTER._serialized_end=124383 - _PATTERNFLOWIPV6PAYLOADLENGTHMETRICTAG._serialized_start=124386 - _PATTERNFLOWIPV6PAYLOADLENGTHMETRICTAG._serialized_end=124517 - _PATTERNFLOWIPV6PAYLOADLENGTH._serialized_start=124520 - _PATTERNFLOWIPV6PAYLOADLENGTH._serialized_end=124988 - _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE._serialized_start=98581 - _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE._serialized_end=98677 - _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE_ENUM._serialized_start=98591 - _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE_ENUM._serialized_end=98677 - _PATTERNFLOWIPV6NEXTHEADERCOUNTER._serialized_start=124990 - _PATTERNFLOWIPV6NEXTHEADERCOUNTER._serialized_end=125112 - _PATTERNFLOWIPV6NEXTHEADERMETRICTAG._serialized_start=125115 - _PATTERNFLOWIPV6NEXTHEADERMETRICTAG._serialized_end=125243 - _PATTERNFLOWIPV6NEXTHEADER._serialized_start=125246 - _PATTERNFLOWIPV6NEXTHEADER._serialized_end=125699 - _PATTERNFLOWIPV6NEXTHEADER_CHOICE._serialized_start=98581 - _PATTERNFLOWIPV6NEXTHEADER_CHOICE._serialized_end=98677 - _PATTERNFLOWIPV6NEXTHEADER_CHOICE_ENUM._serialized_start=98591 - _PATTERNFLOWIPV6NEXTHEADER_CHOICE_ENUM._serialized_end=98677 - _PATTERNFLOWIPV6HOPLIMITCOUNTER._serialized_start=125701 - _PATTERNFLOWIPV6HOPLIMITCOUNTER._serialized_end=125821 - _PATTERNFLOWIPV6HOPLIMITMETRICTAG._serialized_start=125823 - _PATTERNFLOWIPV6HOPLIMITMETRICTAG._serialized_end=125949 - _PATTERNFLOWIPV6HOPLIMIT._serialized_start=125952 - _PATTERNFLOWIPV6HOPLIMIT._serialized_end=126357 - _PATTERNFLOWIPV6HOPLIMIT_CHOICE._serialized_start=99251 - _PATTERNFLOWIPV6HOPLIMIT_CHOICE._serialized_end=99337 - _PATTERNFLOWIPV6HOPLIMIT_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWIPV6HOPLIMIT_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWIPV6SRCCOUNTER._serialized_start=126359 - _PATTERNFLOWIPV6SRCCOUNTER._serialized_end=126474 - _PATTERNFLOWIPV6SRCMETRICTAG._serialized_start=126476 - _PATTERNFLOWIPV6SRCMETRICTAG._serialized_end=126597 - _PATTERNFLOWIPV6SRC._serialized_start=126600 - _PATTERNFLOWIPV6SRC._serialized_end=126980 - _PATTERNFLOWIPV6SRC_CHOICE._serialized_start=99251 - _PATTERNFLOWIPV6SRC_CHOICE._serialized_end=99337 - _PATTERNFLOWIPV6SRC_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWIPV6SRC_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWIPV6DSTCOUNTER._serialized_start=126982 - _PATTERNFLOWIPV6DSTCOUNTER._serialized_end=127097 - _PATTERNFLOWIPV6DSTMETRICTAG._serialized_start=127099 - _PATTERNFLOWIPV6DSTMETRICTAG._serialized_end=127220 - _PATTERNFLOWIPV6DST._serialized_start=127223 - _PATTERNFLOWIPV6DST._serialized_end=127603 - _PATTERNFLOWIPV6DST_CHOICE._serialized_start=99251 - _PATTERNFLOWIPV6DST_CHOICE._serialized_end=99337 - _PATTERNFLOWIPV6DST_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWIPV6DST_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWPFCPAUSEDSTCOUNTER._serialized_start=127605 - _PATTERNFLOWPFCPAUSEDSTCOUNTER._serialized_end=127724 - _PATTERNFLOWPFCPAUSEDSTMETRICTAG._serialized_start=127726 - _PATTERNFLOWPFCPAUSEDSTMETRICTAG._serialized_end=127851 - _PATTERNFLOWPFCPAUSEDST._serialized_start=127854 - _PATTERNFLOWPFCPAUSEDST._serialized_end=128254 - _PATTERNFLOWPFCPAUSEDST_CHOICE._serialized_start=99251 - _PATTERNFLOWPFCPAUSEDST_CHOICE._serialized_end=99337 - _PATTERNFLOWPFCPAUSEDST_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWPFCPAUSEDST_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWPFCPAUSESRCCOUNTER._serialized_start=128256 - _PATTERNFLOWPFCPAUSESRCCOUNTER._serialized_end=128375 - _PATTERNFLOWPFCPAUSESRCMETRICTAG._serialized_start=128377 - _PATTERNFLOWPFCPAUSESRCMETRICTAG._serialized_end=128502 - _PATTERNFLOWPFCPAUSESRC._serialized_start=128505 - _PATTERNFLOWPFCPAUSESRC._serialized_end=128905 - _PATTERNFLOWPFCPAUSESRC_CHOICE._serialized_start=99251 - _PATTERNFLOWPFCPAUSESRC_CHOICE._serialized_end=99337 - _PATTERNFLOWPFCPAUSESRC_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWPFCPAUSESRC_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWPFCPAUSEETHERTYPECOUNTER._serialized_start=128907 - _PATTERNFLOWPFCPAUSEETHERTYPECOUNTER._serialized_end=129032 - _PATTERNFLOWPFCPAUSEETHERTYPEMETRICTAG._serialized_start=129035 - _PATTERNFLOWPFCPAUSEETHERTYPEMETRICTAG._serialized_end=129166 - _PATTERNFLOWPFCPAUSEETHERTYPE._serialized_start=129169 - _PATTERNFLOWPFCPAUSEETHERTYPE._serialized_end=129599 - _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE._serialized_start=99251 - _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE._serialized_end=99337 - _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWPFCPAUSECONTROLOPCODECOUNTER._serialized_start=129602 - _PATTERNFLOWPFCPAUSECONTROLOPCODECOUNTER._serialized_end=129731 - _PATTERNFLOWPFCPAUSECONTROLOPCODEMETRICTAG._serialized_start=129734 - _PATTERNFLOWPFCPAUSECONTROLOPCODEMETRICTAG._serialized_end=129869 - _PATTERNFLOWPFCPAUSECONTROLOPCODE._serialized_start=129872 - _PATTERNFLOWPFCPAUSECONTROLOPCODE._serialized_end=130322 - _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE._serialized_start=99251 - _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE._serialized_end=99337 - _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTORCOUNTER._serialized_start=130325 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTORCOUNTER._serialized_end=130458 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTORMETRICTAG._serialized_start=130461 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTORMETRICTAG._serialized_end=130600 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR._serialized_start=130603 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR._serialized_end=131073 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE._serialized_start=99251 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE._serialized_end=99337 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWPFCPAUSEPAUSECLASS0COUNTER._serialized_start=131075 - _PATTERNFLOWPFCPAUSEPAUSECLASS0COUNTER._serialized_end=131202 - _PATTERNFLOWPFCPAUSEPAUSECLASS0METRICTAG._serialized_start=131205 - _PATTERNFLOWPFCPAUSEPAUSECLASS0METRICTAG._serialized_end=131338 - _PATTERNFLOWPFCPAUSEPAUSECLASS0._serialized_start=131341 - _PATTERNFLOWPFCPAUSEPAUSECLASS0._serialized_end=131781 - _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE._serialized_start=99251 - _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE._serialized_end=99337 - _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWPFCPAUSEPAUSECLASS1COUNTER._serialized_start=131783 - _PATTERNFLOWPFCPAUSEPAUSECLASS1COUNTER._serialized_end=131910 - _PATTERNFLOWPFCPAUSEPAUSECLASS1METRICTAG._serialized_start=131913 - _PATTERNFLOWPFCPAUSEPAUSECLASS1METRICTAG._serialized_end=132046 - _PATTERNFLOWPFCPAUSEPAUSECLASS1._serialized_start=132049 - _PATTERNFLOWPFCPAUSEPAUSECLASS1._serialized_end=132489 - _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE._serialized_start=99251 - _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE._serialized_end=99337 - _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWPFCPAUSEPAUSECLASS2COUNTER._serialized_start=132491 - _PATTERNFLOWPFCPAUSEPAUSECLASS2COUNTER._serialized_end=132618 - _PATTERNFLOWPFCPAUSEPAUSECLASS2METRICTAG._serialized_start=132621 - _PATTERNFLOWPFCPAUSEPAUSECLASS2METRICTAG._serialized_end=132754 - _PATTERNFLOWPFCPAUSEPAUSECLASS2._serialized_start=132757 - _PATTERNFLOWPFCPAUSEPAUSECLASS2._serialized_end=133197 - _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE._serialized_start=99251 - _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE._serialized_end=99337 - _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWPFCPAUSEPAUSECLASS3COUNTER._serialized_start=133199 - _PATTERNFLOWPFCPAUSEPAUSECLASS3COUNTER._serialized_end=133326 - _PATTERNFLOWPFCPAUSEPAUSECLASS3METRICTAG._serialized_start=133329 - _PATTERNFLOWPFCPAUSEPAUSECLASS3METRICTAG._serialized_end=133462 - _PATTERNFLOWPFCPAUSEPAUSECLASS3._serialized_start=133465 - _PATTERNFLOWPFCPAUSEPAUSECLASS3._serialized_end=133905 - _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE._serialized_start=99251 - _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE._serialized_end=99337 - _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWPFCPAUSEPAUSECLASS4COUNTER._serialized_start=133907 - _PATTERNFLOWPFCPAUSEPAUSECLASS4COUNTER._serialized_end=134034 - _PATTERNFLOWPFCPAUSEPAUSECLASS4METRICTAG._serialized_start=134037 - _PATTERNFLOWPFCPAUSEPAUSECLASS4METRICTAG._serialized_end=134170 - _PATTERNFLOWPFCPAUSEPAUSECLASS4._serialized_start=134173 - _PATTERNFLOWPFCPAUSEPAUSECLASS4._serialized_end=134613 - _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE._serialized_start=99251 - _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE._serialized_end=99337 - _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWPFCPAUSEPAUSECLASS5COUNTER._serialized_start=134615 - _PATTERNFLOWPFCPAUSEPAUSECLASS5COUNTER._serialized_end=134742 - _PATTERNFLOWPFCPAUSEPAUSECLASS5METRICTAG._serialized_start=134745 - _PATTERNFLOWPFCPAUSEPAUSECLASS5METRICTAG._serialized_end=134878 - _PATTERNFLOWPFCPAUSEPAUSECLASS5._serialized_start=134881 - _PATTERNFLOWPFCPAUSEPAUSECLASS5._serialized_end=135321 - _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE._serialized_start=99251 - _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE._serialized_end=99337 - _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWPFCPAUSEPAUSECLASS6COUNTER._serialized_start=135323 - _PATTERNFLOWPFCPAUSEPAUSECLASS6COUNTER._serialized_end=135450 - _PATTERNFLOWPFCPAUSEPAUSECLASS6METRICTAG._serialized_start=135453 - _PATTERNFLOWPFCPAUSEPAUSECLASS6METRICTAG._serialized_end=135586 - _PATTERNFLOWPFCPAUSEPAUSECLASS6._serialized_start=135589 - _PATTERNFLOWPFCPAUSEPAUSECLASS6._serialized_end=136029 - _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE._serialized_start=99251 - _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE._serialized_end=99337 - _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWPFCPAUSEPAUSECLASS7COUNTER._serialized_start=136031 - _PATTERNFLOWPFCPAUSEPAUSECLASS7COUNTER._serialized_end=136158 - _PATTERNFLOWPFCPAUSEPAUSECLASS7METRICTAG._serialized_start=136161 - _PATTERNFLOWPFCPAUSEPAUSECLASS7METRICTAG._serialized_end=136294 - _PATTERNFLOWPFCPAUSEPAUSECLASS7._serialized_start=136297 - _PATTERNFLOWPFCPAUSEPAUSECLASS7._serialized_end=136737 - _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE._serialized_start=99251 - _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE._serialized_end=99337 - _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWETHERNETPAUSEDSTCOUNTER._serialized_start=136739 - _PATTERNFLOWETHERNETPAUSEDSTCOUNTER._serialized_end=136863 - _PATTERNFLOWETHERNETPAUSEDSTMETRICTAG._serialized_start=136866 - _PATTERNFLOWETHERNETPAUSEDSTMETRICTAG._serialized_end=136996 - _PATTERNFLOWETHERNETPAUSEDST._serialized_start=136999 - _PATTERNFLOWETHERNETPAUSEDST._serialized_end=137424 - _PATTERNFLOWETHERNETPAUSEDST_CHOICE._serialized_start=99251 - _PATTERNFLOWETHERNETPAUSEDST_CHOICE._serialized_end=99337 - _PATTERNFLOWETHERNETPAUSEDST_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWETHERNETPAUSEDST_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWETHERNETPAUSESRCCOUNTER._serialized_start=137426 - _PATTERNFLOWETHERNETPAUSESRCCOUNTER._serialized_end=137550 - _PATTERNFLOWETHERNETPAUSESRCMETRICTAG._serialized_start=137553 - _PATTERNFLOWETHERNETPAUSESRCMETRICTAG._serialized_end=137683 - _PATTERNFLOWETHERNETPAUSESRC._serialized_start=137686 - _PATTERNFLOWETHERNETPAUSESRC._serialized_end=138111 - _PATTERNFLOWETHERNETPAUSESRC_CHOICE._serialized_start=99251 - _PATTERNFLOWETHERNETPAUSESRC_CHOICE._serialized_end=99337 - _PATTERNFLOWETHERNETPAUSESRC_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWETHERNETPAUSESRC_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWETHERNETPAUSEETHERTYPECOUNTER._serialized_start=138114 - _PATTERNFLOWETHERNETPAUSEETHERTYPECOUNTER._serialized_end=138244 - _PATTERNFLOWETHERNETPAUSEETHERTYPEMETRICTAG._serialized_start=138247 - _PATTERNFLOWETHERNETPAUSEETHERTYPEMETRICTAG._serialized_end=138383 - _PATTERNFLOWETHERNETPAUSEETHERTYPE._serialized_start=138386 - _PATTERNFLOWETHERNETPAUSEETHERTYPE._serialized_end=138841 - _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE._serialized_start=99251 - _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE._serialized_end=99337 - _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODECOUNTER._serialized_start=138844 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODECOUNTER._serialized_end=138978 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODEMETRICTAG._serialized_start=138981 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODEMETRICTAG._serialized_end=139121 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODE._serialized_start=139124 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODE._serialized_end=139599 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE._serialized_start=99251 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE._serialized_end=99337 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWETHERNETPAUSETIMECOUNTER._serialized_start=139601 - _PATTERNFLOWETHERNETPAUSETIMECOUNTER._serialized_end=139726 - _PATTERNFLOWETHERNETPAUSETIMEMETRICTAG._serialized_start=139729 - _PATTERNFLOWETHERNETPAUSETIMEMETRICTAG._serialized_end=139860 - _PATTERNFLOWETHERNETPAUSETIME._serialized_start=139863 - _PATTERNFLOWETHERNETPAUSETIME._serialized_end=140293 - _PATTERNFLOWETHERNETPAUSETIME_CHOICE._serialized_start=99251 - _PATTERNFLOWETHERNETPAUSETIME_CHOICE._serialized_end=99337 - _PATTERNFLOWETHERNETPAUSETIME_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWETHERNETPAUSETIME_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWTCPSRCPORTCOUNTER._serialized_start=140295 - _PATTERNFLOWTCPSRCPORTCOUNTER._serialized_end=140413 - _PATTERNFLOWTCPSRCPORTMETRICTAG._serialized_start=140415 - _PATTERNFLOWTCPSRCPORTMETRICTAG._serialized_end=140539 - _PATTERNFLOWTCPSRCPORT._serialized_start=140542 - _PATTERNFLOWTCPSRCPORT._serialized_end=140937 - _PATTERNFLOWTCPSRCPORT_CHOICE._serialized_start=99251 - _PATTERNFLOWTCPSRCPORT_CHOICE._serialized_end=99337 - _PATTERNFLOWTCPSRCPORT_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWTCPSRCPORT_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWTCPDSTPORTCOUNTER._serialized_start=140939 - _PATTERNFLOWTCPDSTPORTCOUNTER._serialized_end=141057 - _PATTERNFLOWTCPDSTPORTMETRICTAG._serialized_start=141059 - _PATTERNFLOWTCPDSTPORTMETRICTAG._serialized_end=141183 - _PATTERNFLOWTCPDSTPORT._serialized_start=141186 - _PATTERNFLOWTCPDSTPORT._serialized_end=141581 - _PATTERNFLOWTCPDSTPORT_CHOICE._serialized_start=99251 - _PATTERNFLOWTCPDSTPORT_CHOICE._serialized_end=99337 - _PATTERNFLOWTCPDSTPORT_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWTCPDSTPORT_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWTCPSEQNUMCOUNTER._serialized_start=141583 - _PATTERNFLOWTCPSEQNUMCOUNTER._serialized_end=141700 - _PATTERNFLOWTCPSEQNUMMETRICTAG._serialized_start=141702 - _PATTERNFLOWTCPSEQNUMMETRICTAG._serialized_end=141825 - _PATTERNFLOWTCPSEQNUM._serialized_start=141828 - _PATTERNFLOWTCPSEQNUM._serialized_end=142218 - _PATTERNFLOWTCPSEQNUM_CHOICE._serialized_start=99251 - _PATTERNFLOWTCPSEQNUM_CHOICE._serialized_end=99337 - _PATTERNFLOWTCPSEQNUM_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWTCPSEQNUM_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWTCPACKNUMCOUNTER._serialized_start=142220 - _PATTERNFLOWTCPACKNUMCOUNTER._serialized_end=142337 - _PATTERNFLOWTCPACKNUMMETRICTAG._serialized_start=142339 - _PATTERNFLOWTCPACKNUMMETRICTAG._serialized_end=142462 - _PATTERNFLOWTCPACKNUM._serialized_start=142465 - _PATTERNFLOWTCPACKNUM._serialized_end=142855 - _PATTERNFLOWTCPACKNUM_CHOICE._serialized_start=99251 - _PATTERNFLOWTCPACKNUM_CHOICE._serialized_end=99337 - _PATTERNFLOWTCPACKNUM_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWTCPACKNUM_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWTCPDATAOFFSETCOUNTER._serialized_start=142857 - _PATTERNFLOWTCPDATAOFFSETCOUNTER._serialized_end=142978 - _PATTERNFLOWTCPDATAOFFSETMETRICTAG._serialized_start=142980 - _PATTERNFLOWTCPDATAOFFSETMETRICTAG._serialized_end=143107 - _PATTERNFLOWTCPDATAOFFSET._serialized_start=143110 - _PATTERNFLOWTCPDATAOFFSET._serialized_end=143520 - _PATTERNFLOWTCPDATAOFFSET_CHOICE._serialized_start=99251 - _PATTERNFLOWTCPDATAOFFSET_CHOICE._serialized_end=99337 - _PATTERNFLOWTCPDATAOFFSET_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWTCPDATAOFFSET_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWTCPECNNSCOUNTER._serialized_start=143522 - _PATTERNFLOWTCPECNNSCOUNTER._serialized_end=143638 - _PATTERNFLOWTCPECNNSMETRICTAG._serialized_start=143640 - _PATTERNFLOWTCPECNNSMETRICTAG._serialized_end=143762 - _PATTERNFLOWTCPECNNS._serialized_start=143765 - _PATTERNFLOWTCPECNNS._serialized_end=144150 - _PATTERNFLOWTCPECNNS_CHOICE._serialized_start=99251 - _PATTERNFLOWTCPECNNS_CHOICE._serialized_end=99337 - _PATTERNFLOWTCPECNNS_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWTCPECNNS_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWTCPECNCWRCOUNTER._serialized_start=144152 - _PATTERNFLOWTCPECNCWRCOUNTER._serialized_end=144269 - _PATTERNFLOWTCPECNCWRMETRICTAG._serialized_start=144271 - _PATTERNFLOWTCPECNCWRMETRICTAG._serialized_end=144394 - _PATTERNFLOWTCPECNCWR._serialized_start=144397 - _PATTERNFLOWTCPECNCWR._serialized_end=144787 - _PATTERNFLOWTCPECNCWR_CHOICE._serialized_start=99251 - _PATTERNFLOWTCPECNCWR_CHOICE._serialized_end=99337 - _PATTERNFLOWTCPECNCWR_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWTCPECNCWR_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWTCPECNECHOCOUNTER._serialized_start=144789 - _PATTERNFLOWTCPECNECHOCOUNTER._serialized_end=144907 - _PATTERNFLOWTCPECNECHOMETRICTAG._serialized_start=144909 - _PATTERNFLOWTCPECNECHOMETRICTAG._serialized_end=145033 - _PATTERNFLOWTCPECNECHO._serialized_start=145036 - _PATTERNFLOWTCPECNECHO._serialized_end=145431 - _PATTERNFLOWTCPECNECHO_CHOICE._serialized_start=99251 - _PATTERNFLOWTCPECNECHO_CHOICE._serialized_end=99337 - _PATTERNFLOWTCPECNECHO_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWTCPECNECHO_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWTCPCTLURGCOUNTER._serialized_start=145433 - _PATTERNFLOWTCPCTLURGCOUNTER._serialized_end=145550 - _PATTERNFLOWTCPCTLURGMETRICTAG._serialized_start=145552 - _PATTERNFLOWTCPCTLURGMETRICTAG._serialized_end=145675 - _PATTERNFLOWTCPCTLURG._serialized_start=145678 - _PATTERNFLOWTCPCTLURG._serialized_end=146068 - _PATTERNFLOWTCPCTLURG_CHOICE._serialized_start=99251 - _PATTERNFLOWTCPCTLURG_CHOICE._serialized_end=99337 - _PATTERNFLOWTCPCTLURG_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWTCPCTLURG_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWTCPCTLACKCOUNTER._serialized_start=146070 - _PATTERNFLOWTCPCTLACKCOUNTER._serialized_end=146187 - _PATTERNFLOWTCPCTLACKMETRICTAG._serialized_start=146189 - _PATTERNFLOWTCPCTLACKMETRICTAG._serialized_end=146312 - _PATTERNFLOWTCPCTLACK._serialized_start=146315 - _PATTERNFLOWTCPCTLACK._serialized_end=146705 - _PATTERNFLOWTCPCTLACK_CHOICE._serialized_start=99251 - _PATTERNFLOWTCPCTLACK_CHOICE._serialized_end=99337 - _PATTERNFLOWTCPCTLACK_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWTCPCTLACK_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWTCPCTLPSHCOUNTER._serialized_start=146707 - _PATTERNFLOWTCPCTLPSHCOUNTER._serialized_end=146824 - _PATTERNFLOWTCPCTLPSHMETRICTAG._serialized_start=146826 - _PATTERNFLOWTCPCTLPSHMETRICTAG._serialized_end=146949 - _PATTERNFLOWTCPCTLPSH._serialized_start=146952 - _PATTERNFLOWTCPCTLPSH._serialized_end=147342 - _PATTERNFLOWTCPCTLPSH_CHOICE._serialized_start=99251 - _PATTERNFLOWTCPCTLPSH_CHOICE._serialized_end=99337 - _PATTERNFLOWTCPCTLPSH_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWTCPCTLPSH_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWTCPCTLRSTCOUNTER._serialized_start=147344 - _PATTERNFLOWTCPCTLRSTCOUNTER._serialized_end=147461 - _PATTERNFLOWTCPCTLRSTMETRICTAG._serialized_start=147463 - _PATTERNFLOWTCPCTLRSTMETRICTAG._serialized_end=147586 - _PATTERNFLOWTCPCTLRST._serialized_start=147589 - _PATTERNFLOWTCPCTLRST._serialized_end=147979 - _PATTERNFLOWTCPCTLRST_CHOICE._serialized_start=99251 - _PATTERNFLOWTCPCTLRST_CHOICE._serialized_end=99337 - _PATTERNFLOWTCPCTLRST_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWTCPCTLRST_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWTCPCTLSYNCOUNTER._serialized_start=147981 - _PATTERNFLOWTCPCTLSYNCOUNTER._serialized_end=148098 - _PATTERNFLOWTCPCTLSYNMETRICTAG._serialized_start=148100 - _PATTERNFLOWTCPCTLSYNMETRICTAG._serialized_end=148223 - _PATTERNFLOWTCPCTLSYN._serialized_start=148226 - _PATTERNFLOWTCPCTLSYN._serialized_end=148616 - _PATTERNFLOWTCPCTLSYN_CHOICE._serialized_start=99251 - _PATTERNFLOWTCPCTLSYN_CHOICE._serialized_end=99337 - _PATTERNFLOWTCPCTLSYN_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWTCPCTLSYN_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWTCPCTLFINCOUNTER._serialized_start=148618 - _PATTERNFLOWTCPCTLFINCOUNTER._serialized_end=148735 - _PATTERNFLOWTCPCTLFINMETRICTAG._serialized_start=148737 - _PATTERNFLOWTCPCTLFINMETRICTAG._serialized_end=148860 - _PATTERNFLOWTCPCTLFIN._serialized_start=148863 - _PATTERNFLOWTCPCTLFIN._serialized_end=149253 - _PATTERNFLOWTCPCTLFIN_CHOICE._serialized_start=99251 - _PATTERNFLOWTCPCTLFIN_CHOICE._serialized_end=99337 - _PATTERNFLOWTCPCTLFIN_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWTCPCTLFIN_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWTCPWINDOWCOUNTER._serialized_start=149255 - _PATTERNFLOWTCPWINDOWCOUNTER._serialized_end=149372 - _PATTERNFLOWTCPWINDOWMETRICTAG._serialized_start=149374 - _PATTERNFLOWTCPWINDOWMETRICTAG._serialized_end=149497 - _PATTERNFLOWTCPWINDOW._serialized_start=149500 - _PATTERNFLOWTCPWINDOW._serialized_end=149890 - _PATTERNFLOWTCPWINDOW_CHOICE._serialized_start=99251 - _PATTERNFLOWTCPWINDOW_CHOICE._serialized_end=99337 - _PATTERNFLOWTCPWINDOW_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWTCPWINDOW_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWUDPSRCPORTCOUNTER._serialized_start=149892 - _PATTERNFLOWUDPSRCPORTCOUNTER._serialized_end=150010 - _PATTERNFLOWUDPSRCPORTMETRICTAG._serialized_start=150012 - _PATTERNFLOWUDPSRCPORTMETRICTAG._serialized_end=150136 - _PATTERNFLOWUDPSRCPORT._serialized_start=150139 - _PATTERNFLOWUDPSRCPORT._serialized_end=150534 - _PATTERNFLOWUDPSRCPORT_CHOICE._serialized_start=99251 - _PATTERNFLOWUDPSRCPORT_CHOICE._serialized_end=99337 - _PATTERNFLOWUDPSRCPORT_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWUDPSRCPORT_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWUDPDSTPORTCOUNTER._serialized_start=150536 - _PATTERNFLOWUDPDSTPORTCOUNTER._serialized_end=150654 - _PATTERNFLOWUDPDSTPORTMETRICTAG._serialized_start=150656 - _PATTERNFLOWUDPDSTPORTMETRICTAG._serialized_end=150780 - _PATTERNFLOWUDPDSTPORT._serialized_start=150783 - _PATTERNFLOWUDPDSTPORT._serialized_end=151178 - _PATTERNFLOWUDPDSTPORT_CHOICE._serialized_start=99251 - _PATTERNFLOWUDPDSTPORT_CHOICE._serialized_end=99337 - _PATTERNFLOWUDPDSTPORT_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWUDPDSTPORT_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWUDPLENGTHCOUNTER._serialized_start=151180 - _PATTERNFLOWUDPLENGTHCOUNTER._serialized_end=151297 - _PATTERNFLOWUDPLENGTHMETRICTAG._serialized_start=151299 - _PATTERNFLOWUDPLENGTHMETRICTAG._serialized_end=151422 - _PATTERNFLOWUDPLENGTH._serialized_start=151425 - _PATTERNFLOWUDPLENGTH._serialized_end=151815 - _PATTERNFLOWUDPLENGTH_CHOICE._serialized_start=99251 - _PATTERNFLOWUDPLENGTH_CHOICE._serialized_end=99337 - _PATTERNFLOWUDPLENGTH_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWUDPLENGTH_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWUDPCHECKSUM._serialized_start=151818 - _PATTERNFLOWUDPCHECKSUM._serialized_end=152148 - _PATTERNFLOWUDPCHECKSUM_CHOICE._serialized_start=113067 - _PATTERNFLOWUDPCHECKSUM_CHOICE._serialized_end=113127 - _PATTERNFLOWUDPCHECKSUM_CHOICE_ENUM._serialized_start=113077 - _PATTERNFLOWUDPCHECKSUM_CHOICE_ENUM._serialized_end=113127 - _PATTERNFLOWUDPCHECKSUM_GENERATED._serialized_start=113129 - _PATTERNFLOWUDPCHECKSUM_GENERATED._serialized_end=113184 - _PATTERNFLOWUDPCHECKSUM_GENERATED_ENUM._serialized_start=113142 - _PATTERNFLOWUDPCHECKSUM_GENERATED_ENUM._serialized_end=113184 - _PATTERNFLOWGRECHECKSUMPRESENTCOUNTER._serialized_start=152150 - _PATTERNFLOWGRECHECKSUMPRESENTCOUNTER._serialized_end=152276 - _PATTERNFLOWGRECHECKSUMPRESENTMETRICTAG._serialized_start=152279 - _PATTERNFLOWGRECHECKSUMPRESENTMETRICTAG._serialized_end=152411 - _PATTERNFLOWGRECHECKSUMPRESENT._serialized_start=152414 - _PATTERNFLOWGRECHECKSUMPRESENT._serialized_end=152849 - _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE._serialized_start=99251 - _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE._serialized_end=99337 - _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWGRERESERVED0COUNTER._serialized_start=152851 - _PATTERNFLOWGRERESERVED0COUNTER._serialized_end=152971 - _PATTERNFLOWGRERESERVED0METRICTAG._serialized_start=152973 - _PATTERNFLOWGRERESERVED0METRICTAG._serialized_end=153099 - _PATTERNFLOWGRERESERVED0._serialized_start=153102 - _PATTERNFLOWGRERESERVED0._serialized_end=153507 - _PATTERNFLOWGRERESERVED0_CHOICE._serialized_start=99251 - _PATTERNFLOWGRERESERVED0_CHOICE._serialized_end=99337 - _PATTERNFLOWGRERESERVED0_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWGRERESERVED0_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWGREVERSIONCOUNTER._serialized_start=153509 - _PATTERNFLOWGREVERSIONCOUNTER._serialized_end=153627 - _PATTERNFLOWGREVERSIONMETRICTAG._serialized_start=153629 - _PATTERNFLOWGREVERSIONMETRICTAG._serialized_end=153753 - _PATTERNFLOWGREVERSION._serialized_start=153756 - _PATTERNFLOWGREVERSION._serialized_end=154151 - _PATTERNFLOWGREVERSION_CHOICE._serialized_start=99251 - _PATTERNFLOWGREVERSION_CHOICE._serialized_end=99337 - _PATTERNFLOWGREVERSION_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWGREVERSION_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWGREPROTOCOLCOUNTER._serialized_start=154153 - _PATTERNFLOWGREPROTOCOLCOUNTER._serialized_end=154272 - _PATTERNFLOWGREPROTOCOLMETRICTAG._serialized_start=154274 - _PATTERNFLOWGREPROTOCOLMETRICTAG._serialized_end=154399 - _PATTERNFLOWGREPROTOCOL._serialized_start=154402 - _PATTERNFLOWGREPROTOCOL._serialized_end=154802 - _PATTERNFLOWGREPROTOCOL_CHOICE._serialized_start=99251 - _PATTERNFLOWGREPROTOCOL_CHOICE._serialized_end=99337 - _PATTERNFLOWGREPROTOCOL_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWGREPROTOCOL_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWGRECHECKSUM._serialized_start=154805 - _PATTERNFLOWGRECHECKSUM._serialized_end=155135 - _PATTERNFLOWGRECHECKSUM_CHOICE._serialized_start=113067 - _PATTERNFLOWGRECHECKSUM_CHOICE._serialized_end=113127 - _PATTERNFLOWGRECHECKSUM_CHOICE_ENUM._serialized_start=113077 - _PATTERNFLOWGRECHECKSUM_CHOICE_ENUM._serialized_end=113127 - _PATTERNFLOWGRECHECKSUM_GENERATED._serialized_start=113129 - _PATTERNFLOWGRECHECKSUM_GENERATED._serialized_end=113184 - _PATTERNFLOWGRECHECKSUM_GENERATED_ENUM._serialized_start=113142 - _PATTERNFLOWGRECHECKSUM_GENERATED_ENUM._serialized_end=113184 - _PATTERNFLOWGRERESERVED1COUNTER._serialized_start=155137 - _PATTERNFLOWGRERESERVED1COUNTER._serialized_end=155257 - _PATTERNFLOWGRERESERVED1METRICTAG._serialized_start=155259 - _PATTERNFLOWGRERESERVED1METRICTAG._serialized_end=155385 - _PATTERNFLOWGRERESERVED1._serialized_start=155388 - _PATTERNFLOWGRERESERVED1._serialized_end=155793 - _PATTERNFLOWGRERESERVED1_CHOICE._serialized_start=99251 - _PATTERNFLOWGRERESERVED1_CHOICE._serialized_end=99337 - _PATTERNFLOWGRERESERVED1_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWGRERESERVED1_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWGTPV1VERSIONCOUNTER._serialized_start=155795 - _PATTERNFLOWGTPV1VERSIONCOUNTER._serialized_end=155915 - _PATTERNFLOWGTPV1VERSIONMETRICTAG._serialized_start=155917 - _PATTERNFLOWGTPV1VERSIONMETRICTAG._serialized_end=156043 - _PATTERNFLOWGTPV1VERSION._serialized_start=156046 - _PATTERNFLOWGTPV1VERSION._serialized_end=156451 - _PATTERNFLOWGTPV1VERSION_CHOICE._serialized_start=99251 - _PATTERNFLOWGTPV1VERSION_CHOICE._serialized_end=99337 - _PATTERNFLOWGTPV1VERSION_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWGTPV1VERSION_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWGTPV1PROTOCOLTYPECOUNTER._serialized_start=156453 - _PATTERNFLOWGTPV1PROTOCOLTYPECOUNTER._serialized_end=156578 - _PATTERNFLOWGTPV1PROTOCOLTYPEMETRICTAG._serialized_start=156581 - _PATTERNFLOWGTPV1PROTOCOLTYPEMETRICTAG._serialized_end=156712 - _PATTERNFLOWGTPV1PROTOCOLTYPE._serialized_start=156715 - _PATTERNFLOWGTPV1PROTOCOLTYPE._serialized_end=157145 - _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE._serialized_start=99251 - _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE._serialized_end=99337 - _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWGTPV1RESERVEDCOUNTER._serialized_start=157147 - _PATTERNFLOWGTPV1RESERVEDCOUNTER._serialized_end=157268 - _PATTERNFLOWGTPV1RESERVEDMETRICTAG._serialized_start=157270 - _PATTERNFLOWGTPV1RESERVEDMETRICTAG._serialized_end=157397 - _PATTERNFLOWGTPV1RESERVED._serialized_start=157400 - _PATTERNFLOWGTPV1RESERVED._serialized_end=157810 - _PATTERNFLOWGTPV1RESERVED_CHOICE._serialized_start=99251 - _PATTERNFLOWGTPV1RESERVED_CHOICE._serialized_end=99337 - _PATTERNFLOWGTPV1RESERVED_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWGTPV1RESERVED_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWGTPV1EFLAGCOUNTER._serialized_start=157812 - _PATTERNFLOWGTPV1EFLAGCOUNTER._serialized_end=157930 - _PATTERNFLOWGTPV1EFLAGMETRICTAG._serialized_start=157932 - _PATTERNFLOWGTPV1EFLAGMETRICTAG._serialized_end=158056 - _PATTERNFLOWGTPV1EFLAG._serialized_start=158059 - _PATTERNFLOWGTPV1EFLAG._serialized_end=158454 - _PATTERNFLOWGTPV1EFLAG_CHOICE._serialized_start=99251 - _PATTERNFLOWGTPV1EFLAG_CHOICE._serialized_end=99337 - _PATTERNFLOWGTPV1EFLAG_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWGTPV1EFLAG_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWGTPV1SFLAGCOUNTER._serialized_start=158456 - _PATTERNFLOWGTPV1SFLAGCOUNTER._serialized_end=158574 - _PATTERNFLOWGTPV1SFLAGMETRICTAG._serialized_start=158576 - _PATTERNFLOWGTPV1SFLAGMETRICTAG._serialized_end=158700 - _PATTERNFLOWGTPV1SFLAG._serialized_start=158703 - _PATTERNFLOWGTPV1SFLAG._serialized_end=159098 - _PATTERNFLOWGTPV1SFLAG_CHOICE._serialized_start=99251 - _PATTERNFLOWGTPV1SFLAG_CHOICE._serialized_end=99337 - _PATTERNFLOWGTPV1SFLAG_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWGTPV1SFLAG_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWGTPV1PNFLAGCOUNTER._serialized_start=159100 - _PATTERNFLOWGTPV1PNFLAGCOUNTER._serialized_end=159219 - _PATTERNFLOWGTPV1PNFLAGMETRICTAG._serialized_start=159221 - _PATTERNFLOWGTPV1PNFLAGMETRICTAG._serialized_end=159346 - _PATTERNFLOWGTPV1PNFLAG._serialized_start=159349 - _PATTERNFLOWGTPV1PNFLAG._serialized_end=159749 - _PATTERNFLOWGTPV1PNFLAG_CHOICE._serialized_start=99251 - _PATTERNFLOWGTPV1PNFLAG_CHOICE._serialized_end=99337 - _PATTERNFLOWGTPV1PNFLAG_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWGTPV1PNFLAG_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWGTPV1MESSAGETYPECOUNTER._serialized_start=159751 - _PATTERNFLOWGTPV1MESSAGETYPECOUNTER._serialized_end=159875 - _PATTERNFLOWGTPV1MESSAGETYPEMETRICTAG._serialized_start=159878 - _PATTERNFLOWGTPV1MESSAGETYPEMETRICTAG._serialized_end=160008 - _PATTERNFLOWGTPV1MESSAGETYPE._serialized_start=160011 - _PATTERNFLOWGTPV1MESSAGETYPE._serialized_end=160436 - _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE._serialized_start=99251 - _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE._serialized_end=99337 - _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWGTPV1MESSAGELENGTHCOUNTER._serialized_start=160438 - _PATTERNFLOWGTPV1MESSAGELENGTHCOUNTER._serialized_end=160564 - _PATTERNFLOWGTPV1MESSAGELENGTHMETRICTAG._serialized_start=160567 - _PATTERNFLOWGTPV1MESSAGELENGTHMETRICTAG._serialized_end=160699 - _PATTERNFLOWGTPV1MESSAGELENGTH._serialized_start=160702 - _PATTERNFLOWGTPV1MESSAGELENGTH._serialized_end=161137 - _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE._serialized_start=99251 - _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE._serialized_end=99337 - _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWGTPV1TEIDCOUNTER._serialized_start=161139 - _PATTERNFLOWGTPV1TEIDCOUNTER._serialized_end=161256 - _PATTERNFLOWGTPV1TEIDMETRICTAG._serialized_start=161258 - _PATTERNFLOWGTPV1TEIDMETRICTAG._serialized_end=161381 - _PATTERNFLOWGTPV1TEID._serialized_start=161384 - _PATTERNFLOWGTPV1TEID._serialized_end=161774 - _PATTERNFLOWGTPV1TEID_CHOICE._serialized_start=99251 - _PATTERNFLOWGTPV1TEID_CHOICE._serialized_end=99337 - _PATTERNFLOWGTPV1TEID_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWGTPV1TEID_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWGTPV1SQUENCENUMBERCOUNTER._serialized_start=161776 - _PATTERNFLOWGTPV1SQUENCENUMBERCOUNTER._serialized_end=161902 - _PATTERNFLOWGTPV1SQUENCENUMBERMETRICTAG._serialized_start=161905 - _PATTERNFLOWGTPV1SQUENCENUMBERMETRICTAG._serialized_end=162037 - _PATTERNFLOWGTPV1SQUENCENUMBER._serialized_start=162040 - _PATTERNFLOWGTPV1SQUENCENUMBER._serialized_end=162475 - _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE._serialized_start=99251 - _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE._serialized_end=99337 - _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWGTPV1NPDUNUMBERCOUNTER._serialized_start=162477 - _PATTERNFLOWGTPV1NPDUNUMBERCOUNTER._serialized_end=162600 - _PATTERNFLOWGTPV1NPDUNUMBERMETRICTAG._serialized_start=162603 - _PATTERNFLOWGTPV1NPDUNUMBERMETRICTAG._serialized_end=162732 - _PATTERNFLOWGTPV1NPDUNUMBER._serialized_start=162735 - _PATTERNFLOWGTPV1NPDUNUMBER._serialized_end=163155 - _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE._serialized_start=99251 - _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE._serialized_end=99337 - _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPECOUNTER._serialized_start=163158 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPECOUNTER._serialized_end=163294 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPEMETRICTAG._serialized_start=163297 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPEMETRICTAG._serialized_end=163439 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE._serialized_start=163442 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE._serialized_end=163927 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE._serialized_start=99251 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE._serialized_end=99337 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHCOUNTER._serialized_start=163930 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHCOUNTER._serialized_end=164065 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHMETRICTAG._serialized_start=164068 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHMETRICTAG._serialized_end=164209 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH._serialized_start=164212 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH._serialized_end=164692 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE._serialized_start=99251 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE._serialized_end=99337 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWGTPEXTENSIONCONTENTSCOUNTER._serialized_start=164695 - _PATTERNFLOWGTPEXTENSIONCONTENTSCOUNTER._serialized_end=164823 - _PATTERNFLOWGTPEXTENSIONCONTENTSMETRICTAG._serialized_start=164826 - _PATTERNFLOWGTPEXTENSIONCONTENTSMETRICTAG._serialized_end=164960 - _PATTERNFLOWGTPEXTENSIONCONTENTS._serialized_start=164963 - _PATTERNFLOWGTPEXTENSIONCONTENTS._serialized_end=165408 - _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE._serialized_start=99251 - _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE._serialized_end=99337 - _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERCOUNTER._serialized_start=165411 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERCOUNTER._serialized_end=165550 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERMETRICTAG._serialized_start=165553 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERMETRICTAG._serialized_end=165698 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER._serialized_start=165701 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER._serialized_end=166201 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE._serialized_start=99251 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE._serialized_end=99337 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWGTPV2VERSIONCOUNTER._serialized_start=166203 - _PATTERNFLOWGTPV2VERSIONCOUNTER._serialized_end=166323 - _PATTERNFLOWGTPV2VERSIONMETRICTAG._serialized_start=166325 - _PATTERNFLOWGTPV2VERSIONMETRICTAG._serialized_end=166451 - _PATTERNFLOWGTPV2VERSION._serialized_start=166454 - _PATTERNFLOWGTPV2VERSION._serialized_end=166859 - _PATTERNFLOWGTPV2VERSION_CHOICE._serialized_start=99251 - _PATTERNFLOWGTPV2VERSION_CHOICE._serialized_end=99337 - _PATTERNFLOWGTPV2VERSION_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWGTPV2VERSION_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAGCOUNTER._serialized_start=166862 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAGCOUNTER._serialized_end=166991 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAGMETRICTAG._serialized_start=166994 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAGMETRICTAG._serialized_end=167129 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAG._serialized_start=167132 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAG._serialized_end=167582 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE._serialized_start=99251 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE._serialized_end=99337 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWGTPV2TEIDFLAGCOUNTER._serialized_start=167584 - _PATTERNFLOWGTPV2TEIDFLAGCOUNTER._serialized_end=167705 - _PATTERNFLOWGTPV2TEIDFLAGMETRICTAG._serialized_start=167707 - _PATTERNFLOWGTPV2TEIDFLAGMETRICTAG._serialized_end=167834 - _PATTERNFLOWGTPV2TEIDFLAG._serialized_start=167837 - _PATTERNFLOWGTPV2TEIDFLAG._serialized_end=168247 - _PATTERNFLOWGTPV2TEIDFLAG_CHOICE._serialized_start=99251 - _PATTERNFLOWGTPV2TEIDFLAG_CHOICE._serialized_end=99337 - _PATTERNFLOWGTPV2TEIDFLAG_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWGTPV2TEIDFLAG_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWGTPV2SPARE1COUNTER._serialized_start=168249 - _PATTERNFLOWGTPV2SPARE1COUNTER._serialized_end=168368 - _PATTERNFLOWGTPV2SPARE1METRICTAG._serialized_start=168370 - _PATTERNFLOWGTPV2SPARE1METRICTAG._serialized_end=168495 - _PATTERNFLOWGTPV2SPARE1._serialized_start=168498 - _PATTERNFLOWGTPV2SPARE1._serialized_end=168898 - _PATTERNFLOWGTPV2SPARE1_CHOICE._serialized_start=99251 - _PATTERNFLOWGTPV2SPARE1_CHOICE._serialized_end=99337 - _PATTERNFLOWGTPV2SPARE1_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWGTPV2SPARE1_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWGTPV2MESSAGETYPECOUNTER._serialized_start=168900 - _PATTERNFLOWGTPV2MESSAGETYPECOUNTER._serialized_end=169024 - _PATTERNFLOWGTPV2MESSAGETYPEMETRICTAG._serialized_start=169027 - _PATTERNFLOWGTPV2MESSAGETYPEMETRICTAG._serialized_end=169157 - _PATTERNFLOWGTPV2MESSAGETYPE._serialized_start=169160 - _PATTERNFLOWGTPV2MESSAGETYPE._serialized_end=169585 - _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE._serialized_start=99251 - _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE._serialized_end=99337 - _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWGTPV2MESSAGELENGTHCOUNTER._serialized_start=169587 - _PATTERNFLOWGTPV2MESSAGELENGTHCOUNTER._serialized_end=169713 - _PATTERNFLOWGTPV2MESSAGELENGTHMETRICTAG._serialized_start=169716 - _PATTERNFLOWGTPV2MESSAGELENGTHMETRICTAG._serialized_end=169848 - _PATTERNFLOWGTPV2MESSAGELENGTH._serialized_start=169851 - _PATTERNFLOWGTPV2MESSAGELENGTH._serialized_end=170286 - _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE._serialized_start=99251 - _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE._serialized_end=99337 - _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWGTPV2TEIDCOUNTER._serialized_start=170288 - _PATTERNFLOWGTPV2TEIDCOUNTER._serialized_end=170405 - _PATTERNFLOWGTPV2TEIDMETRICTAG._serialized_start=170407 - _PATTERNFLOWGTPV2TEIDMETRICTAG._serialized_end=170530 - _PATTERNFLOWGTPV2TEID._serialized_start=170533 - _PATTERNFLOWGTPV2TEID._serialized_end=170923 - _PATTERNFLOWGTPV2TEID_CHOICE._serialized_start=99251 - _PATTERNFLOWGTPV2TEID_CHOICE._serialized_end=99337 - _PATTERNFLOWGTPV2TEID_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWGTPV2TEID_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWGTPV2SEQUENCENUMBERCOUNTER._serialized_start=170925 - _PATTERNFLOWGTPV2SEQUENCENUMBERCOUNTER._serialized_end=171052 - _PATTERNFLOWGTPV2SEQUENCENUMBERMETRICTAG._serialized_start=171055 - _PATTERNFLOWGTPV2SEQUENCENUMBERMETRICTAG._serialized_end=171188 - _PATTERNFLOWGTPV2SEQUENCENUMBER._serialized_start=171191 - _PATTERNFLOWGTPV2SEQUENCENUMBER._serialized_end=171631 - _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE._serialized_start=99251 - _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE._serialized_end=99337 - _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWGTPV2SPARE2COUNTER._serialized_start=171633 - _PATTERNFLOWGTPV2SPARE2COUNTER._serialized_end=171752 - _PATTERNFLOWGTPV2SPARE2METRICTAG._serialized_start=171754 - _PATTERNFLOWGTPV2SPARE2METRICTAG._serialized_end=171879 - _PATTERNFLOWGTPV2SPARE2._serialized_start=171882 - _PATTERNFLOWGTPV2SPARE2._serialized_end=172282 - _PATTERNFLOWGTPV2SPARE2_CHOICE._serialized_start=99251 - _PATTERNFLOWGTPV2SPARE2_CHOICE._serialized_end=99337 - _PATTERNFLOWGTPV2SPARE2_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWGTPV2SPARE2_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWARPHARDWARETYPECOUNTER._serialized_start=172284 - _PATTERNFLOWARPHARDWARETYPECOUNTER._serialized_end=172407 - _PATTERNFLOWARPHARDWARETYPEMETRICTAG._serialized_start=172410 - _PATTERNFLOWARPHARDWARETYPEMETRICTAG._serialized_end=172539 - _PATTERNFLOWARPHARDWARETYPE._serialized_start=172542 - _PATTERNFLOWARPHARDWARETYPE._serialized_end=172962 - _PATTERNFLOWARPHARDWARETYPE_CHOICE._serialized_start=99251 - _PATTERNFLOWARPHARDWARETYPE_CHOICE._serialized_end=99337 - _PATTERNFLOWARPHARDWARETYPE_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWARPHARDWARETYPE_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWARPPROTOCOLTYPECOUNTER._serialized_start=172964 - _PATTERNFLOWARPPROTOCOLTYPECOUNTER._serialized_end=173087 - _PATTERNFLOWARPPROTOCOLTYPEMETRICTAG._serialized_start=173090 - _PATTERNFLOWARPPROTOCOLTYPEMETRICTAG._serialized_end=173219 - _PATTERNFLOWARPPROTOCOLTYPE._serialized_start=173222 - _PATTERNFLOWARPPROTOCOLTYPE._serialized_end=173642 - _PATTERNFLOWARPPROTOCOLTYPE_CHOICE._serialized_start=99251 - _PATTERNFLOWARPPROTOCOLTYPE_CHOICE._serialized_end=99337 - _PATTERNFLOWARPPROTOCOLTYPE_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWARPPROTOCOLTYPE_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWARPHARDWARELENGTHCOUNTER._serialized_start=173644 - _PATTERNFLOWARPHARDWARELENGTHCOUNTER._serialized_end=173769 - _PATTERNFLOWARPHARDWARELENGTHMETRICTAG._serialized_start=173772 - _PATTERNFLOWARPHARDWARELENGTHMETRICTAG._serialized_end=173903 - _PATTERNFLOWARPHARDWARELENGTH._serialized_start=173906 - _PATTERNFLOWARPHARDWARELENGTH._serialized_end=174336 - _PATTERNFLOWARPHARDWARELENGTH_CHOICE._serialized_start=99251 - _PATTERNFLOWARPHARDWARELENGTH_CHOICE._serialized_end=99337 - _PATTERNFLOWARPHARDWARELENGTH_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWARPHARDWARELENGTH_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWARPPROTOCOLLENGTHCOUNTER._serialized_start=174338 - _PATTERNFLOWARPPROTOCOLLENGTHCOUNTER._serialized_end=174463 - _PATTERNFLOWARPPROTOCOLLENGTHMETRICTAG._serialized_start=174466 - _PATTERNFLOWARPPROTOCOLLENGTHMETRICTAG._serialized_end=174597 - _PATTERNFLOWARPPROTOCOLLENGTH._serialized_start=174600 - _PATTERNFLOWARPPROTOCOLLENGTH._serialized_end=175030 - _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE._serialized_start=99251 - _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE._serialized_end=99337 - _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWARPOPERATIONCOUNTER._serialized_start=175032 - _PATTERNFLOWARPOPERATIONCOUNTER._serialized_end=175152 - _PATTERNFLOWARPOPERATIONMETRICTAG._serialized_start=175154 - _PATTERNFLOWARPOPERATIONMETRICTAG._serialized_end=175280 - _PATTERNFLOWARPOPERATION._serialized_start=175283 - _PATTERNFLOWARPOPERATION._serialized_end=175688 - _PATTERNFLOWARPOPERATION_CHOICE._serialized_start=99251 - _PATTERNFLOWARPOPERATION_CHOICE._serialized_end=99337 - _PATTERNFLOWARPOPERATION_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWARPOPERATION_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWARPSENDERHARDWAREADDRCOUNTER._serialized_start=175691 - _PATTERNFLOWARPSENDERHARDWAREADDRCOUNTER._serialized_end=175820 - _PATTERNFLOWARPSENDERHARDWAREADDRMETRICTAG._serialized_start=175823 - _PATTERNFLOWARPSENDERHARDWAREADDRMETRICTAG._serialized_end=175958 - _PATTERNFLOWARPSENDERHARDWAREADDR._serialized_start=175961 - _PATTERNFLOWARPSENDERHARDWAREADDR._serialized_end=176411 - _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE._serialized_start=99251 - _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE._serialized_end=99337 - _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWARPSENDERPROTOCOLADDRCOUNTER._serialized_start=176414 - _PATTERNFLOWARPSENDERPROTOCOLADDRCOUNTER._serialized_end=176543 - _PATTERNFLOWARPSENDERPROTOCOLADDRMETRICTAG._serialized_start=176546 - _PATTERNFLOWARPSENDERPROTOCOLADDRMETRICTAG._serialized_end=176681 - _PATTERNFLOWARPSENDERPROTOCOLADDR._serialized_start=176684 - _PATTERNFLOWARPSENDERPROTOCOLADDR._serialized_end=177134 - _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE._serialized_start=99251 - _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE._serialized_end=99337 - _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWARPTARGETHARDWAREADDRCOUNTER._serialized_start=177137 - _PATTERNFLOWARPTARGETHARDWAREADDRCOUNTER._serialized_end=177266 - _PATTERNFLOWARPTARGETHARDWAREADDRMETRICTAG._serialized_start=177269 - _PATTERNFLOWARPTARGETHARDWAREADDRMETRICTAG._serialized_end=177404 - _PATTERNFLOWARPTARGETHARDWAREADDR._serialized_start=177407 - _PATTERNFLOWARPTARGETHARDWAREADDR._serialized_end=177857 - _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE._serialized_start=99251 - _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE._serialized_end=99337 - _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWARPTARGETPROTOCOLADDRCOUNTER._serialized_start=177860 - _PATTERNFLOWARPTARGETPROTOCOLADDRCOUNTER._serialized_end=177989 - _PATTERNFLOWARPTARGETPROTOCOLADDRMETRICTAG._serialized_start=177992 - _PATTERNFLOWARPTARGETPROTOCOLADDRMETRICTAG._serialized_end=178127 - _PATTERNFLOWARPTARGETPROTOCOLADDR._serialized_start=178130 - _PATTERNFLOWARPTARGETPROTOCOLADDR._serialized_end=178580 - _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE._serialized_start=99251 - _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE._serialized_end=99337 - _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWICMPECHOTYPECOUNTER._serialized_start=178582 - _PATTERNFLOWICMPECHOTYPECOUNTER._serialized_end=178702 - _PATTERNFLOWICMPECHOTYPEMETRICTAG._serialized_start=178704 - _PATTERNFLOWICMPECHOTYPEMETRICTAG._serialized_end=178830 - _PATTERNFLOWICMPECHOTYPE._serialized_start=178833 - _PATTERNFLOWICMPECHOTYPE._serialized_end=179238 - _PATTERNFLOWICMPECHOTYPE_CHOICE._serialized_start=99251 - _PATTERNFLOWICMPECHOTYPE_CHOICE._serialized_end=99337 - _PATTERNFLOWICMPECHOTYPE_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWICMPECHOTYPE_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWICMPECHOCODECOUNTER._serialized_start=179240 - _PATTERNFLOWICMPECHOCODECOUNTER._serialized_end=179360 - _PATTERNFLOWICMPECHOCODEMETRICTAG._serialized_start=179362 - _PATTERNFLOWICMPECHOCODEMETRICTAG._serialized_end=179488 - _PATTERNFLOWICMPECHOCODE._serialized_start=179491 - _PATTERNFLOWICMPECHOCODE._serialized_end=179896 - _PATTERNFLOWICMPECHOCODE_CHOICE._serialized_start=99251 - _PATTERNFLOWICMPECHOCODE_CHOICE._serialized_end=99337 - _PATTERNFLOWICMPECHOCODE_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWICMPECHOCODE_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWICMPECHOCHECKSUM._serialized_start=179899 - _PATTERNFLOWICMPECHOCHECKSUM._serialized_end=180244 - _PATTERNFLOWICMPECHOCHECKSUM_CHOICE._serialized_start=113067 - _PATTERNFLOWICMPECHOCHECKSUM_CHOICE._serialized_end=113127 - _PATTERNFLOWICMPECHOCHECKSUM_CHOICE_ENUM._serialized_start=113077 - _PATTERNFLOWICMPECHOCHECKSUM_CHOICE_ENUM._serialized_end=113127 - _PATTERNFLOWICMPECHOCHECKSUM_GENERATED._serialized_start=113129 - _PATTERNFLOWICMPECHOCHECKSUM_GENERATED._serialized_end=113184 - _PATTERNFLOWICMPECHOCHECKSUM_GENERATED_ENUM._serialized_start=113142 - _PATTERNFLOWICMPECHOCHECKSUM_GENERATED_ENUM._serialized_end=113184 - _PATTERNFLOWICMPECHOIDENTIFIERCOUNTER._serialized_start=180246 - _PATTERNFLOWICMPECHOIDENTIFIERCOUNTER._serialized_end=180372 - _PATTERNFLOWICMPECHOIDENTIFIERMETRICTAG._serialized_start=180375 - _PATTERNFLOWICMPECHOIDENTIFIERMETRICTAG._serialized_end=180507 - _PATTERNFLOWICMPECHOIDENTIFIER._serialized_start=180510 - _PATTERNFLOWICMPECHOIDENTIFIER._serialized_end=180945 - _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE._serialized_start=99251 - _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE._serialized_end=99337 - _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWICMPECHOSEQUENCENUMBERCOUNTER._serialized_start=180948 - _PATTERNFLOWICMPECHOSEQUENCENUMBERCOUNTER._serialized_end=181078 - _PATTERNFLOWICMPECHOSEQUENCENUMBERMETRICTAG._serialized_start=181081 - _PATTERNFLOWICMPECHOSEQUENCENUMBERMETRICTAG._serialized_end=181217 - _PATTERNFLOWICMPECHOSEQUENCENUMBER._serialized_start=181220 - _PATTERNFLOWICMPECHOSEQUENCENUMBER._serialized_end=181675 - _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE._serialized_start=99251 - _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE._serialized_end=99337 - _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWICMPCOMMONCHECKSUM._serialized_start=181678 - _PATTERNFLOWICMPCOMMONCHECKSUM._serialized_end=182029 - _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE._serialized_start=113067 - _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE._serialized_end=113127 - _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE_ENUM._serialized_start=113077 - _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE_ENUM._serialized_end=113127 - _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED._serialized_start=113129 - _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED._serialized_end=113184 - _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED_ENUM._serialized_start=113142 - _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED_ENUM._serialized_end=113184 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERCOUNTER._serialized_start=182032 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERCOUNTER._serialized_end=182164 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERMETRICTAG._serialized_start=182167 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERMETRICTAG._serialized_end=182305 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER._serialized_start=182308 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER._serialized_end=182773 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE._serialized_start=99251 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE._serialized_end=99337 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERCOUNTER._serialized_start=182776 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERCOUNTER._serialized_end=182912 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERMETRICTAG._serialized_start=182915 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERMETRICTAG._serialized_end=183057 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER._serialized_start=183060 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER._serialized_end=183545 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE._serialized_start=99251 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE._serialized_end=99337 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWICMPV6ECHOTYPECOUNTER._serialized_start=183547 - _PATTERNFLOWICMPV6ECHOTYPECOUNTER._serialized_end=183669 - _PATTERNFLOWICMPV6ECHOTYPEMETRICTAG._serialized_start=183672 - _PATTERNFLOWICMPV6ECHOTYPEMETRICTAG._serialized_end=183800 - _PATTERNFLOWICMPV6ECHOTYPE._serialized_start=183803 - _PATTERNFLOWICMPV6ECHOTYPE._serialized_end=184218 - _PATTERNFLOWICMPV6ECHOTYPE_CHOICE._serialized_start=99251 - _PATTERNFLOWICMPV6ECHOTYPE_CHOICE._serialized_end=99337 - _PATTERNFLOWICMPV6ECHOTYPE_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWICMPV6ECHOTYPE_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWICMPV6ECHOCODECOUNTER._serialized_start=184220 - _PATTERNFLOWICMPV6ECHOCODECOUNTER._serialized_end=184342 - _PATTERNFLOWICMPV6ECHOCODEMETRICTAG._serialized_start=184345 - _PATTERNFLOWICMPV6ECHOCODEMETRICTAG._serialized_end=184473 - _PATTERNFLOWICMPV6ECHOCODE._serialized_start=184476 - _PATTERNFLOWICMPV6ECHOCODE._serialized_end=184891 - _PATTERNFLOWICMPV6ECHOCODE_CHOICE._serialized_start=99251 - _PATTERNFLOWICMPV6ECHOCODE_CHOICE._serialized_end=99337 - _PATTERNFLOWICMPV6ECHOCODE_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWICMPV6ECHOCODE_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWICMPV6ECHOIDENTIFIERCOUNTER._serialized_start=184894 - _PATTERNFLOWICMPV6ECHOIDENTIFIERCOUNTER._serialized_end=185022 - _PATTERNFLOWICMPV6ECHOIDENTIFIERMETRICTAG._serialized_start=185025 - _PATTERNFLOWICMPV6ECHOIDENTIFIERMETRICTAG._serialized_end=185159 - _PATTERNFLOWICMPV6ECHOIDENTIFIER._serialized_start=185162 - _PATTERNFLOWICMPV6ECHOIDENTIFIER._serialized_end=185607 - _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE._serialized_start=99251 - _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE._serialized_end=99337 - _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERCOUNTER._serialized_start=185610 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERCOUNTER._serialized_end=185742 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERMETRICTAG._serialized_start=185745 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERMETRICTAG._serialized_end=185883 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER._serialized_start=185886 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER._serialized_end=186351 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE._serialized_start=99251 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE._serialized_end=99337 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWICMPV6ECHOCHECKSUM._serialized_start=186354 - _PATTERNFLOWICMPV6ECHOCHECKSUM._serialized_end=186705 - _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE._serialized_start=113067 - _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE._serialized_end=113127 - _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE_ENUM._serialized_start=113077 - _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE_ENUM._serialized_end=113127 - _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED._serialized_start=113129 - _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED._serialized_end=113184 - _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED_ENUM._serialized_start=113142 - _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED_ENUM._serialized_end=113184 - _PATTERNFLOWICMPV6COMMONCHECKSUM._serialized_start=186708 - _PATTERNFLOWICMPV6COMMONCHECKSUM._serialized_end=187065 - _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE._serialized_start=113067 - _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE._serialized_end=113127 - _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE_ENUM._serialized_start=113077 - _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE_ENUM._serialized_end=113127 - _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED._serialized_start=113129 - _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED._serialized_end=113184 - _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED_ENUM._serialized_start=113142 - _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED_ENUM._serialized_end=113184 - _PATTERNFLOWPPPADDRESSCOUNTER._serialized_start=187067 - _PATTERNFLOWPPPADDRESSCOUNTER._serialized_end=187185 - _PATTERNFLOWPPPADDRESSMETRICTAG._serialized_start=187187 - _PATTERNFLOWPPPADDRESSMETRICTAG._serialized_end=187311 - _PATTERNFLOWPPPADDRESS._serialized_start=187314 - _PATTERNFLOWPPPADDRESS._serialized_end=187709 - _PATTERNFLOWPPPADDRESS_CHOICE._serialized_start=99251 - _PATTERNFLOWPPPADDRESS_CHOICE._serialized_end=99337 - _PATTERNFLOWPPPADDRESS_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWPPPADDRESS_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWPPPCONTROLCOUNTER._serialized_start=187711 - _PATTERNFLOWPPPCONTROLCOUNTER._serialized_end=187829 - _PATTERNFLOWPPPCONTROLMETRICTAG._serialized_start=187831 - _PATTERNFLOWPPPCONTROLMETRICTAG._serialized_end=187955 - _PATTERNFLOWPPPCONTROL._serialized_start=187958 - _PATTERNFLOWPPPCONTROL._serialized_end=188353 - _PATTERNFLOWPPPCONTROL_CHOICE._serialized_start=99251 - _PATTERNFLOWPPPCONTROL_CHOICE._serialized_end=99337 - _PATTERNFLOWPPPCONTROL_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWPPPCONTROL_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWPPPPROTOCOLTYPECOUNTER._serialized_start=188355 - _PATTERNFLOWPPPPROTOCOLTYPECOUNTER._serialized_end=188478 - _PATTERNFLOWPPPPROTOCOLTYPEMETRICTAG._serialized_start=188481 - _PATTERNFLOWPPPPROTOCOLTYPEMETRICTAG._serialized_end=188610 - _PATTERNFLOWPPPPROTOCOLTYPE._serialized_start=188613 - _PATTERNFLOWPPPPROTOCOLTYPE._serialized_end=189071 - _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE._serialized_start=98581 - _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE._serialized_end=98677 - _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE_ENUM._serialized_start=98591 - _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE_ENUM._serialized_end=98677 - _PATTERNFLOWIGMPV1VERSIONCOUNTER._serialized_start=189073 - _PATTERNFLOWIGMPV1VERSIONCOUNTER._serialized_end=189194 - _PATTERNFLOWIGMPV1VERSIONMETRICTAG._serialized_start=189196 - _PATTERNFLOWIGMPV1VERSIONMETRICTAG._serialized_end=189323 - _PATTERNFLOWIGMPV1VERSION._serialized_start=189326 - _PATTERNFLOWIGMPV1VERSION._serialized_end=189736 - _PATTERNFLOWIGMPV1VERSION_CHOICE._serialized_start=99251 - _PATTERNFLOWIGMPV1VERSION_CHOICE._serialized_end=99337 - _PATTERNFLOWIGMPV1VERSION_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWIGMPV1VERSION_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWIGMPV1TYPECOUNTER._serialized_start=189738 - _PATTERNFLOWIGMPV1TYPECOUNTER._serialized_end=189856 - _PATTERNFLOWIGMPV1TYPEMETRICTAG._serialized_start=189858 - _PATTERNFLOWIGMPV1TYPEMETRICTAG._serialized_end=189982 - _PATTERNFLOWIGMPV1TYPE._serialized_start=189985 - _PATTERNFLOWIGMPV1TYPE._serialized_end=190380 - _PATTERNFLOWIGMPV1TYPE_CHOICE._serialized_start=99251 - _PATTERNFLOWIGMPV1TYPE_CHOICE._serialized_end=99337 - _PATTERNFLOWIGMPV1TYPE_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWIGMPV1TYPE_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWIGMPV1UNUSEDCOUNTER._serialized_start=190382 - _PATTERNFLOWIGMPV1UNUSEDCOUNTER._serialized_end=190502 - _PATTERNFLOWIGMPV1UNUSEDMETRICTAG._serialized_start=190504 - _PATTERNFLOWIGMPV1UNUSEDMETRICTAG._serialized_end=190630 - _PATTERNFLOWIGMPV1UNUSED._serialized_start=190633 - _PATTERNFLOWIGMPV1UNUSED._serialized_end=191038 - _PATTERNFLOWIGMPV1UNUSED_CHOICE._serialized_start=99251 - _PATTERNFLOWIGMPV1UNUSED_CHOICE._serialized_end=99337 - _PATTERNFLOWIGMPV1UNUSED_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWIGMPV1UNUSED_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWIGMPV1CHECKSUM._serialized_start=191041 - _PATTERNFLOWIGMPV1CHECKSUM._serialized_end=191380 - _PATTERNFLOWIGMPV1CHECKSUM_CHOICE._serialized_start=113067 - _PATTERNFLOWIGMPV1CHECKSUM_CHOICE._serialized_end=113127 - _PATTERNFLOWIGMPV1CHECKSUM_CHOICE_ENUM._serialized_start=113077 - _PATTERNFLOWIGMPV1CHECKSUM_CHOICE_ENUM._serialized_end=113127 - _PATTERNFLOWIGMPV1CHECKSUM_GENERATED._serialized_start=113129 - _PATTERNFLOWIGMPV1CHECKSUM_GENERATED._serialized_end=113184 - _PATTERNFLOWIGMPV1CHECKSUM_GENERATED_ENUM._serialized_start=113142 - _PATTERNFLOWIGMPV1CHECKSUM_GENERATED_ENUM._serialized_end=113184 - _PATTERNFLOWIGMPV1GROUPADDRESSCOUNTER._serialized_start=191382 - _PATTERNFLOWIGMPV1GROUPADDRESSCOUNTER._serialized_end=191508 - _PATTERNFLOWIGMPV1GROUPADDRESSMETRICTAG._serialized_start=191511 - _PATTERNFLOWIGMPV1GROUPADDRESSMETRICTAG._serialized_end=191643 - _PATTERNFLOWIGMPV1GROUPADDRESS._serialized_start=191646 - _PATTERNFLOWIGMPV1GROUPADDRESS._serialized_end=192081 - _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE._serialized_start=99251 - _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE._serialized_end=99337 - _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWMPLSLABELCOUNTER._serialized_start=192083 - _PATTERNFLOWMPLSLABELCOUNTER._serialized_end=192200 - _PATTERNFLOWMPLSLABELMETRICTAG._serialized_start=192202 - _PATTERNFLOWMPLSLABELMETRICTAG._serialized_end=192325 - _PATTERNFLOWMPLSLABEL._serialized_start=192328 - _PATTERNFLOWMPLSLABEL._serialized_end=192756 - _PATTERNFLOWMPLSLABEL_CHOICE._serialized_start=98581 - _PATTERNFLOWMPLSLABEL_CHOICE._serialized_end=98677 - _PATTERNFLOWMPLSLABEL_CHOICE_ENUM._serialized_start=98591 - _PATTERNFLOWMPLSLABEL_CHOICE_ENUM._serialized_end=98677 - _PATTERNFLOWMPLSTRAFFICCLASSCOUNTER._serialized_start=192758 - _PATTERNFLOWMPLSTRAFFICCLASSCOUNTER._serialized_end=192882 - _PATTERNFLOWMPLSTRAFFICCLASSMETRICTAG._serialized_start=192885 - _PATTERNFLOWMPLSTRAFFICCLASSMETRICTAG._serialized_end=193015 - _PATTERNFLOWMPLSTRAFFICCLASS._serialized_start=193018 - _PATTERNFLOWMPLSTRAFFICCLASS._serialized_end=193443 - _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE._serialized_start=99251 - _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE._serialized_end=99337 - _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE_ENUM._serialized_end=99337 - _PATTERNFLOWMPLSBOTTOMOFSTACKCOUNTER._serialized_start=193445 - _PATTERNFLOWMPLSBOTTOMOFSTACKCOUNTER._serialized_end=193570 - _PATTERNFLOWMPLSBOTTOMOFSTACKMETRICTAG._serialized_start=193573 - _PATTERNFLOWMPLSBOTTOMOFSTACKMETRICTAG._serialized_end=193704 - _PATTERNFLOWMPLSBOTTOMOFSTACK._serialized_start=193707 - _PATTERNFLOWMPLSBOTTOMOFSTACK._serialized_end=194175 - _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE._serialized_start=98581 - _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE._serialized_end=98677 - _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE_ENUM._serialized_start=98591 - _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE_ENUM._serialized_end=98677 - _PATTERNFLOWMPLSTIMETOLIVECOUNTER._serialized_start=194177 - _PATTERNFLOWMPLSTIMETOLIVECOUNTER._serialized_end=194299 - _PATTERNFLOWMPLSTIMETOLIVEMETRICTAG._serialized_start=194302 - _PATTERNFLOWMPLSTIMETOLIVEMETRICTAG._serialized_end=194430 - _PATTERNFLOWMPLSTIMETOLIVE._serialized_start=194433 - _PATTERNFLOWMPLSTIMETOLIVE._serialized_end=194848 - _PATTERNFLOWMPLSTIMETOLIVE_CHOICE._serialized_start=99251 - _PATTERNFLOWMPLSTIMETOLIVE_CHOICE._serialized_end=99337 - _PATTERNFLOWMPLSTIMETOLIVE_CHOICE_ENUM._serialized_start=99261 - _PATTERNFLOWMPLSTIMETOLIVE_CHOICE_ENUM._serialized_end=99337 - _VERSION._serialized_start=194851 - _VERSION._serialized_end=194996 - _SUCCESS._serialized_start=194998 - _SUCCESS._serialized_end=195038 - _FAILURE._serialized_start=195040 - _FAILURE._serialized_end=195076 - _SETCONFIGREQUEST._serialized_start=195078 - _SETCONFIGREQUEST._serialized_end=195125 - _UPDATECONFIGREQUEST._serialized_start=195127 - _UPDATECONFIGREQUEST._serialized_end=195190 - _SETCONFIGRESPONSE._serialized_start=195192 - _SETCONFIGRESPONSE._serialized_end=195242 - _GETCONFIGRESPONSE._serialized_start=195244 - _GETCONFIGRESPONSE._serialized_end=195292 - _UPDATECONFIGRESPONSE._serialized_start=195294 - _UPDATECONFIGRESPONSE._serialized_end=195347 - _SETCONTROLSTATEREQUEST._serialized_start=195349 - _SETCONTROLSTATEREQUEST._serialized_end=195415 - _SETCONTROLSTATERESPONSE._serialized_start=195417 - _SETCONTROLSTATERESPONSE._serialized_end=195473 - _SETCONTROLACTIONREQUEST._serialized_start=195475 - _SETCONTROLACTIONREQUEST._serialized_end=195544 - _SETCONTROLACTIONRESPONSE._serialized_start=195546 - _SETCONTROLACTIONRESPONSE._serialized_end=195633 - _GETMETRICSREQUEST._serialized_start=195635 - _GETMETRICSREQUEST._serialized_end=195700 - _GETMETRICSRESPONSE._serialized_start=195702 - _GETMETRICSRESPONSE._serialized_end=195770 - _GETSTATESREQUEST._serialized_start=195772 - _GETSTATESREQUEST._serialized_end=195834 - _GETSTATESRESPONSE._serialized_start=195836 - _GETSTATESRESPONSE._serialized_end=195901 - _GETCAPTUREREQUEST._serialized_start=195903 - _GETCAPTUREREQUEST._serialized_end=195968 - _GETCAPTURERESPONSE._serialized_start=195970 - _GETCAPTURERESPONSE._serialized_end=196014 - _GETVERSIONRESPONSE._serialized_start=196016 - _GETVERSIONRESPONSE._serialized_end=196067 - _OPENAPI._serialized_start=196070 - _OPENAPI._serialized_end=196677 + _RSVPLSPSTATE_LASTFLAPREASON._serialized_start=100327 + _RSVPLSPSTATE_LASTFLAPREASON._serialized_end=100416 + _RSVPLSPSTATE_LASTFLAPREASON_ENUM._serialized_start=100345 + _RSVPLSPSTATE_LASTFLAPREASON_ENUM._serialized_end=100416 + _RSVPLSPIPV4RRO._serialized_start=100539 + _RSVPLSPIPV4RRO._serialized_end=100637 + _RSVPLSPIPV4ERO._serialized_start=100640 + _RSVPLSPIPV4ERO._serialized_end=100882 + _RSVPLSPIPV4ERO_TYPE._serialized_start=100747 + _RSVPLSPIPV4ERO_TYPE._serialized_end=100854 + _RSVPLSPIPV4ERO_TYPE_ENUM._serialized_start=100755 + _RSVPLSPIPV4ERO_TYPE_ENUM._serialized_end=100854 + _CAPTUREREQUEST._serialized_start=100884 + _CAPTUREREQUEST._serialized_end=100938 + _PATTERNFLOWETHERNETDSTCOUNTER._serialized_start=100940 + _PATTERNFLOWETHERNETDSTCOUNTER._serialized_end=101059 + _PATTERNFLOWETHERNETDSTMETRICTAG._serialized_start=101061 + _PATTERNFLOWETHERNETDSTMETRICTAG._serialized_end=101186 + _PATTERNFLOWETHERNETDST._serialized_start=101189 + _PATTERNFLOWETHERNETDST._serialized_end=101627 + _PATTERNFLOWETHERNETDST_CHOICE._serialized_start=101501 + _PATTERNFLOWETHERNETDST_CHOICE._serialized_end=101597 + _PATTERNFLOWETHERNETDST_CHOICE_ENUM._serialized_start=101511 + _PATTERNFLOWETHERNETDST_CHOICE_ENUM._serialized_end=101597 + _PATTERNFLOWETHERNETSRCCOUNTER._serialized_start=101629 + _PATTERNFLOWETHERNETSRCCOUNTER._serialized_end=101748 + _PATTERNFLOWETHERNETSRCMETRICTAG._serialized_start=101750 + _PATTERNFLOWETHERNETSRCMETRICTAG._serialized_end=101875 + _PATTERNFLOWETHERNETSRC._serialized_start=101878 + _PATTERNFLOWETHERNETSRC._serialized_end=102278 + _PATTERNFLOWETHERNETSRC_CHOICE._serialized_start=102171 + _PATTERNFLOWETHERNETSRC_CHOICE._serialized_end=102257 + _PATTERNFLOWETHERNETSRC_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWETHERNETSRC_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWETHERNETETHERTYPECOUNTER._serialized_start=102280 + _PATTERNFLOWETHERNETETHERTYPECOUNTER._serialized_end=102405 + _PATTERNFLOWETHERNETETHERTYPEMETRICTAG._serialized_start=102408 + _PATTERNFLOWETHERNETETHERTYPEMETRICTAG._serialized_end=102539 + _PATTERNFLOWETHERNETETHERTYPE._serialized_start=102542 + _PATTERNFLOWETHERNETETHERTYPE._serialized_end=103010 + _PATTERNFLOWETHERNETETHERTYPE_CHOICE._serialized_start=101501 + _PATTERNFLOWETHERNETETHERTYPE_CHOICE._serialized_end=101597 + _PATTERNFLOWETHERNETETHERTYPE_CHOICE_ENUM._serialized_start=101511 + _PATTERNFLOWETHERNETETHERTYPE_CHOICE_ENUM._serialized_end=101597 + _PATTERNFLOWETHERNETPFCQUEUECOUNTER._serialized_start=103012 + _PATTERNFLOWETHERNETPFCQUEUECOUNTER._serialized_end=103136 + _PATTERNFLOWETHERNETPFCQUEUEMETRICTAG._serialized_start=103139 + _PATTERNFLOWETHERNETPFCQUEUEMETRICTAG._serialized_end=103269 + _PATTERNFLOWETHERNETPFCQUEUE._serialized_start=103272 + _PATTERNFLOWETHERNETPFCQUEUE._serialized_end=103697 + _PATTERNFLOWETHERNETPFCQUEUE_CHOICE._serialized_start=102171 + _PATTERNFLOWETHERNETPFCQUEUE_CHOICE._serialized_end=102257 + _PATTERNFLOWETHERNETPFCQUEUE_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWETHERNETPFCQUEUE_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWVLANPRIORITYCOUNTER._serialized_start=103699 + _PATTERNFLOWVLANPRIORITYCOUNTER._serialized_end=103819 + _PATTERNFLOWVLANPRIORITYMETRICTAG._serialized_start=103821 + _PATTERNFLOWVLANPRIORITYMETRICTAG._serialized_end=103947 + _PATTERNFLOWVLANPRIORITY._serialized_start=103950 + _PATTERNFLOWVLANPRIORITY._serialized_end=104355 + _PATTERNFLOWVLANPRIORITY_CHOICE._serialized_start=102171 + _PATTERNFLOWVLANPRIORITY_CHOICE._serialized_end=102257 + _PATTERNFLOWVLANPRIORITY_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWVLANPRIORITY_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWVLANCFICOUNTER._serialized_start=104357 + _PATTERNFLOWVLANCFICOUNTER._serialized_end=104472 + _PATTERNFLOWVLANCFIMETRICTAG._serialized_start=104474 + _PATTERNFLOWVLANCFIMETRICTAG._serialized_end=104595 + _PATTERNFLOWVLANCFI._serialized_start=104598 + _PATTERNFLOWVLANCFI._serialized_end=104978 + _PATTERNFLOWVLANCFI_CHOICE._serialized_start=102171 + _PATTERNFLOWVLANCFI_CHOICE._serialized_end=102257 + _PATTERNFLOWVLANCFI_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWVLANCFI_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWVLANIDCOUNTER._serialized_start=104980 + _PATTERNFLOWVLANIDCOUNTER._serialized_end=105094 + _PATTERNFLOWVLANIDMETRICTAG._serialized_start=105096 + _PATTERNFLOWVLANIDMETRICTAG._serialized_end=105216 + _PATTERNFLOWVLANID._serialized_start=105219 + _PATTERNFLOWVLANID._serialized_end=105594 + _PATTERNFLOWVLANID_CHOICE._serialized_start=102171 + _PATTERNFLOWVLANID_CHOICE._serialized_end=102257 + _PATTERNFLOWVLANID_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWVLANID_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWVLANTPIDCOUNTER._serialized_start=105596 + _PATTERNFLOWVLANTPIDCOUNTER._serialized_end=105712 + _PATTERNFLOWVLANTPIDMETRICTAG._serialized_start=105714 + _PATTERNFLOWVLANTPIDMETRICTAG._serialized_end=105836 + _PATTERNFLOWVLANTPID._serialized_start=105839 + _PATTERNFLOWVLANTPID._serialized_end=106224 + _PATTERNFLOWVLANTPID_CHOICE._serialized_start=102171 + _PATTERNFLOWVLANTPID_CHOICE._serialized_end=102257 + _PATTERNFLOWVLANTPID_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWVLANTPID_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWVXLANFLAGSCOUNTER._serialized_start=106226 + _PATTERNFLOWVXLANFLAGSCOUNTER._serialized_end=106344 + _PATTERNFLOWVXLANFLAGSMETRICTAG._serialized_start=106346 + _PATTERNFLOWVXLANFLAGSMETRICTAG._serialized_end=106470 + _PATTERNFLOWVXLANFLAGS._serialized_start=106473 + _PATTERNFLOWVXLANFLAGS._serialized_end=106868 + _PATTERNFLOWVXLANFLAGS_CHOICE._serialized_start=102171 + _PATTERNFLOWVXLANFLAGS_CHOICE._serialized_end=102257 + _PATTERNFLOWVXLANFLAGS_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWVXLANFLAGS_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWVXLANRESERVED0COUNTER._serialized_start=106870 + _PATTERNFLOWVXLANRESERVED0COUNTER._serialized_end=106992 + _PATTERNFLOWVXLANRESERVED0METRICTAG._serialized_start=106995 + _PATTERNFLOWVXLANRESERVED0METRICTAG._serialized_end=107123 + _PATTERNFLOWVXLANRESERVED0._serialized_start=107126 + _PATTERNFLOWVXLANRESERVED0._serialized_end=107541 + _PATTERNFLOWVXLANRESERVED0_CHOICE._serialized_start=102171 + _PATTERNFLOWVXLANRESERVED0_CHOICE._serialized_end=102257 + _PATTERNFLOWVXLANRESERVED0_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWVXLANRESERVED0_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWVXLANVNICOUNTER._serialized_start=107543 + _PATTERNFLOWVXLANVNICOUNTER._serialized_end=107659 + _PATTERNFLOWVXLANVNIMETRICTAG._serialized_start=107661 + _PATTERNFLOWVXLANVNIMETRICTAG._serialized_end=107783 + _PATTERNFLOWVXLANVNI._serialized_start=107786 + _PATTERNFLOWVXLANVNI._serialized_end=108209 + _PATTERNFLOWVXLANVNI_CHOICE._serialized_start=101501 + _PATTERNFLOWVXLANVNI_CHOICE._serialized_end=101597 + _PATTERNFLOWVXLANVNI_CHOICE_ENUM._serialized_start=101511 + _PATTERNFLOWVXLANVNI_CHOICE_ENUM._serialized_end=101597 + _PATTERNFLOWVXLANRESERVED1COUNTER._serialized_start=108211 + _PATTERNFLOWVXLANRESERVED1COUNTER._serialized_end=108333 + _PATTERNFLOWVXLANRESERVED1METRICTAG._serialized_start=108336 + _PATTERNFLOWVXLANRESERVED1METRICTAG._serialized_end=108464 + _PATTERNFLOWVXLANRESERVED1._serialized_start=108467 + _PATTERNFLOWVXLANRESERVED1._serialized_end=108882 + _PATTERNFLOWVXLANRESERVED1_CHOICE._serialized_start=102171 + _PATTERNFLOWVXLANRESERVED1_CHOICE._serialized_end=102257 + _PATTERNFLOWVXLANRESERVED1_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWVXLANRESERVED1_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWIPV4VERSIONCOUNTER._serialized_start=108884 + _PATTERNFLOWIPV4VERSIONCOUNTER._serialized_end=109003 + _PATTERNFLOWIPV4VERSIONMETRICTAG._serialized_start=109005 + _PATTERNFLOWIPV4VERSIONMETRICTAG._serialized_end=109130 + _PATTERNFLOWIPV4VERSION._serialized_start=109133 + _PATTERNFLOWIPV4VERSION._serialized_end=109533 + _PATTERNFLOWIPV4VERSION_CHOICE._serialized_start=102171 + _PATTERNFLOWIPV4VERSION_CHOICE._serialized_end=102257 + _PATTERNFLOWIPV4VERSION_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWIPV4VERSION_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWIPV4HEADERLENGTHCOUNTER._serialized_start=109535 + _PATTERNFLOWIPV4HEADERLENGTHCOUNTER._serialized_end=109659 + _PATTERNFLOWIPV4HEADERLENGTHMETRICTAG._serialized_start=109662 + _PATTERNFLOWIPV4HEADERLENGTHMETRICTAG._serialized_end=109792 + _PATTERNFLOWIPV4HEADERLENGTH._serialized_start=109795 + _PATTERNFLOWIPV4HEADERLENGTH._serialized_end=110258 + _PATTERNFLOWIPV4HEADERLENGTH_CHOICE._serialized_start=101501 + _PATTERNFLOWIPV4HEADERLENGTH_CHOICE._serialized_end=101597 + _PATTERNFLOWIPV4HEADERLENGTH_CHOICE_ENUM._serialized_start=101511 + _PATTERNFLOWIPV4HEADERLENGTH_CHOICE_ENUM._serialized_end=101597 + _PATTERNFLOWIPV4TOTALLENGTHCOUNTER._serialized_start=110260 + _PATTERNFLOWIPV4TOTALLENGTHCOUNTER._serialized_end=110383 + _PATTERNFLOWIPV4TOTALLENGTHMETRICTAG._serialized_start=110386 + _PATTERNFLOWIPV4TOTALLENGTHMETRICTAG._serialized_end=110515 + _PATTERNFLOWIPV4TOTALLENGTH._serialized_start=110518 + _PATTERNFLOWIPV4TOTALLENGTH._serialized_end=110976 + _PATTERNFLOWIPV4TOTALLENGTH_CHOICE._serialized_start=101501 + _PATTERNFLOWIPV4TOTALLENGTH_CHOICE._serialized_end=101597 + _PATTERNFLOWIPV4TOTALLENGTH_CHOICE_ENUM._serialized_start=101511 + _PATTERNFLOWIPV4TOTALLENGTH_CHOICE_ENUM._serialized_end=101597 + _PATTERNFLOWIPV4IDENTIFICATIONCOUNTER._serialized_start=110978 + _PATTERNFLOWIPV4IDENTIFICATIONCOUNTER._serialized_end=111104 + _PATTERNFLOWIPV4IDENTIFICATIONMETRICTAG._serialized_start=111107 + _PATTERNFLOWIPV4IDENTIFICATIONMETRICTAG._serialized_end=111239 + _PATTERNFLOWIPV4IDENTIFICATION._serialized_start=111242 + _PATTERNFLOWIPV4IDENTIFICATION._serialized_end=111677 + _PATTERNFLOWIPV4IDENTIFICATION_CHOICE._serialized_start=102171 + _PATTERNFLOWIPV4IDENTIFICATION_CHOICE._serialized_end=102257 + _PATTERNFLOWIPV4IDENTIFICATION_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWIPV4IDENTIFICATION_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWIPV4RESERVEDCOUNTER._serialized_start=111679 + _PATTERNFLOWIPV4RESERVEDCOUNTER._serialized_end=111799 + _PATTERNFLOWIPV4RESERVEDMETRICTAG._serialized_start=111801 + _PATTERNFLOWIPV4RESERVEDMETRICTAG._serialized_end=111927 + _PATTERNFLOWIPV4RESERVED._serialized_start=111930 + _PATTERNFLOWIPV4RESERVED._serialized_end=112335 + _PATTERNFLOWIPV4RESERVED_CHOICE._serialized_start=102171 + _PATTERNFLOWIPV4RESERVED_CHOICE._serialized_end=102257 + _PATTERNFLOWIPV4RESERVED_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWIPV4RESERVED_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWIPV4DONTFRAGMENTCOUNTER._serialized_start=112337 + _PATTERNFLOWIPV4DONTFRAGMENTCOUNTER._serialized_end=112461 + _PATTERNFLOWIPV4DONTFRAGMENTMETRICTAG._serialized_start=112464 + _PATTERNFLOWIPV4DONTFRAGMENTMETRICTAG._serialized_end=112594 + _PATTERNFLOWIPV4DONTFRAGMENT._serialized_start=112597 + _PATTERNFLOWIPV4DONTFRAGMENT._serialized_end=113022 + _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE._serialized_start=102171 + _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE._serialized_end=102257 + _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWIPV4MOREFRAGMENTSCOUNTER._serialized_start=113024 + _PATTERNFLOWIPV4MOREFRAGMENTSCOUNTER._serialized_end=113149 + _PATTERNFLOWIPV4MOREFRAGMENTSMETRICTAG._serialized_start=113152 + _PATTERNFLOWIPV4MOREFRAGMENTSMETRICTAG._serialized_end=113283 + _PATTERNFLOWIPV4MOREFRAGMENTS._serialized_start=113286 + _PATTERNFLOWIPV4MOREFRAGMENTS._serialized_end=113716 + _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE._serialized_start=102171 + _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE._serialized_end=102257 + _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWIPV4FRAGMENTOFFSETCOUNTER._serialized_start=113718 + _PATTERNFLOWIPV4FRAGMENTOFFSETCOUNTER._serialized_end=113844 + _PATTERNFLOWIPV4FRAGMENTOFFSETMETRICTAG._serialized_start=113847 + _PATTERNFLOWIPV4FRAGMENTOFFSETMETRICTAG._serialized_end=113979 + _PATTERNFLOWIPV4FRAGMENTOFFSET._serialized_start=113982 + _PATTERNFLOWIPV4FRAGMENTOFFSET._serialized_end=114417 + _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE._serialized_start=102171 + _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE._serialized_end=102257 + _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWIPV4TIMETOLIVECOUNTER._serialized_start=114419 + _PATTERNFLOWIPV4TIMETOLIVECOUNTER._serialized_end=114541 + _PATTERNFLOWIPV4TIMETOLIVEMETRICTAG._serialized_start=114544 + _PATTERNFLOWIPV4TIMETOLIVEMETRICTAG._serialized_end=114672 + _PATTERNFLOWIPV4TIMETOLIVE._serialized_start=114675 + _PATTERNFLOWIPV4TIMETOLIVE._serialized_end=115090 + _PATTERNFLOWIPV4TIMETOLIVE_CHOICE._serialized_start=102171 + _PATTERNFLOWIPV4TIMETOLIVE_CHOICE._serialized_end=102257 + _PATTERNFLOWIPV4TIMETOLIVE_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWIPV4TIMETOLIVE_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWIPV4PROTOCOLCOUNTER._serialized_start=115092 + _PATTERNFLOWIPV4PROTOCOLCOUNTER._serialized_end=115212 + _PATTERNFLOWIPV4PROTOCOLMETRICTAG._serialized_start=115214 + _PATTERNFLOWIPV4PROTOCOLMETRICTAG._serialized_end=115340 + _PATTERNFLOWIPV4PROTOCOL._serialized_start=115343 + _PATTERNFLOWIPV4PROTOCOL._serialized_end=115786 + _PATTERNFLOWIPV4PROTOCOL_CHOICE._serialized_start=101501 + _PATTERNFLOWIPV4PROTOCOL_CHOICE._serialized_end=101597 + _PATTERNFLOWIPV4PROTOCOL_CHOICE_ENUM._serialized_start=101511 + _PATTERNFLOWIPV4PROTOCOL_CHOICE_ENUM._serialized_end=101597 + _PATTERNFLOWIPV4HEADERCHECKSUM._serialized_start=115789 + _PATTERNFLOWIPV4HEADERCHECKSUM._serialized_end=116140 + _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE._serialized_start=115987 + _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE._serialized_end=116047 + _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE_ENUM._serialized_start=115997 + _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE_ENUM._serialized_end=116047 + _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED._serialized_start=116049 + _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED._serialized_end=116104 + _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED_ENUM._serialized_start=116062 + _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED_ENUM._serialized_end=116104 + _PATTERNFLOWIPV4SRCCOUNTER._serialized_start=116142 + _PATTERNFLOWIPV4SRCCOUNTER._serialized_end=116257 + _PATTERNFLOWIPV4SRCMETRICTAG._serialized_start=116259 + _PATTERNFLOWIPV4SRCMETRICTAG._serialized_end=116380 + _PATTERNFLOWIPV4SRC._serialized_start=116383 + _PATTERNFLOWIPV4SRC._serialized_end=116763 + _PATTERNFLOWIPV4SRC_CHOICE._serialized_start=102171 + _PATTERNFLOWIPV4SRC_CHOICE._serialized_end=102257 + _PATTERNFLOWIPV4SRC_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWIPV4SRC_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWIPV4DSTCOUNTER._serialized_start=116765 + _PATTERNFLOWIPV4DSTCOUNTER._serialized_end=116880 + _PATTERNFLOWIPV4DSTMETRICTAG._serialized_start=116882 + _PATTERNFLOWIPV4DSTMETRICTAG._serialized_end=117003 + _PATTERNFLOWIPV4DST._serialized_start=117006 + _PATTERNFLOWIPV4DST._serialized_end=117386 + _PATTERNFLOWIPV4DST_CHOICE._serialized_start=102171 + _PATTERNFLOWIPV4DST_CHOICE._serialized_end=102257 + _PATTERNFLOWIPV4DST_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWIPV4DST_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWIPV4OPTIONSCUSTOMTYPECOPIEDFLAGCOUNTER._serialized_start=117389 + _PATTERNFLOWIPV4OPTIONSCUSTOMTYPECOPIEDFLAGCOUNTER._serialized_end=117528 + _PATTERNFLOWIPV4OPTIONSCUSTOMTYPECOPIEDFLAG._serialized_start=117531 + _PATTERNFLOWIPV4OPTIONSCUSTOMTYPECOPIEDFLAG._serialized_end=117952 + _PATTERNFLOWIPV4OPTIONSCUSTOMTYPECOPIEDFLAG_CHOICE._serialized_start=102171 + _PATTERNFLOWIPV4OPTIONSCUSTOMTYPECOPIEDFLAG_CHOICE._serialized_end=102257 + _PATTERNFLOWIPV4OPTIONSCUSTOMTYPECOPIEDFLAG_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWIPV4OPTIONSCUSTOMTYPECOPIEDFLAG_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONCLASSCOUNTER._serialized_start=117955 + _PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONCLASSCOUNTER._serialized_end=118095 + _PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONCLASS._serialized_start=118098 + _PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONCLASS._serialized_end=118523 + _PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONCLASS_CHOICE._serialized_start=102171 + _PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONCLASS_CHOICE._serialized_end=102257 + _PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONCLASS_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONCLASS_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONNUMBERCOUNTER._serialized_start=118526 + _PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONNUMBERCOUNTER._serialized_end=118667 + _PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONNUMBER._serialized_start=118670 + _PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONNUMBER._serialized_end=119099 + _PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONNUMBER_CHOICE._serialized_start=102171 + _PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONNUMBER_CHOICE._serialized_end=102257 + _PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONNUMBER_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONNUMBER_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWIPV4PRIORITYRAWCOUNTER._serialized_start=119101 + _PATTERNFLOWIPV4PRIORITYRAWCOUNTER._serialized_end=119224 + _PATTERNFLOWIPV4PRIORITYRAWMETRICTAG._serialized_start=119227 + _PATTERNFLOWIPV4PRIORITYRAWMETRICTAG._serialized_end=119356 + _PATTERNFLOWIPV4PRIORITYRAW._serialized_start=119359 + _PATTERNFLOWIPV4PRIORITYRAW._serialized_end=119779 + _PATTERNFLOWIPV4PRIORITYRAW_CHOICE._serialized_start=102171 + _PATTERNFLOWIPV4PRIORITYRAW_CHOICE._serialized_end=102257 + _PATTERNFLOWIPV4PRIORITYRAW_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWIPV4PRIORITYRAW_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWIPV4DSCPPHBCOUNTER._serialized_start=119781 + _PATTERNFLOWIPV4DSCPPHBCOUNTER._serialized_end=119900 + _PATTERNFLOWIPV4DSCPPHBMETRICTAG._serialized_start=119902 + _PATTERNFLOWIPV4DSCPPHBMETRICTAG._serialized_end=120027 + _PATTERNFLOWIPV4DSCPPHB._serialized_start=120030 + _PATTERNFLOWIPV4DSCPPHB._serialized_end=120430 + _PATTERNFLOWIPV4DSCPPHB_CHOICE._serialized_start=102171 + _PATTERNFLOWIPV4DSCPPHB_CHOICE._serialized_end=102257 + _PATTERNFLOWIPV4DSCPPHB_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWIPV4DSCPPHB_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWIPV4DSCPECNCOUNTER._serialized_start=120432 + _PATTERNFLOWIPV4DSCPECNCOUNTER._serialized_end=120551 + _PATTERNFLOWIPV4DSCPECNMETRICTAG._serialized_start=120553 + _PATTERNFLOWIPV4DSCPECNMETRICTAG._serialized_end=120678 + _PATTERNFLOWIPV4DSCPECN._serialized_start=120681 + _PATTERNFLOWIPV4DSCPECN._serialized_end=121081 + _PATTERNFLOWIPV4DSCPECN_CHOICE._serialized_start=102171 + _PATTERNFLOWIPV4DSCPECN_CHOICE._serialized_end=102257 + _PATTERNFLOWIPV4DSCPECN_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWIPV4DSCPECN_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWIPV4TOSPRECEDENCECOUNTER._serialized_start=121083 + _PATTERNFLOWIPV4TOSPRECEDENCECOUNTER._serialized_end=121208 + _PATTERNFLOWIPV4TOSPRECEDENCEMETRICTAG._serialized_start=121211 + _PATTERNFLOWIPV4TOSPRECEDENCEMETRICTAG._serialized_end=121342 + _PATTERNFLOWIPV4TOSPRECEDENCE._serialized_start=121345 + _PATTERNFLOWIPV4TOSPRECEDENCE._serialized_end=121775 + _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE._serialized_start=102171 + _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE._serialized_end=102257 + _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWIPV4TOSDELAYCOUNTER._serialized_start=121777 + _PATTERNFLOWIPV4TOSDELAYCOUNTER._serialized_end=121897 + _PATTERNFLOWIPV4TOSDELAYMETRICTAG._serialized_start=121899 + _PATTERNFLOWIPV4TOSDELAYMETRICTAG._serialized_end=122025 + _PATTERNFLOWIPV4TOSDELAY._serialized_start=122028 + _PATTERNFLOWIPV4TOSDELAY._serialized_end=122433 + _PATTERNFLOWIPV4TOSDELAY_CHOICE._serialized_start=102171 + _PATTERNFLOWIPV4TOSDELAY_CHOICE._serialized_end=102257 + _PATTERNFLOWIPV4TOSDELAY_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWIPV4TOSDELAY_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWIPV4TOSTHROUGHPUTCOUNTER._serialized_start=122435 + _PATTERNFLOWIPV4TOSTHROUGHPUTCOUNTER._serialized_end=122560 + _PATTERNFLOWIPV4TOSTHROUGHPUTMETRICTAG._serialized_start=122563 + _PATTERNFLOWIPV4TOSTHROUGHPUTMETRICTAG._serialized_end=122694 + _PATTERNFLOWIPV4TOSTHROUGHPUT._serialized_start=122697 + _PATTERNFLOWIPV4TOSTHROUGHPUT._serialized_end=123127 + _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE._serialized_start=102171 + _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE._serialized_end=102257 + _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWIPV4TOSRELIABILITYCOUNTER._serialized_start=123129 + _PATTERNFLOWIPV4TOSRELIABILITYCOUNTER._serialized_end=123255 + _PATTERNFLOWIPV4TOSRELIABILITYMETRICTAG._serialized_start=123258 + _PATTERNFLOWIPV4TOSRELIABILITYMETRICTAG._serialized_end=123390 + _PATTERNFLOWIPV4TOSRELIABILITY._serialized_start=123393 + _PATTERNFLOWIPV4TOSRELIABILITY._serialized_end=123828 + _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE._serialized_start=102171 + _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE._serialized_end=102257 + _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWIPV4TOSMONETARYCOUNTER._serialized_start=123830 + _PATTERNFLOWIPV4TOSMONETARYCOUNTER._serialized_end=123953 + _PATTERNFLOWIPV4TOSMONETARYMETRICTAG._serialized_start=123956 + _PATTERNFLOWIPV4TOSMONETARYMETRICTAG._serialized_end=124085 + _PATTERNFLOWIPV4TOSMONETARY._serialized_start=124088 + _PATTERNFLOWIPV4TOSMONETARY._serialized_end=124508 + _PATTERNFLOWIPV4TOSMONETARY_CHOICE._serialized_start=102171 + _PATTERNFLOWIPV4TOSMONETARY_CHOICE._serialized_end=102257 + _PATTERNFLOWIPV4TOSMONETARY_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWIPV4TOSMONETARY_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWIPV4TOSUNUSEDCOUNTER._serialized_start=124510 + _PATTERNFLOWIPV4TOSUNUSEDCOUNTER._serialized_end=124631 + _PATTERNFLOWIPV4TOSUNUSEDMETRICTAG._serialized_start=124633 + _PATTERNFLOWIPV4TOSUNUSEDMETRICTAG._serialized_end=124760 + _PATTERNFLOWIPV4TOSUNUSED._serialized_start=124763 + _PATTERNFLOWIPV4TOSUNUSED._serialized_end=125173 + _PATTERNFLOWIPV4TOSUNUSED_CHOICE._serialized_start=102171 + _PATTERNFLOWIPV4TOSUNUSED_CHOICE._serialized_end=102257 + _PATTERNFLOWIPV4TOSUNUSED_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWIPV4TOSUNUSED_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWIPV6VERSIONCOUNTER._serialized_start=125175 + _PATTERNFLOWIPV6VERSIONCOUNTER._serialized_end=125294 + _PATTERNFLOWIPV6VERSIONMETRICTAG._serialized_start=125296 + _PATTERNFLOWIPV6VERSIONMETRICTAG._serialized_end=125421 + _PATTERNFLOWIPV6VERSION._serialized_start=125424 + _PATTERNFLOWIPV6VERSION._serialized_end=125824 + _PATTERNFLOWIPV6VERSION_CHOICE._serialized_start=102171 + _PATTERNFLOWIPV6VERSION_CHOICE._serialized_end=102257 + _PATTERNFLOWIPV6VERSION_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWIPV6VERSION_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWIPV6TRAFFICCLASSCOUNTER._serialized_start=125826 + _PATTERNFLOWIPV6TRAFFICCLASSCOUNTER._serialized_end=125950 + _PATTERNFLOWIPV6TRAFFICCLASSMETRICTAG._serialized_start=125953 + _PATTERNFLOWIPV6TRAFFICCLASSMETRICTAG._serialized_end=126083 + _PATTERNFLOWIPV6TRAFFICCLASS._serialized_start=126086 + _PATTERNFLOWIPV6TRAFFICCLASS._serialized_end=126511 + _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE._serialized_start=102171 + _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE._serialized_end=102257 + _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWIPV6FLOWLABELCOUNTER._serialized_start=126513 + _PATTERNFLOWIPV6FLOWLABELCOUNTER._serialized_end=126634 + _PATTERNFLOWIPV6FLOWLABELMETRICTAG._serialized_start=126636 + _PATTERNFLOWIPV6FLOWLABELMETRICTAG._serialized_end=126763 + _PATTERNFLOWIPV6FLOWLABEL._serialized_start=126766 + _PATTERNFLOWIPV6FLOWLABEL._serialized_end=127176 + _PATTERNFLOWIPV6FLOWLABEL_CHOICE._serialized_start=102171 + _PATTERNFLOWIPV6FLOWLABEL_CHOICE._serialized_end=102257 + _PATTERNFLOWIPV6FLOWLABEL_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWIPV6FLOWLABEL_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWIPV6PAYLOADLENGTHCOUNTER._serialized_start=127178 + _PATTERNFLOWIPV6PAYLOADLENGTHCOUNTER._serialized_end=127303 + _PATTERNFLOWIPV6PAYLOADLENGTHMETRICTAG._serialized_start=127306 + _PATTERNFLOWIPV6PAYLOADLENGTHMETRICTAG._serialized_end=127437 + _PATTERNFLOWIPV6PAYLOADLENGTH._serialized_start=127440 + _PATTERNFLOWIPV6PAYLOADLENGTH._serialized_end=127908 + _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE._serialized_start=101501 + _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE._serialized_end=101597 + _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE_ENUM._serialized_start=101511 + _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE_ENUM._serialized_end=101597 + _PATTERNFLOWIPV6NEXTHEADERCOUNTER._serialized_start=127910 + _PATTERNFLOWIPV6NEXTHEADERCOUNTER._serialized_end=128032 + _PATTERNFLOWIPV6NEXTHEADERMETRICTAG._serialized_start=128035 + _PATTERNFLOWIPV6NEXTHEADERMETRICTAG._serialized_end=128163 + _PATTERNFLOWIPV6NEXTHEADER._serialized_start=128166 + _PATTERNFLOWIPV6NEXTHEADER._serialized_end=128619 + _PATTERNFLOWIPV6NEXTHEADER_CHOICE._serialized_start=101501 + _PATTERNFLOWIPV6NEXTHEADER_CHOICE._serialized_end=101597 + _PATTERNFLOWIPV6NEXTHEADER_CHOICE_ENUM._serialized_start=101511 + _PATTERNFLOWIPV6NEXTHEADER_CHOICE_ENUM._serialized_end=101597 + _PATTERNFLOWIPV6HOPLIMITCOUNTER._serialized_start=128621 + _PATTERNFLOWIPV6HOPLIMITCOUNTER._serialized_end=128741 + _PATTERNFLOWIPV6HOPLIMITMETRICTAG._serialized_start=128743 + _PATTERNFLOWIPV6HOPLIMITMETRICTAG._serialized_end=128869 + _PATTERNFLOWIPV6HOPLIMIT._serialized_start=128872 + _PATTERNFLOWIPV6HOPLIMIT._serialized_end=129277 + _PATTERNFLOWIPV6HOPLIMIT_CHOICE._serialized_start=102171 + _PATTERNFLOWIPV6HOPLIMIT_CHOICE._serialized_end=102257 + _PATTERNFLOWIPV6HOPLIMIT_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWIPV6HOPLIMIT_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWIPV6SRCCOUNTER._serialized_start=129279 + _PATTERNFLOWIPV6SRCCOUNTER._serialized_end=129394 + _PATTERNFLOWIPV6SRCMETRICTAG._serialized_start=129396 + _PATTERNFLOWIPV6SRCMETRICTAG._serialized_end=129517 + _PATTERNFLOWIPV6SRC._serialized_start=129520 + _PATTERNFLOWIPV6SRC._serialized_end=129900 + _PATTERNFLOWIPV6SRC_CHOICE._serialized_start=102171 + _PATTERNFLOWIPV6SRC_CHOICE._serialized_end=102257 + _PATTERNFLOWIPV6SRC_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWIPV6SRC_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWIPV6DSTCOUNTER._serialized_start=129902 + _PATTERNFLOWIPV6DSTCOUNTER._serialized_end=130017 + _PATTERNFLOWIPV6DSTMETRICTAG._serialized_start=130019 + _PATTERNFLOWIPV6DSTMETRICTAG._serialized_end=130140 + _PATTERNFLOWIPV6DST._serialized_start=130143 + _PATTERNFLOWIPV6DST._serialized_end=130523 + _PATTERNFLOWIPV6DST_CHOICE._serialized_start=102171 + _PATTERNFLOWIPV6DST_CHOICE._serialized_end=102257 + _PATTERNFLOWIPV6DST_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWIPV6DST_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWPFCPAUSEDSTCOUNTER._serialized_start=130525 + _PATTERNFLOWPFCPAUSEDSTCOUNTER._serialized_end=130644 + _PATTERNFLOWPFCPAUSEDSTMETRICTAG._serialized_start=130646 + _PATTERNFLOWPFCPAUSEDSTMETRICTAG._serialized_end=130771 + _PATTERNFLOWPFCPAUSEDST._serialized_start=130774 + _PATTERNFLOWPFCPAUSEDST._serialized_end=131174 + _PATTERNFLOWPFCPAUSEDST_CHOICE._serialized_start=102171 + _PATTERNFLOWPFCPAUSEDST_CHOICE._serialized_end=102257 + _PATTERNFLOWPFCPAUSEDST_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWPFCPAUSEDST_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWPFCPAUSESRCCOUNTER._serialized_start=131176 + _PATTERNFLOWPFCPAUSESRCCOUNTER._serialized_end=131295 + _PATTERNFLOWPFCPAUSESRCMETRICTAG._serialized_start=131297 + _PATTERNFLOWPFCPAUSESRCMETRICTAG._serialized_end=131422 + _PATTERNFLOWPFCPAUSESRC._serialized_start=131425 + _PATTERNFLOWPFCPAUSESRC._serialized_end=131825 + _PATTERNFLOWPFCPAUSESRC_CHOICE._serialized_start=102171 + _PATTERNFLOWPFCPAUSESRC_CHOICE._serialized_end=102257 + _PATTERNFLOWPFCPAUSESRC_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWPFCPAUSESRC_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWPFCPAUSEETHERTYPECOUNTER._serialized_start=131827 + _PATTERNFLOWPFCPAUSEETHERTYPECOUNTER._serialized_end=131952 + _PATTERNFLOWPFCPAUSEETHERTYPEMETRICTAG._serialized_start=131955 + _PATTERNFLOWPFCPAUSEETHERTYPEMETRICTAG._serialized_end=132086 + _PATTERNFLOWPFCPAUSEETHERTYPE._serialized_start=132089 + _PATTERNFLOWPFCPAUSEETHERTYPE._serialized_end=132519 + _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE._serialized_start=102171 + _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE._serialized_end=102257 + _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWPFCPAUSECONTROLOPCODECOUNTER._serialized_start=132522 + _PATTERNFLOWPFCPAUSECONTROLOPCODECOUNTER._serialized_end=132651 + _PATTERNFLOWPFCPAUSECONTROLOPCODEMETRICTAG._serialized_start=132654 + _PATTERNFLOWPFCPAUSECONTROLOPCODEMETRICTAG._serialized_end=132789 + _PATTERNFLOWPFCPAUSECONTROLOPCODE._serialized_start=132792 + _PATTERNFLOWPFCPAUSECONTROLOPCODE._serialized_end=133242 + _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE._serialized_start=102171 + _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE._serialized_end=102257 + _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTORCOUNTER._serialized_start=133245 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTORCOUNTER._serialized_end=133378 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTORMETRICTAG._serialized_start=133381 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTORMETRICTAG._serialized_end=133520 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR._serialized_start=133523 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR._serialized_end=133993 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE._serialized_start=102171 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE._serialized_end=102257 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWPFCPAUSEPAUSECLASS0COUNTER._serialized_start=133995 + _PATTERNFLOWPFCPAUSEPAUSECLASS0COUNTER._serialized_end=134122 + _PATTERNFLOWPFCPAUSEPAUSECLASS0METRICTAG._serialized_start=134125 + _PATTERNFLOWPFCPAUSEPAUSECLASS0METRICTAG._serialized_end=134258 + _PATTERNFLOWPFCPAUSEPAUSECLASS0._serialized_start=134261 + _PATTERNFLOWPFCPAUSEPAUSECLASS0._serialized_end=134701 + _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE._serialized_start=102171 + _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE._serialized_end=102257 + _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWPFCPAUSEPAUSECLASS1COUNTER._serialized_start=134703 + _PATTERNFLOWPFCPAUSEPAUSECLASS1COUNTER._serialized_end=134830 + _PATTERNFLOWPFCPAUSEPAUSECLASS1METRICTAG._serialized_start=134833 + _PATTERNFLOWPFCPAUSEPAUSECLASS1METRICTAG._serialized_end=134966 + _PATTERNFLOWPFCPAUSEPAUSECLASS1._serialized_start=134969 + _PATTERNFLOWPFCPAUSEPAUSECLASS1._serialized_end=135409 + _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE._serialized_start=102171 + _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE._serialized_end=102257 + _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWPFCPAUSEPAUSECLASS2COUNTER._serialized_start=135411 + _PATTERNFLOWPFCPAUSEPAUSECLASS2COUNTER._serialized_end=135538 + _PATTERNFLOWPFCPAUSEPAUSECLASS2METRICTAG._serialized_start=135541 + _PATTERNFLOWPFCPAUSEPAUSECLASS2METRICTAG._serialized_end=135674 + _PATTERNFLOWPFCPAUSEPAUSECLASS2._serialized_start=135677 + _PATTERNFLOWPFCPAUSEPAUSECLASS2._serialized_end=136117 + _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE._serialized_start=102171 + _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE._serialized_end=102257 + _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWPFCPAUSEPAUSECLASS3COUNTER._serialized_start=136119 + _PATTERNFLOWPFCPAUSEPAUSECLASS3COUNTER._serialized_end=136246 + _PATTERNFLOWPFCPAUSEPAUSECLASS3METRICTAG._serialized_start=136249 + _PATTERNFLOWPFCPAUSEPAUSECLASS3METRICTAG._serialized_end=136382 + _PATTERNFLOWPFCPAUSEPAUSECLASS3._serialized_start=136385 + _PATTERNFLOWPFCPAUSEPAUSECLASS3._serialized_end=136825 + _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE._serialized_start=102171 + _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE._serialized_end=102257 + _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWPFCPAUSEPAUSECLASS4COUNTER._serialized_start=136827 + _PATTERNFLOWPFCPAUSEPAUSECLASS4COUNTER._serialized_end=136954 + _PATTERNFLOWPFCPAUSEPAUSECLASS4METRICTAG._serialized_start=136957 + _PATTERNFLOWPFCPAUSEPAUSECLASS4METRICTAG._serialized_end=137090 + _PATTERNFLOWPFCPAUSEPAUSECLASS4._serialized_start=137093 + _PATTERNFLOWPFCPAUSEPAUSECLASS4._serialized_end=137533 + _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE._serialized_start=102171 + _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE._serialized_end=102257 + _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWPFCPAUSEPAUSECLASS5COUNTER._serialized_start=137535 + _PATTERNFLOWPFCPAUSEPAUSECLASS5COUNTER._serialized_end=137662 + _PATTERNFLOWPFCPAUSEPAUSECLASS5METRICTAG._serialized_start=137665 + _PATTERNFLOWPFCPAUSEPAUSECLASS5METRICTAG._serialized_end=137798 + _PATTERNFLOWPFCPAUSEPAUSECLASS5._serialized_start=137801 + _PATTERNFLOWPFCPAUSEPAUSECLASS5._serialized_end=138241 + _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE._serialized_start=102171 + _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE._serialized_end=102257 + _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWPFCPAUSEPAUSECLASS6COUNTER._serialized_start=138243 + _PATTERNFLOWPFCPAUSEPAUSECLASS6COUNTER._serialized_end=138370 + _PATTERNFLOWPFCPAUSEPAUSECLASS6METRICTAG._serialized_start=138373 + _PATTERNFLOWPFCPAUSEPAUSECLASS6METRICTAG._serialized_end=138506 + _PATTERNFLOWPFCPAUSEPAUSECLASS6._serialized_start=138509 + _PATTERNFLOWPFCPAUSEPAUSECLASS6._serialized_end=138949 + _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE._serialized_start=102171 + _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE._serialized_end=102257 + _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWPFCPAUSEPAUSECLASS7COUNTER._serialized_start=138951 + _PATTERNFLOWPFCPAUSEPAUSECLASS7COUNTER._serialized_end=139078 + _PATTERNFLOWPFCPAUSEPAUSECLASS7METRICTAG._serialized_start=139081 + _PATTERNFLOWPFCPAUSEPAUSECLASS7METRICTAG._serialized_end=139214 + _PATTERNFLOWPFCPAUSEPAUSECLASS7._serialized_start=139217 + _PATTERNFLOWPFCPAUSEPAUSECLASS7._serialized_end=139657 + _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE._serialized_start=102171 + _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE._serialized_end=102257 + _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWETHERNETPAUSEDSTCOUNTER._serialized_start=139659 + _PATTERNFLOWETHERNETPAUSEDSTCOUNTER._serialized_end=139783 + _PATTERNFLOWETHERNETPAUSEDSTMETRICTAG._serialized_start=139786 + _PATTERNFLOWETHERNETPAUSEDSTMETRICTAG._serialized_end=139916 + _PATTERNFLOWETHERNETPAUSEDST._serialized_start=139919 + _PATTERNFLOWETHERNETPAUSEDST._serialized_end=140344 + _PATTERNFLOWETHERNETPAUSEDST_CHOICE._serialized_start=102171 + _PATTERNFLOWETHERNETPAUSEDST_CHOICE._serialized_end=102257 + _PATTERNFLOWETHERNETPAUSEDST_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWETHERNETPAUSEDST_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWETHERNETPAUSESRCCOUNTER._serialized_start=140346 + _PATTERNFLOWETHERNETPAUSESRCCOUNTER._serialized_end=140470 + _PATTERNFLOWETHERNETPAUSESRCMETRICTAG._serialized_start=140473 + _PATTERNFLOWETHERNETPAUSESRCMETRICTAG._serialized_end=140603 + _PATTERNFLOWETHERNETPAUSESRC._serialized_start=140606 + _PATTERNFLOWETHERNETPAUSESRC._serialized_end=141031 + _PATTERNFLOWETHERNETPAUSESRC_CHOICE._serialized_start=102171 + _PATTERNFLOWETHERNETPAUSESRC_CHOICE._serialized_end=102257 + _PATTERNFLOWETHERNETPAUSESRC_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWETHERNETPAUSESRC_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWETHERNETPAUSEETHERTYPECOUNTER._serialized_start=141034 + _PATTERNFLOWETHERNETPAUSEETHERTYPECOUNTER._serialized_end=141164 + _PATTERNFLOWETHERNETPAUSEETHERTYPEMETRICTAG._serialized_start=141167 + _PATTERNFLOWETHERNETPAUSEETHERTYPEMETRICTAG._serialized_end=141303 + _PATTERNFLOWETHERNETPAUSEETHERTYPE._serialized_start=141306 + _PATTERNFLOWETHERNETPAUSEETHERTYPE._serialized_end=141761 + _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE._serialized_start=102171 + _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE._serialized_end=102257 + _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODECOUNTER._serialized_start=141764 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODECOUNTER._serialized_end=141898 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODEMETRICTAG._serialized_start=141901 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODEMETRICTAG._serialized_end=142041 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODE._serialized_start=142044 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODE._serialized_end=142519 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE._serialized_start=102171 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE._serialized_end=102257 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWETHERNETPAUSETIMECOUNTER._serialized_start=142521 + _PATTERNFLOWETHERNETPAUSETIMECOUNTER._serialized_end=142646 + _PATTERNFLOWETHERNETPAUSETIMEMETRICTAG._serialized_start=142649 + _PATTERNFLOWETHERNETPAUSETIMEMETRICTAG._serialized_end=142780 + _PATTERNFLOWETHERNETPAUSETIME._serialized_start=142783 + _PATTERNFLOWETHERNETPAUSETIME._serialized_end=143213 + _PATTERNFLOWETHERNETPAUSETIME_CHOICE._serialized_start=102171 + _PATTERNFLOWETHERNETPAUSETIME_CHOICE._serialized_end=102257 + _PATTERNFLOWETHERNETPAUSETIME_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWETHERNETPAUSETIME_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWTCPSRCPORTCOUNTER._serialized_start=143215 + _PATTERNFLOWTCPSRCPORTCOUNTER._serialized_end=143333 + _PATTERNFLOWTCPSRCPORTMETRICTAG._serialized_start=143335 + _PATTERNFLOWTCPSRCPORTMETRICTAG._serialized_end=143459 + _PATTERNFLOWTCPSRCPORT._serialized_start=143462 + _PATTERNFLOWTCPSRCPORT._serialized_end=143857 + _PATTERNFLOWTCPSRCPORT_CHOICE._serialized_start=102171 + _PATTERNFLOWTCPSRCPORT_CHOICE._serialized_end=102257 + _PATTERNFLOWTCPSRCPORT_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWTCPSRCPORT_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWTCPDSTPORTCOUNTER._serialized_start=143859 + _PATTERNFLOWTCPDSTPORTCOUNTER._serialized_end=143977 + _PATTERNFLOWTCPDSTPORTMETRICTAG._serialized_start=143979 + _PATTERNFLOWTCPDSTPORTMETRICTAG._serialized_end=144103 + _PATTERNFLOWTCPDSTPORT._serialized_start=144106 + _PATTERNFLOWTCPDSTPORT._serialized_end=144501 + _PATTERNFLOWTCPDSTPORT_CHOICE._serialized_start=102171 + _PATTERNFLOWTCPDSTPORT_CHOICE._serialized_end=102257 + _PATTERNFLOWTCPDSTPORT_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWTCPDSTPORT_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWTCPSEQNUMCOUNTER._serialized_start=144503 + _PATTERNFLOWTCPSEQNUMCOUNTER._serialized_end=144620 + _PATTERNFLOWTCPSEQNUMMETRICTAG._serialized_start=144622 + _PATTERNFLOWTCPSEQNUMMETRICTAG._serialized_end=144745 + _PATTERNFLOWTCPSEQNUM._serialized_start=144748 + _PATTERNFLOWTCPSEQNUM._serialized_end=145138 + _PATTERNFLOWTCPSEQNUM_CHOICE._serialized_start=102171 + _PATTERNFLOWTCPSEQNUM_CHOICE._serialized_end=102257 + _PATTERNFLOWTCPSEQNUM_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWTCPSEQNUM_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWTCPACKNUMCOUNTER._serialized_start=145140 + _PATTERNFLOWTCPACKNUMCOUNTER._serialized_end=145257 + _PATTERNFLOWTCPACKNUMMETRICTAG._serialized_start=145259 + _PATTERNFLOWTCPACKNUMMETRICTAG._serialized_end=145382 + _PATTERNFLOWTCPACKNUM._serialized_start=145385 + _PATTERNFLOWTCPACKNUM._serialized_end=145775 + _PATTERNFLOWTCPACKNUM_CHOICE._serialized_start=102171 + _PATTERNFLOWTCPACKNUM_CHOICE._serialized_end=102257 + _PATTERNFLOWTCPACKNUM_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWTCPACKNUM_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWTCPDATAOFFSETCOUNTER._serialized_start=145777 + _PATTERNFLOWTCPDATAOFFSETCOUNTER._serialized_end=145898 + _PATTERNFLOWTCPDATAOFFSETMETRICTAG._serialized_start=145900 + _PATTERNFLOWTCPDATAOFFSETMETRICTAG._serialized_end=146027 + _PATTERNFLOWTCPDATAOFFSET._serialized_start=146030 + _PATTERNFLOWTCPDATAOFFSET._serialized_end=146440 + _PATTERNFLOWTCPDATAOFFSET_CHOICE._serialized_start=102171 + _PATTERNFLOWTCPDATAOFFSET_CHOICE._serialized_end=102257 + _PATTERNFLOWTCPDATAOFFSET_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWTCPDATAOFFSET_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWTCPECNNSCOUNTER._serialized_start=146442 + _PATTERNFLOWTCPECNNSCOUNTER._serialized_end=146558 + _PATTERNFLOWTCPECNNSMETRICTAG._serialized_start=146560 + _PATTERNFLOWTCPECNNSMETRICTAG._serialized_end=146682 + _PATTERNFLOWTCPECNNS._serialized_start=146685 + _PATTERNFLOWTCPECNNS._serialized_end=147070 + _PATTERNFLOWTCPECNNS_CHOICE._serialized_start=102171 + _PATTERNFLOWTCPECNNS_CHOICE._serialized_end=102257 + _PATTERNFLOWTCPECNNS_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWTCPECNNS_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWTCPECNCWRCOUNTER._serialized_start=147072 + _PATTERNFLOWTCPECNCWRCOUNTER._serialized_end=147189 + _PATTERNFLOWTCPECNCWRMETRICTAG._serialized_start=147191 + _PATTERNFLOWTCPECNCWRMETRICTAG._serialized_end=147314 + _PATTERNFLOWTCPECNCWR._serialized_start=147317 + _PATTERNFLOWTCPECNCWR._serialized_end=147707 + _PATTERNFLOWTCPECNCWR_CHOICE._serialized_start=102171 + _PATTERNFLOWTCPECNCWR_CHOICE._serialized_end=102257 + _PATTERNFLOWTCPECNCWR_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWTCPECNCWR_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWTCPECNECHOCOUNTER._serialized_start=147709 + _PATTERNFLOWTCPECNECHOCOUNTER._serialized_end=147827 + _PATTERNFLOWTCPECNECHOMETRICTAG._serialized_start=147829 + _PATTERNFLOWTCPECNECHOMETRICTAG._serialized_end=147953 + _PATTERNFLOWTCPECNECHO._serialized_start=147956 + _PATTERNFLOWTCPECNECHO._serialized_end=148351 + _PATTERNFLOWTCPECNECHO_CHOICE._serialized_start=102171 + _PATTERNFLOWTCPECNECHO_CHOICE._serialized_end=102257 + _PATTERNFLOWTCPECNECHO_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWTCPECNECHO_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWTCPCTLURGCOUNTER._serialized_start=148353 + _PATTERNFLOWTCPCTLURGCOUNTER._serialized_end=148470 + _PATTERNFLOWTCPCTLURGMETRICTAG._serialized_start=148472 + _PATTERNFLOWTCPCTLURGMETRICTAG._serialized_end=148595 + _PATTERNFLOWTCPCTLURG._serialized_start=148598 + _PATTERNFLOWTCPCTLURG._serialized_end=148988 + _PATTERNFLOWTCPCTLURG_CHOICE._serialized_start=102171 + _PATTERNFLOWTCPCTLURG_CHOICE._serialized_end=102257 + _PATTERNFLOWTCPCTLURG_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWTCPCTLURG_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWTCPCTLACKCOUNTER._serialized_start=148990 + _PATTERNFLOWTCPCTLACKCOUNTER._serialized_end=149107 + _PATTERNFLOWTCPCTLACKMETRICTAG._serialized_start=149109 + _PATTERNFLOWTCPCTLACKMETRICTAG._serialized_end=149232 + _PATTERNFLOWTCPCTLACK._serialized_start=149235 + _PATTERNFLOWTCPCTLACK._serialized_end=149625 + _PATTERNFLOWTCPCTLACK_CHOICE._serialized_start=102171 + _PATTERNFLOWTCPCTLACK_CHOICE._serialized_end=102257 + _PATTERNFLOWTCPCTLACK_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWTCPCTLACK_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWTCPCTLPSHCOUNTER._serialized_start=149627 + _PATTERNFLOWTCPCTLPSHCOUNTER._serialized_end=149744 + _PATTERNFLOWTCPCTLPSHMETRICTAG._serialized_start=149746 + _PATTERNFLOWTCPCTLPSHMETRICTAG._serialized_end=149869 + _PATTERNFLOWTCPCTLPSH._serialized_start=149872 + _PATTERNFLOWTCPCTLPSH._serialized_end=150262 + _PATTERNFLOWTCPCTLPSH_CHOICE._serialized_start=102171 + _PATTERNFLOWTCPCTLPSH_CHOICE._serialized_end=102257 + _PATTERNFLOWTCPCTLPSH_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWTCPCTLPSH_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWTCPCTLRSTCOUNTER._serialized_start=150264 + _PATTERNFLOWTCPCTLRSTCOUNTER._serialized_end=150381 + _PATTERNFLOWTCPCTLRSTMETRICTAG._serialized_start=150383 + _PATTERNFLOWTCPCTLRSTMETRICTAG._serialized_end=150506 + _PATTERNFLOWTCPCTLRST._serialized_start=150509 + _PATTERNFLOWTCPCTLRST._serialized_end=150899 + _PATTERNFLOWTCPCTLRST_CHOICE._serialized_start=102171 + _PATTERNFLOWTCPCTLRST_CHOICE._serialized_end=102257 + _PATTERNFLOWTCPCTLRST_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWTCPCTLRST_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWTCPCTLSYNCOUNTER._serialized_start=150901 + _PATTERNFLOWTCPCTLSYNCOUNTER._serialized_end=151018 + _PATTERNFLOWTCPCTLSYNMETRICTAG._serialized_start=151020 + _PATTERNFLOWTCPCTLSYNMETRICTAG._serialized_end=151143 + _PATTERNFLOWTCPCTLSYN._serialized_start=151146 + _PATTERNFLOWTCPCTLSYN._serialized_end=151536 + _PATTERNFLOWTCPCTLSYN_CHOICE._serialized_start=102171 + _PATTERNFLOWTCPCTLSYN_CHOICE._serialized_end=102257 + _PATTERNFLOWTCPCTLSYN_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWTCPCTLSYN_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWTCPCTLFINCOUNTER._serialized_start=151538 + _PATTERNFLOWTCPCTLFINCOUNTER._serialized_end=151655 + _PATTERNFLOWTCPCTLFINMETRICTAG._serialized_start=151657 + _PATTERNFLOWTCPCTLFINMETRICTAG._serialized_end=151780 + _PATTERNFLOWTCPCTLFIN._serialized_start=151783 + _PATTERNFLOWTCPCTLFIN._serialized_end=152173 + _PATTERNFLOWTCPCTLFIN_CHOICE._serialized_start=102171 + _PATTERNFLOWTCPCTLFIN_CHOICE._serialized_end=102257 + _PATTERNFLOWTCPCTLFIN_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWTCPCTLFIN_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWTCPWINDOWCOUNTER._serialized_start=152175 + _PATTERNFLOWTCPWINDOWCOUNTER._serialized_end=152292 + _PATTERNFLOWTCPWINDOWMETRICTAG._serialized_start=152294 + _PATTERNFLOWTCPWINDOWMETRICTAG._serialized_end=152417 + _PATTERNFLOWTCPWINDOW._serialized_start=152420 + _PATTERNFLOWTCPWINDOW._serialized_end=152810 + _PATTERNFLOWTCPWINDOW_CHOICE._serialized_start=102171 + _PATTERNFLOWTCPWINDOW_CHOICE._serialized_end=102257 + _PATTERNFLOWTCPWINDOW_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWTCPWINDOW_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWUDPSRCPORTCOUNTER._serialized_start=152812 + _PATTERNFLOWUDPSRCPORTCOUNTER._serialized_end=152930 + _PATTERNFLOWUDPSRCPORTMETRICTAG._serialized_start=152932 + _PATTERNFLOWUDPSRCPORTMETRICTAG._serialized_end=153056 + _PATTERNFLOWUDPSRCPORT._serialized_start=153059 + _PATTERNFLOWUDPSRCPORT._serialized_end=153454 + _PATTERNFLOWUDPSRCPORT_CHOICE._serialized_start=102171 + _PATTERNFLOWUDPSRCPORT_CHOICE._serialized_end=102257 + _PATTERNFLOWUDPSRCPORT_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWUDPSRCPORT_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWUDPDSTPORTCOUNTER._serialized_start=153456 + _PATTERNFLOWUDPDSTPORTCOUNTER._serialized_end=153574 + _PATTERNFLOWUDPDSTPORTMETRICTAG._serialized_start=153576 + _PATTERNFLOWUDPDSTPORTMETRICTAG._serialized_end=153700 + _PATTERNFLOWUDPDSTPORT._serialized_start=153703 + _PATTERNFLOWUDPDSTPORT._serialized_end=154098 + _PATTERNFLOWUDPDSTPORT_CHOICE._serialized_start=102171 + _PATTERNFLOWUDPDSTPORT_CHOICE._serialized_end=102257 + _PATTERNFLOWUDPDSTPORT_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWUDPDSTPORT_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWUDPLENGTHCOUNTER._serialized_start=154100 + _PATTERNFLOWUDPLENGTHCOUNTER._serialized_end=154217 + _PATTERNFLOWUDPLENGTHMETRICTAG._serialized_start=154219 + _PATTERNFLOWUDPLENGTHMETRICTAG._serialized_end=154342 + _PATTERNFLOWUDPLENGTH._serialized_start=154345 + _PATTERNFLOWUDPLENGTH._serialized_end=154735 + _PATTERNFLOWUDPLENGTH_CHOICE._serialized_start=102171 + _PATTERNFLOWUDPLENGTH_CHOICE._serialized_end=102257 + _PATTERNFLOWUDPLENGTH_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWUDPLENGTH_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWUDPCHECKSUM._serialized_start=154738 + _PATTERNFLOWUDPCHECKSUM._serialized_end=155068 + _PATTERNFLOWUDPCHECKSUM_CHOICE._serialized_start=115987 + _PATTERNFLOWUDPCHECKSUM_CHOICE._serialized_end=116047 + _PATTERNFLOWUDPCHECKSUM_CHOICE_ENUM._serialized_start=115997 + _PATTERNFLOWUDPCHECKSUM_CHOICE_ENUM._serialized_end=116047 + _PATTERNFLOWUDPCHECKSUM_GENERATED._serialized_start=116049 + _PATTERNFLOWUDPCHECKSUM_GENERATED._serialized_end=116104 + _PATTERNFLOWUDPCHECKSUM_GENERATED_ENUM._serialized_start=116062 + _PATTERNFLOWUDPCHECKSUM_GENERATED_ENUM._serialized_end=116104 + _PATTERNFLOWGRECHECKSUMPRESENTCOUNTER._serialized_start=155070 + _PATTERNFLOWGRECHECKSUMPRESENTCOUNTER._serialized_end=155196 + _PATTERNFLOWGRECHECKSUMPRESENTMETRICTAG._serialized_start=155199 + _PATTERNFLOWGRECHECKSUMPRESENTMETRICTAG._serialized_end=155331 + _PATTERNFLOWGRECHECKSUMPRESENT._serialized_start=155334 + _PATTERNFLOWGRECHECKSUMPRESENT._serialized_end=155769 + _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE._serialized_start=102171 + _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE._serialized_end=102257 + _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWGRERESERVED0COUNTER._serialized_start=155771 + _PATTERNFLOWGRERESERVED0COUNTER._serialized_end=155891 + _PATTERNFLOWGRERESERVED0METRICTAG._serialized_start=155893 + _PATTERNFLOWGRERESERVED0METRICTAG._serialized_end=156019 + _PATTERNFLOWGRERESERVED0._serialized_start=156022 + _PATTERNFLOWGRERESERVED0._serialized_end=156427 + _PATTERNFLOWGRERESERVED0_CHOICE._serialized_start=102171 + _PATTERNFLOWGRERESERVED0_CHOICE._serialized_end=102257 + _PATTERNFLOWGRERESERVED0_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWGRERESERVED0_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWGREVERSIONCOUNTER._serialized_start=156429 + _PATTERNFLOWGREVERSIONCOUNTER._serialized_end=156547 + _PATTERNFLOWGREVERSIONMETRICTAG._serialized_start=156549 + _PATTERNFLOWGREVERSIONMETRICTAG._serialized_end=156673 + _PATTERNFLOWGREVERSION._serialized_start=156676 + _PATTERNFLOWGREVERSION._serialized_end=157071 + _PATTERNFLOWGREVERSION_CHOICE._serialized_start=102171 + _PATTERNFLOWGREVERSION_CHOICE._serialized_end=102257 + _PATTERNFLOWGREVERSION_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWGREVERSION_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWGREPROTOCOLCOUNTER._serialized_start=157073 + _PATTERNFLOWGREPROTOCOLCOUNTER._serialized_end=157192 + _PATTERNFLOWGREPROTOCOLMETRICTAG._serialized_start=157194 + _PATTERNFLOWGREPROTOCOLMETRICTAG._serialized_end=157319 + _PATTERNFLOWGREPROTOCOL._serialized_start=157322 + _PATTERNFLOWGREPROTOCOL._serialized_end=157722 + _PATTERNFLOWGREPROTOCOL_CHOICE._serialized_start=102171 + _PATTERNFLOWGREPROTOCOL_CHOICE._serialized_end=102257 + _PATTERNFLOWGREPROTOCOL_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWGREPROTOCOL_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWGRECHECKSUM._serialized_start=157725 + _PATTERNFLOWGRECHECKSUM._serialized_end=158055 + _PATTERNFLOWGRECHECKSUM_CHOICE._serialized_start=115987 + _PATTERNFLOWGRECHECKSUM_CHOICE._serialized_end=116047 + _PATTERNFLOWGRECHECKSUM_CHOICE_ENUM._serialized_start=115997 + _PATTERNFLOWGRECHECKSUM_CHOICE_ENUM._serialized_end=116047 + _PATTERNFLOWGRECHECKSUM_GENERATED._serialized_start=116049 + _PATTERNFLOWGRECHECKSUM_GENERATED._serialized_end=116104 + _PATTERNFLOWGRECHECKSUM_GENERATED_ENUM._serialized_start=116062 + _PATTERNFLOWGRECHECKSUM_GENERATED_ENUM._serialized_end=116104 + _PATTERNFLOWGRERESERVED1COUNTER._serialized_start=158057 + _PATTERNFLOWGRERESERVED1COUNTER._serialized_end=158177 + _PATTERNFLOWGRERESERVED1METRICTAG._serialized_start=158179 + _PATTERNFLOWGRERESERVED1METRICTAG._serialized_end=158305 + _PATTERNFLOWGRERESERVED1._serialized_start=158308 + _PATTERNFLOWGRERESERVED1._serialized_end=158713 + _PATTERNFLOWGRERESERVED1_CHOICE._serialized_start=102171 + _PATTERNFLOWGRERESERVED1_CHOICE._serialized_end=102257 + _PATTERNFLOWGRERESERVED1_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWGRERESERVED1_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWGTPV1VERSIONCOUNTER._serialized_start=158715 + _PATTERNFLOWGTPV1VERSIONCOUNTER._serialized_end=158835 + _PATTERNFLOWGTPV1VERSIONMETRICTAG._serialized_start=158837 + _PATTERNFLOWGTPV1VERSIONMETRICTAG._serialized_end=158963 + _PATTERNFLOWGTPV1VERSION._serialized_start=158966 + _PATTERNFLOWGTPV1VERSION._serialized_end=159371 + _PATTERNFLOWGTPV1VERSION_CHOICE._serialized_start=102171 + _PATTERNFLOWGTPV1VERSION_CHOICE._serialized_end=102257 + _PATTERNFLOWGTPV1VERSION_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWGTPV1VERSION_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWGTPV1PROTOCOLTYPECOUNTER._serialized_start=159373 + _PATTERNFLOWGTPV1PROTOCOLTYPECOUNTER._serialized_end=159498 + _PATTERNFLOWGTPV1PROTOCOLTYPEMETRICTAG._serialized_start=159501 + _PATTERNFLOWGTPV1PROTOCOLTYPEMETRICTAG._serialized_end=159632 + _PATTERNFLOWGTPV1PROTOCOLTYPE._serialized_start=159635 + _PATTERNFLOWGTPV1PROTOCOLTYPE._serialized_end=160065 + _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE._serialized_start=102171 + _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE._serialized_end=102257 + _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWGTPV1RESERVEDCOUNTER._serialized_start=160067 + _PATTERNFLOWGTPV1RESERVEDCOUNTER._serialized_end=160188 + _PATTERNFLOWGTPV1RESERVEDMETRICTAG._serialized_start=160190 + _PATTERNFLOWGTPV1RESERVEDMETRICTAG._serialized_end=160317 + _PATTERNFLOWGTPV1RESERVED._serialized_start=160320 + _PATTERNFLOWGTPV1RESERVED._serialized_end=160730 + _PATTERNFLOWGTPV1RESERVED_CHOICE._serialized_start=102171 + _PATTERNFLOWGTPV1RESERVED_CHOICE._serialized_end=102257 + _PATTERNFLOWGTPV1RESERVED_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWGTPV1RESERVED_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWGTPV1EFLAGCOUNTER._serialized_start=160732 + _PATTERNFLOWGTPV1EFLAGCOUNTER._serialized_end=160850 + _PATTERNFLOWGTPV1EFLAGMETRICTAG._serialized_start=160852 + _PATTERNFLOWGTPV1EFLAGMETRICTAG._serialized_end=160976 + _PATTERNFLOWGTPV1EFLAG._serialized_start=160979 + _PATTERNFLOWGTPV1EFLAG._serialized_end=161374 + _PATTERNFLOWGTPV1EFLAG_CHOICE._serialized_start=102171 + _PATTERNFLOWGTPV1EFLAG_CHOICE._serialized_end=102257 + _PATTERNFLOWGTPV1EFLAG_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWGTPV1EFLAG_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWGTPV1SFLAGCOUNTER._serialized_start=161376 + _PATTERNFLOWGTPV1SFLAGCOUNTER._serialized_end=161494 + _PATTERNFLOWGTPV1SFLAGMETRICTAG._serialized_start=161496 + _PATTERNFLOWGTPV1SFLAGMETRICTAG._serialized_end=161620 + _PATTERNFLOWGTPV1SFLAG._serialized_start=161623 + _PATTERNFLOWGTPV1SFLAG._serialized_end=162018 + _PATTERNFLOWGTPV1SFLAG_CHOICE._serialized_start=102171 + _PATTERNFLOWGTPV1SFLAG_CHOICE._serialized_end=102257 + _PATTERNFLOWGTPV1SFLAG_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWGTPV1SFLAG_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWGTPV1PNFLAGCOUNTER._serialized_start=162020 + _PATTERNFLOWGTPV1PNFLAGCOUNTER._serialized_end=162139 + _PATTERNFLOWGTPV1PNFLAGMETRICTAG._serialized_start=162141 + _PATTERNFLOWGTPV1PNFLAGMETRICTAG._serialized_end=162266 + _PATTERNFLOWGTPV1PNFLAG._serialized_start=162269 + _PATTERNFLOWGTPV1PNFLAG._serialized_end=162669 + _PATTERNFLOWGTPV1PNFLAG_CHOICE._serialized_start=102171 + _PATTERNFLOWGTPV1PNFLAG_CHOICE._serialized_end=102257 + _PATTERNFLOWGTPV1PNFLAG_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWGTPV1PNFLAG_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWGTPV1MESSAGETYPECOUNTER._serialized_start=162671 + _PATTERNFLOWGTPV1MESSAGETYPECOUNTER._serialized_end=162795 + _PATTERNFLOWGTPV1MESSAGETYPEMETRICTAG._serialized_start=162798 + _PATTERNFLOWGTPV1MESSAGETYPEMETRICTAG._serialized_end=162928 + _PATTERNFLOWGTPV1MESSAGETYPE._serialized_start=162931 + _PATTERNFLOWGTPV1MESSAGETYPE._serialized_end=163356 + _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE._serialized_start=102171 + _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE._serialized_end=102257 + _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWGTPV1MESSAGELENGTHCOUNTER._serialized_start=163358 + _PATTERNFLOWGTPV1MESSAGELENGTHCOUNTER._serialized_end=163484 + _PATTERNFLOWGTPV1MESSAGELENGTHMETRICTAG._serialized_start=163487 + _PATTERNFLOWGTPV1MESSAGELENGTHMETRICTAG._serialized_end=163619 + _PATTERNFLOWGTPV1MESSAGELENGTH._serialized_start=163622 + _PATTERNFLOWGTPV1MESSAGELENGTH._serialized_end=164057 + _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE._serialized_start=102171 + _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE._serialized_end=102257 + _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWGTPV1TEIDCOUNTER._serialized_start=164059 + _PATTERNFLOWGTPV1TEIDCOUNTER._serialized_end=164176 + _PATTERNFLOWGTPV1TEIDMETRICTAG._serialized_start=164178 + _PATTERNFLOWGTPV1TEIDMETRICTAG._serialized_end=164301 + _PATTERNFLOWGTPV1TEID._serialized_start=164304 + _PATTERNFLOWGTPV1TEID._serialized_end=164694 + _PATTERNFLOWGTPV1TEID_CHOICE._serialized_start=102171 + _PATTERNFLOWGTPV1TEID_CHOICE._serialized_end=102257 + _PATTERNFLOWGTPV1TEID_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWGTPV1TEID_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWGTPV1SQUENCENUMBERCOUNTER._serialized_start=164696 + _PATTERNFLOWGTPV1SQUENCENUMBERCOUNTER._serialized_end=164822 + _PATTERNFLOWGTPV1SQUENCENUMBERMETRICTAG._serialized_start=164825 + _PATTERNFLOWGTPV1SQUENCENUMBERMETRICTAG._serialized_end=164957 + _PATTERNFLOWGTPV1SQUENCENUMBER._serialized_start=164960 + _PATTERNFLOWGTPV1SQUENCENUMBER._serialized_end=165395 + _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE._serialized_start=102171 + _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE._serialized_end=102257 + _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWGTPV1NPDUNUMBERCOUNTER._serialized_start=165397 + _PATTERNFLOWGTPV1NPDUNUMBERCOUNTER._serialized_end=165520 + _PATTERNFLOWGTPV1NPDUNUMBERMETRICTAG._serialized_start=165523 + _PATTERNFLOWGTPV1NPDUNUMBERMETRICTAG._serialized_end=165652 + _PATTERNFLOWGTPV1NPDUNUMBER._serialized_start=165655 + _PATTERNFLOWGTPV1NPDUNUMBER._serialized_end=166075 + _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE._serialized_start=102171 + _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE._serialized_end=102257 + _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPECOUNTER._serialized_start=166078 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPECOUNTER._serialized_end=166214 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPEMETRICTAG._serialized_start=166217 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPEMETRICTAG._serialized_end=166359 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE._serialized_start=166362 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE._serialized_end=166847 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE._serialized_start=102171 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE._serialized_end=102257 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHCOUNTER._serialized_start=166850 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHCOUNTER._serialized_end=166985 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHMETRICTAG._serialized_start=166988 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHMETRICTAG._serialized_end=167129 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH._serialized_start=167132 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH._serialized_end=167612 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE._serialized_start=102171 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE._serialized_end=102257 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWGTPEXTENSIONCONTENTSCOUNTER._serialized_start=167615 + _PATTERNFLOWGTPEXTENSIONCONTENTSCOUNTER._serialized_end=167743 + _PATTERNFLOWGTPEXTENSIONCONTENTSMETRICTAG._serialized_start=167746 + _PATTERNFLOWGTPEXTENSIONCONTENTSMETRICTAG._serialized_end=167880 + _PATTERNFLOWGTPEXTENSIONCONTENTS._serialized_start=167883 + _PATTERNFLOWGTPEXTENSIONCONTENTS._serialized_end=168328 + _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE._serialized_start=102171 + _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE._serialized_end=102257 + _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERCOUNTER._serialized_start=168331 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERCOUNTER._serialized_end=168470 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERMETRICTAG._serialized_start=168473 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERMETRICTAG._serialized_end=168618 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER._serialized_start=168621 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER._serialized_end=169121 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE._serialized_start=102171 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE._serialized_end=102257 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWGTPV2VERSIONCOUNTER._serialized_start=169123 + _PATTERNFLOWGTPV2VERSIONCOUNTER._serialized_end=169243 + _PATTERNFLOWGTPV2VERSIONMETRICTAG._serialized_start=169245 + _PATTERNFLOWGTPV2VERSIONMETRICTAG._serialized_end=169371 + _PATTERNFLOWGTPV2VERSION._serialized_start=169374 + _PATTERNFLOWGTPV2VERSION._serialized_end=169779 + _PATTERNFLOWGTPV2VERSION_CHOICE._serialized_start=102171 + _PATTERNFLOWGTPV2VERSION_CHOICE._serialized_end=102257 + _PATTERNFLOWGTPV2VERSION_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWGTPV2VERSION_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAGCOUNTER._serialized_start=169782 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAGCOUNTER._serialized_end=169911 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAGMETRICTAG._serialized_start=169914 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAGMETRICTAG._serialized_end=170049 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAG._serialized_start=170052 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAG._serialized_end=170502 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE._serialized_start=102171 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE._serialized_end=102257 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWGTPV2TEIDFLAGCOUNTER._serialized_start=170504 + _PATTERNFLOWGTPV2TEIDFLAGCOUNTER._serialized_end=170625 + _PATTERNFLOWGTPV2TEIDFLAGMETRICTAG._serialized_start=170627 + _PATTERNFLOWGTPV2TEIDFLAGMETRICTAG._serialized_end=170754 + _PATTERNFLOWGTPV2TEIDFLAG._serialized_start=170757 + _PATTERNFLOWGTPV2TEIDFLAG._serialized_end=171167 + _PATTERNFLOWGTPV2TEIDFLAG_CHOICE._serialized_start=102171 + _PATTERNFLOWGTPV2TEIDFLAG_CHOICE._serialized_end=102257 + _PATTERNFLOWGTPV2TEIDFLAG_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWGTPV2TEIDFLAG_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWGTPV2SPARE1COUNTER._serialized_start=171169 + _PATTERNFLOWGTPV2SPARE1COUNTER._serialized_end=171288 + _PATTERNFLOWGTPV2SPARE1METRICTAG._serialized_start=171290 + _PATTERNFLOWGTPV2SPARE1METRICTAG._serialized_end=171415 + _PATTERNFLOWGTPV2SPARE1._serialized_start=171418 + _PATTERNFLOWGTPV2SPARE1._serialized_end=171818 + _PATTERNFLOWGTPV2SPARE1_CHOICE._serialized_start=102171 + _PATTERNFLOWGTPV2SPARE1_CHOICE._serialized_end=102257 + _PATTERNFLOWGTPV2SPARE1_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWGTPV2SPARE1_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWGTPV2MESSAGETYPECOUNTER._serialized_start=171820 + _PATTERNFLOWGTPV2MESSAGETYPECOUNTER._serialized_end=171944 + _PATTERNFLOWGTPV2MESSAGETYPEMETRICTAG._serialized_start=171947 + _PATTERNFLOWGTPV2MESSAGETYPEMETRICTAG._serialized_end=172077 + _PATTERNFLOWGTPV2MESSAGETYPE._serialized_start=172080 + _PATTERNFLOWGTPV2MESSAGETYPE._serialized_end=172505 + _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE._serialized_start=102171 + _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE._serialized_end=102257 + _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWGTPV2MESSAGELENGTHCOUNTER._serialized_start=172507 + _PATTERNFLOWGTPV2MESSAGELENGTHCOUNTER._serialized_end=172633 + _PATTERNFLOWGTPV2MESSAGELENGTHMETRICTAG._serialized_start=172636 + _PATTERNFLOWGTPV2MESSAGELENGTHMETRICTAG._serialized_end=172768 + _PATTERNFLOWGTPV2MESSAGELENGTH._serialized_start=172771 + _PATTERNFLOWGTPV2MESSAGELENGTH._serialized_end=173206 + _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE._serialized_start=102171 + _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE._serialized_end=102257 + _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWGTPV2TEIDCOUNTER._serialized_start=173208 + _PATTERNFLOWGTPV2TEIDCOUNTER._serialized_end=173325 + _PATTERNFLOWGTPV2TEIDMETRICTAG._serialized_start=173327 + _PATTERNFLOWGTPV2TEIDMETRICTAG._serialized_end=173450 + _PATTERNFLOWGTPV2TEID._serialized_start=173453 + _PATTERNFLOWGTPV2TEID._serialized_end=173843 + _PATTERNFLOWGTPV2TEID_CHOICE._serialized_start=102171 + _PATTERNFLOWGTPV2TEID_CHOICE._serialized_end=102257 + _PATTERNFLOWGTPV2TEID_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWGTPV2TEID_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWGTPV2SEQUENCENUMBERCOUNTER._serialized_start=173845 + _PATTERNFLOWGTPV2SEQUENCENUMBERCOUNTER._serialized_end=173972 + _PATTERNFLOWGTPV2SEQUENCENUMBERMETRICTAG._serialized_start=173975 + _PATTERNFLOWGTPV2SEQUENCENUMBERMETRICTAG._serialized_end=174108 + _PATTERNFLOWGTPV2SEQUENCENUMBER._serialized_start=174111 + _PATTERNFLOWGTPV2SEQUENCENUMBER._serialized_end=174551 + _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE._serialized_start=102171 + _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE._serialized_end=102257 + _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWGTPV2SPARE2COUNTER._serialized_start=174553 + _PATTERNFLOWGTPV2SPARE2COUNTER._serialized_end=174672 + _PATTERNFLOWGTPV2SPARE2METRICTAG._serialized_start=174674 + _PATTERNFLOWGTPV2SPARE2METRICTAG._serialized_end=174799 + _PATTERNFLOWGTPV2SPARE2._serialized_start=174802 + _PATTERNFLOWGTPV2SPARE2._serialized_end=175202 + _PATTERNFLOWGTPV2SPARE2_CHOICE._serialized_start=102171 + _PATTERNFLOWGTPV2SPARE2_CHOICE._serialized_end=102257 + _PATTERNFLOWGTPV2SPARE2_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWGTPV2SPARE2_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWARPHARDWARETYPECOUNTER._serialized_start=175204 + _PATTERNFLOWARPHARDWARETYPECOUNTER._serialized_end=175327 + _PATTERNFLOWARPHARDWARETYPEMETRICTAG._serialized_start=175330 + _PATTERNFLOWARPHARDWARETYPEMETRICTAG._serialized_end=175459 + _PATTERNFLOWARPHARDWARETYPE._serialized_start=175462 + _PATTERNFLOWARPHARDWARETYPE._serialized_end=175882 + _PATTERNFLOWARPHARDWARETYPE_CHOICE._serialized_start=102171 + _PATTERNFLOWARPHARDWARETYPE_CHOICE._serialized_end=102257 + _PATTERNFLOWARPHARDWARETYPE_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWARPHARDWARETYPE_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWARPPROTOCOLTYPECOUNTER._serialized_start=175884 + _PATTERNFLOWARPPROTOCOLTYPECOUNTER._serialized_end=176007 + _PATTERNFLOWARPPROTOCOLTYPEMETRICTAG._serialized_start=176010 + _PATTERNFLOWARPPROTOCOLTYPEMETRICTAG._serialized_end=176139 + _PATTERNFLOWARPPROTOCOLTYPE._serialized_start=176142 + _PATTERNFLOWARPPROTOCOLTYPE._serialized_end=176562 + _PATTERNFLOWARPPROTOCOLTYPE_CHOICE._serialized_start=102171 + _PATTERNFLOWARPPROTOCOLTYPE_CHOICE._serialized_end=102257 + _PATTERNFLOWARPPROTOCOLTYPE_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWARPPROTOCOLTYPE_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWARPHARDWARELENGTHCOUNTER._serialized_start=176564 + _PATTERNFLOWARPHARDWARELENGTHCOUNTER._serialized_end=176689 + _PATTERNFLOWARPHARDWARELENGTHMETRICTAG._serialized_start=176692 + _PATTERNFLOWARPHARDWARELENGTHMETRICTAG._serialized_end=176823 + _PATTERNFLOWARPHARDWARELENGTH._serialized_start=176826 + _PATTERNFLOWARPHARDWARELENGTH._serialized_end=177256 + _PATTERNFLOWARPHARDWARELENGTH_CHOICE._serialized_start=102171 + _PATTERNFLOWARPHARDWARELENGTH_CHOICE._serialized_end=102257 + _PATTERNFLOWARPHARDWARELENGTH_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWARPHARDWARELENGTH_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWARPPROTOCOLLENGTHCOUNTER._serialized_start=177258 + _PATTERNFLOWARPPROTOCOLLENGTHCOUNTER._serialized_end=177383 + _PATTERNFLOWARPPROTOCOLLENGTHMETRICTAG._serialized_start=177386 + _PATTERNFLOWARPPROTOCOLLENGTHMETRICTAG._serialized_end=177517 + _PATTERNFLOWARPPROTOCOLLENGTH._serialized_start=177520 + _PATTERNFLOWARPPROTOCOLLENGTH._serialized_end=177950 + _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE._serialized_start=102171 + _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE._serialized_end=102257 + _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWARPOPERATIONCOUNTER._serialized_start=177952 + _PATTERNFLOWARPOPERATIONCOUNTER._serialized_end=178072 + _PATTERNFLOWARPOPERATIONMETRICTAG._serialized_start=178074 + _PATTERNFLOWARPOPERATIONMETRICTAG._serialized_end=178200 + _PATTERNFLOWARPOPERATION._serialized_start=178203 + _PATTERNFLOWARPOPERATION._serialized_end=178608 + _PATTERNFLOWARPOPERATION_CHOICE._serialized_start=102171 + _PATTERNFLOWARPOPERATION_CHOICE._serialized_end=102257 + _PATTERNFLOWARPOPERATION_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWARPOPERATION_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWARPSENDERHARDWAREADDRCOUNTER._serialized_start=178611 + _PATTERNFLOWARPSENDERHARDWAREADDRCOUNTER._serialized_end=178740 + _PATTERNFLOWARPSENDERHARDWAREADDRMETRICTAG._serialized_start=178743 + _PATTERNFLOWARPSENDERHARDWAREADDRMETRICTAG._serialized_end=178878 + _PATTERNFLOWARPSENDERHARDWAREADDR._serialized_start=178881 + _PATTERNFLOWARPSENDERHARDWAREADDR._serialized_end=179331 + _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE._serialized_start=102171 + _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE._serialized_end=102257 + _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWARPSENDERPROTOCOLADDRCOUNTER._serialized_start=179334 + _PATTERNFLOWARPSENDERPROTOCOLADDRCOUNTER._serialized_end=179463 + _PATTERNFLOWARPSENDERPROTOCOLADDRMETRICTAG._serialized_start=179466 + _PATTERNFLOWARPSENDERPROTOCOLADDRMETRICTAG._serialized_end=179601 + _PATTERNFLOWARPSENDERPROTOCOLADDR._serialized_start=179604 + _PATTERNFLOWARPSENDERPROTOCOLADDR._serialized_end=180054 + _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE._serialized_start=102171 + _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE._serialized_end=102257 + _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWARPTARGETHARDWAREADDRCOUNTER._serialized_start=180057 + _PATTERNFLOWARPTARGETHARDWAREADDRCOUNTER._serialized_end=180186 + _PATTERNFLOWARPTARGETHARDWAREADDRMETRICTAG._serialized_start=180189 + _PATTERNFLOWARPTARGETHARDWAREADDRMETRICTAG._serialized_end=180324 + _PATTERNFLOWARPTARGETHARDWAREADDR._serialized_start=180327 + _PATTERNFLOWARPTARGETHARDWAREADDR._serialized_end=180777 + _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE._serialized_start=102171 + _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE._serialized_end=102257 + _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWARPTARGETPROTOCOLADDRCOUNTER._serialized_start=180780 + _PATTERNFLOWARPTARGETPROTOCOLADDRCOUNTER._serialized_end=180909 + _PATTERNFLOWARPTARGETPROTOCOLADDRMETRICTAG._serialized_start=180912 + _PATTERNFLOWARPTARGETPROTOCOLADDRMETRICTAG._serialized_end=181047 + _PATTERNFLOWARPTARGETPROTOCOLADDR._serialized_start=181050 + _PATTERNFLOWARPTARGETPROTOCOLADDR._serialized_end=181500 + _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE._serialized_start=102171 + _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE._serialized_end=102257 + _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWICMPECHOTYPECOUNTER._serialized_start=181502 + _PATTERNFLOWICMPECHOTYPECOUNTER._serialized_end=181622 + _PATTERNFLOWICMPECHOTYPEMETRICTAG._serialized_start=181624 + _PATTERNFLOWICMPECHOTYPEMETRICTAG._serialized_end=181750 + _PATTERNFLOWICMPECHOTYPE._serialized_start=181753 + _PATTERNFLOWICMPECHOTYPE._serialized_end=182158 + _PATTERNFLOWICMPECHOTYPE_CHOICE._serialized_start=102171 + _PATTERNFLOWICMPECHOTYPE_CHOICE._serialized_end=102257 + _PATTERNFLOWICMPECHOTYPE_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWICMPECHOTYPE_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWICMPECHOCODECOUNTER._serialized_start=182160 + _PATTERNFLOWICMPECHOCODECOUNTER._serialized_end=182280 + _PATTERNFLOWICMPECHOCODEMETRICTAG._serialized_start=182282 + _PATTERNFLOWICMPECHOCODEMETRICTAG._serialized_end=182408 + _PATTERNFLOWICMPECHOCODE._serialized_start=182411 + _PATTERNFLOWICMPECHOCODE._serialized_end=182816 + _PATTERNFLOWICMPECHOCODE_CHOICE._serialized_start=102171 + _PATTERNFLOWICMPECHOCODE_CHOICE._serialized_end=102257 + _PATTERNFLOWICMPECHOCODE_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWICMPECHOCODE_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWICMPECHOCHECKSUM._serialized_start=182819 + _PATTERNFLOWICMPECHOCHECKSUM._serialized_end=183164 + _PATTERNFLOWICMPECHOCHECKSUM_CHOICE._serialized_start=115987 + _PATTERNFLOWICMPECHOCHECKSUM_CHOICE._serialized_end=116047 + _PATTERNFLOWICMPECHOCHECKSUM_CHOICE_ENUM._serialized_start=115997 + _PATTERNFLOWICMPECHOCHECKSUM_CHOICE_ENUM._serialized_end=116047 + _PATTERNFLOWICMPECHOCHECKSUM_GENERATED._serialized_start=116049 + _PATTERNFLOWICMPECHOCHECKSUM_GENERATED._serialized_end=116104 + _PATTERNFLOWICMPECHOCHECKSUM_GENERATED_ENUM._serialized_start=116062 + _PATTERNFLOWICMPECHOCHECKSUM_GENERATED_ENUM._serialized_end=116104 + _PATTERNFLOWICMPECHOIDENTIFIERCOUNTER._serialized_start=183166 + _PATTERNFLOWICMPECHOIDENTIFIERCOUNTER._serialized_end=183292 + _PATTERNFLOWICMPECHOIDENTIFIERMETRICTAG._serialized_start=183295 + _PATTERNFLOWICMPECHOIDENTIFIERMETRICTAG._serialized_end=183427 + _PATTERNFLOWICMPECHOIDENTIFIER._serialized_start=183430 + _PATTERNFLOWICMPECHOIDENTIFIER._serialized_end=183865 + _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE._serialized_start=102171 + _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE._serialized_end=102257 + _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWICMPECHOSEQUENCENUMBERCOUNTER._serialized_start=183868 + _PATTERNFLOWICMPECHOSEQUENCENUMBERCOUNTER._serialized_end=183998 + _PATTERNFLOWICMPECHOSEQUENCENUMBERMETRICTAG._serialized_start=184001 + _PATTERNFLOWICMPECHOSEQUENCENUMBERMETRICTAG._serialized_end=184137 + _PATTERNFLOWICMPECHOSEQUENCENUMBER._serialized_start=184140 + _PATTERNFLOWICMPECHOSEQUENCENUMBER._serialized_end=184595 + _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE._serialized_start=102171 + _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE._serialized_end=102257 + _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWICMPCOMMONCHECKSUM._serialized_start=184598 + _PATTERNFLOWICMPCOMMONCHECKSUM._serialized_end=184949 + _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE._serialized_start=115987 + _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE._serialized_end=116047 + _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE_ENUM._serialized_start=115997 + _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE_ENUM._serialized_end=116047 + _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED._serialized_start=116049 + _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED._serialized_end=116104 + _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED_ENUM._serialized_start=116062 + _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED_ENUM._serialized_end=116104 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERCOUNTER._serialized_start=184952 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERCOUNTER._serialized_end=185084 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERMETRICTAG._serialized_start=185087 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERMETRICTAG._serialized_end=185225 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER._serialized_start=185228 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER._serialized_end=185693 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE._serialized_start=102171 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE._serialized_end=102257 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERCOUNTER._serialized_start=185696 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERCOUNTER._serialized_end=185832 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERMETRICTAG._serialized_start=185835 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERMETRICTAG._serialized_end=185977 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER._serialized_start=185980 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER._serialized_end=186465 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE._serialized_start=102171 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE._serialized_end=102257 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWICMPV6ECHOTYPECOUNTER._serialized_start=186467 + _PATTERNFLOWICMPV6ECHOTYPECOUNTER._serialized_end=186589 + _PATTERNFLOWICMPV6ECHOTYPEMETRICTAG._serialized_start=186592 + _PATTERNFLOWICMPV6ECHOTYPEMETRICTAG._serialized_end=186720 + _PATTERNFLOWICMPV6ECHOTYPE._serialized_start=186723 + _PATTERNFLOWICMPV6ECHOTYPE._serialized_end=187138 + _PATTERNFLOWICMPV6ECHOTYPE_CHOICE._serialized_start=102171 + _PATTERNFLOWICMPV6ECHOTYPE_CHOICE._serialized_end=102257 + _PATTERNFLOWICMPV6ECHOTYPE_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWICMPV6ECHOTYPE_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWICMPV6ECHOCODECOUNTER._serialized_start=187140 + _PATTERNFLOWICMPV6ECHOCODECOUNTER._serialized_end=187262 + _PATTERNFLOWICMPV6ECHOCODEMETRICTAG._serialized_start=187265 + _PATTERNFLOWICMPV6ECHOCODEMETRICTAG._serialized_end=187393 + _PATTERNFLOWICMPV6ECHOCODE._serialized_start=187396 + _PATTERNFLOWICMPV6ECHOCODE._serialized_end=187811 + _PATTERNFLOWICMPV6ECHOCODE_CHOICE._serialized_start=102171 + _PATTERNFLOWICMPV6ECHOCODE_CHOICE._serialized_end=102257 + _PATTERNFLOWICMPV6ECHOCODE_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWICMPV6ECHOCODE_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWICMPV6ECHOIDENTIFIERCOUNTER._serialized_start=187814 + _PATTERNFLOWICMPV6ECHOIDENTIFIERCOUNTER._serialized_end=187942 + _PATTERNFLOWICMPV6ECHOIDENTIFIERMETRICTAG._serialized_start=187945 + _PATTERNFLOWICMPV6ECHOIDENTIFIERMETRICTAG._serialized_end=188079 + _PATTERNFLOWICMPV6ECHOIDENTIFIER._serialized_start=188082 + _PATTERNFLOWICMPV6ECHOIDENTIFIER._serialized_end=188527 + _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE._serialized_start=102171 + _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE._serialized_end=102257 + _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERCOUNTER._serialized_start=188530 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERCOUNTER._serialized_end=188662 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERMETRICTAG._serialized_start=188665 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERMETRICTAG._serialized_end=188803 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER._serialized_start=188806 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER._serialized_end=189271 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE._serialized_start=102171 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE._serialized_end=102257 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWICMPV6ECHOCHECKSUM._serialized_start=189274 + _PATTERNFLOWICMPV6ECHOCHECKSUM._serialized_end=189625 + _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE._serialized_start=115987 + _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE._serialized_end=116047 + _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE_ENUM._serialized_start=115997 + _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE_ENUM._serialized_end=116047 + _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED._serialized_start=116049 + _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED._serialized_end=116104 + _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED_ENUM._serialized_start=116062 + _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED_ENUM._serialized_end=116104 + _PATTERNFLOWICMPV6COMMONCHECKSUM._serialized_start=189628 + _PATTERNFLOWICMPV6COMMONCHECKSUM._serialized_end=189985 + _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE._serialized_start=115987 + _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE._serialized_end=116047 + _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE_ENUM._serialized_start=115997 + _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE_ENUM._serialized_end=116047 + _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED._serialized_start=116049 + _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED._serialized_end=116104 + _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED_ENUM._serialized_start=116062 + _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED_ENUM._serialized_end=116104 + _PATTERNFLOWPPPADDRESSCOUNTER._serialized_start=189987 + _PATTERNFLOWPPPADDRESSCOUNTER._serialized_end=190105 + _PATTERNFLOWPPPADDRESSMETRICTAG._serialized_start=190107 + _PATTERNFLOWPPPADDRESSMETRICTAG._serialized_end=190231 + _PATTERNFLOWPPPADDRESS._serialized_start=190234 + _PATTERNFLOWPPPADDRESS._serialized_end=190629 + _PATTERNFLOWPPPADDRESS_CHOICE._serialized_start=102171 + _PATTERNFLOWPPPADDRESS_CHOICE._serialized_end=102257 + _PATTERNFLOWPPPADDRESS_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWPPPADDRESS_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWPPPCONTROLCOUNTER._serialized_start=190631 + _PATTERNFLOWPPPCONTROLCOUNTER._serialized_end=190749 + _PATTERNFLOWPPPCONTROLMETRICTAG._serialized_start=190751 + _PATTERNFLOWPPPCONTROLMETRICTAG._serialized_end=190875 + _PATTERNFLOWPPPCONTROL._serialized_start=190878 + _PATTERNFLOWPPPCONTROL._serialized_end=191273 + _PATTERNFLOWPPPCONTROL_CHOICE._serialized_start=102171 + _PATTERNFLOWPPPCONTROL_CHOICE._serialized_end=102257 + _PATTERNFLOWPPPCONTROL_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWPPPCONTROL_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWPPPPROTOCOLTYPECOUNTER._serialized_start=191275 + _PATTERNFLOWPPPPROTOCOLTYPECOUNTER._serialized_end=191398 + _PATTERNFLOWPPPPROTOCOLTYPEMETRICTAG._serialized_start=191401 + _PATTERNFLOWPPPPROTOCOLTYPEMETRICTAG._serialized_end=191530 + _PATTERNFLOWPPPPROTOCOLTYPE._serialized_start=191533 + _PATTERNFLOWPPPPROTOCOLTYPE._serialized_end=191991 + _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE._serialized_start=101501 + _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE._serialized_end=101597 + _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE_ENUM._serialized_start=101511 + _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE_ENUM._serialized_end=101597 + _PATTERNFLOWIGMPV1VERSIONCOUNTER._serialized_start=191993 + _PATTERNFLOWIGMPV1VERSIONCOUNTER._serialized_end=192114 + _PATTERNFLOWIGMPV1VERSIONMETRICTAG._serialized_start=192116 + _PATTERNFLOWIGMPV1VERSIONMETRICTAG._serialized_end=192243 + _PATTERNFLOWIGMPV1VERSION._serialized_start=192246 + _PATTERNFLOWIGMPV1VERSION._serialized_end=192656 + _PATTERNFLOWIGMPV1VERSION_CHOICE._serialized_start=102171 + _PATTERNFLOWIGMPV1VERSION_CHOICE._serialized_end=102257 + _PATTERNFLOWIGMPV1VERSION_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWIGMPV1VERSION_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWIGMPV1TYPECOUNTER._serialized_start=192658 + _PATTERNFLOWIGMPV1TYPECOUNTER._serialized_end=192776 + _PATTERNFLOWIGMPV1TYPEMETRICTAG._serialized_start=192778 + _PATTERNFLOWIGMPV1TYPEMETRICTAG._serialized_end=192902 + _PATTERNFLOWIGMPV1TYPE._serialized_start=192905 + _PATTERNFLOWIGMPV1TYPE._serialized_end=193300 + _PATTERNFLOWIGMPV1TYPE_CHOICE._serialized_start=102171 + _PATTERNFLOWIGMPV1TYPE_CHOICE._serialized_end=102257 + _PATTERNFLOWIGMPV1TYPE_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWIGMPV1TYPE_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWIGMPV1UNUSEDCOUNTER._serialized_start=193302 + _PATTERNFLOWIGMPV1UNUSEDCOUNTER._serialized_end=193422 + _PATTERNFLOWIGMPV1UNUSEDMETRICTAG._serialized_start=193424 + _PATTERNFLOWIGMPV1UNUSEDMETRICTAG._serialized_end=193550 + _PATTERNFLOWIGMPV1UNUSED._serialized_start=193553 + _PATTERNFLOWIGMPV1UNUSED._serialized_end=193958 + _PATTERNFLOWIGMPV1UNUSED_CHOICE._serialized_start=102171 + _PATTERNFLOWIGMPV1UNUSED_CHOICE._serialized_end=102257 + _PATTERNFLOWIGMPV1UNUSED_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWIGMPV1UNUSED_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWIGMPV1CHECKSUM._serialized_start=193961 + _PATTERNFLOWIGMPV1CHECKSUM._serialized_end=194300 + _PATTERNFLOWIGMPV1CHECKSUM_CHOICE._serialized_start=115987 + _PATTERNFLOWIGMPV1CHECKSUM_CHOICE._serialized_end=116047 + _PATTERNFLOWIGMPV1CHECKSUM_CHOICE_ENUM._serialized_start=115997 + _PATTERNFLOWIGMPV1CHECKSUM_CHOICE_ENUM._serialized_end=116047 + _PATTERNFLOWIGMPV1CHECKSUM_GENERATED._serialized_start=116049 + _PATTERNFLOWIGMPV1CHECKSUM_GENERATED._serialized_end=116104 + _PATTERNFLOWIGMPV1CHECKSUM_GENERATED_ENUM._serialized_start=116062 + _PATTERNFLOWIGMPV1CHECKSUM_GENERATED_ENUM._serialized_end=116104 + _PATTERNFLOWIGMPV1GROUPADDRESSCOUNTER._serialized_start=194302 + _PATTERNFLOWIGMPV1GROUPADDRESSCOUNTER._serialized_end=194428 + _PATTERNFLOWIGMPV1GROUPADDRESSMETRICTAG._serialized_start=194431 + _PATTERNFLOWIGMPV1GROUPADDRESSMETRICTAG._serialized_end=194563 + _PATTERNFLOWIGMPV1GROUPADDRESS._serialized_start=194566 + _PATTERNFLOWIGMPV1GROUPADDRESS._serialized_end=195001 + _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE._serialized_start=102171 + _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE._serialized_end=102257 + _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWMPLSLABELCOUNTER._serialized_start=195003 + _PATTERNFLOWMPLSLABELCOUNTER._serialized_end=195120 + _PATTERNFLOWMPLSLABELMETRICTAG._serialized_start=195122 + _PATTERNFLOWMPLSLABELMETRICTAG._serialized_end=195245 + _PATTERNFLOWMPLSLABEL._serialized_start=195248 + _PATTERNFLOWMPLSLABEL._serialized_end=195676 + _PATTERNFLOWMPLSLABEL_CHOICE._serialized_start=101501 + _PATTERNFLOWMPLSLABEL_CHOICE._serialized_end=101597 + _PATTERNFLOWMPLSLABEL_CHOICE_ENUM._serialized_start=101511 + _PATTERNFLOWMPLSLABEL_CHOICE_ENUM._serialized_end=101597 + _PATTERNFLOWMPLSTRAFFICCLASSCOUNTER._serialized_start=195678 + _PATTERNFLOWMPLSTRAFFICCLASSCOUNTER._serialized_end=195802 + _PATTERNFLOWMPLSTRAFFICCLASSMETRICTAG._serialized_start=195805 + _PATTERNFLOWMPLSTRAFFICCLASSMETRICTAG._serialized_end=195935 + _PATTERNFLOWMPLSTRAFFICCLASS._serialized_start=195938 + _PATTERNFLOWMPLSTRAFFICCLASS._serialized_end=196363 + _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE._serialized_start=102171 + _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE._serialized_end=102257 + _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWMPLSBOTTOMOFSTACKCOUNTER._serialized_start=196365 + _PATTERNFLOWMPLSBOTTOMOFSTACKCOUNTER._serialized_end=196490 + _PATTERNFLOWMPLSBOTTOMOFSTACKMETRICTAG._serialized_start=196493 + _PATTERNFLOWMPLSBOTTOMOFSTACKMETRICTAG._serialized_end=196624 + _PATTERNFLOWMPLSBOTTOMOFSTACK._serialized_start=196627 + _PATTERNFLOWMPLSBOTTOMOFSTACK._serialized_end=197095 + _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE._serialized_start=101501 + _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE._serialized_end=101597 + _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE_ENUM._serialized_start=101511 + _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE_ENUM._serialized_end=101597 + _PATTERNFLOWMPLSTIMETOLIVECOUNTER._serialized_start=197097 + _PATTERNFLOWMPLSTIMETOLIVECOUNTER._serialized_end=197219 + _PATTERNFLOWMPLSTIMETOLIVEMETRICTAG._serialized_start=197222 + _PATTERNFLOWMPLSTIMETOLIVEMETRICTAG._serialized_end=197350 + _PATTERNFLOWMPLSTIMETOLIVE._serialized_start=197353 + _PATTERNFLOWMPLSTIMETOLIVE._serialized_end=197768 + _PATTERNFLOWMPLSTIMETOLIVE_CHOICE._serialized_start=102171 + _PATTERNFLOWMPLSTIMETOLIVE_CHOICE._serialized_end=102257 + _PATTERNFLOWMPLSTIMETOLIVE_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWMPLSTIMETOLIVE_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWSNMPV2CVERSIONCOUNTER._serialized_start=197770 + _PATTERNFLOWSNMPV2CVERSIONCOUNTER._serialized_end=197892 + _PATTERNFLOWSNMPV2CVERSION._serialized_start=197895 + _PATTERNFLOWSNMPV2CVERSION._serialized_end=198248 + _PATTERNFLOWSNMPV2CVERSION_CHOICE._serialized_start=102171 + _PATTERNFLOWSNMPV2CVERSION_CHOICE._serialized_end=102257 + _PATTERNFLOWSNMPV2CVERSION_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWSNMPV2CVERSION_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWSNMPV2CPDUREQUESTIDCOUNTER._serialized_start=198250 + _PATTERNFLOWSNMPV2CPDUREQUESTIDCOUNTER._serialized_end=198377 + _PATTERNFLOWSNMPV2CPDUREQUESTID._serialized_start=198380 + _PATTERNFLOWSNMPV2CPDUREQUESTID._serialized_end=198753 + _PATTERNFLOWSNMPV2CPDUREQUESTID_CHOICE._serialized_start=102171 + _PATTERNFLOWSNMPV2CPDUREQUESTID_CHOICE._serialized_end=102257 + _PATTERNFLOWSNMPV2CPDUREQUESTID_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWSNMPV2CPDUREQUESTID_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWSNMPV2CPDUERRORINDEXCOUNTER._serialized_start=198756 + _PATTERNFLOWSNMPV2CPDUERRORINDEXCOUNTER._serialized_end=198884 + _PATTERNFLOWSNMPV2CPDUERRORINDEX._serialized_start=198887 + _PATTERNFLOWSNMPV2CPDUERRORINDEX._serialized_end=199264 + _PATTERNFLOWSNMPV2CPDUERRORINDEX_CHOICE._serialized_start=102171 + _PATTERNFLOWSNMPV2CPDUERRORINDEX_CHOICE._serialized_end=102257 + _PATTERNFLOWSNMPV2CPDUERRORINDEX_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWSNMPV2CPDUERRORINDEX_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWSNMPV2CBULKPDUREQUESTIDCOUNTER._serialized_start=199267 + _PATTERNFLOWSNMPV2CBULKPDUREQUESTIDCOUNTER._serialized_end=199398 + _PATTERNFLOWSNMPV2CBULKPDUREQUESTID._serialized_start=199401 + _PATTERNFLOWSNMPV2CBULKPDUREQUESTID._serialized_end=199790 + _PATTERNFLOWSNMPV2CBULKPDUREQUESTID_CHOICE._serialized_start=102171 + _PATTERNFLOWSNMPV2CBULKPDUREQUESTID_CHOICE._serialized_end=102257 + _PATTERNFLOWSNMPV2CBULKPDUREQUESTID_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWSNMPV2CBULKPDUREQUESTID_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWSNMPV2CBULKPDUNONREPEATERS._serialized_start=199793 + _PATTERNFLOWSNMPV2CBULKPDUNONREPEATERS._serialized_end=200024 + _PATTERNFLOWSNMPV2CBULKPDUNONREPEATERS_CHOICE._serialized_start=199947 + _PATTERNFLOWSNMPV2CBULKPDUNONREPEATERS_CHOICE._serialized_end=200003 + _PATTERNFLOWSNMPV2CBULKPDUNONREPEATERS_CHOICE_ENUM._serialized_start=101511 + _PATTERNFLOWSNMPV2CBULKPDUNONREPEATERS_CHOICE_ENUM._serialized_end=101557 + _PATTERNFLOWSNMPV2CBULKPDUMAXREPETITIONSCOUNTER._serialized_start=200027 + _PATTERNFLOWSNMPV2CBULKPDUMAXREPETITIONSCOUNTER._serialized_end=200163 + _PATTERNFLOWSNMPV2CBULKPDUMAXREPETITIONS._serialized_start=200166 + _PATTERNFLOWSNMPV2CBULKPDUMAXREPETITIONS._serialized_end=200575 + _PATTERNFLOWSNMPV2CBULKPDUMAXREPETITIONS_CHOICE._serialized_start=102171 + _PATTERNFLOWSNMPV2CBULKPDUMAXREPETITIONS_CHOICE._serialized_end=102257 + _PATTERNFLOWSNMPV2CBULKPDUMAXREPETITIONS_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWSNMPV2CBULKPDUMAXREPETITIONS_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEINTEGERVALUECOUNTER._serialized_start=200578 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEINTEGERVALUECOUNTER._serialized_end=200725 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEINTEGERVALUE._serialized_start=200728 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEINTEGERVALUE._serialized_end=201181 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEINTEGERVALUE_CHOICE._serialized_start=102171 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEINTEGERVALUE_CHOICE._serialized_end=102257 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEINTEGERVALUE_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEINTEGERVALUE_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEIPADDRESSVALUECOUNTER._serialized_start=201184 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEIPADDRESSVALUECOUNTER._serialized_end=201333 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEIPADDRESSVALUE._serialized_start=201336 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEIPADDRESSVALUE._serialized_end=201797 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEIPADDRESSVALUE_CHOICE._serialized_start=102171 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEIPADDRESSVALUE_CHOICE._serialized_end=102257 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEIPADDRESSVALUE_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEIPADDRESSVALUE_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUECOUNTERVALUECOUNTER._serialized_start=201800 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUECOUNTERVALUECOUNTER._serialized_end=201947 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUECOUNTERVALUE._serialized_start=201950 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUECOUNTERVALUE._serialized_end=202403 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUECOUNTERVALUE_CHOICE._serialized_start=102171 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUECOUNTERVALUE_CHOICE._serialized_end=102257 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUECOUNTERVALUE_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUECOUNTERVALUE_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUETIMETICKSVALUECOUNTER._serialized_start=202406 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUETIMETICKSVALUECOUNTER._serialized_end=202555 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUETIMETICKSVALUE._serialized_start=202558 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUETIMETICKSVALUE._serialized_end=203019 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUETIMETICKSVALUE_CHOICE._serialized_start=102171 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUETIMETICKSVALUE_CHOICE._serialized_end=102257 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUETIMETICKSVALUE_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUETIMETICKSVALUE_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEBIGCOUNTERVALUECOUNTER._serialized_start=203022 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEBIGCOUNTERVALUECOUNTER._serialized_end=203172 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEBIGCOUNTERVALUE._serialized_start=203175 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEBIGCOUNTERVALUE._serialized_end=203640 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEBIGCOUNTERVALUE_CHOICE._serialized_start=102171 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEBIGCOUNTERVALUE_CHOICE._serialized_end=102257 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEBIGCOUNTERVALUE_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEBIGCOUNTERVALUE_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEUNSIGNEDINTEGERVALUECOUNTER._serialized_start=203643 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEUNSIGNEDINTEGERVALUECOUNTER._serialized_end=203798 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEUNSIGNEDINTEGERVALUE._serialized_start=203801 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEUNSIGNEDINTEGERVALUE._serialized_end=204286 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEUNSIGNEDINTEGERVALUE_CHOICE._serialized_start=102171 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEUNSIGNEDINTEGERVALUE_CHOICE._serialized_end=102257 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEUNSIGNEDINTEGERVALUE_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEUNSIGNEDINTEGERVALUE_CHOICE_ENUM._serialized_end=102257 + _PATTERNFLOWSNMPV2CCOMMONREQUESTIDCOUNTER._serialized_start=204289 + _PATTERNFLOWSNMPV2CCOMMONREQUESTIDCOUNTER._serialized_end=204419 + _PATTERNFLOWSNMPV2CCOMMONREQUESTID._serialized_start=204422 + _PATTERNFLOWSNMPV2CCOMMONREQUESTID._serialized_end=204807 + _PATTERNFLOWSNMPV2CCOMMONREQUESTID_CHOICE._serialized_start=102171 + _PATTERNFLOWSNMPV2CCOMMONREQUESTID_CHOICE._serialized_end=102257 + _PATTERNFLOWSNMPV2CCOMMONREQUESTID_CHOICE_ENUM._serialized_start=102181 + _PATTERNFLOWSNMPV2CCOMMONREQUESTID_CHOICE_ENUM._serialized_end=102257 + _VERSION._serialized_start=204810 + _VERSION._serialized_end=204955 + _SUCCESS._serialized_start=204957 + _SUCCESS._serialized_end=204997 + _FAILURE._serialized_start=204999 + _FAILURE._serialized_end=205035 + _SETCONFIGREQUEST._serialized_start=205037 + _SETCONFIGREQUEST._serialized_end=205084 + _UPDATECONFIGREQUEST._serialized_start=205086 + _UPDATECONFIGREQUEST._serialized_end=205149 + _SETCONFIGRESPONSE._serialized_start=205151 + _SETCONFIGRESPONSE._serialized_end=205201 + _GETCONFIGRESPONSE._serialized_start=205203 + _GETCONFIGRESPONSE._serialized_end=205251 + _UPDATECONFIGRESPONSE._serialized_start=205253 + _UPDATECONFIGRESPONSE._serialized_end=205306 + _SETCONTROLSTATEREQUEST._serialized_start=205308 + _SETCONTROLSTATEREQUEST._serialized_end=205374 + _SETCONTROLSTATERESPONSE._serialized_start=205376 + _SETCONTROLSTATERESPONSE._serialized_end=205432 + _SETCONTROLACTIONREQUEST._serialized_start=205434 + _SETCONTROLACTIONREQUEST._serialized_end=205503 + _SETCONTROLACTIONRESPONSE._serialized_start=205505 + _SETCONTROLACTIONRESPONSE._serialized_end=205592 + _GETMETRICSREQUEST._serialized_start=205594 + _GETMETRICSREQUEST._serialized_end=205659 + _GETMETRICSRESPONSE._serialized_start=205661 + _GETMETRICSRESPONSE._serialized_end=205729 + _GETSTATESREQUEST._serialized_start=205731 + _GETSTATESREQUEST._serialized_end=205793 + _GETSTATESRESPONSE._serialized_start=205795 + _GETSTATESRESPONSE._serialized_end=205860 + _GETCAPTUREREQUEST._serialized_start=205862 + _GETCAPTUREREQUEST._serialized_end=205927 + _GETCAPTURERESPONSE._serialized_start=205929 + _GETCAPTURERESPONSE._serialized_end=205973 + _GETVERSIONRESPONSE._serialized_start=205975 + _GETVERSIONRESPONSE._serialized_end=206026 + _OPENAPI._serialized_start=206029 + _OPENAPI._serialized_end=206636 # @@protoc_insertion_point(module_scope) diff --git a/snappi/snappi.py b/snappi/snappi.py index 5d41952d..79b84989 100644 --- a/snappi/snappi.py +++ b/snappi/snappi.py @@ -1,4 +1,4 @@ -# Open Traffic Generator API 0.13.5 +# Open Traffic Generator API 0.13.6 # License: MIT import importlib @@ -474,6 +474,17 @@ def validate_binary(self, value): return False return all([True if int(bin) == 0 or int(bin) == 1 else False for bin in value]) + def validate_oid(self, value): + segments = value.split(".") + if len(segments) < 2: + return False + for segment in segments: + if not segment.isnumeric(): + return False + if not (0 <= int(segment) <= 4294967295): + return False + return True + def types_validation( self, value, @@ -677,10 +688,13 @@ def _get_property(self, name, default_value=None, parent=None, choice=None): "_DEFAULTS" in dir(self._properties[name]) and "choice" in self._properties[name]._DEFAULTS ): - getattr( - self._properties[name], - self._properties[name]._DEFAULTS["choice"], - ) + choice_str = self._properties[name]._DEFAULTS["choice"] + + if choice_str in self._properties[name]._TYPES: + getattr( + self._properties[name], + self._properties[name]._DEFAULTS["choice"], + ) else: if default_value is None and name in self._DEFAULTS: self._set_choice(name) @@ -26302,6 +26316,7 @@ class FlowHeader(OpenApiObject): "ppp", "igmpv1", "mpls", + "snmpv2c", ], }, "custom": {"type": "FlowCustom"}, @@ -26323,6 +26338,7 @@ class FlowHeader(OpenApiObject): "ppp": {"type": "FlowPpp"}, "igmpv1": {"type": "FlowIgmpv1"}, "mpls": {"type": "FlowMpls"}, + "snmpv2c": {"type": "FlowSnmpv2c"}, } # type: Dict[str, str] _REQUIRED = () # type: tuple(str) @@ -26350,6 +26366,7 @@ class FlowHeader(OpenApiObject): PPP = "ppp" # type: str IGMPV1 = "igmpv1" # type: str MPLS = "mpls" # type: str + SNMPV2C = "snmpv2c" # type: str _STATUS = {} # type: Dict[str, Union(type)] @@ -26576,14 +26593,25 @@ def mpls(self): """ return self._get_property("mpls", FlowMpls, self, "mpls") + @property + def snmpv2c(self): + # type: () -> FlowSnmpv2c + """Factory property that returns an instance of the FlowSnmpv2c class + + SNMPv2C packet header as defined in RFC1901 and RFC3416. + + Returns: FlowSnmpv2c + """ + return self._get_property("snmpv2c", FlowSnmpv2c, self, "snmpv2c") + @property def choice(self): - # type: () -> Union[Literal["arp"], Literal["custom"], Literal["ethernet"], Literal["ethernetpause"], Literal["gre"], Literal["gtpv1"], Literal["gtpv2"], Literal["icmp"], Literal["icmpv6"], Literal["igmpv1"], Literal["ipv4"], Literal["ipv6"], Literal["mpls"], Literal["pfcpause"], Literal["ppp"], Literal["tcp"], Literal["udp"], Literal["vlan"], Literal["vxlan"]] + # type: () -> Union[Literal["arp"], Literal["custom"], Literal["ethernet"], Literal["ethernetpause"], Literal["gre"], Literal["gtpv1"], Literal["gtpv2"], Literal["icmp"], Literal["icmpv6"], Literal["igmpv1"], Literal["ipv4"], Literal["ipv6"], Literal["mpls"], Literal["pfcpause"], Literal["ppp"], Literal["snmpv2c"], Literal["tcp"], Literal["udp"], Literal["vlan"], Literal["vxlan"]] """choice getter The available types of flow headers. If one is not provided the default ethernet packet header MUST be provided. - Returns: Union[Literal["arp"], Literal["custom"], Literal["ethernet"], Literal["ethernetpause"], Literal["gre"], Literal["gtpv1"], Literal["gtpv2"], Literal["icmp"], Literal["icmpv6"], Literal["igmpv1"], Literal["ipv4"], Literal["ipv6"], Literal["mpls"], Literal["pfcpause"], Literal["ppp"], Literal["tcp"], Literal["udp"], Literal["vlan"], Literal["vxlan"]] + Returns: Union[Literal["arp"], Literal["custom"], Literal["ethernet"], Literal["ethernetpause"], Literal["gre"], Literal["gtpv1"], Literal["gtpv2"], Literal["icmp"], Literal["icmpv6"], Literal["igmpv1"], Literal["ipv4"], Literal["ipv6"], Literal["mpls"], Literal["pfcpause"], Literal["ppp"], Literal["snmpv2c"], Literal["tcp"], Literal["udp"], Literal["vlan"], Literal["vxlan"]] """ return self._get_property("choice") @@ -26593,7 +26621,7 @@ def choice(self, value): The available types of flow headers. If one is not provided the default ethernet packet header MUST be provided. - value: Union[Literal["arp"], Literal["custom"], Literal["ethernet"], Literal["ethernetpause"], Literal["gre"], Literal["gtpv1"], Literal["gtpv2"], Literal["icmp"], Literal["icmpv6"], Literal["igmpv1"], Literal["ipv4"], Literal["ipv6"], Literal["mpls"], Literal["pfcpause"], Literal["ppp"], Literal["tcp"], Literal["udp"], Literal["vlan"], Literal["vxlan"]] + value: Union[Literal["arp"], Literal["custom"], Literal["ethernet"], Literal["ethernetpause"], Literal["gre"], Literal["gtpv1"], Literal["gtpv2"], Literal["icmp"], Literal["icmpv6"], Literal["igmpv1"], Literal["ipv4"], Literal["ipv6"], Literal["mpls"], Literal["pfcpause"], Literal["ppp"], Literal["snmpv2c"], Literal["tcp"], Literal["udp"], Literal["vlan"], Literal["vxlan"]] """ self._set_property("choice", value) @@ -90623,319 +90651,4168 @@ def add(self, name=None, offset=0, length=8): return item -class FlowHeaderIter(OpenApiIter): +class FlowSnmpv2c(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "version": {"type": "PatternFlowSnmpv2cVersion"}, + "community": { + "type": str, + "maxLength": 10000, + }, + "data": {"type": "FlowSnmpv2cData"}, + } # type: Dict[str, str] + + _REQUIRED = ("data",) # type: tuple(str) + + _DEFAULTS = { + "community": "community", + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, community="community"): + super(FlowSnmpv2c, self).__init__() + self._parent = parent + self._set_property("community", community) + + def set(self, community=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def version(self): + # type: () -> PatternFlowSnmpv2cVersion + """version getter + + VersionVersionVersionVersion + + Returns: PatternFlowSnmpv2cVersion + """ + return self._get_property("version", PatternFlowSnmpv2cVersion) + + @property + def community(self): + # type: () -> str + """community getter + + It is an ASCII based octet string which identifies the SNMP community in which the sender and recipient of this message are located. It should match the read-only or read-write community string configured on the recipient for the PDU to be accepted. + + Returns: str + """ + return self._get_property("community") + + @community.setter + def community(self, value): + """community setter + + It is an ASCII based octet string which identifies the SNMP community in which the sender and recipient of this message are located. It should match the read-only or read-write community string configured on the recipient for the PDU to be accepted. + + value: str + """ + self._set_property("community", value) + + @property + def data(self): + # type: () -> FlowSnmpv2cData + """data getter + + This contains the body of the SNMPv2C message.. - Encoding of subsequent fields follow ASN.1 specification.. Refer: http://www.itu.int/ITU-T/asn1/This contains the body of the SNMPv2C message.. - Encoding of subsequent fields follow ASN.1 specification.. Refer: http://www.itu.int/ITU-T/asn1/This contains the body of the SNMPv2C message.. - Encoding of subsequent fields follow ASN.1 specification.. Refer: http://www.itu.int/ITU-T/asn1/This contains the body of the SNMPv2C message.. - Encoding of subsequent fields follow ASN.1 specification.. Refer: http://www.itu.int/ITU-T/asn1/ + + Returns: FlowSnmpv2cData + """ + return self._get_property("data", FlowSnmpv2cData) + + +class PatternFlowSnmpv2cVersion(OpenApiObject): __slots__ = ("_parent", "_choice") - _GETITEM_RETURNS_CHOICE_OBJECT = True + _TYPES = { + "choice": { + "type": str, + "enum": [ + "value", + "values", + "increment", + "decrement", + ], + }, + "value": { + "type": int, + "format": "uint32", + "maximum": 255, + }, + "values": { + "type": list, + "itemtype": int, + "itemformat": "uint32", + "maximum": 255, + }, + "increment": {"type": "PatternFlowSnmpv2cVersionCounter"}, + "decrement": {"type": "PatternFlowSnmpv2cVersionCounter"}, + } # type: Dict[str, str] - def __init__(self, parent=None, choice=None): - super(FlowHeaderIter, self).__init__() + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "value", + "value": 1, + "values": [1], + } # type: Dict[str, Union(type)] + + VALUE = "value" # type: str + VALUES = "values" # type: str + INCREMENT = "increment" # type: str + DECREMENT = "decrement" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None, value=1, values=[1]): + super(PatternFlowSnmpv2cVersion, self).__init__() self._parent = parent - self._choice = choice + self._set_property("value", value) + self._set_property("values", values) + if ( + "choice" in self._DEFAULTS + and choice is None + and self._DEFAULTS["choice"] in self._TYPES + ): + getattr(self, self._DEFAULTS["choice"]) + else: + self._set_property("choice", choice) - def __getitem__(self, key): - # type: (str) -> Union[FlowArp, FlowCustom, FlowEthernet, FlowEthernetPause, FlowGre, FlowGtpv1, FlowGtpv2, FlowHeader, FlowIcmp, FlowIcmpv6, FlowIgmpv1, FlowIpv4, FlowIpv6, FlowMpls, FlowPfcPause, FlowPpp, FlowTcp, FlowUdp, FlowVlan, FlowVxlan] - return self._getitem(key) + def set(self, value=None, values=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) - def __iter__(self): - # type: () -> FlowHeaderIter - return self._iter() + @property + def increment(self): + # type: () -> PatternFlowSnmpv2cVersionCounter + """Factory property that returns an instance of the PatternFlowSnmpv2cVersionCounter class - def __next__(self): - # type: () -> FlowHeader - return self._next() + integer counter pattern - def next(self): - # type: () -> FlowHeader - return self._next() + Returns: PatternFlowSnmpv2cVersionCounter + """ + return self._get_property( + "increment", PatternFlowSnmpv2cVersionCounter, self, "increment" + ) - def _instanceOf(self, item): - if not isinstance(item, FlowHeader): - raise Exception("Item is not an instance of FlowHeader") + @property + def decrement(self): + # type: () -> PatternFlowSnmpv2cVersionCounter + """Factory property that returns an instance of the PatternFlowSnmpv2cVersionCounter class - def header(self): - # type: () -> FlowHeaderIter - """Factory method that creates an instance of the FlowHeader class + integer counter pattern - Configuration for all traffic packet headers + Returns: PatternFlowSnmpv2cVersionCounter + """ + return self._get_property( + "decrement", PatternFlowSnmpv2cVersionCounter, self, "decrement" + ) - Returns: FlowHeaderIter + @property + def choice(self): + # type: () -> Union[Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] + """choice getter + + TBD + + Returns: Union[Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] """ - item = FlowHeader(parent=self._parent, choice=self._choice) - self._add(item) - return self + return self._get_property("choice") - def add(self): - # type: () -> FlowHeader - """Add method that creates and returns an instance of the FlowHeader class + @choice.setter + def choice(self, value): + """choice setter - Configuration for all traffic packet headers + TBD - Returns: FlowHeader + value: Union[Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] """ - item = FlowHeader(parent=self._parent, choice=self._choice) - self._add(item) - return item + self._set_property("choice", value) - def custom(self, bytes=None): - # type: (str) -> FlowHeaderIter - """Factory method that creates an instance of the FlowCustom class + @property + def value(self): + # type: () -> int + """value getter - Custom packet header + TBD - Returns: FlowHeaderIter + Returns: int """ - item = FlowHeader() - item.custom - item.choice = "custom" - self._add(item) - return self + return self._get_property("value") - def ethernet(self): - # type: () -> FlowHeaderIter - """Factory method that creates an instance of the FlowEthernet class + @value.setter + def value(self, value): + """value setter - Ethernet packet header + TBD - Returns: FlowHeaderIter + value: int """ - item = FlowHeader() - item.ethernet - item.choice = "ethernet" - self._add(item) - return self + self._set_property("value", value, "value") - def vlan(self): - # type: () -> FlowHeaderIter - """Factory method that creates an instance of the FlowVlan class + @property + def values(self): + # type: () -> List[int] + """values getter - VLAN packet header + TBD - Returns: FlowHeaderIter + Returns: List[int] """ - item = FlowHeader() - item.vlan - item.choice = "vlan" - self._add(item) - return self + return self._get_property("values") - def vxlan(self): - # type: () -> FlowHeaderIter - """Factory method that creates an instance of the FlowVxlan class + @values.setter + def values(self, value): + """values setter - VXLAN packet header + TBD - Returns: FlowHeaderIter + value: List[int] """ - item = FlowHeader() - item.vxlan - item.choice = "vxlan" - self._add(item) - return self + self._set_property("values", value, "values") - def ipv4(self): - # type: () -> FlowHeaderIter - """Factory method that creates an instance of the FlowIpv4 class - IPv4 packet header +class PatternFlowSnmpv2cVersionCounter(OpenApiObject): + __slots__ = "_parent" - Returns: FlowHeaderIter + _TYPES = { + "start": { + "type": int, + "format": "uint32", + "maximum": 255, + }, + "step": { + "type": int, + "format": "uint32", + "maximum": 255, + }, + "count": { + "type": int, + "format": "uint32", + "maximum": 255, + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "start": 1, + "step": 1, + "count": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, start=1, step=1, count=1): + super(PatternFlowSnmpv2cVersionCounter, self).__init__() + self._parent = parent + self._set_property("start", start) + self._set_property("step", step) + self._set_property("count", count) + + def set(self, start=None, step=None, count=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def start(self): + # type: () -> int + """start getter + + TBD + + Returns: int """ - item = FlowHeader() - item.ipv4 - item.choice = "ipv4" - self._add(item) - return self + return self._get_property("start") - def ipv6(self): - # type: () -> FlowHeaderIter - """Factory method that creates an instance of the FlowIpv6 class + @start.setter + def start(self, value): + """start setter - IPv6 packet header + TBD - Returns: FlowHeaderIter + value: int """ - item = FlowHeader() - item.ipv6 - item.choice = "ipv6" - self._add(item) - return self + self._set_property("start", value) - def pfcpause(self): - # type: () -> FlowHeaderIter - """Factory method that creates an instance of the FlowPfcPause class + @property + def step(self): + # type: () -> int + """step getter - IEEE 802.1Qbb PFC Pause packet header. + TBD - Returns: FlowHeaderIter + Returns: int """ - item = FlowHeader() - item.pfcpause - item.choice = "pfcpause" - self._add(item) - return self + return self._get_property("step") - def ethernetpause(self): - # type: () -> FlowHeaderIter - """Factory method that creates an instance of the FlowEthernetPause class + @step.setter + def step(self, value): + """step setter - IEEE 802.3x global ethernet pause packet header + TBD - Returns: FlowHeaderIter + value: int """ - item = FlowHeader() - item.ethernetpause - item.choice = "ethernetpause" - self._add(item) - return self + self._set_property("step", value) - def tcp(self): - # type: () -> FlowHeaderIter - """Factory method that creates an instance of the FlowTcp class + @property + def count(self): + # type: () -> int + """count getter - TCP packet header + TBD - Returns: FlowHeaderIter + Returns: int """ - item = FlowHeader() - item.tcp - item.choice = "tcp" - self._add(item) - return self + return self._get_property("count") - def udp(self): - # type: () -> FlowHeaderIter - """Factory method that creates an instance of the FlowUdp class + @count.setter + def count(self, value): + """count setter - UDP packet header + TBD - Returns: FlowHeaderIter + value: int """ - item = FlowHeader() - item.udp - item.choice = "udp" - self._add(item) - return self + self._set_property("count", value) - def gre(self): - # type: () -> FlowHeaderIter - """Factory method that creates an instance of the FlowGre class - Standard GRE packet header (RFC2784) +class FlowSnmpv2cData(OpenApiObject): + __slots__ = ("_parent", "_choice") - Returns: FlowHeaderIter + _TYPES = { + "choice": { + "type": str, + "enum": [ + "get_request", + "get_next_request", + "response", + "set_request", + "get_bulk_request", + "inform_request", + "snmpv2_trap", + "report", + ], + }, + "get_request": {"type": "FlowSnmpv2cPDU"}, + "get_next_request": {"type": "FlowSnmpv2cPDU"}, + "response": {"type": "FlowSnmpv2cPDU"}, + "set_request": {"type": "FlowSnmpv2cPDU"}, + "get_bulk_request": {"type": "FlowSnmpv2cBulkPDU"}, + "inform_request": {"type": "FlowSnmpv2cPDU"}, + "snmpv2_trap": {"type": "FlowSnmpv2cPDU"}, + "report": {"type": "FlowSnmpv2cPDU"}, + } # type: Dict[str, str] + + _REQUIRED = ("choice",) # type: tuple(str) + + _DEFAULTS = {} # type: Dict[str, Union(type)] + + GET_REQUEST = "get_request" # type: str + GET_NEXT_REQUEST = "get_next_request" # type: str + RESPONSE = "response" # type: str + SET_REQUEST = "set_request" # type: str + GET_BULK_REQUEST = "get_bulk_request" # type: str + INFORM_REQUEST = "inform_request" # type: str + SNMPV2_TRAP = "snmpv2_trap" # type: str + REPORT = "report" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None): + super(FlowSnmpv2cData, self).__init__() + self._parent = parent + if ( + "choice" in self._DEFAULTS + and choice is None + and self._DEFAULTS["choice"] in self._TYPES + ): + getattr(self, self._DEFAULTS["choice"]) + else: + self._set_property("choice", choice) + + @property + def get_request(self): + # type: () -> FlowSnmpv2cPDU + """Factory property that returns an instance of the FlowSnmpv2cPDU class + + This contains the body of the SNMPv2C PDU. + + Returns: FlowSnmpv2cPDU """ - item = FlowHeader() - item.gre - item.choice = "gre" - self._add(item) - return self + return self._get_property("get_request", FlowSnmpv2cPDU, self, "get_request") - def gtpv1(self): - # type: () -> FlowHeaderIter - """Factory method that creates an instance of the FlowGtpv1 class + @property + def get_next_request(self): + # type: () -> FlowSnmpv2cPDU + """Factory property that returns an instance of the FlowSnmpv2cPDU class - GTPv1 packet header + This contains the body of the SNMPv2C PDU. - Returns: FlowHeaderIter + Returns: FlowSnmpv2cPDU """ - item = FlowHeader() - item.gtpv1 - item.choice = "gtpv1" - self._add(item) - return self + return self._get_property( + "get_next_request", FlowSnmpv2cPDU, self, "get_next_request" + ) - def gtpv2(self): - # type: () -> FlowHeaderIter - """Factory method that creates an instance of the FlowGtpv2 class + @property + def response(self): + # type: () -> FlowSnmpv2cPDU + """Factory property that returns an instance of the FlowSnmpv2cPDU class - GTPv2 packet header + This contains the body of the SNMPv2C PDU. - Returns: FlowHeaderIter + Returns: FlowSnmpv2cPDU """ - item = FlowHeader() - item.gtpv2 - item.choice = "gtpv2" - self._add(item) - return self + return self._get_property("response", FlowSnmpv2cPDU, self, "response") - def arp(self): - # type: () -> FlowHeaderIter - """Factory method that creates an instance of the FlowArp class + @property + def set_request(self): + # type: () -> FlowSnmpv2cPDU + """Factory property that returns an instance of the FlowSnmpv2cPDU class - ARP packet header + This contains the body of the SNMPv2C PDU. - Returns: FlowHeaderIter + Returns: FlowSnmpv2cPDU """ - item = FlowHeader() - item.arp - item.choice = "arp" - self._add(item) - return self + return self._get_property("set_request", FlowSnmpv2cPDU, self, "set_request") - def icmp(self): - # type: () -> FlowHeaderIter - """Factory method that creates an instance of the FlowIcmp class + @property + def get_bulk_request(self): + # type: () -> FlowSnmpv2cBulkPDU + """Factory property that returns an instance of the FlowSnmpv2cBulkPDU class - ICMP packet header + The purpose of the GetBulkRequest-PDU is to request the transfer of potentially large amount of data, including, but not limited to, the efficient and rapid retrieval of large tables. - Returns: FlowHeaderIter + Returns: FlowSnmpv2cBulkPDU """ - item = FlowHeader() - item.icmp - item.choice = "icmp" - self._add(item) - return self + return self._get_property( + "get_bulk_request", FlowSnmpv2cBulkPDU, self, "get_bulk_request" + ) - def icmpv6(self): - # type: () -> FlowHeaderIter - """Factory method that creates an instance of the FlowIcmpv6 class + @property + def inform_request(self): + # type: () -> FlowSnmpv2cPDU + """Factory property that returns an instance of the FlowSnmpv2cPDU class - ICMPv6 packet header + This contains the body of the SNMPv2C PDU. - Returns: FlowHeaderIter + Returns: FlowSnmpv2cPDU """ - item = FlowHeader() - item.icmpv6 - item.choice = "icmpv6" - self._add(item) - return self + return self._get_property( + "inform_request", FlowSnmpv2cPDU, self, "inform_request" + ) - def ppp(self): - # type: () -> FlowHeaderIter - """Factory method that creates an instance of the FlowPpp class + @property + def snmpv2_trap(self): + # type: () -> FlowSnmpv2cPDU + """Factory property that returns an instance of the FlowSnmpv2cPDU class - PPP packet header + This contains the body of the SNMPv2C PDU. - Returns: FlowHeaderIter + Returns: FlowSnmpv2cPDU """ - item = FlowHeader() - item.ppp - item.choice = "ppp" - self._add(item) - return self + return self._get_property("snmpv2_trap", FlowSnmpv2cPDU, self, "snmpv2_trap") - def igmpv1(self): - # type: () -> FlowHeaderIter - """Factory method that creates an instance of the FlowIgmpv1 class + @property + def report(self): + # type: () -> FlowSnmpv2cPDU + """Factory property that returns an instance of the FlowSnmpv2cPDU class - IGMPv1 packet header + This contains the body of the SNMPv2C PDU. - Returns: FlowHeaderIter + Returns: FlowSnmpv2cPDU """ - item = FlowHeader() - item.igmpv1 - item.choice = "igmpv1" - self._add(item) - return self + return self._get_property("report", FlowSnmpv2cPDU, self, "report") - def mpls(self): - # type: () -> FlowHeaderIter - """Factory method that creates an instance of the FlowMpls class + @property + def choice(self): + # type: () -> Union[Literal["get_bulk_request"], Literal["get_next_request"], Literal["get_request"], Literal["inform_request"], Literal["report"], Literal["response"], Literal["set_request"], Literal["snmpv2_trap"]] + """choice getter - MPLS packet header; When configuring multiple such headers, the count shall not exceed 20. + TBD - Returns: FlowHeaderIter + Returns: Union[Literal["get_bulk_request"], Literal["get_next_request"], Literal["get_request"], Literal["inform_request"], Literal["report"], Literal["response"], Literal["set_request"], Literal["snmpv2_trap"]] + """ + return self._get_property("choice") + + @choice.setter + def choice(self, value): + """choice setter + + TBD + + value: Union[Literal["get_bulk_request"], Literal["get_next_request"], Literal["get_request"], Literal["inform_request"], Literal["report"], Literal["response"], Literal["set_request"], Literal["snmpv2_trap"]] + """ + if value is None: + raise TypeError("Cannot set required property choice as None") + self._set_property("choice", value) + + +class FlowSnmpv2cPDU(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "request_id": {"type": "PatternFlowSnmpv2cPDURequestId"}, + "error_status": { + "type": str, + "enum": [ + "authorization_error", + "bad_value", + "commit_failed", + "gen_err", + "inconsistent_name", + "inconsistent_value", + "no_access", + "no_creation", + "no_error", + "no_such_name", + "not_writable", + "read_only", + "resource_unavailable", + "too_big", + "undo_failed", + "wrong_encoding", + "wrong_length", + "wrong_type", + "wrong_value", + ], + }, + "error_index": {"type": "PatternFlowSnmpv2cPDUErrorIndex"}, + "variable_bindings": {"type": "FlowSnmpv2cVariableBindingIter"}, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "error_status": "no_error", + } # type: Dict[str, Union(type)] + + AUTHORIZATION_ERROR = "authorization_error" # type: str + BAD_VALUE = "bad_value" # type: str + COMMIT_FAILED = "commit_failed" # type: str + GEN_ERR = "gen_err" # type: str + INCONSISTENT_NAME = "inconsistent_name" # type: str + INCONSISTENT_VALUE = "inconsistent_value" # type: str + NO_ACCESS = "no_access" # type: str + NO_CREATION = "no_creation" # type: str + NO_ERROR = "no_error" # type: str + NO_SUCH_NAME = "no_such_name" # type: str + NOT_WRITABLE = "not_writable" # type: str + READ_ONLY = "read_only" # type: str + RESOURCE_UNAVAILABLE = "resource_unavailable" # type: str + TOO_BIG = "too_big" # type: str + UNDO_FAILED = "undo_failed" # type: str + WRONG_ENCODING = "wrong_encoding" # type: str + WRONG_LENGTH = "wrong_length" # type: str + WRONG_TYPE = "wrong_type" # type: str + WRONG_VALUE = "wrong_value" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, error_status="no_error"): + super(FlowSnmpv2cPDU, self).__init__() + self._parent = parent + self._set_property("error_status", error_status) + + def set(self, error_status=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def request_id(self): + # type: () -> PatternFlowSnmpv2cPDURequestId + """request_id getter + + Identifies particular SNMP request. This index is echoed back in the response from the SNMP agent, allowing the SNMP manager to match an incoming response to the appropriate request.. - Encoding of this field follows ASN.1 X.690(section 8.3) specification.. Refer: http://www.itu.int/ITU-T/asn1/Identifies particular SNMP request. This index is echoed back in the response from the SNMP agent, allowing the SNMP manager to match an incoming response to the appropriate request.. - Encoding of this field follows ASN.1 X.690(section 8.3) specification.. Refer: http://www.itu.int/ITU-T/asn1/Identifies particular SNMP request. This index is echoed back in the response from the SNMP agent, allowing the SNMP manager to match an incoming response to the appropriate request.. - Encoding of this field follows ASN.1 X.690(section 8.3) specification.. Refer: http://www.itu.int/ITU-T/asn1/Identifies particular SNMP request. This index is echoed back in the response from the SNMP agent, allowing the SNMP manager to match an incoming response to the appropriate request.. - Encoding of this field follows ASN.1 X.690(section 8.3) specification.. Refer: http://www.itu.int/ITU-T/asn1/Identifies particular SNMP request. This index is echoed back in the response from the SNMP agent, allowing the SNMP manager to match an incoming response to the appropriate request.. - Encoding of this field follows ASN.1 X.690(section 8.3) specification.. Refer: http://www.itu.int/ITU-T/asn1/Identifies particular SNMP request. This index is echoed back in the response from the SNMP agent, allowing the SNMP manager to match an incoming response to the appropriate request.. - Encoding of this field follows ASN.1 X.690(section 8.3) specification.. Refer: http://www.itu.int/ITU-T/asn1/Identifies particular SNMP request. This index is echoed back in the response from the SNMP agent, allowing the SNMP manager to match an incoming response to the appropriate request.. - Encoding of this field follows ASN.1 X.690(section 8.3) specification.. Refer: http://www.itu.int/ITU-T/asn1/Identifies particular SNMP request. This index is echoed back in the response from the SNMP agent, allowing the SNMP manager to match an incoming response to the appropriate request.. - Encoding of this field follows ASN.1 X.690(section 8.3) specification.. Refer: http://www.itu.int/ITU-T/asn1/Identifies particular SNMP request. This index is echoed back in the response from the SNMP agent, allowing the SNMP manager to match an incoming response to the appropriate request.. - Encoding of this field follows ASN.1 X.690(section 8.3) specification.. Refer: http://www.itu.int/ITU-T/asn1/Identifies particular SNMP request. This index is echoed back in the response from the SNMP agent, allowing the SNMP manager to match an incoming response to the appropriate request.. - Encoding of this field follows ASN.1 X.690(section 8.3) specification.. Refer: http://www.itu.int/ITU-T/asn1/ + + Returns: PatternFlowSnmpv2cPDURequestId + """ + return self._get_property("request_id", PatternFlowSnmpv2cPDURequestId) + + @property + def error_status(self): + # type: () -> Union[Literal["authorization_error"], Literal["bad_value"], Literal["commit_failed"], Literal["gen_err"], Literal["inconsistent_name"], Literal["inconsistent_value"], Literal["no_access"], Literal["no_creation"], Literal["no_error"], Literal["no_such_name"], Literal["not_writable"], Literal["read_only"], Literal["resource_unavailable"], Literal["too_big"], Literal["undo_failed"], Literal["wrong_encoding"], Literal["wrong_length"], Literal["wrong_type"], Literal["wrong_value"]] + """error_status getter + + The SNMP agent places an error code in this field in the response message if an error occurred processing the request. + + Returns: Union[Literal["authorization_error"], Literal["bad_value"], Literal["commit_failed"], Literal["gen_err"], Literal["inconsistent_name"], Literal["inconsistent_value"], Literal["no_access"], Literal["no_creation"], Literal["no_error"], Literal["no_such_name"], Literal["not_writable"], Literal["read_only"], Literal["resource_unavailable"], Literal["too_big"], Literal["undo_failed"], Literal["wrong_encoding"], Literal["wrong_length"], Literal["wrong_type"], Literal["wrong_value"]] + """ + return self._get_property("error_status") + + @error_status.setter + def error_status(self, value): + """error_status setter + + The SNMP agent places an error code in this field in the response message if an error occurred processing the request. + + value: Union[Literal["authorization_error"], Literal["bad_value"], Literal["commit_failed"], Literal["gen_err"], Literal["inconsistent_name"], Literal["inconsistent_value"], Literal["no_access"], Literal["no_creation"], Literal["no_error"], Literal["no_such_name"], Literal["not_writable"], Literal["read_only"], Literal["resource_unavailable"], Literal["too_big"], Literal["undo_failed"], Literal["wrong_encoding"], Literal["wrong_length"], Literal["wrong_type"], Literal["wrong_value"]] + """ + self._set_property("error_status", value) + + @property + def error_index(self): + # type: () -> PatternFlowSnmpv2cPDUErrorIndex + """error_index getter + + When Error Status is non-zero, this field contains pointer that specifies which object generated the error. Always zero in request.When Error Status is non-zero, this field contains pointer that specifies which object generated the error. Always zero in request.When Error Status is non-zero, this field contains pointer that specifies which object generated the error. Always zero in request.When Error Status is non-zero, this field contains pointer that specifies which object generated the error. Always zero in request.When Error Status is non-zero, this field contains pointer that specifies which object generated the error. Always zero in request.When Error Status is non-zero, this field contains pointer that specifies which object generated the error. Always zero in request.When Error Status is non-zero, this field contains pointer that specifies which object generated the error. Always zero in request.When Error Status is non-zero, this field contains pointer that specifies which object generated the error. Always zero in request.When Error Status is non-zero, this field contains pointer that specifies which object generated the error. Always zero in request.When Error Status is non-zero, this field contains pointer that specifies which object generated the error. Always zero in request. + + Returns: PatternFlowSnmpv2cPDUErrorIndex + """ + return self._get_property("error_index", PatternFlowSnmpv2cPDUErrorIndex) + + @property + def variable_bindings(self): + # type: () -> FlowSnmpv2cVariableBindingIter + """variable_bindings getter + + A Sequence of variable_bindings. + + Returns: FlowSnmpv2cVariableBindingIter + """ + return self._get_property( + "variable_bindings", + FlowSnmpv2cVariableBindingIter, + self._parent, + self._choice, + ) + + +class PatternFlowSnmpv2cPDURequestId(OpenApiObject): + __slots__ = ("_parent", "_choice") + + _TYPES = { + "choice": { + "type": str, + "enum": [ + "value", + "values", + "increment", + "decrement", + ], + }, + "value": { + "type": int, + "format": "int32", + }, + "values": { + "type": list, + "itemtype": int, + "itemformat": "int32", + }, + "increment": {"type": "PatternFlowSnmpv2cPDURequestIdCounter"}, + "decrement": {"type": "PatternFlowSnmpv2cPDURequestIdCounter"}, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "value", + "value": 0, + "values": [0], + } # type: Dict[str, Union(type)] + + VALUE = "value" # type: str + VALUES = "values" # type: str + INCREMENT = "increment" # type: str + DECREMENT = "decrement" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None, value=0, values=[0]): + super(PatternFlowSnmpv2cPDURequestId, self).__init__() + self._parent = parent + self._set_property("value", value) + self._set_property("values", values) + if ( + "choice" in self._DEFAULTS + and choice is None + and self._DEFAULTS["choice"] in self._TYPES + ): + getattr(self, self._DEFAULTS["choice"]) + else: + self._set_property("choice", choice) + + def set(self, value=None, values=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def increment(self): + # type: () -> PatternFlowSnmpv2cPDURequestIdCounter + """Factory property that returns an instance of the PatternFlowSnmpv2cPDURequestIdCounter class + + integer counter pattern + + Returns: PatternFlowSnmpv2cPDURequestIdCounter + """ + return self._get_property( + "increment", PatternFlowSnmpv2cPDURequestIdCounter, self, "increment" + ) + + @property + def decrement(self): + # type: () -> PatternFlowSnmpv2cPDURequestIdCounter + """Factory property that returns an instance of the PatternFlowSnmpv2cPDURequestIdCounter class + + integer counter pattern + + Returns: PatternFlowSnmpv2cPDURequestIdCounter + """ + return self._get_property( + "decrement", PatternFlowSnmpv2cPDURequestIdCounter, self, "decrement" + ) + + @property + def choice(self): + # type: () -> Union[Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] + """choice getter + + TBD + + Returns: Union[Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] + """ + return self._get_property("choice") + + @choice.setter + def choice(self, value): + """choice setter + + TBD + + value: Union[Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] + """ + self._set_property("choice", value) + + @property + def value(self): + # type: () -> int + """value getter + + TBD + + Returns: int + """ + return self._get_property("value") + + @value.setter + def value(self, value): + """value setter + + TBD + + value: int + """ + self._set_property("value", value, "value") + + @property + def values(self): + # type: () -> List[int] + """values getter + + TBD + + Returns: List[int] + """ + return self._get_property("values") + + @values.setter + def values(self, value): + """values setter + + TBD + + value: List[int] + """ + self._set_property("values", value, "values") + + +class PatternFlowSnmpv2cPDURequestIdCounter(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "start": { + "type": int, + "format": "int32", + }, + "step": { + "type": int, + "format": "int32", + }, + "count": { + "type": int, + "format": "int32", + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "start": 0, + "step": 1, + "count": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, start=0, step=1, count=1): + super(PatternFlowSnmpv2cPDURequestIdCounter, self).__init__() + self._parent = parent + self._set_property("start", start) + self._set_property("step", step) + self._set_property("count", count) + + def set(self, start=None, step=None, count=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def start(self): + # type: () -> int + """start getter + + TBD + + Returns: int + """ + return self._get_property("start") + + @start.setter + def start(self, value): + """start setter + + TBD + + value: int + """ + self._set_property("start", value) + + @property + def step(self): + # type: () -> int + """step getter + + TBD + + Returns: int + """ + return self._get_property("step") + + @step.setter + def step(self, value): + """step setter + + TBD + + value: int + """ + self._set_property("step", value) + + @property + def count(self): + # type: () -> int + """count getter + + TBD + + Returns: int + """ + return self._get_property("count") + + @count.setter + def count(self, value): + """count setter + + TBD + + value: int + """ + self._set_property("count", value) + + +class PatternFlowSnmpv2cPDUErrorIndex(OpenApiObject): + __slots__ = ("_parent", "_choice") + + _TYPES = { + "choice": { + "type": str, + "enum": [ + "value", + "values", + "increment", + "decrement", + ], + }, + "value": { + "type": int, + "format": "uint32", + }, + "values": { + "type": list, + "itemtype": int, + "itemformat": "uint32", + }, + "increment": {"type": "PatternFlowSnmpv2cPDUErrorIndexCounter"}, + "decrement": {"type": "PatternFlowSnmpv2cPDUErrorIndexCounter"}, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "value", + "value": 0, + "values": [0], + } # type: Dict[str, Union(type)] + + VALUE = "value" # type: str + VALUES = "values" # type: str + INCREMENT = "increment" # type: str + DECREMENT = "decrement" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None, value=0, values=[0]): + super(PatternFlowSnmpv2cPDUErrorIndex, self).__init__() + self._parent = parent + self._set_property("value", value) + self._set_property("values", values) + if ( + "choice" in self._DEFAULTS + and choice is None + and self._DEFAULTS["choice"] in self._TYPES + ): + getattr(self, self._DEFAULTS["choice"]) + else: + self._set_property("choice", choice) + + def set(self, value=None, values=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def increment(self): + # type: () -> PatternFlowSnmpv2cPDUErrorIndexCounter + """Factory property that returns an instance of the PatternFlowSnmpv2cPDUErrorIndexCounter class + + integer counter pattern + + Returns: PatternFlowSnmpv2cPDUErrorIndexCounter + """ + return self._get_property( + "increment", PatternFlowSnmpv2cPDUErrorIndexCounter, self, "increment" + ) + + @property + def decrement(self): + # type: () -> PatternFlowSnmpv2cPDUErrorIndexCounter + """Factory property that returns an instance of the PatternFlowSnmpv2cPDUErrorIndexCounter class + + integer counter pattern + + Returns: PatternFlowSnmpv2cPDUErrorIndexCounter + """ + return self._get_property( + "decrement", PatternFlowSnmpv2cPDUErrorIndexCounter, self, "decrement" + ) + + @property + def choice(self): + # type: () -> Union[Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] + """choice getter + + TBD + + Returns: Union[Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] + """ + return self._get_property("choice") + + @choice.setter + def choice(self, value): + """choice setter + + TBD + + value: Union[Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] + """ + self._set_property("choice", value) + + @property + def value(self): + # type: () -> int + """value getter + + TBD + + Returns: int + """ + return self._get_property("value") + + @value.setter + def value(self, value): + """value setter + + TBD + + value: int + """ + self._set_property("value", value, "value") + + @property + def values(self): + # type: () -> List[int] + """values getter + + TBD + + Returns: List[int] + """ + return self._get_property("values") + + @values.setter + def values(self, value): + """values setter + + TBD + + value: List[int] + """ + self._set_property("values", value, "values") + + +class PatternFlowSnmpv2cPDUErrorIndexCounter(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "start": { + "type": int, + "format": "uint32", + }, + "step": { + "type": int, + "format": "uint32", + }, + "count": { + "type": int, + "format": "uint32", + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "start": 0, + "step": 1, + "count": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, start=0, step=1, count=1): + super(PatternFlowSnmpv2cPDUErrorIndexCounter, self).__init__() + self._parent = parent + self._set_property("start", start) + self._set_property("step", step) + self._set_property("count", count) + + def set(self, start=None, step=None, count=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def start(self): + # type: () -> int + """start getter + + TBD + + Returns: int + """ + return self._get_property("start") + + @start.setter + def start(self, value): + """start setter + + TBD + + value: int + """ + self._set_property("start", value) + + @property + def step(self): + # type: () -> int + """step getter + + TBD + + Returns: int + """ + return self._get_property("step") + + @step.setter + def step(self, value): + """step setter + + TBD + + value: int + """ + self._set_property("step", value) + + @property + def count(self): + # type: () -> int + """count getter + + TBD + + Returns: int + """ + return self._get_property("count") + + @count.setter + def count(self, value): + """count setter + + TBD + + value: int + """ + self._set_property("count", value) + + +class FlowSnmpv2cVariableBinding(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "object_identifier": { + "type": str, + "format": "oid", + }, + "value": {"type": "FlowSnmpv2cVariableBindingValue"}, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "object_identifier": "0.1", + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, object_identifier="0.1"): + super(FlowSnmpv2cVariableBinding, self).__init__() + self._parent = parent + self._set_property("object_identifier", object_identifier) + + def set(self, object_identifier=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def object_identifier(self): + # type: () -> str + """object_identifier getter + + The Object Identifier points to particular parameter in the SNMP agent. - Encoding of this field follows RFC2578(section 3.5) and ASN.1 X.690(section 8.1.3.6) specification.. Refer: http://www.itu.int/ITU-T/asn1/. According to BER, the first two numbers of any OID (x.y) are encoded as one value using the formula (40*x)+y. Example, the first two numbers of an SNMP OID 1.3... are encoded as 43 or 0x2B, because (40*1)+3 43. - After the first two numbers are encoded, the subsequent numbers in the OID are each encoded as byte. - However, special rule is required for large numbers because one byte can only represent number from 0-127. - The rule for large numbers states that only the lower bits in the byte are used for holding the value (0-127). - The highest order bit(8th) is used as flag to indicate that this number spans more than one byte. Therefore, any number over 127 must be encoded using more than one byte. - Example, the number 2680 in the OID '1.3.6.1.4.1.2680.1.2.7.3.2.0' cannot be encoded using single byte. According to this rule, the number 2680 must be encoded as 0x94 0x78. Since the most significant bit is set in the first byte (0x94), it indicates that number spans to the next byte.. Since the most significant bit is not set in the next byte (0x78), it indicates that the number ends at the second byte.. The value is derived by appending bits from each of the concatenated bytes i.e (0x14 *128^1) (0x78 128^0) 2680. + + Returns: str + """ + return self._get_property("object_identifier") + + @object_identifier.setter + def object_identifier(self, value): + """object_identifier setter + + The Object Identifier points to particular parameter in the SNMP agent. - Encoding of this field follows RFC2578(section 3.5) and ASN.1 X.690(section 8.1.3.6) specification.. Refer: http://www.itu.int/ITU-T/asn1/. According to BER, the first two numbers of any OID (x.y) are encoded as one value using the formula (40*x)+y. Example, the first two numbers of an SNMP OID 1.3... are encoded as 43 or 0x2B, because (40*1)+3 43. - After the first two numbers are encoded, the subsequent numbers in the OID are each encoded as byte. - However, special rule is required for large numbers because one byte can only represent number from 0-127. - The rule for large numbers states that only the lower bits in the byte are used for holding the value (0-127). - The highest order bit(8th) is used as flag to indicate that this number spans more than one byte. Therefore, any number over 127 must be encoded using more than one byte. - Example, the number 2680 in the OID '1.3.6.1.4.1.2680.1.2.7.3.2.0' cannot be encoded using single byte. According to this rule, the number 2680 must be encoded as 0x94 0x78. Since the most significant bit is set in the first byte (0x94), it indicates that number spans to the next byte.. Since the most significant bit is not set in the next byte (0x78), it indicates that the number ends at the second byte.. The value is derived by appending bits from each of the concatenated bytes i.e (0x14 *128^1) (0x78 128^0) 2680. + + value: str + """ + self._set_property("object_identifier", value) + + @property + def value(self): + # type: () -> FlowSnmpv2cVariableBindingValue + """value getter + + The value for the object_identifier as per RFC2578.The value for the object_identifier as per RFC2578.The value for the object_identifier as per RFC2578. + + Returns: FlowSnmpv2cVariableBindingValue + """ + return self._get_property("value", FlowSnmpv2cVariableBindingValue) + + +class FlowSnmpv2cVariableBindingValue(OpenApiObject): + __slots__ = ("_parent", "_choice") + + _TYPES = { + "choice": { + "type": str, + "enum": [ + "no_value", + "integer_value", + "string_value", + "object_identifier_value", + "ip_address_value", + "counter_value", + "timeticks_value", + "arbitrary_value", + "big_counter_value", + "unsigned_integer_value", + ], + }, + "integer_value": {"type": "PatternFlowSnmpv2cVariableBindingValueIntegerValue"}, + "string_value": { + "type": str, + "maxLength": 10000, + }, + "object_identifier_value": { + "type": str, + "format": "oid", + }, + "ip_address_value": { + "type": "PatternFlowSnmpv2cVariableBindingValueIpAddressValue" + }, + "counter_value": {"type": "PatternFlowSnmpv2cVariableBindingValueCounterValue"}, + "timeticks_value": { + "type": "PatternFlowSnmpv2cVariableBindingValueTimeticksValue" + }, + "arbitrary_value": { + "type": str, + "format": "hex", + "maxLength": 10000, + }, + "big_counter_value": { + "type": "PatternFlowSnmpv2cVariableBindingValueBigCounterValue" + }, + "unsigned_integer_value": { + "type": "PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValue" + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "no_value", + "string_value": "string", + "object_identifier_value": "0.1", + "arbitrary_value": "00", + } # type: Dict[str, Union(type)] + + NO_VALUE = "no_value" # type: str + INTEGER_VALUE = "integer_value" # type: str + STRING_VALUE = "string_value" # type: str + OBJECT_IDENTIFIER_VALUE = "object_identifier_value" # type: str + IP_ADDRESS_VALUE = "ip_address_value" # type: str + COUNTER_VALUE = "counter_value" # type: str + TIMETICKS_VALUE = "timeticks_value" # type: str + ARBITRARY_VALUE = "arbitrary_value" # type: str + BIG_COUNTER_VALUE = "big_counter_value" # type: str + UNSIGNED_INTEGER_VALUE = "unsigned_integer_value" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__( + self, + parent=None, + choice=None, + string_value="string", + object_identifier_value="0.1", + arbitrary_value="00", + ): + super(FlowSnmpv2cVariableBindingValue, self).__init__() + self._parent = parent + self._set_property("string_value", string_value) + self._set_property("object_identifier_value", object_identifier_value) + self._set_property("arbitrary_value", arbitrary_value) + if ( + "choice" in self._DEFAULTS + and choice is None + and self._DEFAULTS["choice"] in self._TYPES + ): + getattr(self, self._DEFAULTS["choice"]) + else: + self._set_property("choice", choice) + + def set( + self, string_value=None, object_identifier_value=None, arbitrary_value=None + ): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def integer_value(self): + # type: () -> PatternFlowSnmpv2cVariableBindingValueIntegerValue + """Factory property that returns an instance of the PatternFlowSnmpv2cVariableBindingValueIntegerValue class + + Integer value returned for the requested OID. + + Returns: PatternFlowSnmpv2cVariableBindingValueIntegerValue + """ + return self._get_property( + "integer_value", + PatternFlowSnmpv2cVariableBindingValueIntegerValue, + self, + "integer_value", + ) + + @property + def ip_address_value(self): + # type: () -> PatternFlowSnmpv2cVariableBindingValueIpAddressValue + """Factory property that returns an instance of the PatternFlowSnmpv2cVariableBindingValueIpAddressValue class + + IPv4 address returned for the requested OID. + + Returns: PatternFlowSnmpv2cVariableBindingValueIpAddressValue + """ + return self._get_property( + "ip_address_value", + PatternFlowSnmpv2cVariableBindingValueIpAddressValue, + self, + "ip_address_value", + ) + + @property + def counter_value(self): + # type: () -> PatternFlowSnmpv2cVariableBindingValueCounterValue + """Factory property that returns an instance of the PatternFlowSnmpv2cVariableBindingValueCounterValue class + + Counter returned for the requested OID. + + Returns: PatternFlowSnmpv2cVariableBindingValueCounterValue + """ + return self._get_property( + "counter_value", + PatternFlowSnmpv2cVariableBindingValueCounterValue, + self, + "counter_value", + ) + + @property + def timeticks_value(self): + # type: () -> PatternFlowSnmpv2cVariableBindingValueTimeticksValue + """Factory property that returns an instance of the PatternFlowSnmpv2cVariableBindingValueTimeticksValue class + + Timeticks returned for the requested OID. + + Returns: PatternFlowSnmpv2cVariableBindingValueTimeticksValue + """ + return self._get_property( + "timeticks_value", + PatternFlowSnmpv2cVariableBindingValueTimeticksValue, + self, + "timeticks_value", + ) + + @property + def big_counter_value(self): + # type: () -> PatternFlowSnmpv2cVariableBindingValueBigCounterValue + """Factory property that returns an instance of the PatternFlowSnmpv2cVariableBindingValueBigCounterValue class + + Big counter returned for the requested OID. + + Returns: PatternFlowSnmpv2cVariableBindingValueBigCounterValue + """ + return self._get_property( + "big_counter_value", + PatternFlowSnmpv2cVariableBindingValueBigCounterValue, + self, + "big_counter_value", + ) + + @property + def unsigned_integer_value(self): + # type: () -> PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValue + """Factory property that returns an instance of the PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValue class + + Unsigned integer value returned for the requested OID. + + Returns: PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValue + """ + return self._get_property( + "unsigned_integer_value", + PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValue, + self, + "unsigned_integer_value", + ) + + @property + def choice(self): + # type: () -> Union[Literal["arbitrary_value"], Literal["big_counter_value"], Literal["counter_value"], Literal["integer_value"], Literal["ip_address_value"], Literal["no_value"], Literal["object_identifier_value"], Literal["string_value"], Literal["timeticks_value"], Literal["unsigned_integer_value"]] + """choice getter + + TBD + + Returns: Union[Literal["arbitrary_value"], Literal["big_counter_value"], Literal["counter_value"], Literal["integer_value"], Literal["ip_address_value"], Literal["no_value"], Literal["object_identifier_value"], Literal["string_value"], Literal["timeticks_value"], Literal["unsigned_integer_value"]] + """ + return self._get_property("choice") + + @choice.setter + def choice(self, value): + """choice setter + + TBD + + value: Union[Literal["arbitrary_value"], Literal["big_counter_value"], Literal["counter_value"], Literal["integer_value"], Literal["ip_address_value"], Literal["no_value"], Literal["object_identifier_value"], Literal["string_value"], Literal["timeticks_value"], Literal["unsigned_integer_value"]] + """ + self._set_property("choice", value) + + @property + def string_value(self): + # type: () -> str + """string_value getter + + It contains the hex bytes of the value to be sent. As of now it is restricted to 5000 bytes. + + Returns: str + """ + return self._get_property("string_value") + + @string_value.setter + def string_value(self, value): + """string_value setter + + It contains the hex bytes of the value to be sent. As of now it is restricted to 5000 bytes. + + value: str + """ + self._set_property("string_value", value, "string_value") + + @property + def object_identifier_value(self): + # type: () -> str + """object_identifier_value getter + + The Object Identifier points to particular parameter in the SNMP agent. - Encoding of this field follows RFC2578(section 3.5) and ASN.1 X.690(section 8.1.3.6) specification.. Refer: http://www.itu.int/ITU-T/asn1/. According to BER, the first two numbers of any OID (x.y) are encoded as one value using the formula (40*x)+y. Example, the first two numbers of an SNMP OID 1.3... are encoded as 43 or 0x2B, because (40*1)+3 43. - After the first two numbers are encoded, the subsequent numbers in the OID are each encoded as byte. - However, special rule is required for large numbers because one byte can only represent number from 0-127. - The rule for large numbers states that only the lower bits in the byte are used for holding the value (0-127). - The highest order bit(8th) is used as flag to indicate that this number spans more than one byte. Therefore, any number over 127 must be encoded using more than one byte. - Example, the number 2680 in the OID '1.3.6.1.4.1.2680.1.2.7.3.2.0' cannot be encoded using single byte. According to this rule, the number 2680 must be encoded as 0x94 0x78. Since the most significant bit is set in the first byte (0x94), it indicates that number spans to the next byte.. Since the most significant bit is not set in the next byte (0x78), it indicates that the number ends at the second byte.. The value is derived by appending bits from each of the concatenated bytes i.e (0x14 *128^1) (0x78 128^0) 2680. + + Returns: str + """ + return self._get_property("object_identifier_value") + + @object_identifier_value.setter + def object_identifier_value(self, value): + """object_identifier_value setter + + The Object Identifier points to particular parameter in the SNMP agent. - Encoding of this field follows RFC2578(section 3.5) and ASN.1 X.690(section 8.1.3.6) specification.. Refer: http://www.itu.int/ITU-T/asn1/. According to BER, the first two numbers of any OID (x.y) are encoded as one value using the formula (40*x)+y. Example, the first two numbers of an SNMP OID 1.3... are encoded as 43 or 0x2B, because (40*1)+3 43. - After the first two numbers are encoded, the subsequent numbers in the OID are each encoded as byte. - However, special rule is required for large numbers because one byte can only represent number from 0-127. - The rule for large numbers states that only the lower bits in the byte are used for holding the value (0-127). - The highest order bit(8th) is used as flag to indicate that this number spans more than one byte. Therefore, any number over 127 must be encoded using more than one byte. - Example, the number 2680 in the OID '1.3.6.1.4.1.2680.1.2.7.3.2.0' cannot be encoded using single byte. According to this rule, the number 2680 must be encoded as 0x94 0x78. Since the most significant bit is set in the first byte (0x94), it indicates that number spans to the next byte.. Since the most significant bit is not set in the next byte (0x78), it indicates that the number ends at the second byte.. The value is derived by appending bits from each of the concatenated bytes i.e (0x14 *128^1) (0x78 128^0) 2680. + + value: str + """ + self._set_property("object_identifier_value", value, "object_identifier_value") + + @property + def arbitrary_value(self): + # type: () -> str + """arbitrary_value getter + + It contains the hex bytes of the value to be sent. As of now it is restricted to 5000 bytes. + + Returns: str + """ + return self._get_property("arbitrary_value") + + @arbitrary_value.setter + def arbitrary_value(self, value): + """arbitrary_value setter + + It contains the hex bytes of the value to be sent. As of now it is restricted to 5000 bytes. + + value: str + """ + self._set_property("arbitrary_value", value, "arbitrary_value") + + +class PatternFlowSnmpv2cVariableBindingValueIntegerValue(OpenApiObject): + __slots__ = ("_parent", "_choice") + + _TYPES = { + "choice": { + "type": str, + "enum": [ + "value", + "values", + "increment", + "decrement", + ], + }, + "value": { + "type": int, + "format": "int32", + }, + "values": { + "type": list, + "itemtype": int, + "itemformat": "int32", + }, + "increment": { + "type": "PatternFlowSnmpv2cVariableBindingValueIntegerValueCounter" + }, + "decrement": { + "type": "PatternFlowSnmpv2cVariableBindingValueIntegerValueCounter" + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "value", + "value": 0, + "values": [0], + } # type: Dict[str, Union(type)] + + VALUE = "value" # type: str + VALUES = "values" # type: str + INCREMENT = "increment" # type: str + DECREMENT = "decrement" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None, value=0, values=[0]): + super(PatternFlowSnmpv2cVariableBindingValueIntegerValue, self).__init__() + self._parent = parent + self._set_property("value", value) + self._set_property("values", values) + if ( + "choice" in self._DEFAULTS + and choice is None + and self._DEFAULTS["choice"] in self._TYPES + ): + getattr(self, self._DEFAULTS["choice"]) + else: + self._set_property("choice", choice) + + def set(self, value=None, values=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def increment(self): + # type: () -> PatternFlowSnmpv2cVariableBindingValueIntegerValueCounter + """Factory property that returns an instance of the PatternFlowSnmpv2cVariableBindingValueIntegerValueCounter class + + integer counter pattern + + Returns: PatternFlowSnmpv2cVariableBindingValueIntegerValueCounter + """ + return self._get_property( + "increment", + PatternFlowSnmpv2cVariableBindingValueIntegerValueCounter, + self, + "increment", + ) + + @property + def decrement(self): + # type: () -> PatternFlowSnmpv2cVariableBindingValueIntegerValueCounter + """Factory property that returns an instance of the PatternFlowSnmpv2cVariableBindingValueIntegerValueCounter class + + integer counter pattern + + Returns: PatternFlowSnmpv2cVariableBindingValueIntegerValueCounter + """ + return self._get_property( + "decrement", + PatternFlowSnmpv2cVariableBindingValueIntegerValueCounter, + self, + "decrement", + ) + + @property + def choice(self): + # type: () -> Union[Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] + """choice getter + + TBD + + Returns: Union[Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] + """ + return self._get_property("choice") + + @choice.setter + def choice(self, value): + """choice setter + + TBD + + value: Union[Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] + """ + self._set_property("choice", value) + + @property + def value(self): + # type: () -> int + """value getter + + TBD + + Returns: int + """ + return self._get_property("value") + + @value.setter + def value(self, value): + """value setter + + TBD + + value: int + """ + self._set_property("value", value, "value") + + @property + def values(self): + # type: () -> List[int] + """values getter + + TBD + + Returns: List[int] + """ + return self._get_property("values") + + @values.setter + def values(self, value): + """values setter + + TBD + + value: List[int] + """ + self._set_property("values", value, "values") + + +class PatternFlowSnmpv2cVariableBindingValueIntegerValueCounter(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "start": { + "type": int, + "format": "int32", + }, + "step": { + "type": int, + "format": "int32", + }, + "count": { + "type": int, + "format": "int32", + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "start": 0, + "step": 1, + "count": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, start=0, step=1, count=1): + super( + PatternFlowSnmpv2cVariableBindingValueIntegerValueCounter, self + ).__init__() + self._parent = parent + self._set_property("start", start) + self._set_property("step", step) + self._set_property("count", count) + + def set(self, start=None, step=None, count=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def start(self): + # type: () -> int + """start getter + + TBD + + Returns: int + """ + return self._get_property("start") + + @start.setter + def start(self, value): + """start setter + + TBD + + value: int + """ + self._set_property("start", value) + + @property + def step(self): + # type: () -> int + """step getter + + TBD + + Returns: int + """ + return self._get_property("step") + + @step.setter + def step(self, value): + """step setter + + TBD + + value: int + """ + self._set_property("step", value) + + @property + def count(self): + # type: () -> int + """count getter + + TBD + + Returns: int + """ + return self._get_property("count") + + @count.setter + def count(self, value): + """count setter + + TBD + + value: int + """ + self._set_property("count", value) + + +class PatternFlowSnmpv2cVariableBindingValueIpAddressValue(OpenApiObject): + __slots__ = ("_parent", "_choice") + + _TYPES = { + "choice": { + "type": str, + "enum": [ + "value", + "values", + "increment", + "decrement", + ], + }, + "value": { + "type": str, + "format": "ipv4", + }, + "values": { + "type": list, + "itemtype": str, + "itemformat": "ipv4", + }, + "increment": { + "type": "PatternFlowSnmpv2cVariableBindingValueIpAddressValueCounter" + }, + "decrement": { + "type": "PatternFlowSnmpv2cVariableBindingValueIpAddressValueCounter" + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "value", + "value": "0.0.0.0", + "values": ["0.0.0.0"], + } # type: Dict[str, Union(type)] + + VALUE = "value" # type: str + VALUES = "values" # type: str + INCREMENT = "increment" # type: str + DECREMENT = "decrement" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None, value="0.0.0.0", values=["0.0.0.0"]): + super(PatternFlowSnmpv2cVariableBindingValueIpAddressValue, self).__init__() + self._parent = parent + self._set_property("value", value) + self._set_property("values", values) + if ( + "choice" in self._DEFAULTS + and choice is None + and self._DEFAULTS["choice"] in self._TYPES + ): + getattr(self, self._DEFAULTS["choice"]) + else: + self._set_property("choice", choice) + + def set(self, value=None, values=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def increment(self): + # type: () -> PatternFlowSnmpv2cVariableBindingValueIpAddressValueCounter + """Factory property that returns an instance of the PatternFlowSnmpv2cVariableBindingValueIpAddressValueCounter class + + ipv4 counter pattern + + Returns: PatternFlowSnmpv2cVariableBindingValueIpAddressValueCounter + """ + return self._get_property( + "increment", + PatternFlowSnmpv2cVariableBindingValueIpAddressValueCounter, + self, + "increment", + ) + + @property + def decrement(self): + # type: () -> PatternFlowSnmpv2cVariableBindingValueIpAddressValueCounter + """Factory property that returns an instance of the PatternFlowSnmpv2cVariableBindingValueIpAddressValueCounter class + + ipv4 counter pattern + + Returns: PatternFlowSnmpv2cVariableBindingValueIpAddressValueCounter + """ + return self._get_property( + "decrement", + PatternFlowSnmpv2cVariableBindingValueIpAddressValueCounter, + self, + "decrement", + ) + + @property + def choice(self): + # type: () -> Union[Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] + """choice getter + + TBD + + Returns: Union[Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] + """ + return self._get_property("choice") + + @choice.setter + def choice(self, value): + """choice setter + + TBD + + value: Union[Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] + """ + self._set_property("choice", value) + + @property + def value(self): + # type: () -> str + """value getter + + TBD + + Returns: str + """ + return self._get_property("value") + + @value.setter + def value(self, value): + """value setter + + TBD + + value: str + """ + self._set_property("value", value, "value") + + @property + def values(self): + # type: () -> List[str] + """values getter + + TBD + + Returns: List[str] + """ + return self._get_property("values") + + @values.setter + def values(self, value): + """values setter + + TBD + + value: List[str] + """ + self._set_property("values", value, "values") + + +class PatternFlowSnmpv2cVariableBindingValueIpAddressValueCounter(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "start": { + "type": str, + "format": "ipv4", + }, + "step": { + "type": str, + "format": "ipv4", + }, + "count": { + "type": int, + "format": "uint32", + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "start": "0.0.0.0", + "step": "0.0.0.1", + "count": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, start="0.0.0.0", step="0.0.0.1", count=1): + super( + PatternFlowSnmpv2cVariableBindingValueIpAddressValueCounter, self + ).__init__() + self._parent = parent + self._set_property("start", start) + self._set_property("step", step) + self._set_property("count", count) + + def set(self, start=None, step=None, count=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def start(self): + # type: () -> str + """start getter + + TBD + + Returns: str + """ + return self._get_property("start") + + @start.setter + def start(self, value): + """start setter + + TBD + + value: str + """ + self._set_property("start", value) + + @property + def step(self): + # type: () -> str + """step getter + + TBD + + Returns: str + """ + return self._get_property("step") + + @step.setter + def step(self, value): + """step setter + + TBD + + value: str + """ + self._set_property("step", value) + + @property + def count(self): + # type: () -> int + """count getter + + TBD + + Returns: int + """ + return self._get_property("count") + + @count.setter + def count(self, value): + """count setter + + TBD + + value: int + """ + self._set_property("count", value) + + +class PatternFlowSnmpv2cVariableBindingValueCounterValue(OpenApiObject): + __slots__ = ("_parent", "_choice") + + _TYPES = { + "choice": { + "type": str, + "enum": [ + "value", + "values", + "increment", + "decrement", + ], + }, + "value": { + "type": int, + "format": "uint32", + }, + "values": { + "type": list, + "itemtype": int, + "itemformat": "uint32", + }, + "increment": { + "type": "PatternFlowSnmpv2cVariableBindingValueCounterValueCounter" + }, + "decrement": { + "type": "PatternFlowSnmpv2cVariableBindingValueCounterValueCounter" + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "value", + "value": 0, + "values": [0], + } # type: Dict[str, Union(type)] + + VALUE = "value" # type: str + VALUES = "values" # type: str + INCREMENT = "increment" # type: str + DECREMENT = "decrement" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None, value=0, values=[0]): + super(PatternFlowSnmpv2cVariableBindingValueCounterValue, self).__init__() + self._parent = parent + self._set_property("value", value) + self._set_property("values", values) + if ( + "choice" in self._DEFAULTS + and choice is None + and self._DEFAULTS["choice"] in self._TYPES + ): + getattr(self, self._DEFAULTS["choice"]) + else: + self._set_property("choice", choice) + + def set(self, value=None, values=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def increment(self): + # type: () -> PatternFlowSnmpv2cVariableBindingValueCounterValueCounter + """Factory property that returns an instance of the PatternFlowSnmpv2cVariableBindingValueCounterValueCounter class + + integer counter pattern + + Returns: PatternFlowSnmpv2cVariableBindingValueCounterValueCounter + """ + return self._get_property( + "increment", + PatternFlowSnmpv2cVariableBindingValueCounterValueCounter, + self, + "increment", + ) + + @property + def decrement(self): + # type: () -> PatternFlowSnmpv2cVariableBindingValueCounterValueCounter + """Factory property that returns an instance of the PatternFlowSnmpv2cVariableBindingValueCounterValueCounter class + + integer counter pattern + + Returns: PatternFlowSnmpv2cVariableBindingValueCounterValueCounter + """ + return self._get_property( + "decrement", + PatternFlowSnmpv2cVariableBindingValueCounterValueCounter, + self, + "decrement", + ) + + @property + def choice(self): + # type: () -> Union[Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] + """choice getter + + TBD + + Returns: Union[Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] + """ + return self._get_property("choice") + + @choice.setter + def choice(self, value): + """choice setter + + TBD + + value: Union[Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] + """ + self._set_property("choice", value) + + @property + def value(self): + # type: () -> int + """value getter + + TBD + + Returns: int + """ + return self._get_property("value") + + @value.setter + def value(self, value): + """value setter + + TBD + + value: int + """ + self._set_property("value", value, "value") + + @property + def values(self): + # type: () -> List[int] + """values getter + + TBD + + Returns: List[int] + """ + return self._get_property("values") + + @values.setter + def values(self, value): + """values setter + + TBD + + value: List[int] + """ + self._set_property("values", value, "values") + + +class PatternFlowSnmpv2cVariableBindingValueCounterValueCounter(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "start": { + "type": int, + "format": "uint32", + }, + "step": { + "type": int, + "format": "uint32", + }, + "count": { + "type": int, + "format": "uint32", + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "start": 0, + "step": 1, + "count": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, start=0, step=1, count=1): + super( + PatternFlowSnmpv2cVariableBindingValueCounterValueCounter, self + ).__init__() + self._parent = parent + self._set_property("start", start) + self._set_property("step", step) + self._set_property("count", count) + + def set(self, start=None, step=None, count=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def start(self): + # type: () -> int + """start getter + + TBD + + Returns: int + """ + return self._get_property("start") + + @start.setter + def start(self, value): + """start setter + + TBD + + value: int + """ + self._set_property("start", value) + + @property + def step(self): + # type: () -> int + """step getter + + TBD + + Returns: int + """ + return self._get_property("step") + + @step.setter + def step(self, value): + """step setter + + TBD + + value: int + """ + self._set_property("step", value) + + @property + def count(self): + # type: () -> int + """count getter + + TBD + + Returns: int + """ + return self._get_property("count") + + @count.setter + def count(self, value): + """count setter + + TBD + + value: int + """ + self._set_property("count", value) + + +class PatternFlowSnmpv2cVariableBindingValueTimeticksValue(OpenApiObject): + __slots__ = ("_parent", "_choice") + + _TYPES = { + "choice": { + "type": str, + "enum": [ + "value", + "values", + "increment", + "decrement", + ], + }, + "value": { + "type": int, + "format": "uint32", + }, + "values": { + "type": list, + "itemtype": int, + "itemformat": "uint32", + }, + "increment": { + "type": "PatternFlowSnmpv2cVariableBindingValueTimeticksValueCounter" + }, + "decrement": { + "type": "PatternFlowSnmpv2cVariableBindingValueTimeticksValueCounter" + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "value", + "value": 0, + "values": [0], + } # type: Dict[str, Union(type)] + + VALUE = "value" # type: str + VALUES = "values" # type: str + INCREMENT = "increment" # type: str + DECREMENT = "decrement" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None, value=0, values=[0]): + super(PatternFlowSnmpv2cVariableBindingValueTimeticksValue, self).__init__() + self._parent = parent + self._set_property("value", value) + self._set_property("values", values) + if ( + "choice" in self._DEFAULTS + and choice is None + and self._DEFAULTS["choice"] in self._TYPES + ): + getattr(self, self._DEFAULTS["choice"]) + else: + self._set_property("choice", choice) + + def set(self, value=None, values=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def increment(self): + # type: () -> PatternFlowSnmpv2cVariableBindingValueTimeticksValueCounter + """Factory property that returns an instance of the PatternFlowSnmpv2cVariableBindingValueTimeticksValueCounter class + + integer counter pattern + + Returns: PatternFlowSnmpv2cVariableBindingValueTimeticksValueCounter + """ + return self._get_property( + "increment", + PatternFlowSnmpv2cVariableBindingValueTimeticksValueCounter, + self, + "increment", + ) + + @property + def decrement(self): + # type: () -> PatternFlowSnmpv2cVariableBindingValueTimeticksValueCounter + """Factory property that returns an instance of the PatternFlowSnmpv2cVariableBindingValueTimeticksValueCounter class + + integer counter pattern + + Returns: PatternFlowSnmpv2cVariableBindingValueTimeticksValueCounter + """ + return self._get_property( + "decrement", + PatternFlowSnmpv2cVariableBindingValueTimeticksValueCounter, + self, + "decrement", + ) + + @property + def choice(self): + # type: () -> Union[Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] + """choice getter + + TBD + + Returns: Union[Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] + """ + return self._get_property("choice") + + @choice.setter + def choice(self, value): + """choice setter + + TBD + + value: Union[Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] + """ + self._set_property("choice", value) + + @property + def value(self): + # type: () -> int + """value getter + + TBD + + Returns: int + """ + return self._get_property("value") + + @value.setter + def value(self, value): + """value setter + + TBD + + value: int + """ + self._set_property("value", value, "value") + + @property + def values(self): + # type: () -> List[int] + """values getter + + TBD + + Returns: List[int] + """ + return self._get_property("values") + + @values.setter + def values(self, value): + """values setter + + TBD + + value: List[int] + """ + self._set_property("values", value, "values") + + +class PatternFlowSnmpv2cVariableBindingValueTimeticksValueCounter(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "start": { + "type": int, + "format": "uint32", + }, + "step": { + "type": int, + "format": "uint32", + }, + "count": { + "type": int, + "format": "uint32", + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "start": 0, + "step": 1, + "count": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, start=0, step=1, count=1): + super( + PatternFlowSnmpv2cVariableBindingValueTimeticksValueCounter, self + ).__init__() + self._parent = parent + self._set_property("start", start) + self._set_property("step", step) + self._set_property("count", count) + + def set(self, start=None, step=None, count=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def start(self): + # type: () -> int + """start getter + + TBD + + Returns: int + """ + return self._get_property("start") + + @start.setter + def start(self, value): + """start setter + + TBD + + value: int + """ + self._set_property("start", value) + + @property + def step(self): + # type: () -> int + """step getter + + TBD + + Returns: int + """ + return self._get_property("step") + + @step.setter + def step(self, value): + """step setter + + TBD + + value: int + """ + self._set_property("step", value) + + @property + def count(self): + # type: () -> int + """count getter + + TBD + + Returns: int + """ + return self._get_property("count") + + @count.setter + def count(self, value): + """count setter + + TBD + + value: int + """ + self._set_property("count", value) + + +class PatternFlowSnmpv2cVariableBindingValueBigCounterValue(OpenApiObject): + __slots__ = ("_parent", "_choice") + + _TYPES = { + "choice": { + "type": str, + "enum": [ + "value", + "values", + "increment", + "decrement", + ], + }, + "value": { + "type": int, + "format": "uint64", + }, + "values": { + "type": list, + "itemtype": int, + "itemformat": "uint64", + }, + "increment": { + "type": "PatternFlowSnmpv2cVariableBindingValueBigCounterValueCounter" + }, + "decrement": { + "type": "PatternFlowSnmpv2cVariableBindingValueBigCounterValueCounter" + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "value", + "value": 0, + "values": [0], + } # type: Dict[str, Union(type)] + + VALUE = "value" # type: str + VALUES = "values" # type: str + INCREMENT = "increment" # type: str + DECREMENT = "decrement" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None, value=0, values=[0]): + super(PatternFlowSnmpv2cVariableBindingValueBigCounterValue, self).__init__() + self._parent = parent + self._set_property("value", value) + self._set_property("values", values) + if ( + "choice" in self._DEFAULTS + and choice is None + and self._DEFAULTS["choice"] in self._TYPES + ): + getattr(self, self._DEFAULTS["choice"]) + else: + self._set_property("choice", choice) + + def set(self, value=None, values=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def increment(self): + # type: () -> PatternFlowSnmpv2cVariableBindingValueBigCounterValueCounter + """Factory property that returns an instance of the PatternFlowSnmpv2cVariableBindingValueBigCounterValueCounter class + + integer counter pattern + + Returns: PatternFlowSnmpv2cVariableBindingValueBigCounterValueCounter + """ + return self._get_property( + "increment", + PatternFlowSnmpv2cVariableBindingValueBigCounterValueCounter, + self, + "increment", + ) + + @property + def decrement(self): + # type: () -> PatternFlowSnmpv2cVariableBindingValueBigCounterValueCounter + """Factory property that returns an instance of the PatternFlowSnmpv2cVariableBindingValueBigCounterValueCounter class + + integer counter pattern + + Returns: PatternFlowSnmpv2cVariableBindingValueBigCounterValueCounter + """ + return self._get_property( + "decrement", + PatternFlowSnmpv2cVariableBindingValueBigCounterValueCounter, + self, + "decrement", + ) + + @property + def choice(self): + # type: () -> Union[Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] + """choice getter + + TBD + + Returns: Union[Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] + """ + return self._get_property("choice") + + @choice.setter + def choice(self, value): + """choice setter + + TBD + + value: Union[Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] + """ + self._set_property("choice", value) + + @property + def value(self): + # type: () -> int + """value getter + + TBD + + Returns: int + """ + return self._get_property("value") + + @value.setter + def value(self, value): + """value setter + + TBD + + value: int + """ + self._set_property("value", value, "value") + + @property + def values(self): + # type: () -> List[int] + """values getter + + TBD + + Returns: List[int] + """ + return self._get_property("values") + + @values.setter + def values(self, value): + """values setter + + TBD + + value: List[int] + """ + self._set_property("values", value, "values") + + +class PatternFlowSnmpv2cVariableBindingValueBigCounterValueCounter(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "start": { + "type": int, + "format": "uint64", + }, + "step": { + "type": int, + "format": "uint64", + }, + "count": { + "type": int, + "format": "uint64", + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "start": 0, + "step": 1, + "count": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, start=0, step=1, count=1): + super( + PatternFlowSnmpv2cVariableBindingValueBigCounterValueCounter, self + ).__init__() + self._parent = parent + self._set_property("start", start) + self._set_property("step", step) + self._set_property("count", count) + + def set(self, start=None, step=None, count=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def start(self): + # type: () -> int + """start getter + + TBD + + Returns: int + """ + return self._get_property("start") + + @start.setter + def start(self, value): + """start setter + + TBD + + value: int + """ + self._set_property("start", value) + + @property + def step(self): + # type: () -> int + """step getter + + TBD + + Returns: int + """ + return self._get_property("step") + + @step.setter + def step(self, value): + """step setter + + TBD + + value: int + """ + self._set_property("step", value) + + @property + def count(self): + # type: () -> int + """count getter + + TBD + + Returns: int + """ + return self._get_property("count") + + @count.setter + def count(self, value): + """count setter + + TBD + + value: int + """ + self._set_property("count", value) + + +class PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValue(OpenApiObject): + __slots__ = ("_parent", "_choice") + + _TYPES = { + "choice": { + "type": str, + "enum": [ + "value", + "values", + "increment", + "decrement", + ], + }, + "value": { + "type": int, + "format": "uint32", + }, + "values": { + "type": list, + "itemtype": int, + "itemformat": "uint32", + }, + "increment": { + "type": "PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValueCounter" + }, + "decrement": { + "type": "PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValueCounter" + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "value", + "value": 0, + "values": [0], + } # type: Dict[str, Union(type)] + + VALUE = "value" # type: str + VALUES = "values" # type: str + INCREMENT = "increment" # type: str + DECREMENT = "decrement" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None, value=0, values=[0]): + super( + PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValue, self + ).__init__() + self._parent = parent + self._set_property("value", value) + self._set_property("values", values) + if ( + "choice" in self._DEFAULTS + and choice is None + and self._DEFAULTS["choice"] in self._TYPES + ): + getattr(self, self._DEFAULTS["choice"]) + else: + self._set_property("choice", choice) + + def set(self, value=None, values=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def increment(self): + # type: () -> PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValueCounter + """Factory property that returns an instance of the PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValueCounter class + + integer counter pattern + + Returns: PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValueCounter + """ + return self._get_property( + "increment", + PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValueCounter, + self, + "increment", + ) + + @property + def decrement(self): + # type: () -> PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValueCounter + """Factory property that returns an instance of the PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValueCounter class + + integer counter pattern + + Returns: PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValueCounter + """ + return self._get_property( + "decrement", + PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValueCounter, + self, + "decrement", + ) + + @property + def choice(self): + # type: () -> Union[Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] + """choice getter + + TBD + + Returns: Union[Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] + """ + return self._get_property("choice") + + @choice.setter + def choice(self, value): + """choice setter + + TBD + + value: Union[Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] + """ + self._set_property("choice", value) + + @property + def value(self): + # type: () -> int + """value getter + + TBD + + Returns: int + """ + return self._get_property("value") + + @value.setter + def value(self, value): + """value setter + + TBD + + value: int + """ + self._set_property("value", value, "value") + + @property + def values(self): + # type: () -> List[int] + """values getter + + TBD + + Returns: List[int] + """ + return self._get_property("values") + + @values.setter + def values(self, value): + """values setter + + TBD + + value: List[int] + """ + self._set_property("values", value, "values") + + +class PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValueCounter(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "start": { + "type": int, + "format": "uint32", + }, + "step": { + "type": int, + "format": "uint32", + }, + "count": { + "type": int, + "format": "uint32", + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "start": 0, + "step": 1, + "count": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, start=0, step=1, count=1): + super( + PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValueCounter, self + ).__init__() + self._parent = parent + self._set_property("start", start) + self._set_property("step", step) + self._set_property("count", count) + + def set(self, start=None, step=None, count=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def start(self): + # type: () -> int + """start getter + + TBD + + Returns: int + """ + return self._get_property("start") + + @start.setter + def start(self, value): + """start setter + + TBD + + value: int + """ + self._set_property("start", value) + + @property + def step(self): + # type: () -> int + """step getter + + TBD + + Returns: int + """ + return self._get_property("step") + + @step.setter + def step(self, value): + """step setter + + TBD + + value: int + """ + self._set_property("step", value) + + @property + def count(self): + # type: () -> int + """count getter + + TBD + + Returns: int + """ + return self._get_property("count") + + @count.setter + def count(self, value): + """count setter + + TBD + + value: int + """ + self._set_property("count", value) + + +class FlowSnmpv2cVariableBindingIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(FlowSnmpv2cVariableBindingIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[FlowSnmpv2cVariableBinding] + return self._getitem(key) + + def __iter__(self): + # type: () -> FlowSnmpv2cVariableBindingIter + return self._iter() + + def __next__(self): + # type: () -> FlowSnmpv2cVariableBinding + return self._next() + + def next(self): + # type: () -> FlowSnmpv2cVariableBinding + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, FlowSnmpv2cVariableBinding): + raise Exception("Item is not an instance of FlowSnmpv2cVariableBinding") + + def variablebinding(self, object_identifier="0.1"): + # type: (str) -> FlowSnmpv2cVariableBindingIter + """Factory method that creates an instance of the FlowSnmpv2cVariableBinding class + + A Sequence of two fields, an object_identifier and the value for/from that object_identifier. + + Returns: FlowSnmpv2cVariableBindingIter + """ + item = FlowSnmpv2cVariableBinding( + parent=self._parent, object_identifier=object_identifier + ) + self._add(item) + return self + + def add(self, object_identifier="0.1"): + # type: (str) -> FlowSnmpv2cVariableBinding + """Add method that creates and returns an instance of the FlowSnmpv2cVariableBinding class + + A Sequence of two fields, an object_identifier and the value for/from that object_identifier. + + Returns: FlowSnmpv2cVariableBinding + """ + item = FlowSnmpv2cVariableBinding( + parent=self._parent, object_identifier=object_identifier + ) + self._add(item) + return item + + +class FlowSnmpv2cBulkPDU(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "request_id": {"type": "PatternFlowSnmpv2cBulkPDURequestId"}, + "non_repeaters": {"type": "PatternFlowSnmpv2cBulkPDUNonRepeaters"}, + "max_repetitions": {"type": "PatternFlowSnmpv2cBulkPDUMaxRepetitions"}, + "variable_bindings": {"type": "FlowSnmpv2cVariableBindingIter"}, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = {} # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None): + super(FlowSnmpv2cBulkPDU, self).__init__() + self._parent = parent + + @property + def request_id(self): + # type: () -> PatternFlowSnmpv2cBulkPDURequestId + """request_id getter + + Identifies particular SNMP request. This index is echoed back in the response from the SNMP agent, allowing the SNMP manager to match an incoming response to the appropriate request.. - Encoding of this field follows ASN.1 X.690(section 8.3) specification.. Refer: http://www.itu.int/ITU-T/asn1/Identifies particular SNMP request. This index is echoed back in the response from the SNMP agent, allowing the SNMP manager to match an incoming response to the appropriate request.. - Encoding of this field follows ASN.1 X.690(section 8.3) specification.. Refer: http://www.itu.int/ITU-T/asn1/Identifies particular SNMP request. This index is echoed back in the response from the SNMP agent, allowing the SNMP manager to match an incoming response to the appropriate request.. - Encoding of this field follows ASN.1 X.690(section 8.3) specification.. Refer: http://www.itu.int/ITU-T/asn1/Identifies particular SNMP request. This index is echoed back in the response from the SNMP agent, allowing the SNMP manager to match an incoming response to the appropriate request.. - Encoding of this field follows ASN.1 X.690(section 8.3) specification.. Refer: http://www.itu.int/ITU-T/asn1/ + + Returns: PatternFlowSnmpv2cBulkPDURequestId + """ + return self._get_property("request_id", PatternFlowSnmpv2cBulkPDURequestId) + + @property + def non_repeaters(self): + # type: () -> PatternFlowSnmpv2cBulkPDUNonRepeaters + """non_repeaters getter + + One variable binding in the Response-PDU is requested for the first non_repeaters variable bindings in the GetBulkRequest.One variable binding in the Response-PDU is requested for the first non_repeaters variable bindings in the GetBulkRequest.One variable binding in the Response-PDU is requested for the first non_repeaters variable bindings in the GetBulkRequest.One variable binding in the Response-PDU is requested for the first non_repeaters variable bindings in the GetBulkRequest. + + Returns: PatternFlowSnmpv2cBulkPDUNonRepeaters + """ + return self._get_property( + "non_repeaters", PatternFlowSnmpv2cBulkPDUNonRepeaters + ) + + @property + def max_repetitions(self): + # type: () -> PatternFlowSnmpv2cBulkPDUMaxRepetitions + """max_repetitions getter + + A maximum of max_repetitions variable bindings are requested in the Response-PDU for each of the remaining variable bindings in the GetBulkRequest after the non_repeaters variable bindings.A maximum of max_repetitions variable bindings are requested in the Response-PDU for each of the remaining variable bindings in the GetBulkRequest after the non_repeaters variable bindings.A maximum of max_repetitions variable bindings are requested in the Response-PDU for each of the remaining variable bindings in the GetBulkRequest after the non_repeaters variable bindings.A maximum of max_repetitions variable bindings are requested in the Response-PDU for each of the remaining variable bindings in the GetBulkRequest after the non_repeaters variable bindings. + + Returns: PatternFlowSnmpv2cBulkPDUMaxRepetitions + """ + return self._get_property( + "max_repetitions", PatternFlowSnmpv2cBulkPDUMaxRepetitions + ) + + @property + def variable_bindings(self): + # type: () -> FlowSnmpv2cVariableBindingIter + """variable_bindings getter + + A Sequence of variable_bindings. + + Returns: FlowSnmpv2cVariableBindingIter + """ + return self._get_property( + "variable_bindings", + FlowSnmpv2cVariableBindingIter, + self._parent, + self._choice, + ) + + +class PatternFlowSnmpv2cBulkPDURequestId(OpenApiObject): + __slots__ = ("_parent", "_choice") + + _TYPES = { + "choice": { + "type": str, + "enum": [ + "value", + "values", + "increment", + "decrement", + ], + }, + "value": { + "type": int, + "format": "int32", + }, + "values": { + "type": list, + "itemtype": int, + "itemformat": "int32", + }, + "increment": {"type": "PatternFlowSnmpv2cBulkPDURequestIdCounter"}, + "decrement": {"type": "PatternFlowSnmpv2cBulkPDURequestIdCounter"}, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "value", + "value": 0, + "values": [0], + } # type: Dict[str, Union(type)] + + VALUE = "value" # type: str + VALUES = "values" # type: str + INCREMENT = "increment" # type: str + DECREMENT = "decrement" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None, value=0, values=[0]): + super(PatternFlowSnmpv2cBulkPDURequestId, self).__init__() + self._parent = parent + self._set_property("value", value) + self._set_property("values", values) + if ( + "choice" in self._DEFAULTS + and choice is None + and self._DEFAULTS["choice"] in self._TYPES + ): + getattr(self, self._DEFAULTS["choice"]) + else: + self._set_property("choice", choice) + + def set(self, value=None, values=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def increment(self): + # type: () -> PatternFlowSnmpv2cBulkPDURequestIdCounter + """Factory property that returns an instance of the PatternFlowSnmpv2cBulkPDURequestIdCounter class + + integer counter pattern + + Returns: PatternFlowSnmpv2cBulkPDURequestIdCounter + """ + return self._get_property( + "increment", PatternFlowSnmpv2cBulkPDURequestIdCounter, self, "increment" + ) + + @property + def decrement(self): + # type: () -> PatternFlowSnmpv2cBulkPDURequestIdCounter + """Factory property that returns an instance of the PatternFlowSnmpv2cBulkPDURequestIdCounter class + + integer counter pattern + + Returns: PatternFlowSnmpv2cBulkPDURequestIdCounter + """ + return self._get_property( + "decrement", PatternFlowSnmpv2cBulkPDURequestIdCounter, self, "decrement" + ) + + @property + def choice(self): + # type: () -> Union[Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] + """choice getter + + TBD + + Returns: Union[Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] + """ + return self._get_property("choice") + + @choice.setter + def choice(self, value): + """choice setter + + TBD + + value: Union[Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] + """ + self._set_property("choice", value) + + @property + def value(self): + # type: () -> int + """value getter + + TBD + + Returns: int + """ + return self._get_property("value") + + @value.setter + def value(self, value): + """value setter + + TBD + + value: int + """ + self._set_property("value", value, "value") + + @property + def values(self): + # type: () -> List[int] + """values getter + + TBD + + Returns: List[int] + """ + return self._get_property("values") + + @values.setter + def values(self, value): + """values setter + + TBD + + value: List[int] + """ + self._set_property("values", value, "values") + + +class PatternFlowSnmpv2cBulkPDURequestIdCounter(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "start": { + "type": int, + "format": "int32", + }, + "step": { + "type": int, + "format": "int32", + }, + "count": { + "type": int, + "format": "int32", + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "start": 0, + "step": 1, + "count": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, start=0, step=1, count=1): + super(PatternFlowSnmpv2cBulkPDURequestIdCounter, self).__init__() + self._parent = parent + self._set_property("start", start) + self._set_property("step", step) + self._set_property("count", count) + + def set(self, start=None, step=None, count=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def start(self): + # type: () -> int + """start getter + + TBD + + Returns: int + """ + return self._get_property("start") + + @start.setter + def start(self, value): + """start setter + + TBD + + value: int + """ + self._set_property("start", value) + + @property + def step(self): + # type: () -> int + """step getter + + TBD + + Returns: int + """ + return self._get_property("step") + + @step.setter + def step(self, value): + """step setter + + TBD + + value: int + """ + self._set_property("step", value) + + @property + def count(self): + # type: () -> int + """count getter + + TBD + + Returns: int + """ + return self._get_property("count") + + @count.setter + def count(self, value): + """count setter + + TBD + + value: int + """ + self._set_property("count", value) + + +class PatternFlowSnmpv2cBulkPDUNonRepeaters(OpenApiObject): + __slots__ = ("_parent", "_choice") + + _TYPES = { + "choice": { + "type": str, + "enum": [ + "value", + "values", + ], + }, + "value": { + "type": int, + "format": "uint32", + }, + "values": { + "type": list, + "itemtype": int, + "itemformat": "uint32", + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "value", + "value": 0, + "values": [0], + } # type: Dict[str, Union(type)] + + VALUE = "value" # type: str + VALUES = "values" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None, value=0, values=[0]): + super(PatternFlowSnmpv2cBulkPDUNonRepeaters, self).__init__() + self._parent = parent + self._set_property("value", value) + self._set_property("values", values) + if ( + "choice" in self._DEFAULTS + and choice is None + and self._DEFAULTS["choice"] in self._TYPES + ): + getattr(self, self._DEFAULTS["choice"]) + else: + self._set_property("choice", choice) + + def set(self, value=None, values=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def choice(self): + # type: () -> Union[Literal["value"], Literal["values"]] + """choice getter + + TBD + + Returns: Union[Literal["value"], Literal["values"]] + """ + return self._get_property("choice") + + @choice.setter + def choice(self, value): + """choice setter + + TBD + + value: Union[Literal["value"], Literal["values"]] + """ + self._set_property("choice", value) + + @property + def value(self): + # type: () -> int + """value getter + + TBD + + Returns: int + """ + return self._get_property("value") + + @value.setter + def value(self, value): + """value setter + + TBD + + value: int + """ + self._set_property("value", value, "value") + + @property + def values(self): + # type: () -> List[int] + """values getter + + TBD + + Returns: List[int] + """ + return self._get_property("values") + + @values.setter + def values(self, value): + """values setter + + TBD + + value: List[int] + """ + self._set_property("values", value, "values") + + +class PatternFlowSnmpv2cBulkPDUMaxRepetitions(OpenApiObject): + __slots__ = ("_parent", "_choice") + + _TYPES = { + "choice": { + "type": str, + "enum": [ + "value", + "values", + "increment", + "decrement", + ], + }, + "value": { + "type": int, + "format": "uint32", + }, + "values": { + "type": list, + "itemtype": int, + "itemformat": "uint32", + }, + "increment": {"type": "PatternFlowSnmpv2cBulkPDUMaxRepetitionsCounter"}, + "decrement": {"type": "PatternFlowSnmpv2cBulkPDUMaxRepetitionsCounter"}, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "value", + "value": 0, + "values": [0], + } # type: Dict[str, Union(type)] + + VALUE = "value" # type: str + VALUES = "values" # type: str + INCREMENT = "increment" # type: str + DECREMENT = "decrement" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None, value=0, values=[0]): + super(PatternFlowSnmpv2cBulkPDUMaxRepetitions, self).__init__() + self._parent = parent + self._set_property("value", value) + self._set_property("values", values) + if ( + "choice" in self._DEFAULTS + and choice is None + and self._DEFAULTS["choice"] in self._TYPES + ): + getattr(self, self._DEFAULTS["choice"]) + else: + self._set_property("choice", choice) + + def set(self, value=None, values=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def increment(self): + # type: () -> PatternFlowSnmpv2cBulkPDUMaxRepetitionsCounter + """Factory property that returns an instance of the PatternFlowSnmpv2cBulkPDUMaxRepetitionsCounter class + + integer counter pattern + + Returns: PatternFlowSnmpv2cBulkPDUMaxRepetitionsCounter + """ + return self._get_property( + "increment", + PatternFlowSnmpv2cBulkPDUMaxRepetitionsCounter, + self, + "increment", + ) + + @property + def decrement(self): + # type: () -> PatternFlowSnmpv2cBulkPDUMaxRepetitionsCounter + """Factory property that returns an instance of the PatternFlowSnmpv2cBulkPDUMaxRepetitionsCounter class + + integer counter pattern + + Returns: PatternFlowSnmpv2cBulkPDUMaxRepetitionsCounter + """ + return self._get_property( + "decrement", + PatternFlowSnmpv2cBulkPDUMaxRepetitionsCounter, + self, + "decrement", + ) + + @property + def choice(self): + # type: () -> Union[Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] + """choice getter + + TBD + + Returns: Union[Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] + """ + return self._get_property("choice") + + @choice.setter + def choice(self, value): + """choice setter + + TBD + + value: Union[Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] + """ + self._set_property("choice", value) + + @property + def value(self): + # type: () -> int + """value getter + + TBD + + Returns: int + """ + return self._get_property("value") + + @value.setter + def value(self, value): + """value setter + + TBD + + value: int + """ + self._set_property("value", value, "value") + + @property + def values(self): + # type: () -> List[int] + """values getter + + TBD + + Returns: List[int] + """ + return self._get_property("values") + + @values.setter + def values(self, value): + """values setter + + TBD + + value: List[int] + """ + self._set_property("values", value, "values") + + +class PatternFlowSnmpv2cBulkPDUMaxRepetitionsCounter(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "start": { + "type": int, + "format": "uint32", + }, + "step": { + "type": int, + "format": "uint32", + }, + "count": { + "type": int, + "format": "uint32", + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "start": 0, + "step": 1, + "count": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, start=0, step=1, count=1): + super(PatternFlowSnmpv2cBulkPDUMaxRepetitionsCounter, self).__init__() + self._parent = parent + self._set_property("start", start) + self._set_property("step", step) + self._set_property("count", count) + + def set(self, start=None, step=None, count=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def start(self): + # type: () -> int + """start getter + + TBD + + Returns: int + """ + return self._get_property("start") + + @start.setter + def start(self, value): + """start setter + + TBD + + value: int + """ + self._set_property("start", value) + + @property + def step(self): + # type: () -> int + """step getter + + TBD + + Returns: int + """ + return self._get_property("step") + + @step.setter + def step(self, value): + """step setter + + TBD + + value: int + """ + self._set_property("step", value) + + @property + def count(self): + # type: () -> int + """count getter + + TBD + + Returns: int + """ + return self._get_property("count") + + @count.setter + def count(self, value): + """count setter + + TBD + + value: int + """ + self._set_property("count", value) + + +class FlowHeaderIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = True + + def __init__(self, parent=None, choice=None): + super(FlowHeaderIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[FlowArp, FlowCustom, FlowEthernet, FlowEthernetPause, FlowGre, FlowGtpv1, FlowGtpv2, FlowHeader, FlowIcmp, FlowIcmpv6, FlowIgmpv1, FlowIpv4, FlowIpv6, FlowMpls, FlowPfcPause, FlowPpp, FlowSnmpv2c, FlowTcp, FlowUdp, FlowVlan, FlowVxlan] + return self._getitem(key) + + def __iter__(self): + # type: () -> FlowHeaderIter + return self._iter() + + def __next__(self): + # type: () -> FlowHeader + return self._next() + + def next(self): + # type: () -> FlowHeader + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, FlowHeader): + raise Exception("Item is not an instance of FlowHeader") + + def header(self): + # type: () -> FlowHeaderIter + """Factory method that creates an instance of the FlowHeader class + + Configuration for all traffic packet headers + + Returns: FlowHeaderIter + """ + item = FlowHeader(parent=self._parent, choice=self._choice) + self._add(item) + return self + + def add(self): + # type: () -> FlowHeader + """Add method that creates and returns an instance of the FlowHeader class + + Configuration for all traffic packet headers + + Returns: FlowHeader + """ + item = FlowHeader(parent=self._parent, choice=self._choice) + self._add(item) + return item + + def custom(self, bytes=None): + # type: (str) -> FlowHeaderIter + """Factory method that creates an instance of the FlowCustom class + + Custom packet header + + Returns: FlowHeaderIter + """ + item = FlowHeader() + item.custom + item.choice = "custom" + self._add(item) + return self + + def ethernet(self): + # type: () -> FlowHeaderIter + """Factory method that creates an instance of the FlowEthernet class + + Ethernet packet header + + Returns: FlowHeaderIter + """ + item = FlowHeader() + item.ethernet + item.choice = "ethernet" + self._add(item) + return self + + def vlan(self): + # type: () -> FlowHeaderIter + """Factory method that creates an instance of the FlowVlan class + + VLAN packet header + + Returns: FlowHeaderIter + """ + item = FlowHeader() + item.vlan + item.choice = "vlan" + self._add(item) + return self + + def vxlan(self): + # type: () -> FlowHeaderIter + """Factory method that creates an instance of the FlowVxlan class + + VXLAN packet header + + Returns: FlowHeaderIter + """ + item = FlowHeader() + item.vxlan + item.choice = "vxlan" + self._add(item) + return self + + def ipv4(self): + # type: () -> FlowHeaderIter + """Factory method that creates an instance of the FlowIpv4 class + + IPv4 packet header + + Returns: FlowHeaderIter + """ + item = FlowHeader() + item.ipv4 + item.choice = "ipv4" + self._add(item) + return self + + def ipv6(self): + # type: () -> FlowHeaderIter + """Factory method that creates an instance of the FlowIpv6 class + + IPv6 packet header + + Returns: FlowHeaderIter + """ + item = FlowHeader() + item.ipv6 + item.choice = "ipv6" + self._add(item) + return self + + def pfcpause(self): + # type: () -> FlowHeaderIter + """Factory method that creates an instance of the FlowPfcPause class + + IEEE 802.1Qbb PFC Pause packet header. + + Returns: FlowHeaderIter + """ + item = FlowHeader() + item.pfcpause + item.choice = "pfcpause" + self._add(item) + return self + + def ethernetpause(self): + # type: () -> FlowHeaderIter + """Factory method that creates an instance of the FlowEthernetPause class + + IEEE 802.3x global ethernet pause packet header + + Returns: FlowHeaderIter + """ + item = FlowHeader() + item.ethernetpause + item.choice = "ethernetpause" + self._add(item) + return self + + def tcp(self): + # type: () -> FlowHeaderIter + """Factory method that creates an instance of the FlowTcp class + + TCP packet header + + Returns: FlowHeaderIter + """ + item = FlowHeader() + item.tcp + item.choice = "tcp" + self._add(item) + return self + + def udp(self): + # type: () -> FlowHeaderIter + """Factory method that creates an instance of the FlowUdp class + + UDP packet header + + Returns: FlowHeaderIter + """ + item = FlowHeader() + item.udp + item.choice = "udp" + self._add(item) + return self + + def gre(self): + # type: () -> FlowHeaderIter + """Factory method that creates an instance of the FlowGre class + + Standard GRE packet header (RFC2784) + + Returns: FlowHeaderIter + """ + item = FlowHeader() + item.gre + item.choice = "gre" + self._add(item) + return self + + def gtpv1(self): + # type: () -> FlowHeaderIter + """Factory method that creates an instance of the FlowGtpv1 class + + GTPv1 packet header + + Returns: FlowHeaderIter + """ + item = FlowHeader() + item.gtpv1 + item.choice = "gtpv1" + self._add(item) + return self + + def gtpv2(self): + # type: () -> FlowHeaderIter + """Factory method that creates an instance of the FlowGtpv2 class + + GTPv2 packet header + + Returns: FlowHeaderIter + """ + item = FlowHeader() + item.gtpv2 + item.choice = "gtpv2" + self._add(item) + return self + + def arp(self): + # type: () -> FlowHeaderIter + """Factory method that creates an instance of the FlowArp class + + ARP packet header + + Returns: FlowHeaderIter + """ + item = FlowHeader() + item.arp + item.choice = "arp" + self._add(item) + return self + + def icmp(self): + # type: () -> FlowHeaderIter + """Factory method that creates an instance of the FlowIcmp class + + ICMP packet header + + Returns: FlowHeaderIter + """ + item = FlowHeader() + item.icmp + item.choice = "icmp" + self._add(item) + return self + + def icmpv6(self): + # type: () -> FlowHeaderIter + """Factory method that creates an instance of the FlowIcmpv6 class + + ICMPv6 packet header + + Returns: FlowHeaderIter + """ + item = FlowHeader() + item.icmpv6 + item.choice = "icmpv6" + self._add(item) + return self + + def ppp(self): + # type: () -> FlowHeaderIter + """Factory method that creates an instance of the FlowPpp class + + PPP packet header + + Returns: FlowHeaderIter + """ + item = FlowHeader() + item.ppp + item.choice = "ppp" + self._add(item) + return self + + def igmpv1(self): + # type: () -> FlowHeaderIter + """Factory method that creates an instance of the FlowIgmpv1 class + + IGMPv1 packet header + + Returns: FlowHeaderIter + """ + item = FlowHeader() + item.igmpv1 + item.choice = "igmpv1" + self._add(item) + return self + + def mpls(self): + # type: () -> FlowHeaderIter + """Factory method that creates an instance of the FlowMpls class + + MPLS packet header; When configuring multiple such headers, the count shall not exceed 20. + + Returns: FlowHeaderIter """ item = FlowHeader() item.mpls @@ -90943,6 +94820,20 @@ def mpls(self): self._add(item) return self + def snmpv2c(self, community="community"): + # type: (str) -> FlowHeaderIter + """Factory method that creates an instance of the FlowSnmpv2c class + + SNMPv2C packet header as defined in RFC1901 and RFC3416. + + Returns: FlowHeaderIter + """ + item = FlowHeader() + item.snmpv2c + item.choice = "snmpv2c" + self._add(item) + return self + class FlowSize(OpenApiObject): __slots__ = ("_parent", "_choice") @@ -112954,8 +116845,8 @@ class Api(object): def __init__(self, **kwargs): self._version_meta = self.version() - self._version_meta.api_spec_version = "0.13.5" - self._version_meta.sdk_version = "0.13.5" + self._version_meta.api_spec_version = "0.13.6" + self._version_meta.sdk_version = "0.13.6" self._version_check = kwargs.get("version_check") if self._version_check is None: self._version_check = False